2013-02-12  Robert Virding  <rv@renat.local>

    * <All files>: Changed Copyright notice and now use Apache License
    V2.0.

2011-08-19  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (pass_expand_expr): Only try to expand lists.

2011-07-09  Robert Virding  <rv@renat.local>

    * lfe_trans.erl (from_bitseg): Fix handling of binaries.

2011-07-02  Robert Virding  <rv@renat.local>

    * lfe_eval.erl (match_binary): Fix handling of binary and pattern
    vars.

    * lfe_lint.erl (pat_binary): Fix handling of binary and pattern
    vars.

2011-06-29  Robert Virding  <rv@renat.local>

    * lfe_lint.erl, lfe_codegen.erl, lfe_eval.erl, lfe_trans.erl: Now
    use lfe_bits to parse binaries.

2011-06-26  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (exp_predef): Add match-spec and qlc macros.

2011-06-15  Robert Virding  <rv@renat.local>

    * lfe_shell.erl (macroexpand, macroexpand-1, macroexpand-all): No
    longer shell functions.

    * lfe_lib.erl (del_vbinding): New function.

2011-06-14  Robert Virding  <rv@renat.local>

    * lfe_io_pretty.erl (indent_type): Add funcall.

2011-06-08  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (exp_predef): Add match-spec macro.

2011-06-05  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (exp_predef): Add simple include-lib macro.

2011-05-30  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (exp_defrecord): Add ets/mnesia match pattern
    macro emp-XXX.

    * lfe_eval.erl, lfe_shell.erl, lfe_macro.erl: Restructure
    lfe_macro.erl and redefine interface.

2011-04-24  Robert Virding  <rv@renat.local>

    * lfe_codegen.erl (comp_gtest): Removed unnecessary special cases,
    optimizer fixes this for us.

2011-04-21  Robert Virding  <rv@renat.local>

    * lfe_lint.erl: Remove unused erroneous lfe_lib imports.

2011-04-19  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (exp_predef): Arithmetic and comparison functions
    take multiple arguments.

2011-04-12  Robert Virding  <rv@renat.local>

    * lfe_comp.erl (erl_comp_opts, do_ok_return): Handle
    warnings_as_errors ourselves in same way as vanilla compiler.

2011-04-08  Robert Virding  <rv@renat.local>

    * lfe_comp.erl (when_opt): Change argument order.

2011-03-16  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (expand_append): Expand ++ in such a way as to
    allow use in patterns.
    (expand_defmacro): Allow (defmacro name arg ...).

2010-12-31  Robert Virding  <rv@renat.local>

    * lfe_io_format.erl (control, newline): Handle ~n correctly.

    * lfe_io_pretty.erl (print1): Prettyprint one element lists.

2010-11-25  Robert Virding  <rv@renat>

    * lfe_lint.erl (pat_bitsegs): Use check_foldl instead.
    (gexpr_bitsegs): Use check_foreach instead.

2010-11-04  Robert Virding  <rv@renat.local>

    * lfe_macro.erl (exp_predef): Extend ? macro to handle optional
    timeout and default value.

2010-11-01  Robert Virding  <rv@renat>

    * lfe_scan.xrl: Check creating atoms/symbols and code cleanup.

2010-10-27  Robert Virding  <rv@renat.local>

    * lfe_shell.erl (prompt): Prompt adds node name when alive.

2010-09-06  Robert Virding  <rv@stanislaw.local>

    * lfe_macro.erl (def_record, def_rec_fields): Record macros follow
    new pattern code.
    (expand_defmacro): Add explicit list constructor for args.
    (c_l_tq): Add explicit cons constructor.

    * lfe_codegen.erl (comp_pat, pat_list): Add code to generate
    pattern code for explicit list constructors.

    * lfe_eval.erl (match, match_list): Add code to match explicit
    list constructors.

    * lfe_lint.erl (check_pat, pat_list, check_alias): Add code to
    test for explicit list constructors.

