unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Milestone in guile iso prolog reached
@ 2014-02-22 18:49 Stefan Israelsson Tampe
  0 siblings, 0 replies; only message in thread
From: Stefan Israelsson Tampe @ 2014-02-22 18:49 UTC (permalink / raw)
  To: guile-devel

[-- Attachment #1: Type: text/plain, Size: 2476 bytes --]

Hi,

I'm glad to announce that I've finished coding the interface to iso-prolog.
It sports
99.99% of the iso prolog interface and in some places in order to interop
with kanren
and scheme a step away from the standard.

* There is only one name space for predicates and expression funciton e.g.
definining log
as a new predicate will mean that "X is log(2)" will fail.

* Open closed functions cannot be gotten from ageneral primitive without an
actual handle

* f/1 f/2 etc is moot, we do not dispatch on arity in order to support
guile function mechanism with optional arguments etc.

* I did not implement seekable streams, I'll skip that to later


Features ontop of this
* Compiles to bytecode
* possibility to use lambdas and normal scheme closures in prolog code
  But the implementation is rough e.g.
  - tabling is not working with closures
  - writing a term and then read it will not work
  - asserta and assertz does not miz well with closures

* guile-iso-prolog mix well with the module system

* writing out terms and reading in terms works with the module system
  (this is actually dangerous right now using @@)

* possibility to reach out to scheme world anywhere in code.
---------------------------------------------------------------------------------------
If you want to be part of the development of guile-prolog do not hessitate
to
contact me om the mailing list.

The remaining issues until a relese are
1. Make it easier to compile guile-log
2. Fix bug in current vhash implementation of the assoc variable binding
list
3. Introduce a framework to work with dynamic features we will develop
constructs so
   that one do automatic cleanup in many cases and much more e.g. it will
be possible
   to say (with-dynamic-values my_dynamic-function goal), and if code
backtracks or succeeds
   the dynamic variable will be reseted to the initial value. There will be
a general
   framework that can handle every functional datastructure. Also for
efficiency a mark feature
   and a truncate feature will be added if needed to implement backtracking
of functional
   datastructures. The logic is that we will allow the datastructure to
mutate if it has not been
   marked. The logic is theoretically sound if you keep on using the
framework, like iso-prolog.
4. Open up a few guile-log features for iso-prolog like delimeted
continuations and
  interleaving
5. Document the new additions
5. Release a new version of guile-log + guile-prolog

Regards
Stefan

[-- Attachment #2: Type: text/html, Size: 3407 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-02-22 18:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-22 18:49 Milestone in guile iso prolog reached Stefan Israelsson Tampe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).