I use C++ about 10 years and during last 5 of those years I track activity in functional programming and Lisp. I think 5 years is enough for deciding to switch to Lisp :-)
26 Oct 2003: LLVM version 1.0 is released!
16 Aug 2003: I have successfully compiled tinyscheme with LLVM-based C frontend compilerRemark: prerelease of LLVM package was used.
I do believe that LLVM will be a cool basis for next generation Lisp implementations.
- free or not expensive
- compliant to ANSI standard of CL
- portable Linux/win32
- full support for GUI apps development (no less then in Kylix or Delphi)
- run-time compilation to native
- I/O no more then 20% slower in comparison to, say, gcc
- C++ lose because C++ is just not able to compile a function on-fly
- C++ lose because C++ is just not able to compile a closure of the function on-fly
- C++ lose with its (*this) and CL could get rid of this with on-fly compilation of method with given object.
Big Wish 1. Obtain a copy of good CL implementation
- I'd like to have a CL implementation with following features:
I will buy a copy of Allegro CL for personal use when they make it no more as 300 USD for Linux+win32.
Big Wish 2. CLVM (or how to organize CL implementation underworld a bit)
Lisp implementor spread their efforts over a lot of platforms developing a good code generation and platform-dependent optimizations (saying "good", in particular, means run-time compilation to native code).
Any transfer to any new platform is painful and should be done for every implementation with different success. Some CL-implementors try to resolve this issue in different ways. But those solutions are incomplete in a way.
Please look at my proposal about CLVM for getting an idea how (much more) complete solution could look like.
IMHO, one of the best engines for CLVM I believe could be a Graph Rewriting Systems (GRS)
See also, "Functional Programming Comes of Age"
Big Wish 3. Collection of Code Snippets on Effective Programming in CL
I've added initial entry to Anthology. For example, I'd be happy to add some simple examples where
Middle Wish 1.
It would be good if I/O in CL could be implemented a bit quicker.
Indeed, following "smart" feature
(format s "~F" fl)is about 10 times slower then the following non-smart one:
fprintf(s, "%f", fl);as a result -- there is no way to get quick enough ASCII I/O within CL (at least for floats).
- last versions of CMUCL and "gcc -O2" available on July 2003 were used for comparison. Comparable slowdown I got with Allegro CL.
- if "%f" and "~F" change to dummy "12.13", then CMUCL is only 3 times slower then C.
- email: khamenya AT mail DOT ru
- For Russian spoken audience I've created a web-forum with an entry for Lispers; all are welcome!