Skip to content

Latest commit

 

History

History
57 lines (52 loc) · 2.67 KB

RELEASE_NOTES.rdoc

File metadata and controls

57 lines (52 loc) · 2.67 KB

Planned features

  • solve without a block returns an enumerator

  • warning for singleton variables

  • nonvar predicate

Version 2.1

  • New features

    • Works with Ruby 1.9.3 and 2.0 (only module X; extend Rubylog::Context syntax)

Version 2.0.1

  • Bug fixes

    • "a/b".file_in("a") only succeeds once

Version 2.0.0

  • Backwards incompatibilities

    • Rubylog.theory renamed to Kernel#rubylog.

    • file_in includes directories and yields relative paths. dir_in also yields relative paths.

    • trace has became Rubylog.trace.

    • Theory has changed to Context and it became a module.

    • No more inclusion of theories (contexts).

    • Predicates do not have reference in the theory (context), they are only referenced from the subject class in closures of the functor methods.

    • Unification uses eql? instead of ==. This means 5.0.is_not(5)

    • Theory#eval removed. Use Context#instance_eval.

    • Removed functor, use predicate and predicate_for instead. The latter ones have a different syntax for indicating predicates, eg. ".and() .false :true" or "L.splits_to(H,T)"

    • Structure is bound to the predicate it represents. The first argument of Structure.new is the predicate. S.structure(Predicate,Functor,Args) now has 4 arguments.

    • current_theory is removed.

    • No more real prefix functors, n-ary prefix functors are n+1-ary functors with the context object as the first argument. Use predicate_for Rubylog::Context, "...".

    • Rubylog::DefaultBuiltins is replaced by Rubylog

    • Theory#prove was removed. Use Context#true?

    • Rubylog::Callable<tt> renamed to <tt>Rubylog::Goal

    • discontiguous is removed. No more discontiguity checks.

    • implicit is removed. No implicit mode anymore.

    • Theory#clear is replaced by Context#initialize_context. However, currently it only clears default_subject.

    • CompositeTerm is renamed to CompoundTerm.

    • rublog_compile_variables is renamed to

      <tt>rubylog\_match\_variables</tt>, <tt>variable\_hashes</tt> is removed.
    • rubylog_variables_hash removed

  • Features

    • Rspec integration

    • include or extend Rubylog::Context into any class or object

    • thats_not

    • Comments in indicators

    • New tracer

    • added every

    • all builtins are available by default

  • Bug fixes

Version 1.0.0

Version 0.0.1

Version 0.0.0