freenode/#sicl - IRC Chatlog
Search
4:54:59
beach
No sane person would (say) write a text in the German language, and decide not to capitalize nouns ("because *I* prefer them in lower case"), nor would anyone start putting spaces before `:' and `;' in English ("because *I* am used to French, and *I* think it looks better that way"), nor would anyone put the adjectives after the nouns in English ("because *I* think it is easier to read").
4:55:30
beach
But pretty much every week, we see a person in #lisp arguing something analogous in programming.
4:57:45
Bike
i spose the difference is with natural language you're talking to a person, whereas in programming you're talking in large part to a computer that doesn't care
4:58:23
beach
Well, that's sort of what I am arguing. You are (or you should) mostly talking to the person maintaining your code.
5:00:10
beach
I just had an idea. When I argue with one of these people, I should use French spacing, and I should put adjectives after nouns. :)
5:01:36
beach
Anyway, time for a break. I have a long day in front of me. ELS paper bidding, some admin work, SICL code generation.
5:33:33
beach
alandipert: In your abstract, I think you should say more about your claims in the article and perhaps less about SPAs.
5:36:27
beach
You can skip the last paragraph of the introduction. I know it is common to have a sort of table of contents there, but it is pretty useless and represent noise more than anything.
5:41:05
beach
2.3.1 You say "atoms" but do you mean some subset of atoms like symbols and strings? I am asking because an array is an "atom" in Common Lisp.
5:44:08
beach
I would use full sentences in footnotes. Otherwise, you assume that the reader reads the footnotes when they referred to in the text. And if you assume that, they may as well not be footnotes.
5:45:02
beach
"this" should be followed by a noun phrase, so s/this is done/this conversion is done/ [for example]
5:46:37
beach
TAGBODY is not only for looping, so it is not clear why the two are mentioned together. And what is the "dynamic case of TAGBODY"?
6:30:32
beach
It is preferable not to use genitive 's for non-proper nouns. So s/the node's name/the name of the node/ s/the node's lexical environment/the lexical environment of the node/ s/the node's parent/the parent of the node/ s/the node's original source data/the original source data of the node/
6:31:14
beach
The preferable form has the additional advantage that the important word comes first: the name, the lexical environment, the parent, etc.
6:32:41
beach
I would search for all occurrences of 's and check whether they are applied to non-proper nouns.
6:34:37
beach
"These" should be followed by a noun phrase, so s/These perform/These operators perform/
6:37:49
beach
Stick a \noindent before a new paragraph after some code, like \noindent JSCL, the existing...
6:41:12
beach
"requires a JavaScript exception be thrown". I would say either "requires a JavaScript exception to be thrown" or "requires that a JavaScript exception be thrown"
6:45:14
beach
Avoid the passive form when it makes the intention less clear. Like "JACL, a new Common Lisp ... was introduced." This sentence may continue either with "by us" or "by ..., so therefore we did not have to all the hard work".
6:47:13
beach
"this" should be followed by a noun phrase. s/two examples of this in/two examples of this functionality in/ [for example]
6:50:24
beach
That's all. You can still upload a modified version, or you can wait until you need to supply the final version.
15:31:06
Bike
beach: Your plan for local exits through unwind-protect or special bindings is to not handle it in ast-to-hir but rather a later pass, right?
15:36:04
beach
The plan is to discover an instruction I1 such that the successor I2 is in a different dynamic environment, and to determine statically whether there is an UNWIND-PROTECT entry "in between" the two dynamic environments.
15:39:40
beach
As I recall, just because I didn't feel like modifying AST-to-HIR, but maybe I changed my mind at some point, and decided the right place is AST-to-HIR after all.
15:41:14
beach
Now that you mention it, I think I decided AST-to-HIR is right, but since I am not using unwind-protect during bootstrapping, I dropped it for the time being.
15:43:10
Bike
you'd have to set up some more information in the context, probably. not hard but probably kind of involved.
15:44:24
Bike
anyway, ill probably take a look at it... doing it in ast-to-hir makes much more sense to me, but i remembered you were talking about doing it later, so i wanted to make sure i wasn't missing something
15:45:56
beach
So every time the dynamic environment is augmented, the stack has to be pushed to, rather than just the dynamic environment in the context being altered.
15:48:29
beach
I suppose when the stack is popped through an UNWIND-PROTECT, one would have to do a full unwind, as in abandoning intermediate exit points, and then call the thunks in the UNWIND-PROTECT entries.
15:49:19
beach
It would probably be infrequent enough that it could be handled the same way an UNWIND-INSTRUCTION is handled.
15:50:44
Bike
So to abandon intermediate exit points in this context, what you'd have to do is call the cleanup thunk with a dynamic environment argument that doesn't have those exit points in it?
15:51:49
beach
That or an environment in which those exit points are explicitly marked as abandoned, the way I do in SICL.
15:52:42
beach
Or you could do what you want, if you use the freedom the Common Lisp HyperSpec gives you.
15:53:52
Bike
I still don't understand how it would be more efficient to abandon those exit points, but that's neither here nor there
15:54:41
Bike
not doing so. the EXIT-EXTENT:MEDIUM proposal that wasn't adopted, i think it's called
15:55:11
Bike
anyway, i was thinking about this last night, and couldn't come up wiht any way to reliably mark an exit as no longer valid without explicitly marking it so on the way out, so that's that
15:56:23
Bike
The issue says some implementations were more efficient when they abandoned those exit points, and I don't understand how that would happen
15:58:19
Bike
I thought maybe it was because with longer extents you can do things like (block nil (unwind-protect ... (return))) to prevent any kind of exit at all, but the issue doesn't describe that as a problem or anything