N-Prolog ver 5.00 Release Notes
N-Prolog ver 5.00 Release Notes
Overview
N-Prolog ver 5.00 has been released.
This version focuses on extensive improvements to the compiler, including major bug fixes and stability enhancements.
As a result, previously problematic control structures are now handled correctly and reliably.
Major Changes
- Significant Compiler Improvements
Refactored and improved core parts of the compiler
Fixed a wide range of bugs
Performed repeated stress testing to ensure robustness
Verified that all previously written example programs can now be compiled successfully - Full Support for -> ; (if-then-else)
Correct handling of:
A -> B ; C
Multi-branch conditions
Nested structures
Previously, these patterns were a weak point of the compiler.
In this version, even deeply nested if-then-else constructs are compiled correctly and behave consistently with the interpreter.
- Introduction of case/1 Predicate
Added a new predicate:
case([Cond1 -> Body1,
Cond2 -> Body2,
...
| Else])
Features
Originally a standard predicate in ARITY/PROLOG
Provides a clean way to express multi-branch and nested conditionals
Internally used by the compiler to transform -> ; constructs
Background
Although case/1 existed in ARITY/PROLOG, it had not been implemented before due to limited perceived use.
However, it turned out to be highly effective for:
Simplifying nested condition handling
Improving compiler reliability
Stability Improvements
Extensive stress testing was performed
Special focus on conditional branching logic
High success rate confirmed across practical code examples
Current Status
With this release:
The N-Prolog compiler has reached a near-complete and practical level of maturity.
Future Plans
Continue improving stability based on user feedback
Address edge cases and rare control-flow patterns
Further refine the compiler for reliability
Developer Notes
Handling -> ; and its nested forms correctly was one of the most challenging parts of the compiler.
With this milestone achieved, the compiler is now stable enough for practical use.
This release represents a significant step toward a robust and reliable Prolog system.