Alex Wood
Alex Wood
Comments
Sup. This is long, sorry. First I'd like to mention my appreciation that your ideas here are more uh... how do I put this... usually when I've seen ideas for...
Refactors debug info in clasp-cleavir (bytecode is basically unaffected). As part of this, refactors how inlining works. Instead of doing the actual procedure integration ourselves, we let LLVM handle it....
For example, ```lisp (let (x) (macrolet ((e (&environment e) (clasp-cltl2:variable-information 'x e))) (e))) ``` compiled as bytecode results in an error: The slot CLEAVIR-ENVIRONMENT::%TYPE in the object # is unbound....
For example, `(typep extended-sequence 'sequence) => NIL` and `(subtypep 'my-sequence-type 'sequence) => NIL T`. This is because various parts of the type system define `sequence` to be `(or list vector)`...
Currently this fixes typep and not subtypep. and it breaks `(subtypep '(cons foo) 'sequence)`. I think Baker's subtypep is kind of totally incompatible with extended sequences in any meaningful way,...
The following needs to be fixed/done to make BTB compilation fully transparent, in the sense of a bytecoded `f` and its compiled `(compile nil f)` having the same semantics: -...
Our `trace` macro works simply by redefining the traced functions. Besides limiting things to global named functions, there is an additional problem: The introspection interface, e.g. `function-source-pos`, does not know...
Some minor performance improvements to how the VM handles multiple values. Mostly it lets the compiler macro expanding `apply` into `multiple-value-call` be shared between bytecode and cclasp, which I think...
Cleanup
Mostly enables a lot more warnings in Clang. Draft until I see any warnings on Mac and/or Cando are fixed.
This mostly doesn't matter since it doesn't signal warnings - though that's a problem in itself. However, it does not bind the function refs and defs tables. This means that...