2010-08-25  Robert Virding  <rv@stanislaw.local>

    * lfe_macro.erl (c_tq, c_l_tq, c_b_tq): Add guards to generators
    in comprehensions.

    * lfe_lint.erl (format_error, check_gbody, check_gexpr)
    (gexpr_bitsegs): Better error checking in guards.

2010-07-24  Robert Virding  <rv@host-90-237-128-188.mobileonline.telia.com>

    * lfe_shell.erl (macroexpand, macroexpand_1): Return evaluated
    argument if no expansion.

2010-07-12  Robert Virding  <rv@host-90-233-145-108.mobileonline.telia.com>

    * lfe_scan.xrl: Have separate cases for integer, float and symbol
    atoms, catch errors better.

2010-06-07  Robert Virding  <rv@stanislaw.local>

    * lfe_lint.erl (expr_bitseg, gexpr_bitseg, pat_bitseg): Allow
    strings (integer lists).

    * lfe_codegen.erl (parse_bitsegs): Allow strings (integer lists).

    * lfe_eval.erl (parse_bitsegs): Allow strings (integer lists).

    * lfe_eval.lfe (eval-gbinary): Evaluate binaries in guards.

    * lfe_eval.erl (eval_gbinary): Evaluate binaries in guards.

2010-06-03  Robert Virding  <rv@stanislaw.local>

    * All files: Update copyright to 2010.

2010-04-30  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe (apply-lambda): New name and more logical argument
    order for eval-lambda/4.
    (apply-match-clauses): New name and more logical argument
    order for eval-match-clauses/3.

2010-02-24  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.erl (apply_lambda): New name and more logical argument
    order for eval_lambda/4.
    (apply_match_clauses): New name and more logical argument
    order for eval_match_clauses/3.

    * lfe_macro.erl (expand_clause, expand_ml_clause, exp_predef)
    (c_tq): Guards are now a sequence of tests (when t ...).

2010-02-20  Robert Virding  <rv@stanislaw.local>

    * lfe_io.erl (scan_and_parse): Use new re-entrant parser.

    * lfe_parse.erl: Write to become re-entrant using LL(1) grammar.

2010-02-16  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe (eval-guard, match-when, eval-let): Guards are now
    a sequence of tests (when t ...).

    * lfe_eval.erl (eval_guard, match_when, eval_let): Guards are now
    a sequence of tests (when t ...).

    * lfe_codegen.erl (comp_guard, comp_gtest, comp_clause_body)
    (comp_let): Guards are now a sequence of tests (when t ...).

    * lfe_lint.erl (check_guard, check_pat_guard): Guards are now a
    sequence of tests (when t ...).

2010-02-15  Robert Virding  <rv@stanislaw.local>

    * lfe_codegen.erl (comp_body, append_c_seq): Try to flatten nested
    sequences. The rest of the compiler likes this.

2010-02-14  Robert Virding  <rv@stanislaw.local>

    * lfe_codegen.erl (comp_guard, comp_gtest, comp_gexpr)
    (comp_gargs, comp_gif): Rewrite to get correct improved
    guards. Not done yet.

    * lfe_comp.erl (do_erl_comp): Added no_bopt to turn off boolean
    optimisations in guards.

2010-02-09  Robert Virding  <rv@stanislaw.local>

    * lfe_io_format.erl (control, base_prefix): Output LFE based
    integers.

2010-02-05  Robert Virding  <rv@stanislaw.local>

    * lfe_macro.erl (exp_predef): Add caar, cadr, cdar and cddr.

    * lfe_codegen.erl (c_try, c_call): Add to simplify code when
    building.

    * lfe_eval.lfe (eval-guard): Move guard handling into separate
    function.

    * lfe_eval.erl (eval_guard): Move guard handling into separate
    function.

    * lfe_eval.lfe (eval-gexpr): Evaluate new guards.

    * lfe_eval.erl (eval_gexpr): Evaluate new guards.

    * lfe_lint.erl (check_gexpr): Now recognise new guards.

