Issue1151

classification
Title: Compile time error - NullPointerException
Type: behaviour Severity: normal
Components: Jythonc compiler Versions: 2.5alpha3
Milestone:
process
Status: closed Resolution: duplicate
Dependencies: Superseder:
Assigned To: Nosy List: egonw_, fwierzbicki
Priority: Keywords:

Created on 2008-10-13.09:01:32 by egonw_, last changed 2008-10-14.07:13:19 by egonw_.

Messages
msg3670 (view) Author: (egonw_) Date: 2008-10-13.09:01:30
I've tried to use Pyke (the Python Knowledge Engine, s.
http://pyke.sourceforge.net) with Jython and have encountered the
following exception message when trying to compile it by using jython
2.5alpha 3 and even the jython-dev trunk:

>>> import Test
internal compiler error: Name
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Test.py", line 3, in <module>
    import Reasoner
  File "Reasoner.py", line 4, in <module>
    KnowledgeEngine = pyke.knowledge_engine.engine('.')
  File
"D:\Tools\Python\Jython-2.5a3\Lib\site-packages\pyke\knowledge_engine.py"
, line 90, in __init__
    from pyke import krb_compiler
  File
"D:\Tools\Python\Jython-2.5a3\Lib\site-packages\pyke\krb_compiler\__init_
_.py", line 31, in <module>
    from pyke.krb_compiler import compiler_bc
java.lang.NullPointerException
        at
org.python.compiler.CodeCompiler.visitName(CodeCompiler.java:1965)
        at org.python.antlr.ast.Name.accept(Name.java:50)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.set(CodeCompiler.java:196)
        at org.python.compiler.CodeCompiler.set(CodeCompiler.java:187)
        at
org.python.compiler.CodeCompiler.visitGeneratorExp(CodeCompiler.java:
2060)
        at org.python.antlr.ast.GeneratorExp.accept(GeneratorExp.java:71)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.makeArray(CodeCompiler.java:342)
        at
org.python.compiler.CodeCompiler.visitCall(CodeCompiler.java:1503)
        at org.python.antlr.ast.Call.accept(Call.java:114)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at
org.python.compiler.CodeCompiler.visitGeneratorExp(CodeCompiler.java:
2063)
        at org.python.antlr.ast.GeneratorExp.accept(GeneratorExp.java:71)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at
org.python.compiler.CodeCompiler.invokeNoKeywords(CodeCompiler.java:1
444)
        at
org.python.compiler.CodeCompiler.visitCall(CodeCompiler.java:1484)
        at org.python.antlr.ast.Call.accept(Call.java:114)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at
org.python.compiler.CodeCompiler.invokeNoKeywords(CodeCompiler.java:1
439)
        at
org.python.compiler.CodeCompiler.visitCall(CodeCompiler.java:1484)
        at org.python.antlr.ast.Call.accept(Call.java:114)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at
org.python.compiler.CodeCompiler.visitCall(CodeCompiler.java:1512)
        at org.python.antlr.ast.Call.accept(Call.java:114)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at
org.python.compiler.CodeCompiler.invokeNoKeywords(CodeCompiler.java:1
450)
        at
org.python.compiler.CodeCompiler.visitCall(CodeCompiler.java:1484)
        at org.python.antlr.ast.Call.accept(Call.java:114)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.doTest(CodeCompiler.java:889)
        at org.python.compiler.CodeCompiler.visitIf(CodeCompiler.java:914)
        at org.python.antlr.ast.If.accept(If.java:93)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at org.python.compiler.CodeCompiler.doTest(CodeCompiler.java:894)
        at org.python.compiler.CodeCompiler.visitIf(CodeCompiler.java:914)
        at org.python.antlr.ast.If.accept(If.java:93)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at org.python.compiler.CodeCompiler.doTest(CodeCompiler.java:894)
        at org.python.compiler.CodeCompiler.visitIf(CodeCompiler.java:914)
        at org.python.antlr.ast.If.accept(If.java:93)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at org.python.compiler.CodeCompiler.visitFor(CodeCompiler.java:1018)
        at org.python.antlr.ast.For.accept(For.java:104)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at
