libera/#sicl - IRC Chatlog
Search
5:27:09
hayley
My assignment partner can't seem to run the program we're running on, and I have no idea if I misconfigured something in the code or their Java installation is broken or whatever else could possibly happen. So we agreed to attend a help session today to have an instructor take a look, but I forgot it is a public holiday, so that will have to be done tomorrow.
5:31:44
hayley
Seems enough I have enough to be annoyed at today, but at this rate I still couldn't complain about a slightly longer break.
5:32:28
beach
I need to go do some preparations for this chaotic Monday morning. I'll be on and off for a while.
7:27:10
beach
My mission today is to figure out why my SUBTYPEP returns T and T for arguments T and CHARACTER.
7:27:53
beach
Since Bike's code passes the ANSI test suite, it has got to be something about the way it accesses the environment or does type expansion.
7:31:17
beach
Also, I have appointment with my "pneumologist" this afternoon, so I'll be away for a few hours then.
7:50:42
beach
pjb: The nursery GC would have no problem shortening a rack. With the global heap, I think it is possible only if at least two words are freed up.
7:55:51
beach
Similarly, the nursery collector has no space following the rack. Before a nursery collection, we must assume that the first word after the rack is allocated, and after a nursery collection, everything is compacted, so no free space then either.
7:56:49
beach
The global collector might have free space after the rack, and that can sometimes be determined without a GC.
7:59:09
beach
But, let me emphasize this again: I am not interested in optimizations that may have little or no impact on overall performance, but that require more specialized code to maintain. In this case, the frequency of calls to ADJUST-ARRAY and CHANGE-CLASS would determine whether it would be worthwhile to consider such an optimization.
7:59:57
beach
Of course, if SICL is taken over by people with more energy and time than I have, they can do what they please, since this is free software.
8:08:23
beach
The way to alter the structure of a rack in SICL (with CHANGE-CLASS or ADJUST-ARRAY) is done in two steps. First a copy is made of the original rack, if necessary. Then CAS is used to install the rack, provided the old rack is what it was when the operation started.
8:09:45
beach
First a copy is made of the original rack, if necessary. Then, a new rack is created an initialized, if necessary (i.e. if the copy is not made or it won't work). Finally CAS is used.
8:10:30
beach
With optimizations like the one suggested, objects would have to be locked for thread safety.