freenode/#clasp - IRC Chatlog
Search
22:47:33
Bike
parsing sort of working. (specifier-ctype '(or fixnum (function (t &rest t) cons))) => #<DISJUNCTION (OR (INTEGER bla bla) (FUNCTION (T &REST T) CONS))>
22:47:49
Bike
four hundred lines of code, and i still need to do string, and that doesn't count deftype expansion. yeesh.
23:32:26
Bike
i suppose the fact it treats things that can be negative as size_t might cause weird problems
23:33:41
Bike
ltvc_read_bignum uses compact_read_size_t to read the bignum length. compact_read_size_t returns a size_t, which is never going to be negative. might be an issue.
23:35:36
Bike
(specifier-ctype '(or (rational 1 5) (rational 6 10))) => #<DISJUNCTION (OR (INTEGER 1 10) (AND (NOT INTEGER) (RATIONAL 1 5)) (AND (NOT INTEGER) (RATIONAL 6 10)))>, that's kind of cool
23:37:11
Bike
(and (not integer) (rational x y)) is how it displays (ratio x y), since (ratio x y) isn't a real type specifier
23:37:34
karlosz
i forget how sbcl handles OR and AND types, but we probably want to normalize it to cnf or dnf in any case
1:49:55
Bike
using compact_read_size_t to get a negative number still kind of concerns me, but oh well
1:50:34
karlosz
i find the signed magnitude thing kinda bizarre still, but i guess that's what they do
2:03:29
karlosz
i don't know enoguh about C++, but i think in C its okay to go back and forth between unisgned and signed integers
2:04:15
Bike
every so often i learn the C conversion rules, and then i forget them because they're weird and boring
2:06:48
Bike
let's see. "if the target type can represent the value, the value is unchanged. [...] otherwise, if the target type is signed, the behavior is implementation-defined"
2:37:06
drmeister
It's still crashing when I try to increase the number of objects that are treated precisely.
3:49:57
karlosz
drmeister: yes, it was prominent while compiling cryptographic lbiraries like ironclad and compression/uncompression libraries with lots of type declarations