A Lisp implemented in AWK
make repl code a special form; make main function a variable, defaulting to repl; allow changing using save-lisp-and-die
Created by  jaredj  on September 7, 2025
VIEK2XMYJX37ELGVE2P5PZQU47NJ3GBXPV3XY2RWG2TDHIZEV57QC
bring releases.org up to date (N.B. v0.6 is still not yet released)
Created by  jaredj  on September 7, 2025
GNXMAQY6IMH7NW7XUGLJ2T4S7JYAMDSAEB66FYPRJNZSRRZ3H5JAC
add save-lisp-and-die
Created by  jaredj  on September 7, 2025
LJDWCB3JTDL5XVZ5UGFQXL6H2G3HXECQZQO44FGOJH3RKQ5QYJQAC
add dump-append, with _SNIP_STRING
Created by  jaredj  on September 7, 2025
4YBBAZM32EOQGX736RWC6NDEDRIIL64RFHFDNTRCATUS4KD77Y7AC
fix a bug preventing the dump filename from being anything other than a literal string
Created by  jaredj  on September 7, 2025
LTFZUIG6XMN6MAXJFV2F4TZNHWGOFTDKR56G264UNNDVNL447UAQC
match: fix a copy-paste bug completely preventing function; return nil when no match rather than (0 -1)
Created by  jaredj  on September 7, 2025
ZYPZN4MMX2QI5OB55AWSSLIGD5W25AWSCH5PILXFSD3CFK7GI2CQC
improve GC debugging; add more infinite loop refusals
Created by  jaredj  on September 6, 2025
WZ3MWMMPEI2EXM7VWKHENSKLSL4XRIB5EG7XYGPMBEUMXSYPD4NAC
now that lib.glotawk is split out, make the image.awk depend on it
Created by  jaredj  on September 6, 2025
2OA6S2MHX2ZDLBY6YENR43IXVDCOE744G4YEAJMZCSQGLW25Q2OQC
get backslash escapes right
Created by  jaredj  on September 6, 2025
ICGJDX2EHUCWPATWZRMDCSSTRXGSPW5M4NGU5MAFG6R7QDUC5KPQC
keep reader state in local vars; add load and cell-info functions
Created by  jaredj  on September 3, 2025
KBD2A5MUJHKGV4JD6MLJXTKNAYZ5D44LX5WRB2ZXX5YCWBODWR3AC
get backslash-escaped backslashes right; getenv returns nil if variable not in environment
Created by  jaredj  on September 3, 2025
TL7YNDX4E2KDNU4QPONKD7LPGY3DEO77XMUQ75OLOH2BGEW4IBQQC
support backslash escapes in strings: unescape when reading; escape when printing
Created by  jaredj  on September 3, 2025
TN5RCIH3OI5AW756GICACN24TBABGLNDQ7LZJTUYHXYVW3ARGBBQC
nicer debug messages for eval (commented)
Created by  jaredj  on September 2, 2025
BEOFPS76OOYENP76QFENC7BFGH6GDLEZODWIHFFQOIK3ZHD7IPBAC
detect a couple of ways infinite loops can crop up, and quit instead
Created by  jaredj  on September 2, 2025
7DYD24CK7UZM43MLSPCFRLR77RKAJP43WW7BF4MTZB46UAMADXRAC
fix an infinite loop when reading a dotted pair
Created by  jaredj  on September 2, 2025
HDINGIHXRIQBDEWVYCC26V5JBRXTK6FOG2E3VD6RDSU44EQIHSAQC
bugfix: pass eval environment into strcat when called. the lack of this somehow resulted in an infinite loop.
Created by  jaredj  on September 2, 2025
IHDDXPBATRVMS6VIJQLXBEMNI3ERHIO5JW6RB5DHO2R4NZBI2V7QC
in equal, compare contents of strings, not their identities
Created by  jaredj  on September 1, 2025
XZRJ6YZWBY4TQ6OGYVOLM3FLT5ACSTPUP2RNPGH2IJJPHJ7E2E5AC
move string and I/O special forms out to their own awk files
Created by  jaredj  on September 1, 2025
6WM2DD32XSC2HFLOXBDPFCU6BI2BD5ZYFGBIEIVEQOKWRCNTXROQC
add as-number to turn a number-containing string into a number
Created by  jaredj  on August 31, 2025
MDCE6UHRABRWF7Z7NOQ3OTB5WXRIHPY7A625V5E6COPS44ETZSQQC
add getenv and setenv
Created by  jaredj  on August 31, 2025
73WSF5NP4EMCPC7SIWPFNSLWQGDLZUXRHBUGGMDUZWDVDPFCAZHAC
add and and or macros
Created by  jaredj  on August 31, 2025
GOXQFKWDQUYUH3XLJSAUL5LPNQ46NDO3ZGFJNVTECB4ARGZ4DW3QC
allow redirection with system function by allowing and not shellquoting symbols
Created by  jaredj  on August 31, 2025
A4OT5TVSFIEVJU4FSBJKTJH6MN2LOVEAS6Y7JCA4DMFGYKCVKTDQC
add repr
Created by  jaredj  on August 31, 2025
PAKJWJ4I5Q4YOY4CAQEZP3HHGCOCOIF32FT3IIZVT5SIRJZGXQVQC
fix null function likewise, add test
Created by  jaredj  on August 31, 2025
7KF6CLZGZ4I2FTAFXZV5EL7XDQ2HC3VDELT3RHCABEAXU2C3UUTQC
fix not to return lisp values: it was returning quote, which is symbol 1. add test
Created by  jaredj  on August 30, 2025
7NGDT5EF45AF26SWO5BL4UUIA4ZFWZDEBY2FGIMGQ7KJWPLKHTNQC
use defun in latter part of library; add and use defintrinsic macro
Created by  jaredj  on August 29, 2025
OUNA3ZMTTISFWX3HHIJ46WTYQJBX4OFSNU4SU3GOJMBLLHQDFT7AC
add symbolp, consp, stringp, defun macro
Created by  jaredj  on August 29, 2025
TR7MDG2JZKE2XJTMGJQT3W4JTYNYPSDEZN5G4D464WCWCMVA75NQC
add prog1
Created by  jaredj  on August 28, 2025
IMQIKAOEZWNPCBOYMBV5QGUEAZUZ3B3FIKQ7HDNMSXPHV7322GFQC
fix unsafe-system to return exit code of executable run
Created by  jaredj  on August 28, 2025
RHFZ2YBK7K6MYUJDJGDOOIKZ6BSCCL2C7EEGYGUYZYKU7JCFGVRQC
move glotawk library code out into its own file
Created by  jaredj  on August 26, 2025
I3MID22EURRK26C4JZ2U5FBEZ57GZVMBT44KFKTU4BBYXKLILWRAC
change TARGET_AWK to TARGET_AWK_F so we can use gawk -cf (and not gawk -c -f) as the target awk if we wish
Created by  jaredj  on August 26, 2025
DYBZJH5AYKE44F6JX6RKE4HE4DR726IARJ2A6V7QTCRDD372AMGAC
bugfix: pass environment into sprintf and printf. they were going into an infinite loop.
Created by  jaredj  on August 26, 2025
2W5IXGTAIQHBUGFKLYFNMH3FFHGAQ7FZ5IDD54UGUFHTAK7ODT6AC
support different awk runtimes for building, test, and target
Created by  jaredj  on August 26, 2025
FHACYEOV7BG6PMCH2JL37C63CGQBIDVRBMCHCBJKXESV6NUL4T3AC
add numerical relational operators
Created by  jaredj  on August 25, 2025
DLKX5ORVHGLKOQD2ZDBDQKZBSN5XQ7WXMZPCZNMTMJV2JRKS664AC
retool reader to support forms spanning multiple lines
Created by  jaredj  on August 24, 2025
2CXQ53RHKGIT5KR7VHOVRVHCD5MK4V2J3AJDQ3CNSJLHJXXA4GXQC
start a chronicle of releases, including the next unreleased one
Created by  jaredj  on August 20, 2025
DG4L5ELJFZS5JATC47CHOCESJM5H3XSL4WDBXNV4ADTUTMMKWZDAC
ascii 127 is a control character too
Created by  jaredj  on August 20, 2025
YTXW7HYNYWEAJS2PJILFW5ZD46TJ4XQ4FS3IWJ5E5RB4IYPNVTYQC
add let*
Created by  jaredj  on August 20, 2025
22CEOYDNJIPJ5CPOWXJ4GKR2EHHSYVMTOOGNWOVNEG73D23UIBRQC
add let*
Created by  jaredj  on August 20, 2025
L7YV2TJYOBRNUT7FPSY352O3BPZD7CNO3XG7PY433L54XYBY5AZQC
add missing cdar and cddr
Created by  jaredj  on August 20, 2025
OUSD2SQASHZTD2KRWOVMU7LUSE73NXKECFIOD7M76NMOXMD7Q4RQC
fix and test quasiquote; make reduce only call f if it has two arguments to supply
Created by  jaredj  on August 20, 2025
CSYWOT2I424JQUSOH4DB6UNOOHMB5FOA5B7AY4CE45EQORRB4LWAC
avoid command injection in system function; add apply; fix newlines in dumped strings
Created by  jaredj  on August 17, 2025
7SNXCC5KSDXU3MBJT2FBEPAISWPY62DHPC2RLEYXC2WVTWX5TKKQC
fix missing function errors found by running glotawk with mawk
Created by  jaredj  on August 12, 2025
TFWMUQZSR25B6CLXFNFN56JFH3PJRHDFW7DYTGDOFCVKW4KC43NAC
add a tour of the source files
Created by  jaredj  on August 12, 2025
2XC5YUMGEINTMP6SSXZ4FZ4D7IVFSTQ2PVYOUF3BKTAYQ5HYKKRQC
brush up documentation; include LICENSE in built glotawk; include SPDX-License-Identifier in all source files
Created by  jaredj  on August 11, 2025
IJPPBZNLPL4X6WDFWFBNMZ32WNJM7QZ6EFSUTNSN74AZJEZKEARAC
add input from files or pipes
Created by  jaredj  on August 11, 2025
FITNBSMMJCQIFJGUMVSZYHJM4OSBXEZO5YWYEJ4CXGMFPBSIT5WAC
add ,@ reader syntax and unquote-splicing treatment in quasiquote. fix gc again?
Created by  jaredj  on August 9, 2025
PXI442CY2KQHHAIJ3UNCWKTAI4IFYNGYEBRQMDR6T53YZTY2VMMQC
add printf and with-output-to
Created by  jaredj  on August 5, 2025
VSQGRPJ7PDH3MOC7GFVX5YONUZTLFRXU2O6CFT5MRGBGOO7PO6GAC
add getline and ors
Created by  jaredj  on August 5, 2025
VEMUXGMKKVS2DJSA2ICYDEWLC7SII4XEWVCSD676CHLSNQLUOZ5AC
remove old lib.awk: lib-eval is a much better way
Created by  jaredj  on July 28, 2025
FDSQKZKZTMUABTYXDWF63BM5YBBMYVR27GW5T5PDNE5AWDSMYU2AC
do auto gc outside eval: inside eval, we were gcing the forms being evaluated, leading to crashes
Created by  jaredj  on July 28, 2025
YU2N2HEPNDEB65LGBWESEHNZNCZ63H3MGT4R7VLX4KMZHFYC4SIAC
fix garbage collector; run it before dumping image.awk; auto-run every so often
Created by  jaredj  on July 27, 2025
5XO7IKBGCVXGVWMDJDE5MELS4FWRITKAU6NNV36NQ4TOZRR7UQ7QC
add in ways to call the rest of the awk functions
Created by  jaredj  on July 21, 2025
JDZASPALXSFZOL3MXCKBPX74CUD3W743ZJ6W2422FIJ7NJOD67ZAC
more functions
Created by  jaredj  on July 4, 2025
RCUBQKTURAMSYYFNNI4JPXDBZDGF6ZGWVGQYTDEKA6EOMG4QUZOAC
comment out all the logg_dbg calls, for an 8x speedup
Created by  jaredj  on July 2, 2025
NBEO3TPNOUG7MRFYRSDDFB5TQKTEDL6GHHFQVOB5MXVPIBKFNZKAC
run benchmark 2.5% faster
Created by  jaredj  on June 29, 2025
YOAKPZITVLYELTS3MDGOYTV54YNF4KMPMM5N6X7JPKIXAO5QFHEQC
add benchmark
Created by  jaredj  on June 29, 2025
7BYMVBE225GXMGCZIPBE7XAGZ3FMO2NF75PSTBYQT3ZQ3ZK6YKOAC
more arithmetic operators and mathematical functions
Created by  jaredj  on June 29, 2025
K3OVRFE3Y23DN47XNAISH6XM5JGSCNRR6TOEO5KAKBNB54MFO27AC
remove code for mapcar special form: it did not work
Created by  jaredj  on June 14, 2025
C7KW2UCXIQ4XWNBBDOA6AY36ODRDX5MWGBGYZVI2AHTIJVG7USQAC
add * (multiplication)
Created by  jaredj  on June 14, 2025
UNG2I2YG7NASZK7A2UYXTBYEM6RCMAU3BD4C57RUQKHNZQUTGIIAC
variadic + function
Created by  jaredj  on June 14, 2025
RXKXDAF3GEASFJBBXAMTGPMPTHL74ZOHVBKVZ2YQXAZKMHISRY7QC
support tick, backtick, and comma to mean quote, quasiquote, and unquote. ,@ and quasiquote not implemented yet
Created by  jaredj  on June 9, 2025
A56GZW6HLIZQ6NX47XFPEPPGLZAA725KNYST7VK2MMK3DCCIXAXAC
finish macros; indent some messages by call depth; fix tests and add more
Created by  jaredj  on June 9, 2025
GW4AAYNF7I66D72G5PMFTQRK7B4KZVYKAHKRPC2IY7IX37JKEHJQC
almost all the way through macros. capricious logging changes without proper extension of logging granularity.
Created by  jaredj  on June 7, 2025
KMV35KHLCXIV5YQUDRSTS6PIMLNIL2KTJZS77XXMPA6IX37NHZ2QC
make image-based build work under BSD make and GNU make; begin macro work
Created by  jaredj  on June 7, 2025
6XHALMLUA5B5BBYFSWIFHSJ2BXCL6RSAW5TCKRGJEI2LURH2TQ4AC
two-stage build: use a slow, correct first stage to dump an image which is built into the final glotawk
Created by  jaredj  on June 3, 2025
MPN7OJSZD5CS5N7WWS3ZSOYE7ZRCABIBHZDMHVS6IT25EO2INK7AC
implement most of LISINT from LISP from Nothing, p. 141 et seq. Global variables, tail calls.
Created by  jaredj  on June 2, 2025
A2JAXDJWT2FAKADYOY6QOQ7LQRMTTCDIOYT7STSESVHLZQEQJBMAC
add LEXPRs
Created by  jaredj  on May 27, 2025
27BPWZ2IVETCDFH36BYWKOTAYFG2TKGODSJMREKW2OJUX226CCYQC
initial commit, with the minimal self-evaluating Lisp and no GC
Created by  jaredj  on May 24, 2025
UW27LKXM2BJ77FQLTY4WPKDSSWI2RFNFRJ7CB4U3TS7KYVIV72LQC
(no change message)
Created by   on May 24, 2025
5OVGZFP3HMFSJ7EETA6SPCIVV4PENITMC2ZK3EMPBFCZGZYWF7XQC