2010-02-04  Robert Virding  <rv@stanislaw.local>

    * lfe_macro.erl (exp_predef): orelse and andalso now expand to if.

2010-02-03  Robert Virding  <rv@stanislaw.local>

    * lfe_codegen.erl (comp_expr): Fold comp_call into comp_expr.

2010-01-29  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe (match-binary): Rewrite to only use error to signal
    no match.

    * lfe_eval.erl (match_binary): Rewrite to only use error to signal
    no match.

2010-01-27  Robert Virding  <rv@stanislaw.local>

    * lfe_io_pretty.erl (print1_defun): Improved printing of defuns.

    * lfe_lint.erl (check_gif, check_if): Better error reporting.

    * lfe_eval.erl (eval_catch_clauses): Fix right recursion.

2010-01-26  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe: Change (binary (unit 1)) to (bitstring)
    everywhere.

    * lfe_eval.erl: Change /binary-unit:1 to /bitstring everywhere.

    * lfe_lint.erl (check_gexpr): Restructure function.

    * lfe_macro.erl (bq_expand): Fix handling of tuples to be
    efficient or handle splicing.

2010-01-25  Robert Virding  <rv@stanislaw.local>

    * lfe_io.erl (print1): Don't special case standard character
    macros in normal print, leave for prettyprint.

2010-01-20  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe (eval-let): Better error reporting.

    * lfe_eval.erl (eval_let): Better error reporting.

2009-12-14  Robert Virding  <rv@stanislaw.local>

    * lfe_lint.erl (bad_mod_def_error): Broke this out and added what
    is wrong.

    * lfe_codegen.erl (is_simple): Added as no longer in
    core_lib. Thanks to Matt Stancliff for pointing it out.

2009-11-04  Robert Virding  <rv@stanislaw.local>

    * lfe_codegen.erl (comp_bitsegs): Seuentialise evaluation of
    bitseg values and sizes.
    (make_seq): Sequentialise sequence of expressions using let.

2009-10-28  Robert Virding  <rv@stanislaw.local>

    * lfe_lib.erl (format_exception): Restructured code.

    * lfe_codegen.erl (comp_funcall_1): Sequentialise evaluation of
    arguments to apply.

2009-10-14  Robert Virding  <rv@stanislaw.local>

    * lfe_macro.erl (exp_predef): Added macro list* and restructured
    code a little.

2009-10-13  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe (eval-binary, match-binary): Restructured code.

    * lfe_eval.erl (eval_binary, match_binary): Restructured code.

2009-10-06  Robert Virding  <rv@stanislaw.local>

    * lfe_codegen.erl (comp_args, comp_call): Sequentialised
    evaluation of arguments enforcing left-to-right semantics.

2009-10-02  Robert Virding  <rv@stanislaw.local>

    * lfe_codegen.erl: Cleaned up handling of literals.

2009-09-26  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.lfe (eval-binary, match-binary): Cleaned up handling of
    binaries.

    * lfe_eval.erl (eval_binary, match_binary): Cleaned up handling of
    binaries.

    * lfe-eval.lfe (get-integer, get-float): Got endian names right
    internally.

    * lfe_shell.erl (set): New shell command to set variables in
    shell.

2009-09-25  Robert Virding  <rv@stanislaw.local>

    * lfe-eval.lfe (eval-bitspec, eval-exp-field, get-value): Added
    unicode types.

2009-09-18  Robert Virding  <rv@stanislaw.local>

    * lfe_lint.erl (check_mdef): Fixed handling of attributes.

    * lfe_codegen.erl (collect_mdef): Fixed handling of attributes.

2009-09-16  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.erl (eval-lambda): Lambda args can now hold don't care
    variable.

    * lfe_lint.erl (check_lambda_args): Lambda args can now hold don't
    care variable.

    * lfe_codegen.erl (comp_lambda): Lambda args can now hold don't
    care variable.
    (comp_let): Simple lets without matching can now hold don't care
    variables.