org.python.compiler.CodeCompiler.visitWith(CodeCompiler.java:2126)
        at org.python.antlr.ast.With.accept(With.java:82)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at org.python.compiler.CodeCompiler.doTest(CodeCompiler.java:894)
        at org.python.compiler.CodeCompiler.visitIf(CodeCompiler.java:914)
        at org.python.antlr.ast.If.accept(If.java:93)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at
org.python.compiler.CodeCompiler.visitTryFinally(CodeCompiler.java:11
10)
        at org.python.antlr.ast.TryFinally.accept(TryFinally.java:81)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at org.python.compiler.CodeCompiler.doTest(CodeCompiler.java:894)
        at org.python.compiler.CodeCompiler.visitIf(CodeCompiler.java:914)
        at org.python.antlr.ast.If.accept(If.java:93)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.suite(CodeCompiler.java:1246)
        at
org.python.compiler.CodeCompiler.visitSuite(CodeCompiler.java:1240)
        at org.python.antlr.ast.Suite.accept(Suite.java:58)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.parse(CodeCompiler.java:269)
        at org.python.compiler.Module.PyCode(Module.java:467)
        at
org.python.compiler.CodeCompiler.visitFunctionDef(CodeCompiler.java:4
06)
        at org.python.antlr.ast.FunctionDef.accept(FunctionDef.java:98)
        at org.python.antlr.ast.Module.traverse(Module.java:65)
        at org.python.antlr.Visitor.traverse(Visitor.java:12)
        at
org.python.compiler.CodeCompiler.visitModule(CodeCompiler.java:310)
        at org.python.antlr.ast.Module.accept(Module.java:58)
        at org.python.antlr.Visitor.visit(Visitor.java:26)
        at org.python.compiler.CodeCompiler.parse(CodeCompiler.java:269)
        at org.python.compiler.Module.PyCode(Module.java:467)
        at org.python.compiler.Module.compile(Module.java:646)
        at org.python.core.imp.compileSource(imp.java:203)
        at org.python.core.imp.createFromSource(imp.java:224)
        at org.python.core.imp.loadFromSource(imp.java:478)
        at org.python.core.imp.find_module(imp.java:379)
        at org.python.core.PyModule.impAttr(PyModule.java:109)
        at org.python.core.imp.import_next(imp.java:566)
        at org.python.core.imp.import_name(imp.java:694)
        at org.python.core.imp.importName(imp.java:724)
        at org.python.core.ImportFunction.load(__builtin__.java:1268)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1264)
        at org.python.core.PyObject.__call__(PyObject.java:251)
        at org.python.core.__builtin__.__import__(__builtin__.java:1225)
        at org.python.core.imp.importFromAs(imp.java:775)
        at org.python.core.imp.importFrom(imp.java:761)
        at
pyke.krb_compiler$py.f$0(D:\Tools\Python\Jython-2.5a3\Lib\site-packag
es\pyke\krb_compiler\__init__.py)
        at
pyke.krb_compiler$py.call_function(D:\Tools\Python\Jython-2.5a3\Lib\s
ite-packages\pyke\krb_compiler\__init__.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:187)
        at org.python.core.PyCode.call(PyCode.java:14)
        at org.python.core.imp.createFromCode(imp.java:258)
        at org.python.core.imp.createFromPyClass(imp.java:107)
        at org.python.core.imp.loadFromSource(imp.java:471)
        at org.python.core.imp.find_module(imp.java:379)
        at org.python.core.PyModule.impAttr(PyModule.java:109)
        at org.python.core.imp.import_next(imp.java:566)
        at org.python.core.imp.import_name(imp.java:694)
        at org.python.core.imp.importName(imp.java:724)
        at org.python.core.ImportFunction.load(__builtin__.java:1268)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1264)
        at org.python.core.PyObject.__call__(PyObject.java:251)
        at org.python.core.__builtin__.__import__(__builtin__.java:1225)
        at org.python.core.imp.importFromAs(imp.java:775)
        at org.python.core.imp.importFrom(imp.java:761)
        at
