freenode/#sicl - IRC Chatlog
Search
3:51:16
beach
alandipert: I am sorry about the other day. I am notoriously bad when it comes to understanding descriptions like the one about classpaths. I find I need to understand every term precisely in order to get the whole picture. But often, when someone tries to explain a term, new terms are introduced, and I get lost real quick.
3:53:32
beach
I don't know why. Perhaps I am just not very smart, and I make up for it by being thorough. Or perhaps it is due to my training as an engineer.
3:55:29
beach
Frequently, when I read a scientific article that I don't understand, I can re-read it, word by word, and I can determine the precise word that made me stop understanding from then on.
4:06:05
alandipert
beach i'm not sure what you're apologizing for since i wasn't offended by anything you said, but i appreciate your candor
4:06:51
alandipert
if anything i should probably be the one apologizing for trying to explain something i'd mostly forgotten about, in terms of things i'm only starting to learn about %-)
4:09:42
no-defun-allowed
"And getting rid of windows also won't get rid of line endings because many standards define CRLF" I can't tell why RFC2616 (HTTP) used CRLF.
4:38:41
beach
alandipert: I am just concerned that when I express difficulty understanding something, it comes across as a lack of interest, or as being overly picky.
4:45:48
alandipert
beach oh, i didn't perceive anything like that in what you said. but i think the concern you have for how you are received is admirable, and i appreciate you checking in about it. thank you.
12:25:56
beach
OK, let's see what I have left to make SICL work. For ANSI compliance there is a lot left. Bignum arithmetic, floating-point arithmetic, structs, conditions and signaling, but most of that can wait until I have an executable up and running.
12:26:03
beach
So to get an executable up and running, there is probably some code left. I am not sure I handle EQL specializers correctly for instance. But that's just some normal code to write.
12:26:16
beach
So in terms of bootstrapping, I need to make sure the method functions are instances of the right class. I think I know how to do that. Classes are loaded last in each phase. If I just copy the COMPILE function from the next environment to the present one, that should take care of that problem automatically.
12:26:23
beach
I also need to make sure that SET-FUNCALLABLE-INSTANCE-FUNCTION not only sets the host funcallable instance function but also the SICL one. Finally, I must "tie the knot", which I now think I know how to do since I started a paper on it.
12:29:38
heisig
The environment E6 would be the one that is isomorphic to the final executable, right?
12:35:25
beach
In the worst case, I'll use some simplistic version of the missing ones to start with.
12:40:04
beach
Yeah, that was the main important decision. Also the one that created all the bootstrapping complications.
12:43:15
heisig
Speaking of papers, I am currently browsing the ACM digital library to learn more about memory models.
12:45:41
Bike
so uh, i don't really understand here - is there an alternate position that actually data races are good?
12:48:20
Bike
i guess it depends on what is meant by data race. i can see situations in which non sequentially consistent programs are okay
12:52:36
heisig
Boehm says you should always write sequentially consistent programs. Otherwise you deserve going mad.
13:14:02
Colleen
drmeister: kpoeck said 3 hours, 47 minutes ago: perhaps https://gist.github.com/kpoeck/fb033e3688599820924cd69ad5e64bfd
13:14:02
Colleen
drmeister: kpoeck said 3 hours, 46 minutes ago: This is for standard-objects not for structures in the context of #= right? Do you have an example?
13:14:02
Colleen
drmeister: paulapatience[m] said 3 hours, 19 minutes ago: I managed to compile the dev branch of clasp with llvm-9 without any problems, but 'make test' in demo-clasp-cxx-interoperation still runs into the same segmentation violation I had before: http://ix.io/2gsS
13:44:44
beach
OK, so starting to think about "tying the knot", especially the aspect where the effective method functions and the discriminating function of a generic function must be of the same "tribe" (as splittist suggested) as the generic function itself.
13:44:53
beach
A "pure" accessor generic function (like the ones in E6) is meant to take a "very pure" object as an argument, like the class metaobjects in E6 or the generic functions in E7.
13:45:03
beach
But since the structures of a pure and a very pure object are identical, a pure accessor generic function can also take a pure object as an argument, provided that the class of that pure object is in the call history.
13:45:16
beach
So, for instance, if I apply GENERIC-FUNCTION-NAME to itself when the call history is empty, I get an error. But if I start by applying it to GENERIC-FUNCTION-NAME in E7 and then to itself, it works.
13:45:31
beach
But if I do it that way, the effective method function(s) and the discriminating function of GENERIC-FUNCTION-NAME in E6 will all be impure, because they were computed by COMPILE in E5. Another way of filling the call history is of course to use satiation, but SATIATE-GENERIC-FUNCTION must be the one in E5 for it to be applicable to a pure generic function in E6, simply because it calls impure accessor generic functions (in E5) to
13:45:40
beach
So again, the effective method functions and the discriminating function will be impure.
13:45:52
beach
But if I start by satiating all pure accessor generic functions (in E6), including the accessor generic functions, then those accessor functions can take pure generic functions as arguments.
13:45:55
beach
Therefore, I can call SATIATE-GENERIC-FUNCTION in E6 on the pure generic functions in E6. This step will result in the pure generic functions having pure effective method functions and a pure discriminating function, simply because COMPILE in E6 was used this time.
13:47:48
beach
But first, I must figure out a good way to check whether a pure generic function has a impure effective method functions or an impure discriminating function.