2009-08-31  Robert Virding  <rv@stanislaw.local>

    * lfe_io_pretty.erl (print1_list_max, print1_tail_max): Get it
    right when depth = 0.

    * lfe_comp.erl (passes, do_passes): Add an explicit pass driven
    style to compiler.

2009-08-30  Robert Virding  <rv@stanislaw.local>

    * lfe_io_pretty.erl (print1_list_max, print1_tail_max): Bit more
    efficient pretty printing on the rest of the line.

2009-08-13  Robert Virding  <rv@stanislaw.local>

    * lfe_comp.erl (list_warnings, list_errors): Use lfe_io format.

2009-08-12  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.erl (eval_bitspec, eval_exp_field, get_value): Added
    unicode types.

    * lfe_codegen.erl (comp_bitspec, comp_bitspecs): Added unicode
    types.

    * lfe_lint.erl (pat_bitsegs): No need for try.
    (pat_bitspec): Added unicode types.

2009-08-10  Robert Virding  <rv@stanislaw.local>

    * lfe_shell.erl (add_shell_macros, eval_internal): Moved shell
    commands from macros to functions. Avoid weird results.

2009-08-07  Robert Virding  <rv@stanislaw.local>

    * lfe_parse.erl (sexpr1): Binary constants can now have any type
    of bit segments.

    * lfe_io.erl (print1_bits): Fix printing of last non 8 bits.

2009-08-04  Robert Virding  <rv@stanislaw.local>

    * lfe_shell.erl, lfe_lib.erl (format_exception)
    (format_stacktrace): Moved to lfe_lib.erl.

    * lfe_io_pretty.erl (print1): Improve printing of lists.

2009-08-03  Robert Virding  <rv@stanislaw.local>

    * lfe_eval.erl (eval_let, eval_let_function)
    (eval_letrec_function): Added explicit bad form error.

    * lfe_io_pretty.erl (print1): Added max depth and line length to
    pretty print sexpr.

2009-08-02  Robert Virding  <rv@stanislaw.local>

    * lfe_io.erl (print1): Added max depth to print sexpr.

    * lfe_io_pretty.erl: Moved prettyprinting to separate file,
    externl calls still through lfe_io.

2009-05-21  Robert Virding  <rv@arthur>

    * lfe_codegen.erl (c_fname): Changed to R13B version.

2009-05-21  Robert Virding  <rv@arthur>

    * All files: Released LFE 0.4 to Git.

2009-05-21  Robert Virding  <rv@arthur>

    * lfe_codegen.erl (c_fname): Changed to R12B version.

2009-05-14  Robert Virding  <rv@arthur>

    * lfe_shell.erl (eval_internal): Added macroexpand-all.

    * lfe_shell.erl (macroexpand): Now call lfe_macro:expand_macro.

    * lfe_macro.erl: Renamed macroexpand and macroexpand_1 back to
    expand_macro and expand_macro_1, more consistent.

    * lfe_lib.erl: Removed macroexpand and macroexpand-1 from library,
    useless.

2009-05-13  Robert Virding  <rv@arthur>

    * lfe_lint.erl (init_state): Use add_exports for parameterised
    modules.

2009-04-24  Robert Virding  <rv@rv-laptop>

    * lfe_codegen.erl (c_fname): Have two versions for both R12B and
    R13B.
    (make_literal, make_literal_list, concrete_list): Copied these
    from old R12B core_lib.erl as they have disappeared in R13B.

2009-03-04  Robert Virding  <rv@arthur>

    * lfe_pmod.erl (exp_mdef, collect_imps): Restructured to use folds.
    (exp_form, exp_mdef): Handle extends in parameterised modules.

    * lfe_lint.erl (para_defs): Fix instance function depending on
    whether parameterized module extends.