pyke.knowledge_engine$py.__init__$7(D:\Tools\Python\Jython-2.5a3\Lib\
site-packages\pyke\knowledge_engine.py)
        at
pyke.knowledge_engine$py.call_function(D:\Tools\Python\Jython-2.5a3\L
ib\site-packages\pyke\knowledge_engine.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:187)
        at org.python.core.PyTableCode.call(PyTableCode.java:415)
        at org.python.core.PyTableCode.call(PyTableCode.java:309)
        at org.python.core.PyFunction.__call__(PyFunction.java:333)
        at
org.python.core.PyMethod.instancemethod___call__(PyMethod.java:130)
        at org.python.core.PyMethod.__call__(PyMethod.java:99)
        at
org.python.core.PyObjectDerived.dispatch__init__(PyObjectDerived.java
:1090)
        at org.python.core.PyType.invoke_new_(PyType.java:287)
        at org.python.core.PyType.type___call__(PyType.java:1233)
        at org.python.core.PyType.__call__(PyType.java:1224)
        at org.python.core.PyObject.__call__(PyObject.java:273)
        at Reasoner$py.f$0(Reasoner.py)
        at Reasoner$py.call_function(Reasoner.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:187)
        at org.python.core.PyCode.call(PyCode.java:14)
        at org.python.core.imp.createFromCode(imp.java:258)
        at org.python.core.imp.createFromPyClass(imp.java:107)
        at org.python.core.imp.loadFromSource(imp.java:471)
        at org.python.core.imp.find_module(imp.java:379)
        at org.python.core.imp.import_next(imp.java:564)
        at org.python.core.imp.import_name(imp.java:664)
        at org.python.core.imp.importName(imp.java:724)
        at org.python.core.ImportFunction.load(__builtin__.java:1268)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1264)
        at org.python.core.PyObject.__call__(PyObject.java:251)
        at org.python.core.__builtin__.__import__(__builtin__.java:1225)
        at org.python.core.imp.importOne(imp.java:735)
        at Test$py.f$0(Test.py)
        at Test$py.call_function(Test.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:187)
        at org.python.core.PyCode.call(PyCode.java:14)
        at org.python.core.imp.createFromCode(imp.java:258)
        at org.python.core.imp.createFromPyClass(imp.java:107)
        at org.python.core.imp.loadFromSource(imp.java:471)
        at org.python.core.imp.find_module(imp.java:379)
        at org.python.core.imp.import_next(imp.java:564)
        at org.python.core.imp.import_name(imp.java:664)
        at org.python.core.imp.importName(imp.java:724)
        at org.python.core.ImportFunction.load(__builtin__.java:1268)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1264)
        at org.python.core.PyObject.__call__(PyObject.java:251)
        at org.python.core.__builtin__.__import__(__builtin__.java:1225)
        at org.python.core.imp.importOne(imp.java:735)
        at org.python.pycode._pyx1.f$0(<stdin>)
        at org.python.pycode._pyx1.call_function(<stdin>)
        at org.python.core.PyTableCode.call(PyTableCode.java:187)
        at org.python.core.PyCode.call(PyCode.java:14)
        at org.python.core.Py.runCode(Py.java:1200)
        at org.python.core.Py.exec(Py.java:1227)
        at
org.python.util.PythonInterpreter.exec(PythonInterpreter.java:134)
        at
org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter
.java:90)
        at
org.python.util.InteractiveInterpreter.runsource(InteractiveInterpret
er.java:71)
        at
org.python.util.InteractiveInterpreter.runsource(InteractiveInterpret
er.java:46)
        at
org.python.util.InteractiveConsole.push(InteractiveConsole.java:110)
        at
org.python.util.InteractiveConsole.interact(InteractiveConsole.java:9
0)
        at org.python.util.jython.run(jython.java:294)
        at org.python.util.jython.main(jython.java:114)

java.lang.NullPointerException: java.lang.NullPointerException
>>>


