Hi,
I have been walking alot outside and thinking.
The question is what can be special with hammering prolog
into scheme. And one thing come to my mind
Continuations
Let's think about continuations. It's all about storing the state associated
with a call so that we can replay it's evaluation.
Hi,
I just want to mention that I really wan't input from more people. Therefore
I highlighted the postpone facility I made on Advogato to see if I can get
any reactions. I've tried on the #prolog list as well and got some clues from
them. But as far as I understand the postpone facility is
On Saturday, August 28, 2010 07:26:06 pm you wrote:
On Sun 15 Aug 2010 06:26, Stefan Israelsson Tampe stefan.ta...@spray.se
writes:
Probably for some interesting applications there will be a hughe
demand on memory. And Keeping the redo tree slim can have a great cost
benefit. I believe
Hi,
I've hacked on extension on ice-9/match for making modular matching possible
with a reasonable interface. Here is an example,
;; new version of match with modular matching abatractions see
;; http://gitorious.org/guile-unify/guile-
unify/blobs/master/module/ice-9/match-abs.scm
(use-modules
On Tuesday, August 31, 2010 12:55:15 am Ludovic Courtès wrote:
Hmm, sorry, I don’t understand what you mean here. Can you come up with
a simpler example?
What does ‘’ mean? Is there a connection between occurrences of
‘op’ in patterns and the fact that the procedure is bound to ‘op’?
On Tuesday, August 31, 2010 04:42:36 pm Ludovic Courtès wrote:
BTW I added a small section in the manual describing (ice-9 match):
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=358663caf54994e2b7d0
c2eb1dd8ce8794116971
Comments improvements welcome!
Thanks,
Ludo’.
I agree
Hi,
I noticed that sending a fixnum 6bytes long to guile returned a
truncated fixnum of 4 of 4 bytes. I guess that this would not break
the numeriks but it looks like we are wasting space here and/or clock
cycles.
The suspicius part is line 66 in numbers.h
#define SCM_MOST_POSITIVE_FIXNUM
On Thursday, September 02, 2010 05:59:59 pm Ludovic Courtès wrote:
Hi Stefan,
Stefan Israelsson Tampe stefan.ta...@spray.se writes:
Anyway consider a list [a a b b] and let a be a function so that
(a [a a b b]) - (cons [a a] [b b])
(b [b b]) - (cons [b b] [])
e.g. a macthes
On Thursday, September 02, 2010 05:59:59 pm Ludovic Courtès wrote:
Hmm. So IIUC, the sub-pattern ‘( a a.r1)’ matches anything that
is a match according to custom matcher ‘a’, and binds the sub-match
‘r1’ of ‘a’ to ‘a.r1’, right?
Hmm maybe need to clarify
a.r1 is just a variable name a is a
Hi,
While eating the dogfood of the new match macro I come across a bug
e.g, this does not work!
(match '(a b) ((and x (a ... b)) a))
But using the attached patch, it works!!
Note. This should be interesting for upstreams maintainers.
/Regards
Stefan
diff --git a/module/ice-9/match.scm
On Saturday, September 04, 2010 02:44:49 pm Ludovic Courtès wrote:
Hello!
Stefan Israelsson Tampe stefan.ta...@spray.se writes:
While eating the dogfood of the new match macro I come across a bug
e.g, this does not work!
(match '(a b) ((and x (a ... b)) a))
But:
scheme@(guile
On Saturday, September 04, 2010 02:44:49 pm Ludovic Courtès wrote:
Hello!
Stefan Israelsson Tampe stefan.ta...@spray.se writes:
While eating the dogfood of the new match macro I come across a bug
e.g, this does not work!
(match '(a b) ((and x (a ... b)) a))
But:
scheme@(guile
On Saturday, September 04, 2010 05:00:31 pm Ludovic Courtès wrote:
Hi Stefan!
Stefan Israelsson Tampe stefan.ta...@spray.se writes:
How true, It's just that the code we took has an extension with a Bug in
it. It was intended to work for that case as well.
From match.upstream.scm
for guile (Stefan Israelsson Tampe)
;; Modifying upstream version (match.upstream.scm) by Alex Shinn
;; 2010/08/29 - match abstractions and unquote added
(define-module (ice-9 match-phd)
#:use-module (srfi srfi-9)
#:export (match-define match-let* match-let match-letrec match-lambda
Hi Alex,
On Monday, September 13, 2010 04:32:13 am Alex Shinn wrote:
On Fri, Sep 10, 2010 at 6:15 AM, Stefan Israelsson Tampe
stefan.ta...@spray.se wrote:
I just wanted to share some ideas that come to my mind to churn the
prolog into something more useful.
Have you played with schelog
Hi,
I got the prolog parser reporting syntax errors for prolog programs.
It's soo nice to have an small analysis and a position where the error
is located. With this I can take on writing more complex prolog programs. An
example that is in the pipe is a FOL (first order logic)
theorem solver,
What are your plans for your Prolog compiler, in terms of releases,
merges, and whatnot? :-)
This is on my list before I think that it will be merged/released a beta
1.
I'm in the process to replace the matchers with modified Shinn. The main
problem using prompts is that I don't get tail
Hi,
I think it's good to discuss what I do with the prolog and unifer. So this
is what I've been doing.
1. Incorporate a theorem prover for extension and playing
2. Kanren like hygienic macro package
3. Make the c-code variables printable and hence much less segfaults at bt :-)
e.g. robustify
On Thursday, November 04, 2010 12:43:54 am Ludovic Courtès wrote:
Hi Stefan,
Lots of stuff here, which is why I took the time to read it. :-)
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
1. The theorem prover (leanCop) is a nice exercise
[...]
2. Kanren is a nice way
On Friday, November 05, 2010 09:53:15 pm Noah Lavine wrote:
Hello,
I was just reading module/language/tree-il/compile-glil.scm, and I
noticed it used a construct called 'record-case'. It looked neat, but
I didn't see documentation for it in any of the obvious places in the
manual (the
Ok, for the c generator, here are some code attached. I would
just study this there is bit's still missing and you need to wait for me to
dig up the details. My point is to suggest ideas for what can be done.
I don't assume that this is it. But it's a nice playing ground.
So it is a hack, here
On Thursday, November 04, 2010 03:40:09 am Noah Lavine wrote:
Hello all,
Not to derail the thread of discussion, but I've had an idea for a
feature bouncing around that I think might hook into this. I think
that Guile should offer optional static checking - not just of types,
but of
Hi,
Ok, here is a first step to analyse code.
Note,
attached to the mail is a modul /put it at a suitable place and fixup the
reference for the module. Then use e.g. (check '(if 1 1 1)) and you will get
the output you see further down in the email.
We will assume that local variables in the
On Saturday, November 20, 2010 12:11:16 am Ludovic Courtès wrote:
Hi,
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
#include cfkn.h
#define LOCAL_REF(i) fp[i]
#define LOCAL_SET(i,v) fp[i] = (v)
void cfkn3676(SCM *fp, SCM **spp)
{
/* setup of environment
Hi Noah,
On Wednesday, November 24, 2010 02:54:37 am Noah Lavine wrote:
Hello,
That might make sense. The documentation certainly looks interesting.
What I'm thinking of is like racket contracts, but with the idea of
trusted modules, which might involve static checking. For instance,
if
Hi,
I'm very used to take the standart output and pipe it to grep and friends.
So I searched for this feature and I think scsh is the correct way to make
this happen. But it have been bitrotted.
So I've hacked the sorces to.
Use guile syntax-define and cut out defmacro and friends
Use guile
On Thursday, November 25, 2010 10:17:44 pm Ludovic Courtès wrote:
+1 for reviving Guile-SCSH!
Ludo’.
yay,
Well all this stems from me littering development code with printf or pk's
or pretty-pk's and then add tags to it. Then I usually work in bash and
mongle the output at my will. So now I
Ok, say that one want to execute a scheme function, f, in a child process
and then exit, somthing like this is used in scsh,
first fork and if in chile
(f)
(exit 0)
--
Now cause we are in dubug context in the repl, we get this
Throw to key `quit' with args `(0)'.
Entering a
On Sunday, November 28, 2010 11:30:05 pm Ludovic Courtès wrote:
Hi!
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
Anyhow, I just checked in the current scsh in module/scsh in
http://gitorious.org/guile-unify if there is a package you would like
thean give me a hint.
How
Hi Jao,
You can send it to me, that's fine. I'll put a repo on gitorious and
add that code there together with my suggested alternatives.
Regards
Stefan
On Monday, November 29, 2010 12:24:28 am Jose A. Ortega Ruiz wrote:
On Mon, Nov 29 2010, Stefan Israelsson Tampe wrote:
[...]
I
Ok I put the code in a repo of it's own.
So now this thingie is isolated.
I don't now what to do about the licesning, I kept
the COPYING as I should though.
To use it, store it in a %load-path directory
try
(use-modules (scsh syntax))
and then
(run (| (begin (pk 'wow) (pk 'vov)) (grep o)))
Hi,
I would like to try explainng a little my hackings with guile-unify.
I stoped and worked with a macro framework so that we can get more schemish
doing our analysis. And the approach here is closer to racklog or schelog
I think. The reason is to test all the core features and have some new
Hi everybody.
I'm just so satisfied with the progress that I just need to write this email
to cool down a little and so that you don't need to comment on the glitches
present before :-)
So, here is a script of a session,
nomenclature:
(exec (v ...) code ...) - binds initiates global schelog
Hi,
I'm trying to package the fmt library. And have it compiling it's working on a
simple test case. (I'll need it to produce nicely formatted c-code)
I still need to export some symbols. But it seams to work at least in initiall
test eh, actually just one simple test case :-).
To note.
1. I
First of all, thanks for the answer :-)
On Monday, January 03, 2011 07:03:28 pm Andreas Rottmann wrote:
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
Hi,
I'm trying to package the fmt library.
Note that there's already an R6RS adaption of fmt as part of the Wak
project [0
Hi,
I cannot say that I'm in the tag savy bin. But out of the
box I remember that I kind of needed this in the guile-unify
project.
The solution I'm trying there is to look at address ranges when checking
for the object type and use that to dispatch to a unify object or to
work with a SCM
Hi,
I want to get source location of a macro form and played a little with
syntax-source.
This should then print out something.
(define-syntax +
(lambda (x)
(syntax-case x ()
((o a b)
(pk (syntax-source x))
#'(+ a b)
(+ 1 2)
In trying to use the location of x
Hi,
I'm working on a small environment to verify macros like the syntax-parse
framework.
The idea is to use the tools I've already made for guile/scheme. I will
explain this a little
more in detail if anyone is interested. Here I just focus here on a question
about how to use the macro system to
as of version 0.8)
/Stefan
stack.clam
Description: Binary data
/*
Copyright: Stefan Israelsson Tampe
Licence : LGPL, any version.
*/
const int stack__size = 1024;
#line 0
typedef struct stack {
int size;
char * data;
char * pt;
stack ** head
Hi,
Just wanted to chime in and tell you a little about what I'm doing with the
guile-unify package.
First off, this is a tool to do backtracking effectively e.g. tree searches
and make heavy use of
dynamic variables.
There is three activities ongoing.
1. type-checking examples
2. first
at 5:52 PM, Andy Wingo wi...@pobox.com wrote:
Hi Stefan,
Thanks for this mail, it's interesting.
On Fri 06 May 2011 23:18, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
It would be good if there was a standard way to enter type information
in guile and if that information could
Hi, check out guile-syntax-parse at
https://gitorious.org/guile-syntax-parse/guile-syntax-parse
(You have to patch some ice-9 routines to make this work (syntax-expression
and syntax-object? need to be in the environment - the files are included)
So by writing
#|
Syntax parse examples
|#
I looked in psyntax.scm, I should be able to add some extra fields to the
tree-il representation as you wish.
I will have a try of it
I think that what I'm primarily interested in is a way to annotate
tree-il with type information, which the compiler may use to generate
more efficient code.
wingo wrote:
Just to warn you that I'm fairly opinionated about these things; your
patch may or may not make it in. You will also need to change
It's better to code and loose then never code at all
jokes aside, I'll will take this in small smelling shebackas. Main point is
not me
coding, the
Somewhere in the program I have,
(pk x)
(pk (caar l))
(pk (equal? x (caar l)))
It outputs
;;; (number)
;;; (number)
;;; (#f)
#f is there more to this then meets the eye?
/Stefan
Looks interesting.
I would like to reserve an object for the stack machine I use. Actually I
will be fine to model the prolog
engine ontop of your segestion if it was not for one idea.
So you have a layout of this
(X Tag14 Data Tag8)
Consider a the following tag in Tag14, frame-tag. Then Data
Oh well, I found the issue.
It was because of my special system. The printed representation of unify
variables
that point to a point to a point to a symbol got printed as a symbol. I
really need to tweak
the output to hint if it is a unify variable. And if wingo managed to
squeeze in tagging - so
Hi,
For the sake of discussion. I've tried to implement a let directive where we
type the variable like
(macroexpand '(let ((A : integer 1)) A))
$2 = #tree-il (let (A) (#{A 110}#) ((const 1)) (lexical A #{A 110}#)
(integer))
So we see how we specify a type of A as integer and that this
Coding has been gong on many levels.
1. A macro validator and error reporting mechanism similar but simpler then
syntax-parse has been tested
2. A macro framework to generate c-code form scheme forms using fmt and
scheme macros has been developed
this macro system has good error reporting and
and local
then the tree
will organize itself so that the hot set migrates quickly to the top of
the tree.
License: LGPL, Copyright: Stefan Israelsson Tampe
|#
(init-clambda-scm)
(auto-defs)
;(clambda-add (cpp-include header.h))
;; Accessors
(define-syntax get-tree
(syntax-rules
Hi,
*** fun fun fun and a lot of sun ***
I know have a macro package that can output guile-log to c-code directly.
The key ingredients to make this work
is to have tail call macros via trampolines and closures. With this one can
device a macro framework
that outputs directly to C. The code look
I noted that prompts in guile-2.0 is quite heavy e.g. using vanilla setjmp
facilities.
So if I'm not miss-taken a prompt will save several machine registers. Is
this really needed?
Why I am asking is that everything looks the same after a prompt returns
e.g. basically
setting up registers from
Hi,
I wanted to show off dome recent findings. During this summer I have made a
macro package to output a scheme like
language to c-code including simple closures not supporting set! and tail
call. With this tool I made another macro package
to do backtracking using CPS. It all works and is a
Hi,
I have read the source code for kanren and want to put the system in
relation to the work I have been doing which I will
call guile-log.
So the basic difference between kanren and guile-log are that kanren is
general and guile log is close to two orders
of magnitude faster on either the VM
Hi,
I hope I'll not spam the list, but I wanted to show off a simple example of
the type checking done
for guile. It follows typed racked features. What's missing is the
possibility to typecheck
e.g. map with arbitrary many arguments. But recursive types are in and seems
to work.
What needs to
Dear guile developers.
I've been hacking along with on the prolog stuff and has introduced
several improvements
that code appart from squashing a bug from time to time.
This is a little headlight on the improvements:
1. dynamic-wind is possible, that flows with the backtracker
One of the
I'm also interested in what Stefan Tampe is doing, because I believehe's
implementing a
formal logic system in Guile. Stefan, does yourproject connect to this
one?
Yes I'm implementing the leanCop first order logic prover. Now this might
not be the same
as implementing a new Coq system. I don't
Hi,
Regarding the observed leaks in guile. A question is if this is due to some
kind of memory fragmentation more then
a pure memory leak. In the observed bug where in constructing and droping
threads, one can see that memory leaks dramatically
and 2Gig is consumed after about 2000 constructed
On Wed, Nov 23, 2011 at 11:04 PM, Andy Wingo wi...@pobox.com wrote:
Stefan,
I must apologize for not responding to your mails! Or rather, for
responding so late. Apologies in any case.
np
On Sat 14 May 2011 20:57, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
(macroexpand
:47 PM, Andy Wingo wi...@pobox.com wrote:
On Mon 09 May 2011 14:11, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
Hi, check out guile-syntax-parse at
https://gitorious.org/guile-syntax-parse/guile-syntax-parse
How is this going? Are you still using it?
You didn't get any
Oh, let me refrace the previous mail and sebnd it to guuile devel also!
-- Forwarded message --
From: Stefan Israelsson Tampe stefan.ita...@gmail.com
Date: Sun, Nov 27, 2011 at 4:03 PM
Subject: Re: guile-syntax-parse
To: Andy Wingo wi...@pobox.com
On syntax parse,
Syntax parse
In looking at racket syntax-parse there seems to be some advanced macrology
that is not included in guile.
The light now is on the possibility to attach data to macros. I figure that
I could
reproduce this by using a weak hash-table but miss the functionality of
syntax-local-value
e.g.
Hi,
On Thu, Dec 8, 2011 at 10:58 PM, Ian Price ianpric...@googlemail.comwrote:
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
So I tried to get hold of the macro binding. So with the following patch
wich should be enogh
for me to make progress porting rackets syntax parse
working.
Mayby just writing a version from scratch would be better.
/Stefan
On Mon, Jan 16, 2012 at 10:28 PM, Andy Wingo wi...@pobox.com wrote:
On Mon 16 Jan 2012 20:46, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
why are these two not equal in the sense of bound-identifier
Yes!
see attachement!
/Stefan
On Tue, Jan 17, 2012 at 12:30 AM, Andy Wingo wi...@pobox.com wrote:
On Mon 16 Jan 2012 22:56, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
As you see, it's just wild west to get the racket code working.
:)
Can you give a stripped-down test case
Hi,
Working on porting syntax-parse is a learning experience and I know
understand how it uses
syntax-local-value as a way to lookup a syntax object by joining the wraps
together with the
total wrap at the macro call.
The question is if this really are the total wrap e.g. contains the history
of
When compiling newest stable-2.0 I noticed,
wrote `ice-9/eval.go'
GUILEC ice-9/psyntax-pp.go
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance.
wrote `ice-9/psyntax-pp.go'
E.g. basically making a thread allocates a large
Hi All,
I just want to announce the port of racket's syntax-parse that I host at,
https://gitorious.org/guile-syntax-parse/guile-syntax-parse (LGPL v.2)
To run it you will need syntax-local-binding (stable-2.0) which may or may
not be released with the next
upcoming version of guile.
It
:50, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
Working on porting syntax-parse is a learning experience and I know
understand how it uses syntax-local-value as a way to lookup a syntax
object by joining the wraps together with the total wrap at the macro
call.
syntax-local
I got it working with an old version of guile but have problem with newest
stable-2.0
I'll expand a macro #'(pk (syntax z)) and when evaluating this I get
(#(syntax-object z ((m~TFEL$Gaj1u5PPt2i@IPCm top)
#(ribcage () () ())
#(ribcage () () ())
#(ribcage () () ())
#(ribcage #(#{
lists. This will
perhaps fix the problems
I have.
/Stefan
On Thu, Jan 26, 2012 at 12:31 PM, Andy Wingo wi...@pobox.com wrote:
Hi Stefan,
On Mon 23 Jan 2012 17:06, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
and when parse is ready to unpack S we could have
S = #(syntax-object
representation. The only caveat is some usage of
syntax-local-binding.
Regards
Stefan
On Thu, Jan 26, 2012 at 12:36 PM, Andy Wingo wi...@pobox.com wrote:
On Wed 25 Jan 2012 21:37, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
I got it working with an old version of guile but have problem
Hi all,
Things is going well with syntax parse and the part working is continuously
increasing
One question that I now struggeling is this.
I have a macro expansion that looks like
#'(begin
(define f fkn-definition)
(define-syntax name
(make-syntax-case-transformer
On Tue, Feb 7, 2012 at 10:37 PM, Andy Wingo wi...@pobox.com wrote:
On Sat 04 Feb 2012 21:31, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
#'(begin
(define f fkn-definition)
(define-syntax name
(make-syntax-case-transformer
(make-stxclass
:
;;; ERROR: Throw to key `vm-error' with args `(vm-run VM: Stack overflow
())'
This codee compiles under
On Tue, Feb 7, 2012 at 11:55 PM, Andy Wingo wi...@pobox.com wrote:
On Tue 07 Feb 2012 22:58, Stefan Israelsson Tampe stefan.ita...@gmail.com
writes:
Just use #'f instead of (datum-syntax
-1375) (syntax identifier))
Something in the syntax structure has to be corrupt!
On Wed, Feb 8, 2012 at 9:16 PM, Stefan Israelsson Tampe
stefan.ita...@gmail.com wrote:
I tried, got, new errors. it looks like if we have
(syntax-case x () ((a b c) ...))
and if x is a list of syntax pattern
Hi,
I wanted to enter meta data where the symbols are important into a syntax
object and tried to be smart
in doing that but stumbled on this because loading (a simplified example)
the attached file I get an annoying error e.g.
ERROR: bad src
$7 = #(a (a b) (a (b c) #f))
So, what's up with
Hi,
I just wanted to mension three projects that I've been working on lately
(as some of you alerady know)
https://gitorious.org/guile-syntax-parse
This is racket's syntax parse ported over to guile. It works now so well
that I released
a
Hi,
It is possible to get syntax location information via syntax-source, but
trying to implement
something like
(define-syntax syntax/loc
(syntax-rules ()
((_ src stx)
(let ((ret (syntax stx)))
(set-syntax-source ret (syntax-source src))
ret
I fail due to not
Hi,
I have an ideom that I wouldlike to model more clenaly. currently in
guile-contract you
do
(contract-out-spec spec (f (- symbol? symbol?)))
(define (f x) x)
...
(contract-out spec)
This way we f will be exported using the contract (- symbol? symbol?) e.g.
it has to accept a symbol
Hi,
Trying to implement with-contract I would like to mod define into a new
variant
depending on if the symbol is a contracted variable or not, if it's a
contracted
variable one should translate the define according to
(deifne f/contracted val)
-
(define-values () (begin (set! f/contracted val)
Hi,
If you wondered about the results of my endavour with logic programming for
guile I
finally made a repo that is self containd and does not mode guile (HORROR
STORIES HERE)
Anyway here is the link for the repo at gitorius,
https://gitorious.org/gule-log/guile-log
I just added a small repo
Hello,
I have now prepared guile-log in such a state that it is usable. The last
item I would like
to close is to document it and put it in relation with kanren.
The software is pretty guile centric and the question is if we would like
to bundle it with guile.
There are always things to
Sorry I pushed the wrong key, I'll try again (sorry for spaming)
The guile-log code is very dependent on guile! It's based on a c-file which
uses
guile C interface in order to get speedy and featureful at the same time.
So basically I have no hope that this codebase could be independent from
I missed to send this to guile-devel, sorry!
-- Forwarded message --
From: Stefan Israelsson Tampe stefan.ita...@gmail.com
Date: Wed, Apr 4, 2012 at 5:36 PM
Subject: Re: Inclusion of guile-log II
To: Mark H Weaver m...@netris.org
Mark I must give you right,
Actually
On Wed, Apr 4, 2012 at 6:21 PM, Mark H Weaver m...@netris.org wrote:
Hi Stefan,
Did you intend to send this as private email? Wouldn't it be better to
discuss this on the mailing list?
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
Because what would be cool though is to use
I having a bad day, forgetting to mail the list as well :-(
Anyway here is a missing bit in the conversation with mark!
-- Forwarded message --
From: Stefan Israelsson Tampe stefan.ita...@gmail.com
Date: Wed, Apr 4, 2012 at 10:23 AM
Subject: Re: Inclusion of guile-log II
To: Mark
On Wed, Apr 4, 2012 at 11:52 PM, Ludovic Courtès l...@gnu.org wrote:
Hi Stefan,
Stefan Israelsson Tampe stefan.ita...@gmail.com skribis:
If you want independence use kanren. For guile this approach is 10x
faster
then kanren
and 10x slower that a compiled prolog. Previously I thought
PM, Ludovic Courtès l...@gnu.org wrote:
Hi Stefan,
Stefan Israelsson Tampe stefan.ita...@gmail.com skribis:
If you want independence use kanren. For guile this approach is 10x
faster
then kanren
and 10x slower that a compiled prolog. Previously I thought that kanren
has
a more
Hi,
I've looked at one benchmark for the einstein case. (some numbers are from
my memory)
compiled prolog
12-14ms
guile-log, stack-based, with added vm ops
30-40ms
kanren, compiled chicken
~250ms
guile-log, stack based,
250ms
guile-log, assq-based
500ms
kanren on guile
2000ms
kanren on
Is this a bug?
scheme@(guile-user) [5] #`(#,#'a #,@#'a)
ERROR: Syntax error:
unknown location: source expression failed to match any pattern in form (a
a)
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
/Stefan
,@) and #'a is only the syntax object of the symbol a
instead of a list. If you say #`(#,#'a #,@#'(a)) it works.
Daniel
On Thu, Apr 19, 2012 at 10:17 PM, Stefan Israelsson Tampe
stefan.ita...@gmail.com wrote:
Is this a bug?
scheme@(guile-user) [5] #`(#,#'a #,@#'a)
ERROR: Syntax error
He, missed that one,
/Stefan
On Sun, Apr 22, 2012 at 1:14 AM, Ian Price ianpric...@googlemail.comwrote:
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
Hmm so it's impossible to create syntax objects of the type
#'(a b c . d)
A pity
Did you try it? works fine for me
Hi,
i hope that I do not bore you with continuing talking about guile-log.
But one of the things brought up by Mark, and rightly so, are that having
the fundaments
of logic programming based on a stack compared to assq lists or similar more
scalable functional data structures makes it
Hi,
I wanted to chime in with some notes about performance for guile-log and
kanren on guile-log.
For the einstein case,
The story is that I compiled the c-code with -O3 and added faster versions
with reduced call overhead for functions
loaded from c under by using 5 extra vm instructions.
Hi all,
I post here a directory of patches and code that can be used to enhance
guile to interact nicely
with logic programming code written in C. I can reach very good performance
using this tool
please have a look and comment on it.
To note.
It does interact with the vm code, but it will not
Hi,
This looks very good. i like the hole approach and this approach has the
potential to address most of the issues I have seen when disassembling
guile-2.0 output. A few notes.
1. What about growing stacks any coments if they will be easier to manage
for this setup. Can one copy the C stack
I do have a cludgy fix for this but are in search for a better solution.
consider the problem:
(define-syntax-class a (pattern (1 x:b)) (pattern ()))
(define-syntax-class b (pattern (2 x:a)) (pattern ()))
the syntax class definitions above would expand to something like
(begin
(define
Hi,
syntax-parse is kind of heavy right now. The parser function produced are
huge and the main reason
is that the stored syntax objects are enormous. I know that Mark Weaver had
done something to make
these creatures less fatty. The question is if there is anything a guile
user can do?
Regards
a refisgn of the syn
On Tue, May 15, 2012 at 12:04 AM, Mark H Weaver m...@netris.org wrote:
Hi Stefan,
Stefan Israelsson Tampe stefan.ita...@gmail.com writes:
syntax-parse is kind of heavy right now. The parser function produced
are huge and the main reason
is that the stored syntax objects
1 - 100 of 406 matches
Mail list logo