Yield Prolog 1.0.5 released

Embed Prolog directly in your Python, C# or Javascript program using the yield keyword. There is no API standing between your code and Yield Prolog, so you can use all language features, including arrays, file I/O, user interaction and your own classes.

Release 1.0.5 is a maintenance release to (finally) provide the interactive shell for Python.

This release has full support in Python, C# and Javascript for parser, compiler, dynamic predicates and an interactive shell.

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 in the folder YieldProlog\bin try the C# interactive YPShell.exe or the Python interactive shell YPShell.py .

Python is supported in Python 2.5.

C# is supported in Visual C# 2008 (Windows) or Mono 2.0.

Javascript is supported in Firefox 3 and Seamonkey 2, which fully support the yield keyword.

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

Known Issues:

Here are the 8 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: 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 2009-11-12