From 25146525a1388d9e8a9e4c59fa31fbd16d9ac241 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Mon, 4 Mar 2024 12:54:36 -0600 Subject: Rename readme and makefile --- Makefile | 18 +++++++++++++++++ README.md | 45 +++++++++++++++++++++++++++++++++++++++++ makefile | 18 ----------------- readme.txt | 67 -------------------------------------------------------------- 4 files changed, 63 insertions(+), 85 deletions(-) create mode 100644 Makefile create mode 100644 README.md delete mode 100644 makefile delete mode 100644 readme.txt diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ff07d99 --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +LUA ?= rlwrap luajit + +.PHONY: repl +repl: + $(LUA) -e 'require("repl").repl()' + +.PHONY: test +test: + $(LUA) -i \ + -e 'eval=require"eval"'\ + -e 'global=require"global"'\ + -e 'pp=require"pp"'\ + -e 'read=require"read"'\ + -e 'util=require"util"'\ + -e 'repl=require"repl"'\ + -e 'types=require"types"'\ + -e 'utf8=require"utf8"'\ + -e 'util=require"util"' diff --git a/README.md b/README.md new file mode 100644 index 0000000..3728ba6 --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +# lam -- Lisp Acdw Made + +hi, i'm acdw. +this is my lisp. + +## about lam + +lam is a little toy lisp evaluator +written in lua +that isn't fennel. + +it's still very much a work-in-progress +while i work toward a lam 1500 release. + +## installing lam + +### dependencies + +lam is built against luajit 2.0 and has only been tested on that. +it might work on other luae, though. + +## using lam + +run `make repl` to set up a testing repl of the lam interpreter. +you can also run `make test` to start a lua repl +with all of lam's modules preloaded. + +## license + +lam is licensed under a 3-clause bsd license. +see COPYING for details. + +## contribute + +[email me][] or ping me somewhere + +[email me]: mailto:acdw@acdw.net + +## thanks + +thanks to peter norvig's [series on lisp interpreters][norvig] +and to m455 +and to my friends + +[norvig]: https://norvig.com/lispy.html diff --git a/makefile b/makefile deleted file mode 100644 index ff07d99..0000000 --- a/makefile +++ /dev/null @@ -1,18 +0,0 @@ -LUA ?= rlwrap luajit - -.PHONY: repl -repl: - $(LUA) -e 'require("repl").repl()' - -.PHONY: test -test: - $(LUA) -i \ - -e 'eval=require"eval"'\ - -e 'global=require"global"'\ - -e 'pp=require"pp"'\ - -e 'read=require"read"'\ - -e 'util=require"util"'\ - -e 'repl=require"repl"'\ - -e 'types=require"types"'\ - -e 'utf8=require"utf8"'\ - -e 'util=require"util"' diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 523b92c..0000000 --- a/readme.txt +++ /dev/null @@ -1,67 +0,0 @@ -lam(n.) -- where you go when a scheme goes bad -by C. Duckworth - -about lam ---------- - -lam is my little toy lisp evaluator. written in lua! -(no, it isn't fennel.) - -at least in these beginning stages, i'm basing lam heavily -on Norvig's lispy interpreters. the guy knows his lisp! -these are well-written articles. - -https://norvig.com/lispy.html - -this is /very much/ a work in progress. -lam uses lua 5.1 or luajit. -it might work elsewhere, but i've not tested it on those. - -using lam ---------- - -you can set up a repl of lam to test it out: - -> make repl - -all of lua's math.* functions are available, as well as - -- +, *, /, - -- =, <, >, <=, >= -- null? -- number? -- symbol? -- apply -- begin -- map -- car -- cdr -- list - -and special forms - -- quote -- define -- lambda - -plus, some special lam functions: - -- luatype (the lua types of a value) -- type (the lam type of the value) - -lam limitations ---------------- - -- lam just has numbers and operations on them -- uh, and symbols. and lists. and lambdas and environments. - -todo ----- - -- move schemestr from repl into pp and expand (lua/lam pp, etc) -- add more datatypes (strings, anyone?!) -- numeric tower (oof) (at least exact/inexact numbers) -- .... - ---------------------------- -contributions/help WELCOME! -- cgit 1.4.1-21-gabe81