freenode/#clasp - IRC Chatlog
Search
13:49:20
beach
All the tests pass for lambda lists represented as CSTs. There are still a few cases that I am not handling, and which are not tested for, but it mainly work so far. Next, I must document all I have done. Following that, I'll attack other code utilities such as parsing a macro body into a macro-function expression.
14:27:06
Bike
i also just wrote a method that specializes on three arguments, which i don't think i've done before
14:28:07
Bike
...though i probably only need two. having a new primary method on s-v-u-c is ok if it specializes on the slot definition, right?
14:28:34
beach
The argument precedence order matters only when there are at least two different methods that are both applicable for some arguments, but their relative specificity is reversed when the precedence order changes.
14:29:12
beach
Yes, for the argument precedence order to matter, two arguments must be specialized upon.
14:36:21
Bike
drmeister: by the way, shared-lock and all take one argument, the mutex, yes? it's not obvious from C++
14:36:51
drmeister
Bike: Yes - anything that is exposed with CL_DEFMETHOD takes as its first argument the object.
14:47:48
drmeister
Yes, but computational design is an integral part of this - so I need to offload some of that.
14:50:30
Bike
and i could probably stand to figure out the llvm end of things. i can probably use arrays for that but i'm still not sure what to do with cleavir to support it
14:53:07
Bike
i realized that i couldn't just make all constants immediate, since not everything can be written, which is why i did all this junk with make load form to begin with
14:59:17
Bike
ugh, the indentation is all messed up... maybe i need to configure that thing in emacs again
15:03:01
Bike
the other thing to add would be deferred warnings and with-compilation-unit, but just using sbcl macros i can't.
15:06:54
Bike
I don't know. It's a nice example compile-file I think, but the output format isn't exactly efficient.
15:08:11
beach
It would be interesting to know the performance difference between code generated by this one and code generated by the native SBCL compiler.
15:09:06
Bike
also i just tried it, and cl:compile-file works but the fasl won't load for some reason i think involving eval-when side effects not happening.
15:10:50
Bike
anyway for future plans, I think I'd like to have a compile-file in sicl that's more generic. Maybe compile-file-form can be a generic. I think the only problem would be the deferred warning thing.
15:13:44
Bike
I think SICL could provide the load time value stuff, the details of calling compilie-file, and so on, without actually specifying the fasl file format.
15:14:12
beach
You know you an force package prefixes by setting *package* to the keyword package, right?
15:17:09
Bike
sort of my deal is that load time value handling is actually really complicated. like, clasp has essentially a separate compiler for it. actually like three including old stuff. sbcl does as well. it would be good for sicl to provide.
15:17:35
Bike
it's pretty obscure in the standard, too, so there's lots of subtlety nobody minds until it stops working
15:18:40
Bike
and you do need something - i was basically going for the minimum that would work here, and it still ended up pretty conceptually complicated
15:25:07
Bike
Oh, yeah, also, multiple-value-prog1 has an AST but no method to turn it into HIR. i wrote one, but um, were you going for something there, like with unwind-protect?
15:51:16
beach
Oh, while we are on the subject of SICL, vtomole is always looking for things to do in SICL (minus Cleavir), so if you can think of anything that would be suitable, don't hesitate to ask him.
15:52:51
Bike
actually, what am i saying, i guess he could do the type system, if i go ahead with that design
15:53:51
beach
I think he feels a bit intimidated by too complicated stuff, but I have not taken the time to verify his level of competence.
15:54:50
beach
I just think it would be a shame to waste such an offer, if it turns out he can help out with some useful stuff.
15:58:35
Bike
basically something to parse specifiers into some non-environment-dependent thing that's easy to work with. plus unparse them and do fundamental operations like conjunction/disjunction/negate.
15:59:09
Bike
the thing that might be hairy is that i can think of three different representations i want in cleavir - the original, one that can be checked, and a reduction to a lattice (basically type descriptors)
16:04:10
Bike
the overall design is that cleavir has its own accessors. on sicl those would just call these sicl ones, but they could be defined differently if an implementation wants to. and they could define the lattice reduction differently if they care about different types in that respect.
16:08:06
beach
Time for me to go fix dinner. I'll be back tomorrow morning (UTC+2). Have a nice afternoon.