Skip to content

Releases: sasagawa888/nprolog

N-Prolog ver4.55

03 Aug 08:48

Choose a tag to compare

📦 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

20 Jul 09:04

Choose a tag to compare

📢 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

13 Jul 03:17

Choose a tag to compare

📌 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 as lam/2, app/2, and beta_reduce/2 are 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

05 Jul 07:51

Choose a tag to compare

📦 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

27 Jun 07:08

Choose a tag to compare

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

24 Jun 22:37

Choose a tag to compare

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/3 were 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/1 directive.
    This allows specified goals to be automatically executed after a consult.
    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

22 Jun 22:34

Choose a tag to compare

📢 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
  • Group Generation Predicate

    • groupe_create/2 generates permutation groups (e.g., symmetric or alternating groups).
    • The predicate p/2 defines 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

21 Jun 07:18

Choose a tag to compare

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:
    1. Current directory (e.g., ./file)
    2. $NPROLOG_HOME environment variable
    3. $HOME/nprolog/ directory
    4. Absolute paths or other fallback cases
  • If the file name has no extension and contains no dot (.), .pl is 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

14 Jun 06:03

Choose a tag to compare

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 invoking gc(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

07 Jun 22:29

Choose a tag to compare

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/3 under 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.