public
Fork of rvirding/lfe
Description: Lisp Flavoured Erlang (LFE)
Homepage:
Clone URL: git://github.com/wagerlabs/lfe.git
rvirding (author)
Sun Oct 18 17:10:43 -0700 2009
commit  dc6b0b74b21a0c0bf3f5ed246b33e2fca3be0975
tree    34345baaeab6e4be0bfb5823b5754887f3b824b2
parent  02bb0888be1b5f5a0ae3fcd4db2b244fb4379878 parent  2c2bac32e75027192b9c4d043b27fa259ca7cbbd
lfe /
name age message
file COPYRIGHT Mon Aug 25 12:39:39 -0700 2008 Added general COPYRIGHT file and fixed ebin. [rvirding]
file Makefile Fri Aug 22 18:39:19 -0700 2008 Initial release. [rvirding]
file README Loading commit data...
directory doc/
directory ebin/
directory emacs/
directory examples/
directory src/
directory test/ Wed Sep 16 16:12:49 -0700 2009 Lambda args can now have don't care variables, ... [rvirding]
README
LFE, Lisp Flavoured Erlang, is a lisp syntax front-end to the Erlang
compiler. Code produced with it is compatible with "normal" Erlang
code. An LFE evaluator and shell is also included.

NOTE NOTE NOTE
--------------

A quick fix has been added to compensate for some incompatibilites in
Core erlang between the old R12B and the new R13B. The fixes are found
in the file lfe_codegen.erl. For one fix code must be chosen depending
on whether the systems runs on R12B or R13B, this is the (tiny)
function c_fname/3 near the end of the file. Choose the right version
of the function. The .beam file in ebin is for R13B.

I will try to make a better fix soon. Sorry about that.

v0.5
----

Added macro list*.

Added a new shell command to set variables in the shell.

Cleaned up compiler options and made them more like the vanilla
compiler.

Added unicode types to binaries: utf-8, utf-16 and utf-32.

Shell and compiler now print error data in LFE instead of vanilla.
Shell error reporting still pretty basic, not as "beautiful" as
vanilla.

Cleaned up i/o functions and added formated output function. Still use
vanilla command characters.

All i/o goes through then module lfe_io. The functions which return
the corresponding printable string end in 1. So lfe_io:format prints
formatted output while lfe_io:format1 returns the string.

Improved pretty-printing.

Many internal improvements.

v0.4
----
This will be the last development version for Erlang R12B-5 and older,
all future development will for R13B. If there is enough interest I
may start a separate branch for R12B.

Parameterized modules.

Added (export all) attribute to module definition.

New records which allow giving default values as in vanilla
Erlang. Records are still compatible with vanilla Erlang but now more
pratical to use. NOTE this change is not backwards compatible as
syntax for (make- ...) and (match- ...) have changed. Also added
general multiple (set- ...) macro.

(eval-when-compile ...) added as a top-level form which allows
functions to be defined when compiling the forms. These are useful for
more complex macros.

Better and more documention. The documentation is still normal text
files as Edoc and I are not in agreement on how things should work.

v0.3
----
This is the first version with the modified internal core forms and
macro intefaces for the new CL inspired style and the older Scheme
inspired style.

Two new modules have been added:

lfe_boot allows you start Erlang with the LFE shell running and still
have ^G enabled and user_drv running. Use it as follows:

erl -noshell -noinput -s lfe_boot start

NOTE order of commands important, must be -noshell -noinput! Add -pa
to find modules if necessary.

lfe_gen is a trial interface for using LFE for dynamic code
generation. LFE is much easier to generate as an Erkang list than
Erlang forms. This module helps defining and compiling a module. Note,
that while it works, this module is very experimental and may change.