freenode/#clasp - IRC Chatlog
Search
13:06:23
Colleen
Bike: drmeister said 9 hours, 10 minutes ago: The numbers can be ignored - I put them in there for reference.
13:06:24
Colleen
Bike: drmeister said 9 hours ago: That's an interesting idea - we could generate a sif file directly - we may need to add a bit more to the sif parser to bring all the info in. I'll put a little writeup together and post it for you.
13:06:24
Colleen
Bike: drmeister said 8 hours, 5 minutes ago: I took your suggestion of generating a sif file and ran with it. The static analyzer now generates a sif file that has new fields that we need to parse - but it looks just like a sif file. https://gist.github.com/drmeister/b39ea552c7cb235988041118d16d8274
13:06:24
Colleen
Bike: drmeister said 8 hours, 2 minutes ago: The tags are new - their names followed a tortuous path through multiple generations of the static analyzer. I may have to explain what some of them mean. But from these sif files we should be able to recreate everything in clasp_gc_cando.cc. We may need to add a few more tags to some of the entries. The way these sif files are now you have to keep track of some state from one entry to the next.
13:06:24
Colleen
Bike: drmeister said 7 hours, 33 minutes ago: I modified the static analyzer to generate a sif file and I pushed the change to github. You can test it with ./waf analyze_test - that will write a build/clasp_gc_test.sif file for analyzing a single file that you hard code into the wscript file analyze_test Python function.
15:22:34
Bike
drmeister: using analyze_test by itself doesn't work. some file missing. i'm trying the imps thing now.
16:15:15
kpoeck
Bike: I use the following to get current optimisation settings, si that correct? (cleavir-env:optimize (cleavir-env:optimize-info clasp-cleavir:*clasp-env*))
17:13:55
Bike
kpoeck: i'm actually hoping to move away from cleavir-env in the near future, so it would probably be better to throw a function into ext. does asdf want global settings or in an environment? what format is the result?
17:18:09
kpoeck
(UIOP/LISP-BUILD:GET-OPTIMIZATION-SETTINGS) -> ((SPEED 1) (SPACE 1) (SAFETY 1) (DEBUG 1) (COMPILATION-SPEED 1))
17:19:05
kpoeck
(cleavir-env:optimize (cleavir-env:optimize-info clasp-cleavir:*clasp-env*)) seem to return, what is required
17:20:02
kpoeck
so perhaps define (defun ext:get-current-optimisation-settings () (cleavir-env:optimize (cleavir-env:optimize-info clasp-cleavir:*clasp-env*)) )
17:25:01
Bike
the implementation looks like it tries to go through a bunch of variables rather than call any functions
17:33:00
Bike
i think i'll also go ahead and define a clasp-cltl2 package with a stable environment interface
17:39:40
drmeister
You must run ./waf build_impsprep before running ./waf analyze_clasp or ./waf analyze_test - yes.
17:40:47
drmeister
Here's the poop - ./waf build_impsprep generates the build/mpsprep/compile_commands.json file.
17:41:33
drmeister
Unfortunately waf generates that file at the VERY END of the ./waf build_impsprep
17:42:12
drmeister
So I can't generate it quickly - or I would put it in with analyze_test/analyze_clasp commands.
17:42:46
drmeister
Also, if you do an incremental ./waf build_impsprep then it will only generate the compile commands for the files that it incrementally builds VERY ANNOYING.
17:43:10
drmeister
So - ugh - I've had to live with this: ./waf clean_impsprep build_impsprep analyze_xxxx
17:44:33
drmeister
Also ./waf build_impsprep checks the C++ code to see if it will build cleanly and thus analyze cleanly. That's very useful.
17:46:20
drmeister
So now we need to take the .sif files for every extension and generate a model of all exposed classes within Cando and then generate something like clasp_gc_xxxx.cc that clasp can use for precise GC with snapshot save/load.
17:47:21
drmeister
Once we have this - then we have a clean way to add extensions to clasp by setting them up in the extensions directory.