function definitions now remember the Lip_Object symbols and keys
not only the strings.. wtf was I thinkingh before?
This commit is contained in:
@@ -9,8 +9,8 @@ pushd bin
|
|||||||
taskkill /F /IM %exeName% > NUL 2> NUL
|
taskkill /F /IM %exeName% > NUL 2> NUL
|
||||||
|
|
||||||
echo ---------- Compiling ----------
|
echo ---------- Compiling ----------
|
||||||
rem call ..\timecmd cl ../src/main.cpp /std:c++latest /Fe%exeName% /W3 /Zi /nologo /EHsc /link /NODEFAULTLIB:libucrt libucrtd.lib
|
call ..\timecmd cl ../src/main.cpp /std:c++latest /Fe%exeName% /W3 /Zi /nologo /EHsc /link /NODEFAULTLIB:libucrt libucrtd.lib
|
||||||
call ..\timecmd clang-cl ../src/main.cpp -o %exeName% /O2 /std:c++latest /W3 /Zi /EHsc
|
rem call ..\timecmd clang-cl ../src/main.cpp -o %exeName% /O2 /std:c++latest /W3 /Zi /EHsc
|
||||||
|
|
||||||
popd
|
popd
|
||||||
if %errorlevel% == 0 (
|
if %errorlevel% == 0 (
|
||||||
|
|||||||
+52
-52
@@ -10,7 +10,7 @@ Takes 0 or more arguments and returns =t= if all arguments are equal and =()= ot
|
|||||||
\hrule
|
\hrule
|
||||||
* =>=
|
* =>=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:175:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:174:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -19,7 +19,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =>==
|
* =>==
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:193:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:191:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -28,7 +28,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =<=
|
* =<=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:211:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:208:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -37,7 +37,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =<==
|
* =<==
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:231:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:227:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -46,7 +46,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =+=
|
* =+=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:249:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:244:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -55,7 +55,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =-=
|
* =-=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:262:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:256:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -64,7 +64,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =*=
|
* =*=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:285:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:278:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -73,7 +73,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =/=
|
* =/=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:306:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:298:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -82,7 +82,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =**=
|
* =**=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:327:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:318:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -91,7 +91,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =%=
|
* =%=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:343:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:333:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -100,7 +100,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =assert=
|
* =assert=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:359:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:348:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -109,7 +109,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =define=
|
* =define=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:371:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:359:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -118,7 +118,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =mutate=
|
* =mutate=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:433:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:421:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -127,7 +127,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =if=
|
* =if=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:458:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:446:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -136,7 +136,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =quote=
|
* =quote=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:478:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:466:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -145,7 +145,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =quasiquote=
|
* =quasiquote=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:483:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:471:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -154,7 +154,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =and=
|
* =and=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:581:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:568:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -163,7 +163,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =or=
|
* =or=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:592:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:579:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -172,7 +172,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =not=
|
* =not=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:603:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:590:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -181,7 +181,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =while=
|
* =while=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:613:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:600:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -190,7 +190,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =lambda=
|
* =lambda=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:691:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:678:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -199,7 +199,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =special-lambda=
|
* =special-lambda=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:703:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:690:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -208,7 +208,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =eval=
|
* =eval=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:711:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:698:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -217,7 +217,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =begin=
|
* =begin=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:723:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:710:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -226,7 +226,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =list=
|
* =list=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:739:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:726:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -235,7 +235,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =pair=
|
* =pair=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:743:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:730:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -244,7 +244,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =first=
|
* =first=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:753:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:740:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -253,7 +253,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =rest=
|
* =rest=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:764:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:751:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -262,7 +262,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =set-type=
|
* =set-type=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:775:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:762:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -271,7 +271,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =delete-type=
|
* =delete-type=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:787:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:774:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -280,7 +280,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =type=
|
* =type=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:794:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:781:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -289,7 +289,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =info=
|
* =info=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:826:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:813:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -298,7 +298,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =show=
|
* =show=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:908:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:895:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -307,7 +307,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =addr-of=
|
* =addr-of=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:920:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:907:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -316,7 +316,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =generate-docs=
|
* =generate-docs=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:926:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:913:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -325,7 +325,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =print=
|
* =print=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:935:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:922:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -334,7 +334,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =read=
|
* =read=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:943:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:930:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -343,7 +343,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =exit=
|
* =exit=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:960:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:947:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -352,7 +352,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =break=
|
* =break=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:971:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:958:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -361,7 +361,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =memstat=
|
* =memstat=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:976:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:963:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -370,7 +370,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =try=
|
* =try=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:980:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:967:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -379,7 +379,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =load=
|
* =load=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:995:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:982:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -388,7 +388,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =import=
|
* =import=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1006:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:993:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -397,7 +397,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =copy=
|
* =copy=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1017:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1004:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -406,7 +406,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =error=
|
* =error=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1025:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1012:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -415,7 +415,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =symbol->keyword=
|
* =symbol->keyword=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1032:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1019:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -424,7 +424,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =string->symbol=
|
* =string->symbol=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1041:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1028:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -433,7 +433,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =symbol->string=
|
* =symbol->string=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1053:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1040:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -442,7 +442,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =concat-strings=
|
* =concat-strings=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1062:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:1049:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -1073,7 +1073,7 @@ be printed after the last argument (=end=).
|
|||||||
\hrule
|
\hrule
|
||||||
* =cons=
|
* =cons=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:743:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:730:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -1082,7 +1082,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =car=
|
* =car=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:753:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:740:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
@@ -1091,7 +1091,7 @@ TODO
|
|||||||
\hrule
|
\hrule
|
||||||
* =cdr=
|
* =cdr=
|
||||||
|
|
||||||
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:764:0=
|
- defined in :: =d:\code\gitlab\slime\src\./built_ins.cpp:751:0=
|
||||||
- type :: =:cfunction=
|
- type :: =:cfunction=
|
||||||
- docu ::
|
- docu ::
|
||||||
#+BEGIN:
|
#+BEGIN:
|
||||||
|
|||||||
+4
-4
@@ -851,17 +851,17 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
printf("Postitional: {");
|
printf("Postitional: {");
|
||||||
if (fun->value.function.positional_arguments->next_index != 0) {
|
if (fun->value.function.positional_arguments->next_index != 0) {
|
||||||
printf("%s",
|
printf("%s",
|
||||||
Memory::get_c_str(fun->value.function.positional_arguments->identifiers[0]));
|
Memory::get_c_str(fun->value.function.positional_arguments->symbols[0]->value.symbol.identifier));
|
||||||
for (int i = 1; i < fun->value.function.positional_arguments->next_index; ++i) {
|
for (int i = 1; i < fun->value.function.positional_arguments->next_index; ++i) {
|
||||||
printf(", %s",
|
printf(", %s",
|
||||||
Memory::get_c_str(fun->value.function.positional_arguments->identifiers[i]));
|
Memory::get_c_str(fun->value.function.positional_arguments->symbols[i]->value.symbol.identifier));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("}\n");
|
printf("}\n");
|
||||||
printf("Keyword: {");
|
printf("Keyword: {");
|
||||||
if (fun->value.function.keyword_arguments->next_index != 0) {
|
if (fun->value.function.keyword_arguments->next_index != 0) {
|
||||||
printf("%s",
|
printf("%s",
|
||||||
Memory::get_c_str(fun->value.function.keyword_arguments->identifiers[0]));
|
Memory::get_c_str(fun->value.function.keyword_arguments->keywords[0]->value.symbol.identifier));
|
||||||
if (fun->value.function.keyword_arguments->values->data[0]) {
|
if (fun->value.function.keyword_arguments->values->data[0]) {
|
||||||
printf(" (");
|
printf(" (");
|
||||||
print(fun->value.function.keyword_arguments->values->data[0]);
|
print(fun->value.function.keyword_arguments->values->data[0]);
|
||||||
@@ -869,7 +869,7 @@ proc load_built_ins_into_environment(Environment* env) -> void {
|
|||||||
}
|
}
|
||||||
for (int i = 1; i < fun->value.function.keyword_arguments->next_index; ++i) {
|
for (int i = 1; i < fun->value.function.keyword_arguments->next_index; ++i) {
|
||||||
printf(", %s",
|
printf(", %s",
|
||||||
Memory::get_c_str(fun->value.function.keyword_arguments->identifiers[i]));
|
Memory::get_c_str(fun->value.function.keyword_arguments->keywords[i]->value.symbol.identifier));
|
||||||
if (fun->value.function.keyword_arguments->values->data[i]) {
|
if (fun->value.function.keyword_arguments->values->data[i]) {
|
||||||
printf(" (");
|
printf(" (");
|
||||||
print(fun->value.function.keyword_arguments->values->data[i]);
|
print(fun->value.function.keyword_arguments->values->data[i]);
|
||||||
|
|||||||
@@ -93,23 +93,23 @@ proc generate_docs(Environment* env, String* path) -> void {
|
|||||||
if (!printed_at_least_some_args)
|
if (!printed_at_least_some_args)
|
||||||
fprintf(f, ":");
|
fprintf(f, ":");
|
||||||
fprintf(f, "\n - postitional :: ");
|
fprintf(f, "\n - postitional :: ");
|
||||||
fprintf(f, "=%s=", Memory::get_c_str(fun->value.function.positional_arguments->identifiers[0]));
|
fprintf(f, "=%s=", Memory::get_c_str(fun->value.function.positional_arguments->symbols[0]->value.symbol.identifier));
|
||||||
for (int i = 1; i < fun->value.function.positional_arguments->next_index; ++i) {
|
for (int i = 1; i < fun->value.function.positional_arguments->next_index; ++i) {
|
||||||
fprintf(f, ", =%s=", Memory::get_c_str(fun->value.function.positional_arguments->identifiers[i]));
|
fprintf(f, ", =%s=", Memory::get_c_str(fun->value.function.positional_arguments->symbols[i]->value.symbol.identifier));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (fun->value.function.keyword_arguments->next_index != 0) {
|
if (fun->value.function.keyword_arguments->next_index != 0) {
|
||||||
if (!printed_at_least_some_args)
|
if (!printed_at_least_some_args)
|
||||||
fprintf(f, ":");
|
fprintf(f, ":");
|
||||||
fprintf(f, "\n - keyword :: ");
|
fprintf(f, "\n - keyword :: ");
|
||||||
fprintf(f, "=%s=", Memory::get_c_str(fun->value.function.keyword_arguments->identifiers[0]));
|
fprintf(f, "=%s=", Memory::get_c_str(fun->value.function.keyword_arguments->keywords[0]->value.symbol.identifier));
|
||||||
if (fun->value.function.keyword_arguments->values->data[0]) {
|
if (fun->value.function.keyword_arguments->values->data[0]) {
|
||||||
fprintf(f, " =(");
|
fprintf(f, " =(");
|
||||||
print(fun->value.function.keyword_arguments->values->data[0], true, f);
|
print(fun->value.function.keyword_arguments->values->data[0], true, f);
|
||||||
fprintf(f, ")=");
|
fprintf(f, ")=");
|
||||||
}
|
}
|
||||||
for (int i = 1; i < fun->value.function.keyword_arguments->next_index; ++i) {
|
for (int i = 1; i < fun->value.function.keyword_arguments->next_index; ++i) {
|
||||||
fprintf(f, ", =%s=", Memory::get_c_str(fun->value.function.keyword_arguments->identifiers[i]));
|
fprintf(f, ", =%s=", Memory::get_c_str(fun->value.function.keyword_arguments->keywords[i]->value.symbol.identifier));
|
||||||
if (fun->value.function.keyword_arguments->values->data[i]) {
|
if (fun->value.function.keyword_arguments->values->data[i]) {
|
||||||
fprintf(f, " =(");
|
fprintf(f, " =(");
|
||||||
print(fun->value.function.keyword_arguments->values->data[i], true, f);
|
print(fun->value.function.keyword_arguments->values->data[i], true, f);
|
||||||
|
|||||||
+6
-6
@@ -19,7 +19,7 @@ proc apply_arguments_to_function(Lisp_Object* arguments, Function* function) ->
|
|||||||
|
|
||||||
// NOTE(Felix): We have to copy all the arguments, otherwise
|
// NOTE(Felix): We have to copy all the arguments, otherwise
|
||||||
// we change the program code.
|
// we change the program code.
|
||||||
try_void sym = Memory::get_or_create_lisp_object_symbol(function->positional_arguments->identifiers[i]);
|
try_void sym = function->positional_arguments->symbols[i];
|
||||||
define_symbol(
|
define_symbol(
|
||||||
sym,
|
sym,
|
||||||
Memory::copy_lisp_object_except_pairs(arguments->value.pair.first),
|
Memory::copy_lisp_object_except_pairs(arguments->value.pair.first),
|
||||||
@@ -54,7 +54,7 @@ proc apply_arguments_to_function(Lisp_Object* arguments, Function* function) ->
|
|||||||
for (int i = 0; i < function->keyword_arguments->next_index; ++i) {
|
for (int i = 0; i < function->keyword_arguments->next_index; ++i) {
|
||||||
if (string_equal(
|
if (string_equal(
|
||||||
arguments->value.pair.first->value.symbol.identifier,
|
arguments->value.pair.first->value.symbol.identifier,
|
||||||
function->keyword_arguments->identifiers[i]))
|
function->keyword_arguments->keywords[i]->value.symbol.identifier))
|
||||||
{
|
{
|
||||||
accepted = true;
|
accepted = true;
|
||||||
break;
|
break;
|
||||||
@@ -127,7 +127,7 @@ proc apply_arguments_to_function(Lisp_Object* arguments, Function* function) ->
|
|||||||
proc check_keyword_args = [&]() -> void {
|
proc check_keyword_args = [&]() -> void {
|
||||||
// check if all necessary keywords have been read in
|
// check if all necessary keywords have been read in
|
||||||
for (int i = 0; i < function->keyword_arguments->next_index; ++i) {
|
for (int i = 0; i < function->keyword_arguments->next_index; ++i) {
|
||||||
String* defined_keyword = function->keyword_arguments->identifiers[i];
|
String* defined_keyword = function->keyword_arguments->keywords[i]->value.symbol.identifier;
|
||||||
bool was_set = false;
|
bool was_set = false;
|
||||||
for (int j = 0; j < read_in_keywords->next_index; ++j) {
|
for (int j = 0; j < read_in_keywords->next_index; ++j) {
|
||||||
if (string_equal(
|
if (string_equal(
|
||||||
@@ -231,7 +231,7 @@ proc parse_argument_list(Lisp_Object* arguments, Function* function) -> void {
|
|||||||
// okay wow we found an actual symbol
|
// okay wow we found an actual symbol
|
||||||
append_to_positional_argument_list(
|
append_to_positional_argument_list(
|
||||||
function->positional_arguments,
|
function->positional_arguments,
|
||||||
arguments->value.pair.first->value.symbol.identifier);
|
arguments->value.pair.first);
|
||||||
|
|
||||||
arguments = arguments->value.pair.rest;
|
arguments = arguments->value.pair.rest;
|
||||||
}
|
}
|
||||||
@@ -293,7 +293,7 @@ proc parse_argument_list(Lisp_Object* arguments, Function* function) -> void {
|
|||||||
Lisp_Object* ret;
|
Lisp_Object* ret;
|
||||||
try_void ret = eval_expr(next->value.pair.first, function->parent_environment);
|
try_void ret = eval_expr(next->value.pair.first, function->parent_environment);
|
||||||
append_to_keyword_argument_list(function->keyword_arguments,
|
append_to_keyword_argument_list(function->keyword_arguments,
|
||||||
arguments->value.pair.first->value.symbol.identifier,
|
arguments->value.pair.first,
|
||||||
ret);
|
ret);
|
||||||
arguments = next->value.pair.rest;
|
arguments = next->value.pair.rest;
|
||||||
} else {
|
} else {
|
||||||
@@ -303,7 +303,7 @@ proc parse_argument_list(Lisp_Object* arguments, Function* function) -> void {
|
|||||||
} else {
|
} else {
|
||||||
// No :defaults-to, so just add it to the list
|
// No :defaults-to, so just add it to the list
|
||||||
append_to_keyword_argument_list(function->keyword_arguments,
|
append_to_keyword_argument_list(function->keyword_arguments,
|
||||||
arguments->value.pair.first->value.symbol.identifier,
|
arguments->value.pair.first,
|
||||||
nullptr);
|
nullptr);
|
||||||
arguments = next;
|
arguments = next;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -26,23 +26,23 @@ proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char* {
|
|||||||
|
|
||||||
proc create_positional_argument_list(int initial_capacity) -> Positional_Arguments* {
|
proc create_positional_argument_list(int initial_capacity) -> Positional_Arguments* {
|
||||||
Positional_Arguments* ret = new(Positional_Arguments);
|
Positional_Arguments* ret = new(Positional_Arguments);
|
||||||
ret->identifiers = (String**)malloc(initial_capacity * sizeof(String*));
|
ret->symbols = (Lisp_Object**)malloc(initial_capacity * sizeof(Lisp_Object*));
|
||||||
ret->next_index = 0;
|
ret->next_index = 0;
|
||||||
ret->length = initial_capacity;
|
ret->length = initial_capacity;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
proc append_to_positional_argument_list(Positional_Arguments* args, String* identifier) -> void {
|
proc append_to_positional_argument_list(Positional_Arguments* args, Lisp_Object* sym) -> void {
|
||||||
if (args->next_index == args->length) {
|
if (args->next_index == args->length) {
|
||||||
args->length *= 2;
|
args->length *= 2;
|
||||||
args->identifiers = (String**)realloc(args->identifiers, args->length * sizeof(String*));
|
args->symbols = (Lisp_Object**)realloc(args->symbols, args->length * sizeof(Lisp_Object*));
|
||||||
}
|
}
|
||||||
args->identifiers[args->next_index++] = identifier;
|
args->symbols[args->next_index++] = sym;
|
||||||
}
|
}
|
||||||
|
|
||||||
proc create_keyword_argument_list(int initial_capacity) -> Keyword_Arguments* {
|
proc create_keyword_argument_list(int initial_capacity) -> Keyword_Arguments* {
|
||||||
Keyword_Arguments* ret = new(Keyword_Arguments);
|
Keyword_Arguments* ret = new(Keyword_Arguments);
|
||||||
ret->identifiers = (String**)malloc(initial_capacity * sizeof(String*));
|
ret->keywords = (Lisp_Object**)malloc(initial_capacity * sizeof(Lisp_Object*));
|
||||||
ret->values = create_Lisp_Object_array_list(initial_capacity);
|
ret->values = create_Lisp_Object_array_list(initial_capacity);
|
||||||
ret->next_index = 0;
|
ret->next_index = 0;
|
||||||
ret->length = initial_capacity;
|
ret->length = initial_capacity;
|
||||||
@@ -50,14 +50,14 @@ proc create_keyword_argument_list(int initial_capacity) -> Keyword_Arguments* {
|
|||||||
}
|
}
|
||||||
|
|
||||||
proc append_to_keyword_argument_list(Keyword_Arguments* args,
|
proc append_to_keyword_argument_list(Keyword_Arguments* args,
|
||||||
String* identifier,
|
Lisp_Object* keyword,
|
||||||
Lisp_Object* default_value) -> void
|
Lisp_Object* default_value) -> void
|
||||||
{
|
{
|
||||||
if (args->next_index == args->length) {
|
if (args->next_index == args->length) {
|
||||||
args->length *= 2;
|
args->length *= 2;
|
||||||
args->identifiers = (String**)realloc(args->identifiers, args->length * sizeof(String*));
|
args->keywords = (Lisp_Object**)realloc(args->keywords, args->length * sizeof(Lisp_Object*));
|
||||||
}
|
}
|
||||||
|
|
||||||
args->identifiers[args->next_index++] = identifier;
|
args->keywords[args->next_index++] = keyword;
|
||||||
append_to_array_list(args->values, default_value);
|
append_to_array_list(args->values, default_value);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-8
@@ -65,25 +65,19 @@ struct Keyword {
|
|||||||
u64 hash;
|
u64 hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
// struct Number {
|
|
||||||
// double value;
|
|
||||||
// };
|
|
||||||
|
|
||||||
struct Pair {
|
struct Pair {
|
||||||
Lisp_Object* first;
|
Lisp_Object* first;
|
||||||
Lisp_Object* rest;
|
Lisp_Object* rest;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Positional_Arguments {
|
struct Positional_Arguments {
|
||||||
// TODO(Felix) use Lisp_Object_symbols here instead, so we don't have
|
Lisp_Object** symbols; // Array of Pointers to Lisp_Object<Symbol>
|
||||||
// to convert them to strings and back to symbols
|
|
||||||
String** identifiers; // Array of Pointers to String
|
|
||||||
int next_index;
|
int next_index;
|
||||||
int length;
|
int length;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Keyword_Arguments {
|
struct Keyword_Arguments {
|
||||||
String** identifiers; // Array of Pointers to String
|
Lisp_Object** keywords; // Array of Pointers to Lisp_Object<Keyword>
|
||||||
// NOTE(Felix): values[i] will be nullptr if no defalut value was
|
// NOTE(Felix): values[i] will be nullptr if no defalut value was
|
||||||
// declared for key identifiers[i]
|
// declared for key identifiers[i]
|
||||||
Lisp_Object_Array_List* values;
|
Lisp_Object_Array_List* values;
|
||||||
|
|||||||
Reference in New Issue
Block a user