2009-03-03  Robert Virding  <rv@arthur>

    * lfe_lint.erl: Restructured to improve and handle parameterized
    modules.

    * lfe_comp.erl (do_forms): Added call lfe_pmod:module.

2009-03-02  Robert Virding  <rv@arthur>

    * lfe_macro.erl (expand_rules): Raise handling of keywords in
    syntax rules.

2009-02-26  Robert Virding  <rv@arthur>

    * lfe_lint.erl (pat_bitspec, expr_bitspec, gexpr_bitspec): Fixed
    checking of bitsegs in patterns and exprs.

2009-01-23  Robert Virding  <rv@arthur>

    * lfe_macro.erl: New convention, expand??? functions do deep
    expansion, exp??? do not.
    (expand, exp_predef): Moved backquote expansion to pre-defined
    default macros.

    * lfe_io.erl, lfe_macro.erl, lfe_parse.erl, lfe-shell.erl:
    Quasiquote now called backquote.

2009-01-12  Robert Virding  <rv@arthur>

    * lfe_comp.erl (erl_comp, lfe_comp_opts, erl_comp_opts): Fixed
    handling of what to return, dcore, to_core, binary and
    file (default) now mutally exclusive.
    (do_ok_return, do_error_return): return and report now not
    exclusive and you can have both.

2008-11-19    <rv@DOUGLAS>

    * lfe_macro.erl (def_record): Added general set-<name> macro.

2008-10-25    <rv@DOUGLAS>

    * lfe_lib.erl: Started adding standard lisp library functions.

2008-10-18    <rv@DOUGLAS>

    * lfe_lint.erl (check_alias): Binaries can never be aliased.

2008-10-14    <rv@DOUGLAS>

    * lfe_eval.lfe: Update record spec to new record syntax.
    (eval-expr): Expand macros when called, don't assume everything
    already expanded.
    (eval-let-function eval-letrec-function): Fix handling of
    match-lambda, none before.

2008-10-13    <rv@DOUGLAS>

    * lfe_shell.erl (macroexpand, macroexpand_1): Added these as shell
    commands to expand macros.

    * lfe_io.erl (read_file1, scan_and_parse, parse_file1): Now call
    lfe_parse:sexpr.

    * lfe_parse.erl (sexpr): Name change of function.

2008-10-11    <rv@DOUGLAS>

    * lfe_gen.erl (compile_forms): Now does not tag forms before
    calling compiler.

    * lfe_comp.erl (forms): Forms/1/2 now take list of raw forms as
    input, add index as "linenumber".

2008-10-10    <rv@DOUGLAS>

    * lfe_codegen.erl (sequentialise_args): First attempt at
    sequentialising code to enforce left-to-right evaluation. Also
    avoids bugs in erlang compiler. Not good enough yet. But got arond
    bug with element/2 inerlang compiler.

2008-10-09    <rv@DOUGLAS>

    * lfe_codegen.erl (forms, collect_mdef): Added (export all).

    * lfe_lint.erl (check_mdef, check_module): Added (export all).

2008-10-08    <rv@DOUGLAS>

    * lfe_macro.erl (def_record): First version of new defrecord.

    * lfe_lib.erl (is_core_form): Added all core forms.

2008-10-06    <rv@DOUGLAS>

    * lfe_macro.erl (pass_ewc): First version of eval-when-compile.
    (exp_macro): Macro expander now gets environment for ewc
    functions.

2008-10-05    <rv@DOUGLAS>

    * lfe_shell.erl (slurp): Don't expand macros at slurp time, push
    until evaluation.

    * lfe_eval.erl (eval_expr): Expand macros when called, don't
    assume everything already expanded.

2008-10-04    <rv@DOUGLAS>

    * lfe_macro.erl (pass, pass_progn): Macro collection and expansion
    now done in one pass.

