libera/#sicl - IRC Chatlog
Search
14:19:31
beach
I think I will apply our general "library design principles" to the package system. In the case of the package system, that means defining generic functions FIND-PACKAGE, (SETF FIND-PACKAGE), MAKE-SYMBOL, HOME-PACKAGE, (SETF HOME-PACKAGE) that client code must define methods on.
14:20:39
beach
Thinking about this, I realize that these principles also make it easier to test the library in an extrinsic environment.
14:21:02
heisig
Sounds good. I know a few people that like to experiment with Common Lisp's package system, and such a library could help them a lot.
14:22:18
Bike
i remember him saying he didn't really understand the package system until he wrote at least part of an implementation. i wonder if this is on github
14:26:28
beach
I am almost done with the SICL code, so I think I'll finish it and then see whether we can merge the two libraries.
14:33:26
beach
And I have an ideal name for the external library that not even heisig can veto: "parcl"
2:04:11
hayley
A few questions about code organisation of sorts: Which package should register locations be defined in? What package should helper functions for creating instructions (such as LOAD-FROM-STACK-INSTRUCTION) be in? Is there a nicer way to write out address offsets for loading and storing slots of objects?
2:05:26
hayley
I am thinking the first two should be moved to SICL-IR or a x86-64 specific package. SBCL has constants defined somewhere for object tags and slot offsets for the third.
2:11:17
hayley
(With respects to the first, they were first in MIR-to-LIR but now that package depends on SICL-REGISTER-ALLOCATION, creating a circular dependency. And it doesn't sound like it should be in any conversion pass anyway. Hence why it would be a better fit for another IR definitions package.)