[Openmcl-devel] First draft!

Hamilton Link hamlink at comcast.net
Mon Jul 5 12:50:33 PDT 2004

No visible broken links in the first six sections, so here are some 
content nitpicks:

On the frontmatter, under #2:
   Is the disk that crashed ever going to be recovered, or is that now a 
bit-decayed excuse?

On the frontmatter, under #4:
   0.13.7 now exists. Was it for G5 compatibility fixes?
   0.14.1+ are Beta releases

In 1.1.2:
   Mac OS X 10.3.4 is supported, what's the oldest version currently 
supported by 0.14.2 bleeding edge?
   Darwin kernel is now at 7.4.0

In 1.2.1:
   A binary release contains way more than that. Surprisingly enough it 
doesn't contain autoloaded loop or eval, or did GB make these no longer 
autoloaded? Plus the binary release includes the openmcl shell script, 
so maybe better than saying "install" it the docs should say to 
"configure" it.

In 1.3.1:
   The openmcl script will not redefine he CCL_DEFAULT_DIRECTORY 
variable if it is already defined, so adjusting your path and defining 
that variable in your .tcshrc or .bashrc shell init files is another 
way of configuring openmcl.

In 1.4.2:
   The "home:" logical pathname is discussed with no introduction 
explaining how it gets defined.

In 1.7.1:
   I submit the antiquated CVS paths aren't all that useful. The 
linked-to page with the correct information should just be inlined 

In 2.1:
   I would change the third bullet...
     "there is no simple and efficient way to 'inhibit the scheduler'  
or otherwise gain exclusive access to the entire CPU. (There are a 
variety of simple and efficient ways to synchronize access to  
particular data structures.)"
   Into two bullets...
     "There is no simple blah..."
     "There are a variety of blah..."

In 2.2's second bullet:
   I think the "There are a number of primitives" should be "There were 
a number of primitives".

In 2.5.2 and 2.5.3, for something really nitpicky:
   The first lines of the indented code for the examples should be 
indented along with the rest of it.

In 4.2:
   Trying the examples (under 0.14.2-040320, under OS X 10.3.4), I get...
Welcome to OpenMCL Version (Beta: Darwin) 0.14.2-040320!
? (run-program "cat" () :input (make-string-input-stream "hello") 
:output t)
hello#<EXTERNAL-PROCESS (cat)[2606] (EXITED : 0) #x638E9F6>
? (with-output-to-string (stream)
(run-program "uname" '("-r") :output stream))
? (run-program "ls" '("*.lisp") :output t)
ls: *.lisp: No such file or directory
#<EXTERNAL-PROCESS (ls *.lisp)[2610] (EXITED : 0) #x638B70E>
? (run-program "sh" '("-c" "ls *.lisp") :output t)
ls: *.lisp: No such file or directory
#<EXTERNAL-PROCESS (sh -c ls *.lisp)[2611] (EXITED : 0) #x638B536>
   ...which seems like the last case isn't what the description said it 
would do.

In 6.3:
   I would add a "bottom line" statement to the effect that if you are 
loading code and defining classes in the standard way (i.e. via the 
compiler, in a single thread) then you're probably safe, but if you are 
diddling with the class hierarchy while you're running multiple threads 
manipulating related objects, you (a) should really know what you're 
doing and (b) should seriously consider what your application's 
critical data is and maintain locks over critical sections.

More information about the Openmcl-devel mailing list