unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* guile-log musings
@ 2015-01-14 14:59 Stefan Israelsson Tampe
  0 siblings, 0 replies; only message in thread
From: Stefan Israelsson Tampe @ 2015-01-14 14:59 UTC (permalink / raw)
  To: guile-devel, guile-user@gnu.org

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

Hi All,

I managed to get guile-log and guile-syntax-parse to work under guile-2.2.
So It looks
like it will be a smooth transition from here. I did have a few hiccups but
managed to
clean them out. No issues with guile-2.2. Master is looking good.

But most of my work recently have been on making it possible to run
swi-prolog code
and use the prolog module system. I can compile pretty advanced code quite
well
almost without no hiccups. So if you stay out of swi prolog internals in
your prolog
code guile-swi-prolog will be able to compile and parse it. mainly swi
prolog macros
 is partly implemented and needs some rework to use it. And getting prolog
macros to work is where I am atm.

I did a small test with swi prologs assoc data structure which is a
functional tree.
I also compared with an internal vhash that i'm using as an assoc looking
upp all
the 1 .. 10.000 numbers in an assoc data structure, here is the finding


Number of operations / second:

swi
     assoc.pl  100.000
guile-prolog (guile 2.0)
     assoc        10.000
     vhash      100.000
guile-log (guile 2.0)
     vhash    1.000.000

So although guile-log is 10x slower when you run the same code as in
prolog, using an
internal data structure, you gain 10x, and skipping the overhead of
guile-log's prolog
 implementation another 10x is gained.

So actually a prolog on scheme can be really fast, if you do it right.
Unfortunately
pure prolog is too slow atm, but it will be better as the prolog
implementation get's
 better and guile get's it code all the way to assembler.

Swi prolog has a lot of cool features, many of them are implemented. That
together
with a really good implementation of tablating and continuations makes
guile-log's
prolog unique.

Right now I'm trying to compile clpfd which is a finite domain solver,
something that one
just must have in order to call oneself a prolog environment.

Happy hacking!

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

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

only message in thread, other threads:[~2015-01-14 14:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-14 14:59 guile-log musings 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).