It seems that import of module packages, i.e. the statement "from
pyke.krb_compiler import compiler_bc" in the
pyke/krb_compiler/__init__.py poses some difficulties.

As a test just download pyke, version 0.4 from
http://sourceforge.net/project/showfiles.php?group_id=207724 and use the
following files int the same directory: TestJython.krb, TestIP.py
(Sorry, there is no way to upload several files). And use "import TestIP".

TestJython.krb:

inner_goal
	use inner_goal($Tuple, $Member)
	when 
		$Member in $Tuple
		python print "inner_goal: member is %s" % $Member
		check ($Member in [1,2,3,4])
		
		#special.claim_goal()  



outer_goal1     
	use outer_goal1($TupleT)
	when 	     

		forall
			$Tuple in $TupleT
		require
			inner_goal($Tuple, $Part)
			python print "outer_goal: forall-require: part %s in tuple %s"
%($Part, repr($Tuple))
			 
		python print "outer_goal: after forall: tuple of tuple %s" % repr($TupleT)


outer_goal2     
	use outer_goal2($TupleT)
	when 	     
		$Tuple in $TupleT
		inner_goal($Tuple, $Part)
		python print "outer_goal: forall-require: part %s in tuple %s"
%($Part, repr($Tuple))
			 
		python print "outer_goal: after forall: tuple of tuple %s" % repr($TupleT)


TestIP.py:

import pyke.knowledge_engine

KnowledgeEngine = pyke.knowledge_engine.engine('.')

def Test():
    KnowledgeEngine.activate('TestJython')
    
    print "doing iron python test"

#   for (ans,), plan in Reasoner.KnowledgeEngine.prove_n('Deployment',
'deploy_by_heuristics', ('try1'), 0):
    for ans in Reasoner.KnowledgeEngine.prove_n('TestJython',
'outer_goal1', (((1,2), (3,4)),), 0):
        print "outer_goal1: %s" % repr(ans)

    print ""
    for ans in Reasoner.KnowledgeEngine.prove_n('TestJython',
'outer_goal2', (((1,2), (3,4)),), 0):
        print "outer_goal2: %s" % repr(ans)

Thanks
Egon
msg3671 (view) Author: Frank Wierzbicki (fwierzbicki) Date: 2008-10-13.15:49:37
Hi egonw_,

How recently have you tried trunk?  About yesterday I fixed an NPE 
caused by nested Generator Expressions (and your stack trace suggests 
the same problem).  It didn't actually *fix* the nested gen exprs, but 
does improve the situation by now emitting a much smaller error message 
("internal compiler error") with a line number.  The bug is logged at 
#1150.  If you try again with trunk and get the "internal compiler 
error" exception, please let us know as this will mean that this bug is 
a duplicate of #1150.
msg3676 (view) Author: Frank Wierzbicki (fwierzbicki) Date: 2008-10-14.00:30:02
I was able to reproduce the error with:

>>> import pyke.knowledge_engine
>>> pyke.knowledge_engine.engine('.')

and there is indeed a nested generator expression on line 1069 of
compiler_bc.py

Thanks for the bug report!  When #1150 is fixed I will try pyke again. 
Watch #1150 if you want.  I am closing this as a duplicate of #1150.
msg3681 (view) Author: (egonw_) Date: 2008-10-14.07:13:18
Hi Frank,

you're right, I'm getting the following compile error now:

"File
"d:\tools\python\jython-dev\dist\lib\site-packages\pyke-0.4-py2.5.egg\pyk
e\krb_compiler\compiler_bc.py", line 1127

   ^
SyntaxError: internal compiler error"

Looking forward to using Pyke with jython with the next Jython 2.5 version.

Thanks
Egon
History
Date User Action Args
2008-10-14 07:13:19egonw_setmessages: + msg3681
2008-10-14 00:30:03fwierzbickisetstatus: open -> closed
resolution: duplicate
messages: + msg3676
2008-10-13 15:49:38fwierzbickisetnosy: + fwierzbicki
messages: + msg3671
2008-10-13 09:01:32egonw_create