[Openmcl-devel] Semi-newbie questions

Stonewall Ballard sb.list at sb.org
Thu Apr 8 20:43:13 PDT 2004

I'm trying to understand how OpenMCL works. I'm optimistic that this 
can be made into something really usable, and my being able to access 
the whole thing and rebuild it is ideal.

I have a long background in implementing and using dynamic languages, 
particuarly Smalltalk, but I use C++ nowadays for my main work and have 
not done a lot of CL programming, so, if you'll bear with me, I have 
some basic questions.

* In l0, I see things like
(defun functionp (arg)
     (functionp arg))

Is this defining a compiler intrinsic for use by interpreted code?

* What exactly does it mean for a symbol to have a "%" prefix?

* What does it mean to bracket a variable like "%foo%"?

* In l0-init.lisp, it defines *features*, which is used by #+ and #- 
for conditional eval, but how is it possible to use #+ within the 
initial value of *features*? I'm going to guess that it's using the 
values from the runtime environment to define a symbol in the 
compile-time environment.

* Is "require" part of the defsystem stuff, or is it independent?

* How does the "require" function know where to look for things that 
can be loaded?

* Is the OpenMCL compiler capable of working with unboxed 32-bit 
fixnums, with appropriate declarations and scope limitations? I'd love 
to use CL for my image hacking, but so much of it requires 
highly-efficient processing of 2D arrays of 32-bit or 64-bit integers 
(possibly interpreted as ARGB pixels with 8 or 16-bit channels). I 
imagine that I can use LAP, but I'd rather not.

* Is there any advantage to writing

(let* ((foo 4))

Rather than

(let ((foo 4))

I've seen some use of let* with only one var, but I thought the only 
difference between let and let* was whether or not the initializers 
were eval'd before or after the preceding var bindings were made (aka 
sequential vs. parallel). Seeing this made me wonder if there was 
something else happening.

Thanks for any help in clarifying these things for me.

  - Stoney

Stonewall Ballard                    Stonetics, Inc.
sb at stonetics.com           http://www.stonetics.com/

More information about the Openmcl-devel mailing list