Yield Prolog 1.0 Released!

Release 1.0 has full support in C# and Javascript for parser, compiler, dynamic predicates and an interactive shell. It passes all but 15 of the 421 tests in the ISO Prolog test suite (see below).

As usual, download at:
http://sourceforge.net/project/showfiles.php?group_id=176875

Try the Javascript query editor at
http://yieldprolog.sourceforge.net/queryEditor.html

Or download the package and try the interactive YPShell.exe in the folder YieldProlog\bin.

C# is supported in Visual C# (Windows). Mono support is incomplete until a release which includes this bug fix:
https://bugzilla.novell.com/show_bug.cgi?id=MONO82034

Javascript is supported in Firefox 3, which fully supports the yield keyword. Seamonkey support is incomplete until a release which includes this bug fix:
https://bugzilla.mozilla.org/show_bug.cgi?id=349326

Python support for dynamic predicates and interactive shell is forthcoming, but I wanted to do release 1.0 since C# and Javascript support is mature.

See the documentation including how to use the compiler and module system at:
http://yieldprolog.sourceforge.net/tutorial4.html

Known Issues:

Here are the 15 errors of the 421 tests
in the ISO test suite in
YieldProlog\source\csharp\examples\Benchmarks\IsoTestSuite.cs
Some of these have a good excuse for why Yield Prolog
produces the error. The rest will be addressed in a
future mainenance release.

Goal: arg(1,foo(X,b),Y)
Expected: [[Y <-- X]]
Extra Solutions found: success

Goal: atom_chars(A,[a,b|L])
Expected: instantiation_error
Extra Solutions found: [[A, ab)]]

Goal: call((fail, 1))
Expected: type_error(callable, (fail, 1))
Extra Solutions found: failure

Goal: call((write(3), 1))
Expected: type_error(callable, (write(3), 1))
Extra Solutions found: type_error(callable, 1)

Goal: call((1; true))
Expected: type_error(callable, (1 ; true))
Extra Solutions found: type_error(callable, 1)

Goal: (catch(true, C, write('something')), throw(blabla))
Expected: system_error
Extra Solutions found: unexpected_ball(blabla)

Goal: catch(number_chars(A,L), error(instantiation_error, _), fail)
Expected: failure
Extra Solutions found: instantiation_error

Goal: copy_term(X+X+Y,A+B+B)
Expected: [[B <-- A]]]
Extra Solutions found: success

Goal: current_predicate(run_tests/1)
Expected: success
Extra Solutions found: failure

Goal: Goal: (X = 1 + 2, 'is'(Y, X * 3))
Expected: [[X <-- (1 + 2), Y <-- 9]]
Extra Solutions found: type_error(evaluable, /(+, 2))

Goal: 'is'(77, N)
Expected: instantiation_error
Extra Solutions found: N <-- 77)

Goal: \+(!, fail)
Expected: success
Extra Solutions found: failure

((X=1;X=2), \+((!,fail)))
Expected: [[X <-- 1],[X <-- 2]]
Extra Solutions found: failure

Goal: X = "fred"
Expected: [[X <-- fred]]
Extra Solutions found: [[X <--, [102, 114, 101, 100]]

Goal: =($VAR(0), [102, 114, 101, 100])
Expected: [[X <-- [f,r,e,d]]]
Extra Solutions found: [[X <--, [102, 114, 101, 100]]

Posted by Jeff Thompson 2008-07-26

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks