Live data from Hacker News

Dinosaur and Lisp

vito.sdf.org

91–97 of 97 posts

Re: Dinosaur and Lisp

#92
post #90

Earlier quoted context omitted.

They're an optimization in most dialects that support it: it's not like Smalltalk, where you can reload your app state and continue exactly where you left off.

Smalltalk doesn't do that and if it does, it's because the runtime is dumb. For example, a Smalltalk which saves and restores threads in an image, can only do that, because it does not use native threads. Various Lisp systems are using native threads. If a Smalltalk image starts, formerly open files may be opened again. If the files is not there, then nothing happens. Same for network connections. I would be very irr…

I don't know all of smalltalk's semantics for transient connections: However, when a smalltalk image is shut down, a snapshot of all objects in a live system are kept. I would assume that the VM signals a shutdown, and that would tell all the transient entities to close themselves.

Anyways, Lisp images don't work like that: a lisp image is a static preloaded environment. If you redefine some functions, exit lisp, and reopen the interpreter, those redefinitions won't be there.

Re: Dinosaur and Lisp

#93
post #90

Earlier quoted context omitted.

Smalltalk doesn't do that and if it does, it's because the runtime is dumb. For example, a Smalltalk which saves and restores threads in an image, can only do that, because it does not use native threads. Various Lisp systems are using native threads. If a Smalltalk image starts, formerly open files may be opened again. If the files is not there, then nothing happens. Same for network connections. I would be very irr…

I don't know all of smalltalk's semantics for transient connections: However, when a smalltalk image is shut down, a snapshot of all objects in a live system are kept. I would assume that the VM signals a shutdown, and that would tell all the transient entities to close themselves. Anyways, Lisp images don't work like that: a lisp image is a static preloaded environment. If you redefine some functions, exit lisp, and…

Why would you exit? On a Lisp Machine you can make the image and continue working. It also has incremental images, etc.

If I save and load an image, the new definitions are still there.

What you refer to has very little to do with imags, Smalltalk keeps a database of code in files under system control. That's also how Interlisp worked.

On a Symbolics Lisp Machine I would configure the machine, load my software and create an image. After starting that image I would on login load any changes from the code bases. If this would be too long, I would save an incremental image.

The Lisp Machine had many more image related features...

Re: Dinosaur and Lisp

#94
post #93

Earlier quoted context omitted.

I don't know all of smalltalk's semantics for transient connections: However, when a smalltalk image is shut down, a snapshot of all objects in a live system are kept. I would assume that the VM signals a shutdown, and that would tell all the transient entities to close themselves. Anyways, Lisp images don't work like that: a lisp image is a static preloaded environment. If you redefine some functions, exit lisp, and…

Why would you exit? On a Lisp Machine you can make the image and continue working. It also has incremental images, etc. If I save and load an image, the new definitions are still there. What you refer to has very little to do with imags, Smalltalk keeps a database of code in files under system control. That's also how Interlisp worked. On a Symbolics Lisp Machine I would configure the machine, load my software and cr…

Well, on a lispm, yes. However, most of us don't have lispms (as much as we might want one!), and the symbolics VM is a pain to run. In CL, you don't do that sort of thing.

In any case, at least a few Schemes have images, so it's a moot point in that debate. It's still interesting, though.

Re: Dinosaur and Lisp

#95
post #84

Earlier quoted context omitted.

Earlier accessibility of a top Scheme implementation could have helped make it more popular earlier. Just like with Smalltalk and Common Lisp before which also got into trouble because of good implementations being out of reach of most people.

What about SCM, T, Larceny, Bigloo, Gambit, Chicken, Guile, and Racket? All were open source before Chez. T, in particular, while no longer active, was at the time a pioneer of fast and effective scheme compilation.

One could make a number of arguments about at least half of these. Racket/PLT has been free for a long time but ten years ago, a friend of mine simply left it for Common Lisp for the sole reason of speed. Gambit is great - I'd say almost as good as Chez - but there's no proper modules or native multi-threading. The Scheme->C model is also cumbersome; reintroduction of a native compiler was promised but if I'm not mistaken, still hasn't happened (although some other interesting things did - the recent mobile code support is very interesting!). T was a research vehicle but apparently the closest thing to an accessible environment for it was A/UX on Mac. Say what you want about IBM PCs but they won.

Re: Dinosaur and Lisp

#96
post #93

Earlier quoted context omitted.

Why would you exit? On a Lisp Machine you can make the image and continue working. It also has incremental images, etc. If I save and load an image, the new definitions are still there. What you refer to has very little to do with imags, Smalltalk keeps a database of code in files under system control. That's also how Interlisp worked. On a Symbolics Lisp Machine I would configure the machine, load my software and cr…

Well, on a lispm, yes. However, most of us don't have lispms (as much as we might want one!), and the symbolics VM is a pain to run. In CL, you don't do that sort of thing. In any case, at least a few Schemes have images, so it's a moot point in that debate. It's still interesting, though.

> In CL, you don't do that sort of thing

Oh, something like LispWorks has extensive support for using images, too. It has a very extensive application/library delivery mechanism based on images.

LispWorks can also save 'sessions', even automatically as periodically timed events. Even without quitting Lisp. Sessions are basically IDE states (files, listener history, lisp image, windows, ...).

Re: Dinosaur and Lisp

#97

My god, how have I seen that error page a million times and never realized it was actually a video game?

Because you have to press Space on that screen for it to activate.

Also, I was particularly embarrassed this weekend... my cable modem went down, as it has been doing a lot recently (!#$%# Charter...) and I showed my daughter the Chrome game. She told me "oh, I already know about that." She's eleven...
Post reply on HN