12
submitted 9 months ago* (last edited 9 months ago) by veer66@lemmy.one to c/lisp@lemmy.ml

How did they implement allocate a new cons cell?

top 3 comments
sorted by: hot top controversial new old
[-] jdr@lemmy.ml 10 points 9 months ago

Free-Storage List. At any given time only a part of the memory reserved for list structures will actually be in use for storing S-expressions. The remaining registers (in our system the number, initially, is approximately 15,000) are arranged in a single list called the free-storage list. A certain register, FREE, in the program contains the location of the first register in this list. When a word is required to form some additional list structure, the first word on the free-storage list is taken and the number in register FREE is changed to become the location of the second word on the free-storage list. No provision need be made for the user to program the return of registers to the free-storage list

http://www-formal.stanford.edu/jmc/recursive/node4.html

[-] splatt9990@lemmy.ml 3 points 9 months ago

Malloc is a C function and wouldn't come around for another 15 years or so. They likely wrote memory allocation code directly in machine code/assembly which could and would just access raw memory directly.

[-] lurch@sh.itjust.works 2 points 9 months ago

Probably assembly/assembler, but I'm not sure.

this post was submitted on 12 Feb 2024
12 points (100.0% liked)

Lisp Community

683 readers
3 users here now

A community for the Lisp family of programming languages.

Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language. Only Fortran is older, by one year.

History

Associations and meetings

Resources - TODO

Related communities (dialects) - TODO

founded 5 years ago
MODERATORS