2008-10-03    <rv@DOUGLAS>

    * lfe_shell.erl (add_shell_macros): Fixed c macro so it reload
    code.

    * lfe_eval.erl (eval_if): Better error reporting.

    * lfe_comp.erl: Handling errors and warnings better now.

2008-10-02    <rv@DOUGLAS>

    * lfe_comp.erl: Fix handling of return values.

    * lfe_io.erl (read_file, parse_file): Both return errors more
    consistently now.

2008-09-30    <rv@DOUGLAS>

    * lfe_macro.erl (macro): Moved expanding expansion to caller, more
    logical.

    * lfe_io.erl (prettyprint1, print1): Added default case which just
    prints the vanilla Erlang way.

2008-09-28    <rv@DOUGLAS>

    * All files: Released LFE 0.3 to Git.

2008-09-28    <rv@DOUGLAS>

    * lfe_gen.erl: Support for dynamic code generation.

    * lfe_boot.erl: Start Erlang with the LFE shell running.

    * lfe_io.erl (print1_bits): Allow printing of some of the bytes in
    a bitstring.

2008-09-27    <rv@DOUGLAS>

    * lfe_macro.erl (macro): Apply function of course.

    * lfe_eval.erl (apply): Redefined to make usable from outside.

2008-09-26    <rv@DOUGLAS>

    * lfe_shell.erl (server_loop): Changed prompt to "> ".
    (add_shell_macros): Put macros in correct format.

2008-09-25    <rv@DOUGLAS>

    * lfe_io.erl (indent_type): Cleaning up indent forms.

    * lfe_lint.erl (check_match_lambda): Better checking of match-lambdas-
    (check_let/rec_function): Cleaning up let/letrec code.

2008-09-24    <rv@DOUGLAS>

    * lfe_codegen.erl: Contains code generation part of compiler.

    * lfe_comp.erl: Moved code generation into lfe_codegen.

2008-09-23    <rv@DOUGLAS>

    * lfe_io.erl (parse_file): Now returns errors instead of exiting.

    * lfe_parse.erl (format_error): New function.

2008-09-22    <rv@DOUGLAS>

    * lfe_macro.erl (c_tq): Fixed old use of fletrec to use
    letrec-function.

2008-09-21    <rv@DOUGLAS>

    * lfe_io.erl: Modified to support new core forms and macros.

    * lfe_shell.erl: Modified to support new core forms and macros.

    * lfe_eval.erl: Modified to support new core forms and macros.

    * lfe_comp.erl: Modified to support new core forms and macros.

    * lfe_lib.erl: Modified to support new core forms and macros.

    * lfe_lint.erl: Modified to support new core forms and macros.

    * lfe_macro.erl: Modified to support new core forms and macros.

2008-08-29    <rv@DOUGLAS>

    * lfe_eval.erl (match_symb): Disallow all multiple occurrences of
    variables.

2008-06-18    <rv@DOUGLAS>

    * All files: Released LFE 0.2.1.

2008-06-14    <rv@DOUGLAS>

    * lfe_comp.erl (c_primop): Added c_primop to make #c_primop{}.

2008-06-10    <rv@DOUGLAS>

    * lfe_macro.erl (default1): Now use (?= pat exp) and (?= pat guard
    exp) to match and export pattern variables in cond.
    (lc_tq, bc_tq): Now use (?= pat exp) and (?= pat guard exp) to
    test and export pattern variables in list/binary comprehensions.

    * lfe_eval.erl (match): Binaries may also match bitstrings, they
    refer to binaries and bitstrings.

2008-06-07    <rv@DOUGLAS>

    * lfe_comp.erl (comp_func): Generalised, and now called by
    comp_define.
    (func_arity): Used to simplfy tests for arity.

2008-05-22    <rv@DOUGLAS>

    * lfe_lib.erl (proc_forms): Return forms in order.

2008-05-17    <rv@DOUGLAS>

    * lfe_comp.erl (collect_mdef):
    * lfe_lint.erl (check_mdef): Added general attributes.

