9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] lisp
@ 2008-07-07 18:15 Bakul Shah
  2008-07-07 18:45 ` erik quanstrom
  0 siblings, 1 reply; 15+ messages in thread
From: Bakul Shah @ 2008-07-07 18:15 UTC (permalink / raw)
  To: 9fans

[Questions in the third para below.]
CMUCL "initializes" its state essentialy by loading a
previously dumped core image file.  This is slow the first
time around but once the ~25MB core image is cached,
execution is really fast and you have access to a lot of
goodies.  So a script like

#!/usr/local/bin/cmucl -script
(format t "Hello, World!~%")

can execute in a few milliseconds.  On systems with mmap(2)
or equivalent, the core image is simply copy-on-write mmaped.
This is a win since only the required pages will be loaded
(and not all of 25MB) and COW allows local changes.

>From what I understand, to do something equivalent on plan9
would require creating a segment and copying the core file to
it.  Is this correct?  Presumably the reads are cached?  Even
so, there will the cost of copying to the segment.  Or can
one create multiple text and data segments in some way so
that stuff will be paged in as necessary?  Also, if a shared
segment is created won't the forked processes be able to
modify this segment?  Ideally one would like a private copy
for each child.  Is segattach + read the best (only?) way to
do this?

sbcl too uses a core file like cmucl.  They both compile code
so are generally faster than clisp, which is the third
alternative.  Note: my interest is purely hypothetical at the
moment.

Thanks!



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-07-08 21:42 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-07 18:15 [9fans] lisp Bakul Shah
2008-07-07 18:45 ` erik quanstrom
2008-07-07 19:20   ` David Leimbach
2008-07-07 19:44   ` Bakul Shah
2008-07-07 19:55     ` Charles Forsyth
2008-07-07 20:15       ` Bakul Shah
2008-07-07 20:21         ` David Leimbach
2008-07-07 20:47           ` Bakul Shah
2008-07-07 20:51             ` David Leimbach
2008-07-08 14:08         ` Dave Eckhardt
2008-07-08 15:07           ` David Leimbach
2008-07-08 19:05             ` Bakul Shah
2008-07-08 21:12               ` C H Forsyth
2008-07-08 21:42                 ` Bakul Shah
2008-07-07 20:43   ` geoff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).