last commits

parent 0e40eb24
......@@ -25,16 +25,18 @@ Version 0.5,
current indentation level in python
- f-cons and similar tools for functional AST creation.
* Debug features
* Tabling or memoisation
* rational datastructures
* scheme Keyword objects and logic values
* Tabling or memoisation, experimental.
* rational datastructures, experimental.
* scheme Keyword objects and logic values.
* GC of prolog variables
* Attributed variables
* corouttines
* Attributed variables / only one success / experimental
* corouttines / only one success, experimental.
* tracing
* Better compilation error handling
* Support for namespaced operators in prolog (TODO)
* Support for X[a] and X{A} (TODO)
* Operators are now namespaced correctly.
* fast math and guile featured operators for numerics added.
Version 0.6, TODO
* GC of the (almost) unreachable tail of a stream (all)
......
......@@ -2108,6 +2108,9 @@ In prolog the module + function/arity combination identifies the actual predicat
@subsection @code{"string"} is not atoms.
The logic is currently, that to specifiy an atom with general characters we use as in is prolog @code{'atom-+-'}. But some functions returns a string and they will not be translated to atoms unless there is a module cast or at the final application of an string as an goal, where it will be translated to the current module. The reason for this complexity is to have non module objects or to allow for creation of module objects through construction of strings. We choose a composable method of ideoms that control the namespaces of prolog objects (se the modules chapter) and strings. Strings can be specified directly via @code{"string"}. Also a unification of an atom with a string will unify on the name of the string. This means that character handling in guile prolog becomes a smooth experience if one learn the ideoms.
@codesubsection unified namespace
Don't expect guile-log to separate names in evaluation expressions and goals, they are the same, so by defining a predicate log you will overwrite the normal log function. Also if you have a variable X in scope and use an atom 'X', then they will mean the same thing.
@subsection closed files
Closed files cannot be gotten through a general seek of streams.
......
testing flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_output
\ No newline at end of file
testing flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_outputtesting flush_output
\ No newline at end of file
......@@ -27,7 +27,8 @@
parse parse-no-clear
*current-file-parsing*
*translator* *whitespace*
setup-parser))
setup-parser
f-clear-body))
(define *translator* (make-fluid (lambda (x) x)))
(define *current-file-parsing* (make-fluid 'repl))
......
......@@ -310,7 +310,7 @@
(define @tag
(let* ((@ (f-tag "@"))
(@* (f-and (f-seq @ (f-not (f-reg "[<>=]"))) @))
(@* (f-and (f-not fop) @))
(@@ (f-tag "@@")))
(<p-lambda> (c)
(<let> ((n N) (m M))
......@@ -782,10 +782,11 @@
(lambda y #f)))
(define (prolog-tokens stx)
(let ((f (f* (f-or!
(let ((f (f* (f-clear-body
(f-or!
(f-seq ws (f-parse-1 stx expr)
ws (f-char #\.) ws)
ferr))))
ferr)))))
(<p-lambda> (c)
(.. (d) (f '()))
......
......@@ -163,14 +163,9 @@
#,@(map fget (get.. "," x)))))
((and atom (#:atom f _ _ n m))
(let ((str (symbol->string f)))
(if (and (> (string-length str) 0)
(char-upper-case? (string-ref str 0)))
str
(begin
(add-sym mod local? atom)
(-eval- (car (f->stxfkn mod f local? atom arg #f stx #f n m
'())))))))
(add-sym mod local? atom)
(-eval- (car (f->stxfkn mod f local? atom arg #f stx #f n m
'()))))
((#:number n . _)
(-eval- n))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment