LispBeam (exlisp v0.1.4)

Copy Markdown

Generates Erlang Abstract Format from ExLisp AST, compiles it to BEAM binaries, and executes it (with interactive REPL).

Summary

Functions

Compiles and executes multiple ASTs via BEAM bytecode compilation.

Dynamically compiles AST into a temporary BEAM module and executes it. Directly evaluates simple expressions (literals, constants, quotes, etc.) for performance.

Evaluates multiple ASTs in batch.

Starts the REPL (Read-Eval-Print Loop).

Directly evaluates simple expressions (literals, constants, quotes, simple variable references) without invoking compiler.

Functions

ast_cons_list(list, tail \\ {nil, 1})

compile_and(list, local_env)

compile_and_eval_asts(asts, counter \\ nil)

Compiles and executes multiple ASTs via BEAM bytecode compilation.

compile_block(list, local_env)

compile_case(list, local_env)

compile_catch(args, local_env)

compile_check_type(args, local_env)

compile_cond(clauses, local_env)

compile_defclass(list, local_env)

compile_defgeneric(list, local_env)

compile_define_condition(list, local_env)

compile_defmacro(list, local_env)

compile_defmethod(args, local_env)

compile_defparameter(list, local_env)

compile_defstruct(list, local_env)

compile_deftype(args, local_env)

compile_defun(list, local_env)

compile_defvar(list, local_env)

compile_destructuring_bind(args, local_env)

compile_do(args, local_env)

compile_do_star(args, local_env)

compile_dolist(list, local_env)

compile_dotimes(list, local_env)

compile_ecase(list, local_env)

compile_etypecase(list, local_env)

compile_expr(ast, local_env \\ MapSet.new())

compile_flet(list, local_env)

compile_go(list, local_env)

compile_handler_bind(list, local_env)

compile_handler_case(list, local_env)

compile_if(list, local_env)

compile_ignore_errors(forms, local_env)

compile_labels(list, local_env)

compile_lambda(list, local_env)

compile_let(list, local_env)

compile_let_star(list, local_env)

compile_locally(args, local_env)

compile_loop(body_nodes, local_env)

compile_macrolet(list, local_env)

compile_multiple_value_bind(args, local_env)

compile_multiple_value_call(args, local_env)

compile_multiple_value_list(args, local_env)

compile_multiple_value_prog1(args, local_env)

compile_multiple_value_setq(args, local_env)

compile_nth_value(args, local_env)

compile_op(op, args, local_env \\ MapSet.new())

compile_or(list, local_env)

compile_prog1(list, local_env)

compile_prog2(list, local_env)

compile_progn(forms, local_env)

compile_progv(args, local_env)

compile_psetf(args, local_env)

compile_psetq(args, local_env)

compile_quote(ast)

compile_regular_op(op, args, local_env)

compile_restart_bind(list, local_env)

compile_restart_case(list, local_env)

compile_return(args, local_env)

compile_return_from(list, local_env)

compile_rotatef(args, local_env)

compile_setf(args, local_env)

compile_setq(args, local_env)

compile_shiftf(args, local_env)

compile_symbol_macrolet(list, local_env)

compile_tagbody(elements, local_env)

compile_the(args, local_env)

compile_throw(args, local_env)

compile_typecase(list, local_env)

compile_unless(list, local_env)

compile_unwind_protect(list, local_env)

compile_when(list, local_env)

compile_with_input_from_string(args, local_env)

compile_with_mutex(args, local_env)

compile_with_open_file(args, local_env)

compile_with_open_stream(args, local_env)

compile_with_output_to_string(args, local_env)

compile_with_simple_restart(args, local_env)

erl_var_name(atom_name)

evaluate_ast(ast, counter \\ nil)

Dynamically compiles AST into a temporary BEAM module and executes it. Directly evaluates simple expressions (literals, constants, quotes, etc.) for performance.

evaluate_asts(asts, counter \\ nil)

Evaluates multiple ASTs in batch.

expand_do(list)

expand_do_star(list)

expand_with_simple_restart(args)

extract_bindings(elements)

extract_fn_bindings(elements)

extract_op_name(atom)

extract_param_names(elements)

extract_special_vars(decls)

extract_symbol_name(atom)

has_lambda_list_keywords?(params_node)

normalize_quote_symbol(str)

normalize_remote_op(op)

split_declarations(forms)

start_repl()

Starts the REPL (Read-Eval-Print Loop).

try_direct_eval(ast)

Directly evaluates simple expressions (literals, constants, quotes, simple variable references) without invoking compiler.