[Openmcl-devel] Semi-newbie questions
sb.list at sb.org
Thu Apr 8 23:43:13 EDT 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)
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
* 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))
(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.
Stonewall Ballard Stonetics, Inc.
sb at stonetics.com http://www.stonetics.com/
More information about the Openmcl-devel