Yield Prolog 1.0.1 Released

Release 1.0.1 has full support in C# and Javascript for parser, compiler, dynamic predicates and an interactive shell.
This release fixes bugs so that it passes all but 9 of the 421 tests in the ISO Prolog test suite (see below).

As usual, download at:

Try the Javascript query editor at

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 Mono 2.0 is released which includes this bug fix:

Javascript is supported in Firefox 3, which fully supports the yield keyword.
Seamonkey support is incomplete until Seamonkey 2 is released which includes this bug fix:

Python support for dynamic predicates and interactive shell is forthcoming.

See the documentation including how to use the compiler and module system at:

New Features:
* Added support for Prolog predicates read and read_term.
* In see, Added support for a char code list as the input.
Using this as the input for "fred" makes
set_prolog_flag(double_quotes, atom) and
set_prolog_flag(double_quotes, chars) pass the ISO test suite.

Fixed Bugs:
* In atom_chars, check for unbound tail in the char list.
This makes atom_chars pass the ISO test suite.
* In current_predicate, also check for static functions.
This makes current_predicate pass the ISO test suite.

Known Issues:

Here are the 9 errors of the 421 tests in the ISO test suite in
YieldProlog\source\prolog\isoTestSuite.P .
Some of these have a good excuse for why Yield Prolog produces the error. The rest will be addressed in a future maintenance release.

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: 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

Posted by Jeff Thompson 2008-08-09

Log in to post a comment.

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

Sign up for the SourceForge newsletter:

No, thanks