Re: ArmedBear Common Lisp relicensed!
From: Adam Warner (usenet_at_consulting.net.nz)
Date: 07/31/04
- Next message: Tony Morris: "Re: Your Guru Paul Graham is getting trashed on Slashdot."
- Previous message: Roedy Green: "Re: Your Guru Paul Graham is getting trashed on Slashdot."
- In reply to: Adam Warner: "ArmedBear Common Lisp relicensed!"
- Next in thread: Andras Simon: "Re: ArmedBear Common Lisp relicensed!"
- Reply: Andras Simon: "Re: ArmedBear Common Lisp relicensed!"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sat, 31 Jul 2004 17:54:06 +1200
Addendum: A lot of CMUCL and SBCL code was reused in implementing ABCL,
which helps explain how Peter Graves was able to achieve so much so
relatively quickly. Potentially the most time consuming and platform
specific parts of Common Lisp implementation are the compiler and garbage
collector. You get these for free with a Java virtual machine (and some of
the garbage collection options may even be more sophisticated).
Many Java libraries are implemented in Java and speed is still acceptable.
Java bytecode is generally better viewed as compiled than interpreted. But
Java the language fails to provide helpful abstractions to avoid costly
operations such as method calls, e.g.:
<http://groups.google.com/groups?selm=406db022%240%246549%24cc9e4d1f%40news-text.dial.pipex.com>
> So while the Java Virtual Machine may not provide abstraction
> potential for generating high level and high speed code to the same
> degree that a native code compiling Lisp does, Sun's implementation
> appears to be doing surprisingly well.
[Pete Kirkham] Yes; each time I tried to do division with the same
optimisations I'd done with addition and multiplication, I'd get lost;
from where I'm standing the limiting factor is the lack of any higher
level features in the language that don't involve method calls, rather
than the virtual machine.
With Common Lisp as a Java bytecode generator it's going to be possible to
fix "the lack of any higher level features in the [Java] language". It is
my guess that ABCL will eventually be satisfactory in situations where one
would have originally only considered using a native code compiler.
Regards,
Adam
and.lisp:;;; Adapted from CMUCL.
assert.lisp:;;; Adapted from CMUCL.
assoc.lisp:;;; From CMUCL.
bit-array-ops.lisp:;;; Adapted from CMUCL.
chars.lisp:;;; From CMUCL.
check-type.lisp:;;; CHECK-TYPE (from CMUCL)
collect.lisp:;;; From CMUCL.
copy-seq.lisp:;; From CMUCL.
copy-symbol.lisp:;;; From CMUCL.
count.lisp:;;; From CMUCL.
define-modify-macro.lisp:;;; Adapted from CMUCL.
defpackage.lisp:;;; From CMUCL.
delete-duplicates.lisp:;;; From CMUCL.
delete.lisp:;;; From CMUCL.
destructuring-bind.lisp:;;;; From CMUCL, via GCL.
do-all-symbols.lisp:;;; Adapted from CMUCL.
do.lisp:;;; Adapted from CMUCL.
fill.lisp:;;; Adapted from CMUCL.
find.lisp:;;; From CMUCL.
format.lisp:;;; Adapted from CMUCL.
gentemp.lisp:;;; Adapted from CMUCL.
map1.lisp:;;; Mapping functions (from CMUCL)
map-into.lisp:;;; MAP-INTO (from CMUCL)
mask-field.lisp:;;; From CMUCL.
multiple-value-setq.lisp:;; Adapted from CMUCL.
nsubstitute.lisp:;;; NSUBSTITUTE (from CMUCL)
nsubstitute.lisp:;;; From CMUCL.
numbers.lisp:;;; From CMUCL.
or.lisp:;;; Adapted from CMUCL.
psetf.lisp:;;; From CMUCL.
query.lisp:;;; Adapted from CMUCL.
remove-duplicates.lisp:;;; Adapted from CMUCL.
remove.lisp:;;; From CMUCL.
restart.lisp:;;; INVOKE-RESTART-INTERACTIVELY (from CMUCL)
restart.lisp:;;; WITH-CONDITION-RESTARTS (from CMUCL)
search.lisp:;; From CMUCL.
sets.lisp:;;; From CMUCL.
shiftf.lisp:;;; From CMUCL.
sort.lisp:;;; From CMUCL.
sublis.lisp:;;; From CMUCL.
substitute.lisp:;;; From CMUCL.
subst.lisp:;;; From CMUCL.
with-input-from-string.lisp:;;; Adapted from CMUCL.
with-output-to-string.lisp:;;; From CMUCL.
apropos.lisp:;;; Adapted from SBCL.
assoc.lisp:;;; From SBCL.
boot.lisp:;;; PROVIDE, REQUIRE (from SBCL)
case.lisp:;;; Adapted from SBCL.
clos.lisp:;; Adapted from SBCL.
compile-file.lisp:;;; Adapted from SBCL.
debug.lisp:;;; Adapted from SBCL.
dolist.lisp:;;; Adapted from SBCL.
dribble.lisp:;;; From SBCL.
enough-namestring.lisp:;;; Adapted from SBCL.
ensure-directories-exist.lisp:;;; Adapted from SBCL.
late-setf.lisp:;;; From CMUCL/SBCL.
ldb.lisp:;; From SBCL.
ldiff.lisp:;;; LDIFF (from SBCL)
Lisp.java: // Adapted from SBCL.
loop.lisp:;;; Adapted from SBCL.
macros.lisp:;; Adapted from SBCL.
open.lisp:;;; Adapted from SBCL.
parse-lambda-list.lisp:;;; Adapted from SBCL.
print.lisp:;;; Adapted from SBCL.
print-unreadable-object.lisp:;;; Adapted from SBCL.
restart.lisp:;;; Adapted from SBCL.
restart.lisp:;;; RESTART-CASE (adapted from SBCL)
sets.lisp:;;; Adapted from SBCL.
signal.lisp:;;; Adapted from SBCL.
step.lisp:;;; From SBCL.
time.lisp:;;; Adapted from SBCL.
tree-equal.lisp:;;; From SBCL.
upgraded-complex-part-type.lisp:;;; Adapted from SBCL.
with-accessors.lisp:;;; From SBCL.
with-slots.lisp:;;; From SBCL.
with-standard-io-syntax.lisp:;;; Adapted from SBCL.
- Next message: Tony Morris: "Re: Your Guru Paul Graham is getting trashed on Slashdot."
- Previous message: Roedy Green: "Re: Your Guru Paul Graham is getting trashed on Slashdot."
- In reply to: Adam Warner: "ArmedBear Common Lisp relicensed!"
- Next in thread: Andras Simon: "Re: ArmedBear Common Lisp relicensed!"
- Reply: Andras Simon: "Re: ArmedBear Common Lisp relicensed!"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|