The following Java system properties can be set to control some features of the Jasper package:
se.sics.jasper.SICStus.checkSPTermAge
A boolean, true by default. If true
, run-time checks are
performed that attempt to detect potentially dangerous use of the
SPTerm.putXXX
family of functions. The value of this flag can be
set and read with SICStus.setShouldCheckAge()
and
SICStus.shouldCheckAge()
. This flag was false by default
in SICStus 3.8.
The run-time checks throws an IllegalTermException
when there is
risk that a SPTerm
is set to point to a Prolog term
strictly newer than the SPTerm
. In this context
strictly newer means that there exists an open query that was
opened after the SPTerm
object was created but before the Prolog
term. See SPTerm and Memory, for more information:
% java -Dse.sics.jasper.SICStus.checkSPTermAge=true ...
or, from Prolog:
jasper_initialize( ['-Dse.sics.jasper.SICStus.checkSPTermAge=true'], JVM)
se.sics.jasper.SICStus.reuseTermRefs
A boolean, on by default. If false
,
SPTerm.delete()
will only invalidate the SPTerm
object, it
will not make the Prolog side SP_term_ref available for re-use. The
value of this flag can be set and read with
SICStus.setReuseTermRefs()
and
SICStus.reuseTermRefs()
. There should be no reason to turn it
off.
To set this flag do:
% java -Dse.sics.jasper.SICStus.reuseTermRefs=true ...
or, from Prolog:
jasper_initialize( ['-Dse.sics.jasper.SICStus.reuseTermRefs=true'], JVM)
se.sics.jasper.SICStus.debugLevel
You probably should not use it in production code. It may be removed or change meaning in future releases.
An integer, zero by default. If larger than zero, some debug info is
output to System.out
. Larger values produce more
info. The value of this flag can be
set and read with SICStus.setDebugLevel()
and
SICStus.debugLevel()
:
% java -Dse.sics.jasper.SICStus.debugLevel=1 ...
or, from Prolog:
jasper_initialize( ['-Dse.sics.jasper.SICStus.debugLevel=1'], JVM)