freenode/#clasp - IRC Chatlog
Search
5:58:28
drmeister
::notify Bike cclasp failed to compile when it runs into a problem with a typecheck in pprint.lsp. The complete backtrace is here: https://gist.github.com/drmeister/91bdedb3229ed403b8d91d6ff15919ac
6:23:04
drmeister
::notify Bike This is happening when building cboehmdc - so I think all type checks should reduce to typep.
7:14:44
drmeister
::notify Bike I think the check isn't allowing for the possibility that there is no typeq information for the type - there is no information for any types with boehmdc, because the static analyzer output isn't used by boehmdc. It needs to use gen-typep-check in this case. I'm going to hack a call to gen-typep-check into gen-primitive-type-check to just get the static analyzer running. You probably have a better way
8:31:20
drmeister
::notify Bike FYI this change to gen-primitive-type-check allowed cclasp-boehmdc to compile ... https://github.com/drmeister/clasp/blob/dev-func/src/lisp/kernel/cleavir/hir-to-mir.lisp#L193
9:12:28
Colleen
Unknown command. Possible matches: 8, time, help, clhs, say, mop, login, hello, tell, roll,
9:23:12
Shinmera
::notify Bike https://irclog.tymoon.eu/freenode/%23clasp?around=1500875908#1500875908
14:12:32
Colleen
Bike: Shinmera said 4 hours, 49 minutes ago: https://irclog.tymoon.eu/freenode/%23clasp?around=1500875908#1500875908
14:14:15
Bike
drmeister: i'm confused. as you can see on L336 of that file, it should only call gen-primitive-type-check when there is a primitive type (i.e., there is a non-null entry in the hash table)
14:15:06
Bike
drmeister: oh, i see. i also call gen-primitive-type-check for stuff like abstract-simple-vector that i assume is in there
15:06:05
drmeister
When I start emacs in OS X from the Dock, certain environment variables are not set. It plays hell with building.
15:59:06
drmeister
I was thinking (1) we already have a virtual machine - the interpreter speaks pidgin Common Lisp.
16:01:00
drmeister
(2) If we ensure that the bodies of translate-simple-instruction and translate-branch-instruction generate only pidgin Common Lisp or calls to stuff that generates pidgin Common Lisp then we can wrap the bodies of those generic functions in a macro that in sbcl writes its body to a file.
16:01:28
drmeister
Then we run that file in the interpreter after loading a few support functions - maybe the stuff in cleavir/ir.lisp
16:02:44
drmeister
We can define pidgin Common Lisp to be whatever we want - up to but probably not including CLOS.
16:04:10
drmeister
Then the same code that we run in sbcl to generate the pidgin Common Lisp will be used when cclasp is running to generate code.
16:07:18
drmeister
Rather than come up with a new intermediate representation. We use pidgin Common Lisp as the intermediate representation.
16:10:22
drmeister
We have cleavir running in sbcl generate the lisp code that calls to translate-simple-instruction and translate-branch-instruction generate. Then we load up as much of bclasp into the interpreter that we need and we then load and evaluate the lisp code that cleavir/sbcl generated.
16:12:13
drmeister
And we can include as much Common Lisp as we want because the interpreter can load Common Lisp code and make the functions and macros available.