freenode/#sicl - IRC Chatlog
Search
4:33:56
beach
alandipert: I should have warned you. My remarks often come across as "dry". It's because I am a professor, and I switch modes to "grading", so I make no effort to be polite. I apologize for that.
4:42:25
alandipert
one thing i realized when writing is this is how much my writing skills atrophied since college, and i wouldn't be surprised if part of the reason why is, when i do write, i rarely get detailed feedback
4:44:16
alandipert
would you happen to have any general thoughts about the overall structure or tempo of the article? or the impressions, if any, it left you with?
4:46:13
beach
Hmm. Your writing is not bad at all. It must have been fantastic when you were in college. My skills have improved immensely, mainly because my (admittedly small) family has a PhD in English, and because they were hampered by my not being a native speaker of English.
5:00:31
alandipert
thanks. and you know, considering the command of english you demonstrate, even as a non-native speaker...
5:01:00
alandipert
I can't help but wonder if it's time for me to start communicating with proper grammar and punctuation.
5:16:03
beach
no-defun-allowed: You were warned. verisimilitude just wants to argue, and with no reasonable arguments.
5:19:19
no-defun-allowed
And yes, I should have stopped; but I despise when people say a problem is only "theoretical".
5:26:32
no-defun-allowed
Some time ago, I was exposed to their article "A Rebuttal of an Article Involving the CL-CHARMS Common Lisp Library"; and it didn't appear to refute anything in the referenced tutorial.
6:00:42
karlosz
and was curious to see more details with respect to actually dumping classes so they can get loaded by the target
6:01:37
beach
I have an isomorphic graph in the host, so I should have no problems creating the bits required by the target.
6:02:28
karlosz
i don't think there's a problem, i was just curious how the graph would actually get dumped.
6:04:04
beach
I think a single pass ought to be enough. I would keep a hash table of already dumped objects. Then I would implement a host version of the memory allocator that would use a byte vector.
6:07:09
beach
If I encounter an object that is not in the hash table, I dump it and enter it into the hash table.
6:07:25
beach
If I encounter an object that is already in the hash table, I just use the existing address.
6:08:13
karlosz
but if i dump something like the meta object standard-class which has standard-class as a subobject
6:08:43
karlosz
then the 'standard-class' object is not in the hash table, but dumping it requires standard class to have already been dumped
6:10:50
beach
I start by allocating space for the header object, and I enter that address in the hash table.
6:12:46
karlosz
you separate out the allocation and dumping of the header from the allocation and dumping of the rest of the slots
6:14:05
beach
The important part is that when I encounter an object that has not yet been dumped, I start by allocating space for it in the byte vector, and I enter its address in the hash table.
6:15:23
karlosz
another question: PCL for instance calls COMPILE to generate discriminating functions
6:16:34
karlosz
so then, since the COMPILE is the host's COMPILE, will the bootstrap process need to arrange to compile the discriminating function for the target at the same time?
6:18:30
beach
It produces both HIR code that can be interpreted and thus executed in the host, and it produces native SICL code.
6:20:40
beach
The part where HIR code is generated and interpreted in the host is in place. I am currently working on producing the native code for later dumping.
6:24:51
beach
It has a header that looks like a SICL header, but it is also a host funcallable-standard-object.
6:25:22
beach
The function of that funcallable-standard-object is a host function that calls the HIR interpreter.
6:26:46
karlosz
right, that way the same code implementing CLOS can be used by both the host and the target