2008-05-13    <rv@DOUGLAS>

    * lfe_macro.erl (lc_tq): Added list comprehensions as macros.

2008-05-10    <rv@DOUGLAS>

    * lfe_macro.erl (default1): Added (match Pat Exp) and (match Pat
    Guard Exp) case to cond which succeeds if pattern matches *and*
    makes pattern variables available in body. Trivial code. Bad
    name??

2008-05-04    <rv@DOUGLAS>

    * lfe_comp.erl (filenames): Output now goes default to current
    directory, redirect with {outdir,Dir} option.

2008-04-25    <rv@DOUGLAS>

    * All files: Released LFE 0.2.

2008-04-20    <rv@DOUGLAS>

    * lfe_shell.erl (eval_internal): Added shell functions to compile
    files and load modules.

2008-04-14    <rv@DOUGLAS>

    * lfe_lint.erl (check_alias): Check aliases in lint but more
    restrictive than is possible in compiler, and it generates an
    error!

    * lfe_comp.erl (comp_let): Fixed handling of guards in let.

2008-04-13    <rv@DOUGLAS>

    * lfe_eval.erl (match):
    * lfe_lint.erl (check_pat):
    * lfe_comp.erl (comp_pat): Added aliases (= pat1 pat2). Known bug:
    compiler bombs if it detects mismatch.

2008-04-12    <rv@DOUGLAS>

    * <All files>: Added Copyright notice. Using simpplified BSD
    copyright smae as FreeBSD.

2008-04-09    <rv@DOUGLAS>

    * lfe_macro.erl:
    * lfe_lib.erl:
    * lfe_lint.erl:
    * lfe_comp.erl: Added flet, with normal scoping of functions, and
    renamed letrec to fletrec for consistency.

2008-04-06    <rv@DOUGLAS>

    * lfe_shell.erl (slurp): Load a file into the shell making all
    functions available to call.

    * lfe_eval.erl (eval_letrec): Correct solution for letrec, bit
    slow though as it must rebuild env for each call, but not too bad
    reall.

2008-04-01    <rv@DOUGLAS>

    * lfe_eval.erl (eval_letrec): Maybe have solution for letrec, uses
    dynamic binding for recursive call within functions.
    (eval_binary, match_binary): Added code for evaluating and
    matching binaries. Taken from eval_bits.erl in standard
    distribution.

2008-03-29    <rv@DOUGLAS>

    * lfe_eval.erl (eval_try): Can now eval try. Needs to be cleaned
    up a bit though.

    * lfe_macro.erl (expand_forms): Added new two pass macro
    processing with a macro pass and an expansion pass.

    * lfe_comp.erl:
      lfe_lint.erl: Use proc_forms for collecting, nested safe.

    * lfe_lib.erl (proc_forms): Process (begin ...) nested forms.

2008-03-25    <rv@DOUGLAS>

    * lfe_macro.erl (default1): Just does top-level expansion of a
    default macro.
    (expand_macro): Added for testing macros.

2008-03-06    <rv@DOUGLAS>

    * lfe_eval.erl (eval_lambda, eval_match_lambda):

    Fixed bug in handling of funs, they were attuned only to evals
    calls not to general usage. They now handle arguments correctly.

    * lfe_macro.erl (expand_clause): Added macro expansion of patterns.

    * lfe_comp.erl (pat_symb)
      lfe_lint.erl (pat_symb)
      lfe_eval.erl (match_symb): Added _ don't care variable to patterns.

2008-03-05    <rv@DOUGLAS>

    * lfe_macro.erl (match): Uses match/3 from lfe_eval.

    * lfe_eval.erl (match): Uses orddict for bindings.

    * lfe_macro.erl (match): Fixed return type error for orddict:find.
    (def_record): Use pre-defined test is_record/3 for is-REC macro.

2008-03-02    <rv@DOUGLAS>

    * LFE 0.1.zip: First release of LFE.

