From 2c097fb85a22d24729475c951865095ef08d4b93 Mon Sep 17 00:00:00 2001 From: Felix Brendel Date: Fri, 15 Nov 2019 01:15:43 +0100 Subject: [PATCH] fixed failing test after "cleanup" --- bin/tests/import1.slime | 4 + bin/tests/import2.slime | 8 + bin/tests/singular_imports.slime | 4 +- build.sh | 8 +- manual/built-in-docs.org | 1072 +++++++++++++++--------------- src/main.cpp | 2 +- src/testing.cpp | 2 - 7 files changed, 555 insertions(+), 545 deletions(-) create mode 100644 bin/tests/import1.slime create mode 100644 bin/tests/import2.slime diff --git a/bin/tests/import1.slime b/bin/tests/import1.slime new file mode 100644 index 0000000..a8b3392 --- /dev/null +++ b/bin/tests/import1.slime @@ -0,0 +1,4 @@ +(define a 10) + +(define (get-a-1) + a) diff --git a/bin/tests/import2.slime b/bin/tests/import2.slime new file mode 100644 index 0000000..3d98dc7 --- /dev/null +++ b/bin/tests/import2.slime @@ -0,0 +1,8 @@ +(import "tests/import1.slime") + + +(define (set-a-2 s) + (set! a s)) + +(define (get-a-2) + a) diff --git a/bin/tests/singular_imports.slime b/bin/tests/singular_imports.slime index 74f8a4f..13a6e02 100644 --- a/bin/tests/singular_imports.slime +++ b/bin/tests/singular_imports.slime @@ -1,10 +1,10 @@ -(import "import1.slime") +(import "tests/import1.slime") (assert (= a 10)) (assert (= (get-a-1) 10)) -(import "import2.slime") +(import "tests/import2.slime") (assert (= a 10)) (assert (= (get-a-1) 10)) diff --git a/build.sh b/build.sh index 2208f0c..42de6eb 100755 --- a/build.sh +++ b/build.sh @@ -19,12 +19,12 @@ echo "----------------------" echo "" # time g++ -fpermissive src/main.cpp -g -o ./bin/slime --std=c++17 || exit 1 -# time clang++ -D_DEBUG -D_DONT_BREAK_ON_ERRORS \ - # src/main.cpp -g -o ./bin/slime --std=c++17 \ - # -I3rd/ || exit 1 -time clang++ -O3 -D_DONT_BREAK_ON_ERRORS \ +time clang++ -D_DEBUG -D_DONT_BREAK_ON_ERRORS \ src/main.cpp -g -o ./bin/slime --std=c++17 \ -I3rd/ || exit 1 +# time clang++ -O3 -D_DONT_BREAK_ON_ERRORS \ + # src/main.cpp -g -o ./bin/slime --std=c++17 \ + # -I3rd/ || exit 1 echo "" pushd ./bin > /dev/null diff --git a/manual/built-in-docs.org b/manual/built-in-docs.org index f4a1da6..131e18e 100644 --- a/manual/built-in-docs.org +++ b/manual/built-in-docs.org @@ -1,35 +1,32 @@ #+latex: \hrule #+html:
-* =continuation?= +* =begin= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =x= + - rest :: =args= - docu :: #+BEGIN: -Checks if the argument is a continuation. +TODO #+END: #+latex: \hrule #+html:
-* =reduce-binary= +* =concat-strings= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =fun=, =seq= + - rest :: =strings= - docu :: #+BEGIN: -Takes a function and a sequence as arguments and applies the -function to the argument sequence. reduce-binary applies the arguments -*pair-wise* which means it works with binary functions as compared to -[[=reduce=]]. +TODO #+END: #+latex: \hrule #+html:
-* === +* =/= :PROPERTIES: :UNNUMBERED: t :END: @@ -38,51 +35,82 @@ function to the argument sequence. reduce-binary applies the arguments - rest :: =args= - docu :: #+BEGIN: -Takes 0 or more arguments and returns =t= if all arguments are equal and =()= otherwise. +TODO #+END: #+latex: \hrule #+html:
-* =+= +* =type= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - rest :: =args= + - postitional :: =n= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =get-random-between= +* =pe= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:macro= + - arguments :: + - postitional :: =expr= + - docu :: none +#+latex: \hrule +#+html:
+* =zip= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:lambda= + - arguments :: + - postitional :: =l1=, =l2= + - docu :: none +#+latex: \hrule +#+html:
+* =helper= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:cfunction= + - arguments :: none. + - docu :: + #+BEGIN: + + #+END: +#+latex: \hrule +#+html:
+* =if= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =a=, =b= + - postitional :: =test=, =then_part=, =else_part= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =lambda= +* =apply= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =args= - - rest :: =body= + - postitional :: =fun=, =args= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =info= +* =delete-type!= :PROPERTIES: :UNNUMBERED: t :END: @@ -95,16 +123,30 @@ TODO #+END: #+latex: \hrule #+html:
-* =addr-of= +* =when= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:macro= - arguments :: - - postitional :: =var= + - postitional :: =condition= + - rest :: =body= - docu :: #+BEGIN: -TODO +Special form for when multiple actions should be done if a +condition is true. + +{{{example_start}}} +(when (not ()) + (print "Hello ") + (print "from ") + (print "when!")) + +(when () + (print "Goodbye ") + (print "World!")) +{{{example_end}}} + #+END: #+latex: \hrule #+html:
@@ -134,79 +176,72 @@ Checks if the argument is a symbol. #+END: #+latex: \hrule #+html:
-* =macro?= +* =set-cdr!= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =x= + - postitional :: =target=, =source= - docu :: #+BEGIN: -Checks if the argument is a macro. +TODO #+END: #+latex: \hrule #+html:
-* =procedure?= +* =break= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= - - arguments :: - - postitional :: =x= - - docu :: none + - type :: =:cfunction= + - arguments :: none. + - docu :: + #+BEGIN: +TODO + #+END: #+latex: \hrule #+html:
-* =pe= +* =lambda?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:lambda= - arguments :: - - postitional :: =expr= - - docu :: none + - postitional :: =x= + - docu :: + #+BEGIN: +Checks if the argument is a function. + #+END: #+latex: \hrule #+html:
-* =stream-null?= +* =extend2= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =s= - - docu :: none + - postitional :: =seq=, =elem= + - docu :: + #+BEGIN: +Extends a list with the given element, by putting it in +the (rest) of the last element of the sequence. + #+END: #+latex: \hrule #+html:
-* =construct-list= +* =length= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:lambda= - arguments :: - - rest :: =body= + - postitional :: =seq= - docu :: #+BEGIN: - -{{{example_start}}} -(construct-list - i <- '(1 2 3 4 5) - yield (* i i)) -{{{example_end}}} - -(construct-list - i <- '(1 2 3 4) - j <- '(A B) - yield (pair i j)) - -(construct-list - i <- '(1 2 3 4 5 6 7 8) - if (= 0 (% i 2)) - yield i) - +Returns the length of the given sequence. #+END: #+latex: \hrule #+html:
-* =/= +* =<= :PROPERTIES: :UNNUMBERED: t :END: @@ -219,61 +254,79 @@ TODO #+END: #+latex: \hrule #+html:
-* =define= +* =mutate= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =definee= - - keyword :: =doc= =("")= - - rest :: =body= + - postitional :: =target=, =source= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =vector-length= +* =set-car!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =v= + - postitional :: =target=, =source= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =quasiquote= +* =assert-types== :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =expr= + - rest :: =objs= + - docu :: none +#+latex: \hrule +#+html:
+* =reduce= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:lambda= + - arguments :: + - postitional :: =fun=, =seq= - docu :: #+BEGIN: -TODO +Takes a function and a sequence as arguments and applies the +function to the argument sequence. This only works correctly if the +given function accepts a variable amount of parameters. If your +funciton is limited to two arguments, use [[=reduce-binary=]] +instead. #+END: #+latex: \hrule #+html:
-* =or= +* =end= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - rest :: =args= + - postitional :: =seq= - docu :: #+BEGIN: -TODO +Returns the last pair in the sqeuence. + +{{{example_start}}} +(define a (list 1 2 3 4)) +(print (end a)) +{{{example_end}}} + #+END: #+latex: \hrule #+html:
-* =list= +* === :PROPERTIES: :UNNUMBERED: t :END: @@ -282,222 +335,229 @@ TODO - rest :: =args= - docu :: #+BEGIN: -TODO +Takes 0 or more arguments and returns =t= if all arguments are equal and =()= otherwise. #+END: #+latex: \hrule #+html:
-* =rest= +* =info= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =seq= + - postitional :: =n= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =type= +* =sublist-starting-at-index= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =n= + - postitional :: =seq=, =index= + - docu :: none +#+latex: \hrule +#+html:
+* =increment= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:lambda= + - arguments :: + - postitional :: =val= - docu :: #+BEGIN: -TODO +Adds one to the argument. #+END: #+latex: \hrule #+html:
-* =print= +* =*= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - keyword :: =sep= =(" ")=, =end= =("\n")= - - rest :: =things= + - rest :: =args= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =import= +* =define-syntax= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =f= + - postitional :: =form= + - keyword :: =doc= =("")= + - rest :: =body= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =symbol->keyword= +* =vector-ref= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =sym= + - postitional :: =vec=, =idx= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =generic-extend= +* =let= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:macro= - arguments :: - - postitional :: =args= + - postitional :: =bindings= - rest :: =body= - docu :: none #+latex: \hrule #+html:
-* =pair?= +* =define-module= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:macro= - arguments :: - - postitional :: =x= - - docu :: + - postitional :: =module-name= + - keyword :: =imports= =(())=, =exports= + - rest :: =body= + - docu :: none +#+latex: \hrule +#+html:
+* =built-in-function?= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:lambda= + - arguments :: + - postitional :: =x= + - docu :: #+BEGIN: -Checks if the argument is a pair. +Checks if the argument is a built-in function. #+END: #+latex: \hrule #+html:
-* =end= +* =vector-length= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =seq= + - postitional :: =v= - docu :: #+BEGIN: -Returns the last pair in the sqeuence. - -{{{example_start}}} -(define a (list 1 2 3 4)) -(print (end a)) -{{{example_end}}} - +TODO #+END: #+latex: \hrule #+html:
-* =decrement= +* =print= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =val= + - keyword :: =sep= =(" ")=, =end= =("\n")= + - rest :: =things= - docu :: #+BEGIN: -Subtracts one from the argument. +TODO #+END: #+latex: \hrule #+html:
-* =range-while= +* =symbol->keyword= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - keyword :: =from= =(0)=, =to= + - postitional :: =sym= - docu :: #+BEGIN: -Returns a sequence of numbers starting with the number defined -by the key 'from' and ends with the number defined in 'to'. +TODO #+END: #+latex: \hrule #+html:
-* =zip= +* =stream-null?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =l1=, =l2= + - postitional :: =s= - docu :: none #+latex: \hrule #+html:
-* =<= +* =not= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - rest :: =args= + - postitional :: =test= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =assert= +* =generate-docs= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =test= + - postitional :: =file_name= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =mutate= +* =hm/get-or-nil= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =target=, =source= - - docu :: - #+BEGIN: -TODO - #+END: + - postitional :: =hm=, =key= + - docu :: none #+latex: \hrule #+html:
-* =set-car!= +* =the-empty-stream= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= - - arguments :: - - postitional :: =target=, =source= - - docu :: - #+BEGIN: -TODO - #+END: + - type :: =:constructor= + - value :: =()= + - docu :: none #+latex: \hrule #+html:
-* =eval= +* =force= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =expr= - - docu :: - #+BEGIN: -TODO - #+END: + - postitional :: =promise= + - docu :: none #+latex: \hrule #+html:
-* =vector= +* =>== :PROPERTIES: :UNNUMBERED: t :END: @@ -510,54 +570,59 @@ TODO #+END: #+latex: \hrule #+html:
-* =memstat= +* =hash-map-get= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - - arguments :: none. + - arguments :: + - postitional :: =hm=, =key= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =symbol->string= +* =exit= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =sym= + - keyword :: =code= =(0)= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =cond= +* =hm/get= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:cfunction= - arguments :: - - rest :: =clauses= - - docu :: none + - postitional :: =hm=, =key= + - docu :: + #+BEGIN: +TODO + #+END: #+latex: \hrule #+html:
-* =define-module= +* =n-times= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:macro= - arguments :: - - postitional :: =module-name= - - keyword :: =imports= =(())=, =exports= - - rest :: =body= - - docu :: none + - postitional :: =times=, =action= + - docu :: + #+BEGIN: +Executes action times times. + #+END: #+latex: \hrule #+html:
-* =null?= +* =string?= :PROPERTIES: :UNNUMBERED: t :END: @@ -566,107 +631,111 @@ TODO - postitional :: =x= - docu :: #+BEGIN: -Checks if the argument is =nil=. +Checks if the argument is a string. #+END: #+latex: \hrule #+html:
-* =built-in-function?= +* =vector-set!= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =x= + - postitional :: =vec=, =idx=, =val= - docu :: #+BEGIN: -Checks if the argument is a built-in function. +TODO #+END: #+latex: \hrule #+html:
-* =list-without-index= +* =pair= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =seq=, =index= - - docu :: none + - postitional :: =car=, =cdr= + - docu :: + #+BEGIN: +TODO + #+END: #+latex: \hrule #+html:
-* =reduce= +* =mem-reset= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= - - arguments :: - - postitional :: =fun=, =seq= + - type :: =:cfunction= + - arguments :: none. - docu :: #+BEGIN: -Takes a function and a sequence as arguments and applies the -function to the argument sequence. This only works correctly if the -given function accepts a variable amount of parameters. If your -funciton is limited to two arguments, use [[=reduce-binary=]] -instead. +TODO #+END: #+latex: \hrule #+html:
-* =case= +* =delay= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:macro= - arguments :: - - postitional :: =var= - - rest :: =clauses= + - postitional :: =expr= - docu :: none #+latex: \hrule #+html:
-* =-= +* =define-typed= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:macro= - arguments :: - - rest :: =args= - - docu :: - #+BEGIN: -TODO - #+END: + - postitional :: =args= + - rest :: =body= + - docu :: none #+latex: \hrule #+html:
-* =%= +* =generic-extend= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:macro= - arguments :: - - postitional :: =a=, =b= - - docu :: - #+BEGIN: -TODO - #+END: + - postitional :: =args= + - rest :: =body= + - docu :: none #+latex: \hrule #+html:
-* =error= +* =range-while= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =type=, =message= + - keyword :: =from= =(0)=, =to= - docu :: #+BEGIN: -TODO +Returns a sequence of numbers starting with the number defined +by the key 'from' and ends with the number defined in 'to'. #+END: #+latex: \hrule #+html:
-* =hm/set!= +* =unzip= + :PROPERTIES: + :UNNUMBERED: t + :END: + - type :: =:lambda= + - arguments :: + - postitional :: =lists= + - docu :: none +#+latex: \hrule +#+html:
+* =-= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =hm=, =key=, =value= + - rest :: =args= - docu :: #+BEGIN: TODO @@ -687,59 +756,53 @@ the (rest) of the last element of the sequence. #+END: #+latex: \hrule #+html:
-* =lambda?= +* =hash-map-set!= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =x= + - postitional :: =hm=, =key=, =value= - docu :: #+BEGIN: -Checks if the argument is a function. +TODO #+END: #+latex: \hrule #+html:
-* =extend2= +* =null?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =seq=, =elem= + - postitional :: =x= - docu :: #+BEGIN: -Extends a list with the given element, by putting it in -the (rest) of the last element of the sequence. +Checks if the argument is =nil=. #+END: #+latex: \hrule #+html:
-* =length= +* =list-without-index= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =seq= - - docu :: - #+BEGIN: -Returns the length of the given sequence. - #+END: + - postitional :: =seq=, =index= + - docu :: none #+latex: \hrule #+html:
-* =helper= +* =enumerate= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= - - arguments :: none. - - docu :: - #+BEGIN: - - #+END: + - type :: =:lambda= + - arguments :: + - postitional :: =seq= + - docu :: none #+latex: \hrule #+html:
-* =>= +* =or= :PROPERTIES: :UNNUMBERED: t :END: @@ -752,78 +815,91 @@ TODO #+END: #+latex: \hrule #+html:
-* =**= +* =rest= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =a=, =b= + - postitional :: =seq= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =set!= +* =construct-list= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:macro= - arguments :: - - postitional :: =sym=, =val= + - rest :: =body= - docu :: #+BEGIN: -TODO + +{{{example_start}}} +(construct-list + i <- '(1 2 3 4 5) + yield (* i i)) +{{{example_end}}} + +(construct-list + i <- '(1 2 3 4) + j <- '(A B) + yield (pair i j)) + +(construct-list + i <- '(1 2 3 4 5 6 7 8) + if (= 0 (% i 2)) + yield i) + #+END: #+latex: \hrule #+html:
-* =if= +* =types=?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =test=, =then_part=, =else_part= - - docu :: - #+BEGIN: -TODO - #+END: + - rest :: =objs= + - docu :: none #+latex: \hrule #+html:
-* =quote= +* =special-lambda?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =datum= + - postitional :: =x= - docu :: #+BEGIN: -TODO +Checks if the argument is a special-lambda. #+END: #+latex: \hrule #+html:
-* =not= +* =>= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =test= + - rest :: =args= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =apply= +* =set!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =fun=, =args= + - postitional :: =sym=, =val= - docu :: #+BEGIN: TODO @@ -855,19 +931,6 @@ TODO #+END: #+latex: \hrule #+html:
-* =delete-type!= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:cfunction= - - arguments :: - - postitional :: =n= - - docu :: - #+BEGIN: -TODO - #+END: -#+latex: \hrule -#+html:
* =show= :PROPERTIES: :UNNUMBERED: t @@ -881,62 +944,30 @@ TODO #+END: #+latex: \hrule #+html:
-* =generate-docs= +* =member?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =file_name= - - docu :: - #+BEGIN: -TODO - #+END: + - postitional :: =elem=, =seq= + - docu :: none #+latex: \hrule #+html:
-* =load= +* =read= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =file= + - keyword :: =prompt= =(">")= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =hm/get-or-nil= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:lambda= - - arguments :: - - postitional :: =hm=, =key= - - docu :: none -#+latex: \hrule -#+html:
-* =the-empty-stream= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:constructor= - - value :: =()= - - docu :: none -#+latex: \hrule -#+html:
-* =force= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:lambda= - - arguments :: - - postitional :: =promise= - - docu :: none -#+latex: \hrule -#+html:
-* =when= +* =unless= :PROPERTIES: :UNNUMBERED: t :END: @@ -947,739 +978,708 @@ TODO - docu :: #+BEGIN: Special form for when multiple actions should be done if a -condition is true. - -{{{example_start}}} -(when (not ()) - (print "Hello ") - (print "from ") - (print "when!")) - -(when () - (print "Goodbye ") - (print "World!")) -{{{example_end}}} - +condition is false. #+END: #+latex: \hrule #+html:
-* =member?= +* =eval= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =elem=, =seq= - - docu :: none + - postitional :: =expr= + - docu :: + #+BEGIN: +TODO + #+END: #+latex: \hrule #+html:
-* =number?= +* =vector= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =x= + - rest :: =args= - docu :: #+BEGIN: -Checks if the argument is a number. +TODO #+END: #+latex: \hrule #+html:
-* =sublist-starting-at-index= +* =symbol->string= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =seq=, =index= - - docu :: none + - postitional :: =sym= + - docu :: + #+BEGIN: +TODO + #+END: #+latex: \hrule #+html:
-* =increment= +* =keyword?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =val= + - postitional :: =x= - docu :: #+BEGIN: -Adds one to the argument. +Checks if the argument is a keyword. #+END: #+latex: \hrule #+html:
-* =delay= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:macro= - - arguments :: - - postitional :: =expr= - - docu :: none -#+latex: \hrule -#+html:
-* =define-typed= +* =range= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:lambda= - arguments :: - - postitional :: =args= - - rest :: =body= - - docu :: none + - keyword :: =from= =(0)=, =to= + - docu :: + #+BEGIN: +Returns a sequence of numbers starting with the number defined +by the key =from= and ends with the number defined in =to=. + #+END: #+latex: \hrule #+html:
-* =<== +* =hash-map-delete!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - rest :: =args= + - postitional :: =hm=, =key= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =bound?= +* =mytry= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =var= + - postitional :: =try_part=, =catch_part= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =vector-set!= +* =string->symbol= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =vec=, =idx=, =val= + - postitional :: =str= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =hash-map-delete!= +* =pair?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =hm=, =key= + - postitional :: =x= - docu :: #+BEGIN: -TODO +Checks if the argument is a pair. #+END: #+latex: \hrule #+html:
-* =pair= +* =filter= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =car=, =cdr= + - postitional :: =fun=, =seq= - docu :: #+BEGIN: -TODO +Takes a function and a sequence as arguments and applies the +function to every value in the sequence. If the result of that +funciton application returns a truthy value, the original value is +added to a list, which in the end is returned. #+END: #+latex: \hrule #+html:
-* =set-type!= +* =+= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =node=, =new_type= + - rest :: =args= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =mem-reset= +* =lambda= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - - arguments :: none. + - arguments :: + - postitional :: =args= + - rest :: =body= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =mytry= +* =number?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =try_part=, =catch_part= + - postitional :: =x= - docu :: #+BEGIN: -TODO +Checks if the argument is a number. #+END: #+latex: \hrule #+html:
-* =string->symbol= +* =error= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =str= + - postitional :: =type=, =message= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =unzip= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:lambda= - - arguments :: - - postitional :: =lists= - - docu :: none -#+latex: \hrule -#+html:
-* =types=?= +* =case= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:macro= - arguments :: - - rest :: =objs= + - postitional :: =var= + - rest :: =clauses= - docu :: none #+latex: \hrule #+html:
-* =special-lambda?= - :PROPERTIES: - :UNNUMBERED: t - :END: - - type :: =:lambda= - - arguments :: - - postitional :: =x= - - docu :: - #+BEGIN: -Checks if the argument is a special-lambda. - #+END: -#+latex: \hrule -#+html:
-* =last= +* =and= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =seq= + - rest :: =args= - docu :: #+BEGIN: -Returns the (first) of the last (pair) of the given sequence. - -{{{example_start}}} -(define a (list 1 2 3 4)) -(print (last a)) -{{{example_end}}} - +TODO #+END: #+latex: \hrule #+html:
-* =append= +* =copy= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =seq=, =elem= + - postitional :: =obj= - docu :: #+BEGIN: -Appends an element to a sequence, by extendeing the list -with (pair elem nil). +TODO #+END: #+latex: \hrule #+html:
-* =filter= +* =define= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =fun=, =seq= + - postitional :: =definee= + - keyword :: =doc= =("")= + - rest :: =body= - docu :: #+BEGIN: -Takes a function and a sequence as arguments and applies the -function to every value in the sequence. If the result of that -funciton application returns a truthy value, the original value is -added to a list, which in the end is returned. +TODO #+END: #+latex: \hrule #+html:
-* =*= +* =quasiquote= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - rest :: =args= + - postitional :: =expr= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =define-syntax= +* =list= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =form= - - keyword :: =doc= =("")= - - rest :: =body= + - rest :: =args= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =vector-ref= +* =import= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =vec=, =idx= + - postitional :: =f= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =and= +* =last= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - rest :: =args= + - postitional :: =seq= - docu :: #+BEGIN: -TODO +Returns the (first) of the last (pair) of the given sequence. + +{{{example_start}}} +(define a (list 1 2 3 4)) +(print (last a)) +{{{example_end}}} + #+END: #+latex: \hrule #+html:
-* =begin= +* =append= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - rest :: =args= + - postitional :: =seq=, =elem= - docu :: #+BEGIN: -TODO +Appends an element to a sequence, by extendeing the list +with (pair elem nil). #+END: #+latex: \hrule #+html:
-* =hash-map-set!= +* =**= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =hm=, =key=, =value= + - postitional :: =a=, =b= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =copy= +* =quote= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =obj= + - postitional :: =datum= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =concat-strings= +* =load= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - rest :: =strings= + - postitional :: =file= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =let= +* =macro?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:lambda= - arguments :: - - postitional :: =bindings= - - rest :: =body= - - docu :: none + - postitional :: =x= + - docu :: + #+BEGIN: +Checks if the argument is a macro. + #+END: #+latex: \hrule #+html:
-* =assert-types== +* =procedure?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - rest :: =objs= + - postitional :: =x= - docu :: none #+latex: \hrule #+html:
-* =keyword?= +* =test= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - postitional :: =x= + - keyword :: =k= =(101)= - docu :: #+BEGIN: -Checks if the argument is a keyword. + #+END: #+latex: \hrule #+html:
-* =string?= +* =reduce-binary= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =x= + - postitional :: =fun=, =seq= - docu :: #+BEGIN: -Checks if the argument is a string. +Takes a function and a sequence as arguments and applies the +function to the argument sequence. reduce-binary applies the arguments +*pair-wise* which means it works with binary functions as compared to +[[=reduce=]]. #+END: #+latex: \hrule #+html:
-* =range= +* =assert= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:cfunction= - arguments :: - - keyword :: =from= =(0)=, =to= + - postitional :: =test= - docu :: #+BEGIN: -Returns a sequence of numbers starting with the number defined -by the key =from= and ends with the number defined in =to=. +TODO #+END: #+latex: \hrule #+html:
-* =map= +* =memstat= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= - - arguments :: - - postitional :: =fun=, =seq= + - type :: =:cfunction= + - arguments :: none. - docu :: #+BEGIN: -Takes a function and a sequence as arguments and returns a new -sequence which contains the results of using the first sequences -elemens as argument to that function. +TODO #+END: #+latex: \hrule #+html:
-* =enumerate= +* =cond= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:lambda= + - type :: =:macro= - arguments :: - - postitional :: =seq= + - rest :: =clauses= - docu :: none #+latex: \hrule #+html:
-* =unless= +* =map= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:lambda= - arguments :: - - postitional :: =condition= - - rest :: =body= + - postitional :: =fun=, =seq= - docu :: #+BEGIN: -Special form for when multiple actions should be done if a -condition is false. +Takes a function and a sequence as arguments and returns a new +sequence which contains the results of using the first sequences +elemens as argument to that function. #+END: #+latex: \hrule #+html:
-* =n-times= +* =<== :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:macro= + - type :: =:cfunction= - arguments :: - - postitional :: =times=, =action= + - rest :: =args= - docu :: #+BEGIN: -Executes action times times. +TODO #+END: #+latex: \hrule #+html:
-* =test= +* =bound?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - keyword :: =k= =(101)= + - postitional :: =var= - docu :: #+BEGIN: - +TODO #+END: #+latex: \hrule #+html:
-* =>== +* =set-type!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - rest :: =args= + - postitional :: =node=, =new_type= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =set-cdr!= +* =decrement= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =target=, =source= + - postitional :: =val= - docu :: #+BEGIN: -TODO +Subtracts one from the argument. #+END: #+latex: \hrule #+html:
-* =hash-map-get= +* =get-random-between= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - postitional :: =hm=, =key= + - postitional :: =a=, =b= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =read= +* =addr-of= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - keyword :: =prompt= =(">")= + - postitional :: =var= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =exit= +* =%= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - arguments :: - - keyword :: =code= =(0)= + - postitional :: =a=, =b= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =break= +* =hm/set!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:cfunction= - - arguments :: none. + - arguments :: + - postitional :: =hm=, =key=, =value= - docu :: #+BEGIN: TODO #+END: #+latex: \hrule #+html:
-* =hm/get= +* =continuation?= :PROPERTIES: :UNNUMBERED: t :END: - - type :: =:cfunction= + - type :: =:lambda= - arguments :: - - postitional :: =hm=, =key= + - postitional :: =x= - docu :: #+BEGIN: -TODO +Checks if the argument is a continuation. #+END: #+latex: \hrule #+html:
-* =ds::alist::make= +* =ds::alist::get= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - - arguments :: none. + - arguments :: + - postitional :: =alist=, =key= - docu :: none #+latex: \hrule #+html:
-* =ds::alist::print= +* =ds::alist::key-exists?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =alist= + - postitional :: =alist=, =key= - docu :: none #+latex: \hrule #+html:
-* =ds::alist::get= +* =ds::alist::set!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =alist=, =key= + - postitional :: =alist=, =key=, =value= - docu :: none #+latex: \hrule #+html:
-* =ds::alist::find= +* =ds::plist::make= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - - arguments :: - - postitional :: =alist=, =key= + - arguments :: none. - docu :: none #+latex: \hrule #+html:
-* =ds::alist::key-exists?= +* =ds::plist::get= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =alist=, =key= + - postitional :: =plist=, =prop= - docu :: none #+latex: \hrule #+html:
-* =ds::alist::remove!= +* =ds::plist::prop-exists?= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =alist=, =key= + - postitional :: =plist=, =prop= - docu :: none #+latex: \hrule #+html:
-* =ds::alist::set!= +* =ds::plist::set!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =alist=, =key=, =value= + - postitional :: =plist=, =prop=, =value= - docu :: none #+latex: \hrule #+html:
-* =ds::alist::set-overwrite!= +* =ds::alist::make= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - - arguments :: - - postitional :: =alist=, =key=, =value= + - arguments :: none. - docu :: none #+latex: \hrule #+html:
-* =ds::plist::make= +* =ds::alist::print= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - - arguments :: none. + - arguments :: + - postitional :: =alist= - docu :: none #+latex: \hrule #+html:
-* =ds::plist::print= +* =ds::alist::find= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =plist= + - postitional :: =alist=, =key= - docu :: none #+latex: \hrule #+html:
-* =ds::plist::get= +* =ds::alist::remove!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =plist=, =prop= + - postitional :: =alist=, =key= - docu :: none #+latex: \hrule #+html:
-* =ds::plist::find= +* =ds::alist::set-overwrite!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =plist=, =prop= + - postitional :: =alist=, =key=, =value= - docu :: none #+latex: \hrule #+html:
-* =ds::plist::prop-exists?= +* =ds::plist::print= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =plist=, =prop= + - postitional :: =plist= - docu :: none #+latex: \hrule #+html:
-* =ds::plist::remove!= +* =ds::plist::find= :PROPERTIES: :UNNUMBERED: t :END: @@ -1689,13 +1689,13 @@ TODO - docu :: none #+latex: \hrule #+html:
-* =ds::plist::set!= +* =ds::plist::remove!= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =plist=, =prop=, =value= + - postitional :: =plist=, =prop= - docu :: none #+latex: \hrule #+html:
@@ -1729,63 +1729,63 @@ TODO - docu :: none #+latex: \hrule #+html:
-* =interpolation::lerper= +* =interpolation::stepped-lerper= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =a=, =b= + - postitional :: =a=, =b=, =#steps= - docu :: none #+latex: \hrule #+html:
-* =interpolation::stepped-lerper= +* =interpolation::point-lerper= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =a=, =b=, =#steps= + - postitional :: =p1=, =p2= - docu :: none #+latex: \hrule #+html:
-* =interpolation::point-lerp= +* =interpolation::bezierer2= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =p1=, =p2=, =t= + - postitional :: =p1=, =p2=, =p3= - docu :: none #+latex: \hrule #+html:
-* =interpolation::point-lerper= +* =interpolation::lerper= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =p1=, =p2= + - postitional :: =a=, =b= - docu :: none #+latex: \hrule #+html:
-* =interpolation::bezier2= +* =interpolation::point-lerp= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =p1=, =p2=, =p3=, =t= + - postitional :: =p1=, =p2=, =t= - docu :: none #+latex: \hrule #+html:
-* =interpolation::bezierer2= +* =interpolation::bezier2= :PROPERTIES: :UNNUMBERED: t :END: - type :: =:lambda= - arguments :: - - postitional :: =p1=, =p2=, =p3= + - postitional :: =p1=, =p2=, =p3=, =t= - docu :: none #+latex: \hrule #+html:
diff --git a/src/main.cpp b/src/main.cpp index 1601f7e..fbb0be9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,7 +4,7 @@ int main(int argc, char* argv[]) { if (argc > 1) { if (Slime::string_equal(argv[1], "--run-tests")) { int res = Slime::run_all_tests(); - // Slime::built_in_load(Slime::Memory::create_string("generate-docs.slime")); + Slime::built_in_load(Slime::Memory::create_string("generate-docs.slime")); Slime::Memory::free_everything(); #ifdef _MSC_VER _CrtDumpMemoryLeaks(); diff --git a/src/testing.cpp b/src/testing.cpp index bf77dc4..24b13de 100644 --- a/src/testing.cpp +++ b/src/testing.cpp @@ -649,8 +649,6 @@ proc run_all_tests() -> bool { invoke_test_script("hashmaps"); invoke_test_script("singular_imports"); - // // Memory::print_status(); - return result; }