Issue202

Title error using --recurse-all with biopython
Priority bug Status resolved
Superseder Nosy List kayhayen, thekswenson
Assigned To kayhayen Keywords compiler_crash

Created on 2015-04-23.14:32:37 by thekswenson, last changed by kayhayen.

Files
File name Uploaded Type Edit Remove
openfasta.py thekswenson, 2015-04-23.14:32:37 text/x-python
Messages
msg1236 (view) Author: kayhayen Date: 2015-04-26.10:55:40
This is part of 0.5.12.2 and 0.5.13pre6 releases.
msg1235 (view) Author: kayhayen Date: 2015-04-25.08:21:43
Thanks, that made it easy to reproduce. Obviously an optimization of Nuitka 
without any coverage so far. Reminds me to work on these.

I found that the raise in question, on 1415 is:

        assert position==left or position==right, \
            "WithinPosition: %r should match left %r or right %r" \
            (position, left, right)

There is likely a "%" operator missing, calling a constant. Nuitka now says with 
"--warn":

Nuitka:WARNING:/usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1415: Will 
always raise exception TypeError('str' object is not callable)

As it's guarded by a condition (assert), it's not very harmful, but you may want 
to report upstream as well.

I found another place, where "new_node" was used, and where "new_raise" should 
be used as a tag, dictionary creations that have known raising keys. Also 
without any coverage in Nuitka testing, I suppose.

Expect a hotfix or release of Nuitka shortly.
msg1231 (view) Author: thekswenson Date: 2015-04-23.14:32:37
This is what happens when I run nuitka on the attached python script.

"
=> nuitka --recurse-all  openfasta.py 
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1414:
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1414:
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1413:
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1413:
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1329:
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1329:
Problem with statement at /usr/lib/python2.7/dist-packages/Bio/SeqFeature.py:1329:
Traceback (most recent call last):
  File "/usr/bin/nuitka", line 176, in <module>
    MainControl.main()
  File "/usr/share/nuitka/nuitka/MainControl.py", line 680, in main
    filename = filename
  File "/usr/share/nuitka/nuitka/MainControl.py", line 103, in createNodeTree
    Optimization.optimize()
  File "/usr/share/nuitka/nuitka/optimizations/Optimization.py", line 250, in
optimize
    changed = optimizePythonModule(current_module)
  File "/usr/share/nuitka/nuitka/optimizations/Optimization.py", line 91, in
optimizePythonModule
    module.computeModule()
  File "/usr/share/nuitka/nuitka/nodes/ModuleNodes.py", line 344, in computeModule
    constraint_collection = self.constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 177, in
computeStatementsSequence
    constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 371, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 451,
in onStatement
    statement.computeStatement(self)
  File "/usr/share/nuitka/nuitka/nodes/TryFinallyNodes.py", line 156, in
computeStatement
    constraint_collection = constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 181, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 451,
in onStatement
    statement.computeStatement(self)
  File "/usr/share/nuitka/nuitka/nodes/AssignNodes.py", line 90, in computeStatement
    constraint_collection.onExpression(self.getAssignSource())
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/NodeBases.py", line 1006, in
computeExpressionRaw
    expression = sub_expression
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/NodeBases.py", line 1006, in
computeExpressionRaw
    expression = sub_expression
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/FunctionNodes.py", line 646, in
computeExpressionRaw
    function_body = function_body
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 585,
in __init__
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 181, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 451,
in onStatement
    statement.computeStatement(self)
  File "/usr/share/nuitka/nuitka/nodes/TryFinallyNodes.py", line 156, in
computeStatement
    constraint_collection = constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 177, in
computeStatementsSequence
    constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 371, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 451,
in onStatement
    statement.computeStatement(self)
  File "/usr/share/nuitka/nuitka/nodes/AssignNodes.py", line 90, in computeStatement
    constraint_collection.onExpression(self.getAssignSource())
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/NodeBases.py", line 1006, in
computeExpressionRaw
    expression = sub_expression
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/NodeBases.py", line 1006, in
computeExpressionRaw
    expression = sub_expression
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/NodeBases.py", line 1006, in
computeExpressionRaw
    expression = sub_expression
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 411,
in onExpression
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/FunctionNodes.py", line 646, in
computeExpressionRaw
    function_body = function_body
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 585,
in __init__
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 181, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 451,
in onStatement
    statement.computeStatement(self)
  File "/usr/share/nuitka/nuitka/nodes/TryFinallyNodes.py", line 156, in
computeStatement
    constraint_collection = constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 177, in
computeStatementsSequence
    constraint_collection
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 371, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 451,
in onStatement
    statement.computeStatement(self)
  File "/usr/share/nuitka/nuitka/nodes/ConditionalNodes.py", line 355, in
computeStatement
    branch = yes_branch
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 541,
in computeBranch
    constraint_collection = self
  File "/usr/share/nuitka/nuitka/nodes/StatementNodes.py", line 181, in
computeStatementsSequence
    statement = statement
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 458,
in onStatement
    change_desc
  File "/usr/share/nuitka/nuitka/optimizations/TraceCollections.py", line 271,
in signalChange
    signalChange(tags, source_ref, message)
  File "/usr/share/nuitka/nuitka/optimizations/Optimization.py", line 64, in
signalChange
    tag_set.onSignal(tags)
  File "/usr/share/nuitka/nuitka/optimizations/Tags.py", line 67, in onSignal
    self.add(tag)
  File "/usr/share/nuitka/nuitka/optimizations/Tags.py", line 78, in add
    assert tag in allowed_tags, tag
AssertionError: new_node
"

Please let me know if I can give you any more information.
History
Date User Action Args
2015-04-26 10:55:40kayhayensetstatus: chatting -> resolved
messages: + msg1236
2015-04-25 08:21:43kayhayensetstatus: unread -> chatting
assignedto: kayhayen
messages: + msg1235
keyword: + compiler_crash
nosy: + kayhayen
2015-04-23 14:32:37thekswensoncreate