freenode/#clasp - IRC Chatlog
Search
22:53:03
Bike
if possible i'd rather not call a function at all. (or call an intrinsic that will get inlined later, i guess.)
22:55:35
drmeister
That gets turned into this for boehm/mps builds: https://github.com/drmeister/clasp/blob/dev/src/main/clasp_gc.cc#L2131
22:56:34
drmeister
I think there is a boehmdc feature - or something like that - if not, I'll add it.
22:57:57
drmeister
What we need are access to the integer ranges for the header value and a hash table that associates type specifiers (all symbols) with the header value or value range.
23:01:22
drmeister
We are about to migrate to my parents place - so I'll be out of contact for about 1-2 hours.
23:02:27
drmeister
I can give you a fast TYPEQ with a couple of hours work and a rerun of the static analyzer.
23:04:57
Bike
compiling down typeq is probably going to be more ocmplicated in the future, too, but without a primitive interface there's not much that can be done
23:07:56
Bike
because type checks will have to be moved around and done in relation to each other, i think
0:31:17
drmeister
There is currently no typeq-instruction - that is because they are being translated to typep calls - correct?
0:41:17
drmeister
I mean, the stamp values are integers that start at 1 and go up by 1 - they are shifted into position in the header value in the upper 60 bits.
0:42:03
drmeister
I can build the table so that I incorporate the flag and tag into the value ranges and then just compare header values to the value ranges in the table.
0:45:18
drmeister
The test for Symbol_O is here: https://github.com/drmeister/clasp/blob/dev/src/main/clasp_gc.cc#L2131
1:41:15
drmeister
I started up the static analyzer and it will generate a block of code that can be converted into SYMBOL -> header-value-range