libera/#commonlisp - IRC Chatlog
Search
21:05:32
minion
liminality: please look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
21:05:34
minion
liminality: paip: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
21:06:13
jackdaniel
if you want to learn ~contemporary common lisp go after PCL, if you want to be walked over some cool programs go after PAIP
21:07:11
jackdaniel
meh, there is also a book "ANSI Common Lisp" by Paul Graham - it is a bit on the boring side (in a good way!) - a very good learning material with excercises
21:08:20
jackdaniel
there is ANSI Common Lisp (the standard) and there is a book that aims at teaching ANSI Common Lisp
21:09:05
jackdaniel
(mind that while PCL and PAIP are available on the internet to read, you'll need to buy Paul Graham's book)
5:22:16
hayley
minion: memo for pve: For your amusement, Clouseau inspecting objects in a Smalltalk-ish language: <https://social.applied-langua.ge/media/cc8fba53-74a0-4a5a-9a1c-a4f0967de6b4/parser-test-in-clouseau.png>
7:34:17
bitblit1
Oh yeahhhh I remember. Stupid question but does it work with normal common lisp or just inspects CLIM code?
7:39:21
bitblit1
One basic thing I forgot about common lisp; If variables don't have types but objects do, what goes in the heap and what goes in the stack?
7:39:57
White_Flame
there are usually tag bits in the machine word that says what the value's type is
7:41:16
beach
bitblit1: If you can't tell the difference, then the implementation is allowed to (and usually will) optimize.
7:41:28
hayley
A cheeky implementor might choose to put objects on the stack. Or in regions. Or maybe the disk. Or wherever they feel like, in general.
7:42:07
White_Flame
consider a 64-bit system. 64 bits = 8 bytes. So objects are at a multiple of 8 bytes apart in memory organization,m eaning the bottom 3 bits of hte address are always zero
7:42:28
White_Flame
or it could allocate on a doubleword resolution meaning 16 bit stride in memory, thus the bottom 4 bits are always zero
7:42:42
beach
bitblit1: For example, most implementations will encode a fixnum in the pointer itself, rather than allocating memory for it.
7:43:09
White_Flame
because that's where the tags go, whie still being able to point ot everything in address space
7:43:37
hayley
beach: I wrote an ACCEPT method for reading forms (since I don't quite use Common Lisp syntax), added an eval-in-frame command, and now I can pretend I made an IDE.