libera/commonlisp - IRC Chatlog
Search
23:13:30
Psybur
anybody know of a general sql parser that can let me work with ASTs? one that can not completely choke a non standard dialect?
7:23:05
hayley
I only actually have one copy, but I had both my own copy, and had borrowed the university copy for a short period of time.
7:24:17
hayley
Coming up on having borrowed the Garbage Collection Handbook without interruptions for a year. Richard Jones told me if I hold out for a few more months, I could get the new edition.
7:27:20
hayley
Well, I hope it's a year. I have the little slip of paper that fell out, with "PATTON, HAYLEY 19.07.21" written on it, but the online system says I borrowed it on the 14th. Granted, it took a week for the library to find the book.
8:32:58
beach
rendar: The garbage-collection handbook? Sure, if you are interested in automatic memory management. It has a description of all the major techniques and their characteristics. And there is no other book like it.
8:32:59
hayley
AMOP or the GC Handbook? I only bought the former, but the latter would be a good investment too.
8:33:44
beach
rendar: However, it is not very well written, though perhaps the new edition will be better. I suspect not, however.
8:33:51
hayley
Though, yes, as beach says, the latter is only useful if you want to work with garbage collection.
8:34:46
hayley
The description of the Lisp-2 compaction algorithm is going to be better in the new edition, at least.
8:37:06
hayley
Yeah, I often found I needed to look at the papers cited in order to understand what was going on. But having those references is also useful.
8:37:59
beach
hayley: Of course, now that I think about it... I often say that I think that in order for someone to be a good programmer, that someone needs to know about computer architecture and compiler techniques. Maybe I should add "memory management (automatic or manual)" to that list.
8:38:54
hayley
In particular, I can never remember the name "Java server performance: a case study of building efficient, scalable Jvms" which is relevant to my current work. The paper on Immix cites a website by IBM that does not exist anymore, but the GC Handbook cites that article instead.
8:40:04
beach
rendar: But it is a very important book. Alan Kay said it was one of the most important CS books ever written, or something to that effect.
8:41:46
hayley
On the other hand, he said it was hard to read if you weren't familiar with Lisp. Which I can understand, honestly, as I think Dylan would have been the only other language with generic functions, in 1997.
9:06:11
hayley
In a Hacker News comment, Alan Kay also gave the praise "I liked the MOP book because they carried the model more deeply into the actual definitions -- I very much liked their metaphor that you want to supply a "region of design and implementation space" rather than a single point."
9:28:28
pjb
beach: (let ((&allow-other-keys 10) (x 20)) (write &allow-other-keys x)) #| ERROR: Incorrect keyword arguments in (20) . |#
9:34:04
_death
pjb: this error has nothing to do with the &allow-other-keys.. (maybe you confused it with :allow-other-keys)
9:48:51
_death
also happily, beach's idea of renaming seems fine, because &rest etc. cannot be declared special by the user.. though I guess if there are some implementation-specific lambda-list-keywords it may be an issue (but sbcl has a package lock on sb-int:&more, so no issue there)
10:10:06
TMA
I cannot find whether it is specified for &rest etc. to be present or accessible in the COMMON-LISP package.
10:11:55
specbot
Symbols in the COMMON-LISP Package: http://www.lispworks.com/reference/HyperSpec/Body/01_i.htm
10:12:12
specbot
The COMMON-LISP Package: http://www.lispworks.com/reference/HyperSpec/Body/11_aba.htm
10:15:31
TMA
ah, I was a bit baffled by the glossary entry "lambda list keyword n. a symbol whose name begins with ampersand and that is specially recognized in a lambda list."
10:17:31
TMA
that has two readings, namely that (a) the &-beginning-symbol is specially recognized in a lambda list and (b) that the &-beginning-symbol's name is specially recognized in a lambda list.
10:19:22
TMA
the (b) reading would allow (lambda (&rest x) x) and (lambda (#:&rest x) x) be equivalent (in the same spirit as the loop keywords are specified by name only)
10:19:46
_death
it's a conjunction.. it has to (i) begin with an ampersand (ii) be specially recognized in the lambda list