Skip to content

DouglasRMiles/swipl-devel

 
 

Repository files navigation

This is a highly unstable theoretical fork of SWI-Prolog

(>95% complete)

  • undo/1 Hook
  • delimited continuations (working/passing tests)
  • attvars may override any predicate
  • sicstus:attribute/1
  • sicstus:put_atts/2
  • sicstus:get_atts/2
  • xsb:verify_attributes/2
  • xsb:attv_unify/2
  • listing/1 shows variables

(>40% complete)

[11979 steps, 1001 new answers tabled (1001 in all)]
Fib of 1000 is 70330367711422815821835254877183549770181269836358732742604905087154537118196933579742249494562611733487750449241765991088186363265450223647106012053374121273867339111198139373125598767690091902245245323403501
% 6,729,826 inferences, 4.405 CPU in 4.410 seconds (100% CPU, 1527685 Lips)

Tries based ssytme in C that is efficant as copy_term?

if i want to store p(q(r,A,B,t),A) = foo. i create a few levels deep of HTs .. p/2 -> q/4 -> r -> V1 -> V2 -> t -> V1 = foo

  • delimited continuations tabling (60%)
work in progress

(0% complete)

  • $schedule_wakeup/1 to not create a choicepoint block
  • call/1, apply/2 will not create a choicepoint block (settable)
?- call(member(X,[1,2])),apply(call,[!]).
1
No
  • catch/3 will not create a choicepoint block (settable)
  • All predicates treated as transparent (settable)
  • callers context is not changed
  • new search order: (settable)
  • definition source module context
  • caller context

Expected incompatbilities to main SWI-Prolog