Releases: sasagawa888/nprolog
N-Prolog ver4.55
📦 N-Prolog ver4.55 Release Notes
Overview
This version focuses on improving compiler performance and strengthening reliability through enhanced checking and internal name management.
🔧 Compiler Enhancements
Optimized the compiler for maximum execution speed in sequential (deterministic, tail-recursive) code paths.
Performance improved significantly in common logic programming problems. For example, the Queens problem now runs nearly as fast as SWI-Prolog.
🛡️ Checker Module Improvements
Enhanced the Checker module to detect and fix:
Singleton variables
Predicate arity mismatches
This allows for safer refactoring and minimizes human error during development.
🧠 Internal Predicate Name Conflict Handling
Addressed name collisions between user-defined predicates and compiler internals.
For example, using a predicate named unify would previously conflict with the internal handling of the =/2 operator. Such issues are now avoided via internal naming conventions (e.g., reserved prefix n_).
N-Prolog version4.50
📢 N-Prolog ver 4.50 Released
We are pleased to announce the release of N-Prolog version 4.50.
🛠 Changes in this release:
- Fixed an issue where predicate names in the DCG library were not properly hidden.
- Fixed bugs in the lambda library.
We continue to persistently track down and fix bugs — no matter how stubborn they are.
Feedback and bug reports are always welcome!
N-Prolog Version 4.49
📌 N-Prolog ver.4.49 Release Notes (July 2025)
🔧 Bug Fixes
- Fixed a bug in
copy_term/2.
There was an issue with variable substitution not being performed correctly. This has been resolved in the current version.
📚 New Features
- Added the Lambda library.
This library was introduced to support computational experiments with Montague grammar.
Predicates such aslam/2,app/2, andbeta_reduce/2are now available.
📣 Call for Bug Reports
N-Prolog continues to evolve.
We welcome your bug reports and feedback to help improve the system further.
N-Prolog version 4.47
📦 N-Prolog v4.47 – Release Notes
Release date: 2025-07-XX
Tag: v4.47
Status: Stable
✨ What's New
This version includes several important bug fixes and improvements to enhance reliability and correctness of N-Prolog:
🐞 Bug Fixes
Fixed incorrect behavior in append/3
Fixed a bug in asserta/1 that caused unexpected assertion order
Resolved an issue in univv (equivalent to =..) causing improper term conversions
🔧 Enhancements
Improved ifthenelse/3 to ensure more consistent and predictable logical branching
🙏 Acknowledgements
We thank all users who provided feedback and bug reports.
Please continue reporting issues — your support helps make N-Prolog better with each release!
N-Prolog Version 4.44
N-Prolog ver4.44 Release Notes
Overview
We are pleased to announce the release of N-Prolog version 4.44. This release represents a culmination of all previous development efforts. It focuses on extensive testing and thorough bug fixes, addressing even the smallest inconsistencies and potential issues.
What's New
Fixed numerous minor bugs based on accumulated feedback and reports.
Strengthened testing coverage to ensure consistent and reliable behavior.
Improved internal stability through meticulous review of system behavior.
Quality and Testing
All changes and bug reports are documented in the Issues section.
We believe most bugs have been resolved, but there may still be unexpected edge cases. If you encounter any issues, please report them.
Final Notes
This version feels like a milestone and consolidation of everything developed so far. While further enhancements are always possible, this release is intended to mark a stable and mature point in the project's progress.
Thank you for using N-Prolog, and we hope you continue to enjoy working with it.
N-Prolog Version 4.43
N-Prolog ver4.43 Release Notes
This release includes important improvements to the compiler and introduces a new directive feature.
Bug Fixes
- Fixed a compiler bug that occurred when directives such as
:- op/3were used within the source code.
Previously, such directives were not handled correctly during compilation.
This issue has now been resolved.
New Features
- Introduced support for the
initialization/1directive.
This allows specified goals to be automatically executed after aconsult.
It improves usability and aligns N-Prolog with standard Prolog behavior.
We recommend all users to upgrade to this version for improved stability and functionality when compiling code with embedded directives.
N-Prolog Version 4.42
📢 N-Prolog Ver 4.42 Release Notes
✨ Highlights
Version 4.42 of N-Prolog focuses on enhancing the math library, especially with new features related to group theory. You can now work directly with permutation groups, such as symmetric and alternating groups, and perform computations and verifications interactively in Prolog.
🧮 Enhancements to the math Library
-
Support for Permutations and Group Operations
Permutations are treated as substitutions and can be manipulated directly. Supported operations include:- Identity permutation generation:
perm_ident/2 - Permutation multiplication:
perm_mul/3 - Inverse calculation:
perm_inv/2 - Even permutation test:
perm_even/1
- Identity permutation generation:
-
Group Generation Predicate
groupe_create/2generates permutation groups (e.g., symmetric or alternating groups).- The predicate
p/2defines group operations using permutation indices.
📘 Example Usage
?- use_module(math).
yes.
?- groupe_create(perm, 3).
yes.
?- Z isg 2*2.
Z = 1.
N-Prolog Version 4.41
N-Prolog Version 4.41 Release Notes
We are pleased to announce the release of N-Prolog version 4.41.
This update includes two major improvements:
🗂️ File Path Resolution Refactored
The internal mechanism for resolving file paths has been redesigned for clarity, consistency, and predictability.
- Files can now be loaded relative to:
- Current directory (e.g.,
./file) $NPROLOG_HOMEenvironment variable$HOME/nprolog/directory- Absolute paths or other fallback cases
- Current directory (e.g.,
- If the file name has no extension and contains no dot (
.),.plis automatically appended. - See the updated documentation for full details on file resolution rules.
📚 Enhanced Mathematics Library (math module)
We have expanded the math module to support a broader range of symbolic mathematical operations, inspired by Professor Iitaka's book on mathematics using Prolog.
- Set operations:
union/3,intersection/3,difference/3,powerset/2,subset/2,eqset/2, etc. - Map functions:
map_val/3,map_set/3,map_inv/2,map_prod/3, etc. - Topology:
topology/2,topology_space/2 - Permutations:
perm_prod/3,perm_inv/2,perm_div/3,perm_sign/2, etc. - Infix notation support for improved readability (e.g.,
Z isl X + Y)
More predicates will continue to be added to this module in future releases.
Thank you for using N-Prolog. Feedback and contributions are always welcome.
N-Prolog ver4.39
N-Prolog Version 4.39 Release Notes
Bug Fixes
- Garbage Collection Issue Fixed
A critical bug related to garbage collection has been fixed.
It was discovered that invokinggc(full)could cause the system to malfunction afterward.
The root cause was the loss of internal information during garbage collection.
This issue has now been resolved.
N-Prolog ver4.38
N-Prolog ver4.38 Release Notes
We are pleased to announce the release of N-Prolog version 4.38.
This update focuses on bug fixes discovered through computations related to topological spaces as described in Professor Iitaka’s textbook. Several issues and deviations from the intended behavior were identified, and both the interpreter and compiler have been revised accordingly to ensure correct execution.
Bug Fixes and Improvements
- Proper removal of duplicate elements in
sort/2 - Prevention of data loss in
bagof/3under certain conditions - Correct compilation of nested conjunctions
- Improved compilation of the second argument in
bagof/3
These fixes enhance the correctness and reliability of logical inference, especially in mathematical applications involving symbolic computation.