我正在学习 TLA+,并且正在运行讲座示例代码
EXTENDS Integers
VARIABLES i, pc
Init == (pc = "start") /\ (i = 0)
Pick == /\ pc = "start"
/\ i' \in 0..1000
/\ pc' = "middle"
Add1 == /\ pc = "middle"
/\ i' = i + 1
/\ pc' = "done"
Next == Pick \/ Add1
但是我遇到了意外的异常错误,例如
尝试加载自定义 FPSet 类失败:tlc2.tool.fp.OffHeapDiskFPSet TLC 引发意外异常。这可能是由规格或模型中的错误引起的。请参阅用户输出或 TLC 控制台以获取有关发生情况的线索。异常是 java.util.concurrent.ExecutionException : java.lang.NullPointerException
和用户输出:
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at tlc2.tool.fp.FPSetFactory.loadImplementation(FPSetFactory.java:206)
at tlc2.tool.fp.FPSetFactory.getFPSet(FPSetFactory.java:109)
at tlc2.tool.fp.MultiFPSet.getNestedFPSets(MultiFPSet.java:68)
at tlc2.tool.fp.MultiFPSet.<init>(MultiFPSet.java:61)
at tlc2.tool.fp.FPSetFactory.getFPSet(FPSetFactory.java:105)
at tlc2.tool.fp.FPSetFactory$1.call(FPSetFactory.java:136)
at tlc2.tool.fp.FPSetFactory$1.call(FPSetFactory.java:1)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.OutOfMemoryError
at java.base/jdk.internal.misc.Unsafe.allocateMemory(Unknown Source)
at jdk.unsupported/sun.misc.Unsafe.allocateMemory(Unknown Source)
at tlc2.tool.fp.LongArray.<init>(LongArray.java:79)
at tlc2.tool.fp.OffHeapDiskFPSet.<init>(OffHeapDiskFPSet.java:138)
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at tlc2.tool.fp.FPSetFactory.loadImplementation(FPSetFactory.java:206)
at tlc2.tool.fp.FPSetFactory.getFPSet(FPSetFactory.java:109)
at tlc2.tool.fp.MultiFPSet.getNestedFPSets(MultiFPSet.java:68)
at tlc2.tool.fp.MultiFPSet.<init>(MultiFPSet.java:61)
at tlc2.tool.fp.FPSetFactory.getFPSet(FPSetFactory.java:105)
at tlc2.tool.fp.FPSetFactory$1.call(FPSetFactory.java:136)
at tlc2.tool.fp.FPSetFactory$1.call(FPSetFactory.java:1)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.OutOfMemoryError
at java.base/jdk.internal.misc.Unsafe.allocateMemory(Unknown Source)
at jdk.unsupported/sun.misc.Unsafe.allocateMemory(Unknown Source)
at tlc2.tool.fp.LongArray.<init>(LongArray.java:79)
at tlc2.tool.fp.OffHeapDiskFPSet.<init>(OffHeapDiskFPSet.java:138)
... 15 more
有谁知道如何解决这一问题?
TLA+ 工具箱版本:
This is Version 1.6.0 of 10 July 2019 and includes:
- SANY Version 2.1 of 23 July 2017
- TLC Version 2.14 of 10 July 2019
- PlusCal Version 1.9 of 10 July 2019
- TLATeX Version 1.0 of 20 September 2017