attributes addition to the unification algorithm, more guile-log functions get a…

attributes addition to the unification algorithm, more guile-log functions get a module attachement and can therefore get better treatment in prolog e.g. nice printout and read_term/write_term behavior
parent 74efc2b5
......@@ -7,11 +7,23 @@ Version 0.3
Version 0.4
* Fast and scalable vhash version of the assoc variable binding system, OK-
* Functional Dynamic Functions, OK
* Functional Hash implementation using vhashes, OK-,
* Program flow dynamic varible analytics OK-.
* An iso prolog implementation, OK.
* Delimeted continuations, OK.
* A catch and throw system. OK.
* Tabling or memoization features Not yet implemented
\ No newline at end of file
* Fast and scalable vhash version of the assoc variable binding system
* Functional Dynamic Functions
* Functional Hash implementation using vhashes
* Program flow dynamic varible analytics
* An iso prolog implementation
* Delimeted continuations
* A catch and throw system
Version 0.5, TODO
* Multi threading capabilities (all)
* Tablating (all)
* Circular datastructures (all)
* Refined index lookup datastructure (guile-log)
* Sandboxing (prolog)
* Improved documentation (all)
* Keyword objects (prolog)
* GC of prolog variables (all)
* GC of the (almost) unreachable tail of a stream (all)
* More general functional hashmps (all)
* Attributed variables (all)
\ No newline at end of file
......@@ -37,11 +37,12 @@
(define (usr-set! x v)
(fluid-set! *user-data* (vhash-cons x v (fluid-ref *user-data*))))
;; Silence the prolog compiler
(define conversation1 #t)
(define conversation2 #t)
(define loop #f)
(define finish #f)
(define leave #f)
(define loop #f)
(define finish #f)
(define leave #f)
(define solve #t)
(define output_and_more #t)
(define consult #t)
......
......@@ -534,13 +534,20 @@
(define <next> (lambda x x))
(define-syntax get-module
(lambda (x)
#`'#,(datum->syntax #'<next>
(module-name (current-module)))))
(define-syntax <define>
(syntax-rules ()
((_ (name . a) code ...)
(define (name <S> <Cut> <CC> . a)
(<with-guile-log> (<S> <Cut> <CC>)
(<and> code ...))))))
(define name
(letrec ((name (lambda (<S> <Cut> <CC> . a)
(<with-guile-log> (<S> <Cut> <CC>)
(<and> code ...)))))
(set-procedure-property! name 'module get-module)
name)))))
(define *depth* (make-fluid))
......
......@@ -34,6 +34,8 @@
#include "indexer/indexer.h"
SCM_API SCM gp_setup_namespace(SCM record, SCM nsfkn);
SCM_API SCM gp_setup_closed(SCM err);
SCM_API SCM gp_setup_attribute(SCM record, SCM fluid);
SCM_API SCM gp_set_closure_struct(SCM scm);
SCM_API SCM gp_gp(SCM scm);
......
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