Shop OBEX P1 Docs P2 Docs Learn Events
PropellerIDE, an interesting crash bug when projects have circular references. — Parallax Forums

PropellerIDE, an interesting crash bug when projects have circular references.

Heater.Heater. Posts: 21,230
edited 2015-06-07 19:24 in Propeller 1
I just discovered that circular references on OBJ sections cause PropellerIDE to crash. The issue is described here:
http://forums.parallax.com/showthread.php/161197-Propeller?p=1331963&viewfull=1#post1331963

How come there is no issue reporting ability on the github repository of PropellerIDE?

Comments

  • ksltdksltd Posts: 163
    edited 2015-06-07 18:50
    A better question is why are bugs reported 4 years ago still not fixed?
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2015-06-07 19:01
    To be fair, it's not PropellerIDE that's crashing, but the compiler. Okay the compiler could be dragging the IDE down with it, but it's not the IDE's fault.

    -Phil
  • Heater.Heater. Posts: 21,230
    edited 2015-06-07 19:16
    OK, trawling thought the commit history of PropellerIDE I see that there were changes to fix this bug. So I guess my PropellerIDE version is a bit old (0.20). I have no idea what version is shipped by Parallax now a days.

    I just built the source from github, it no longer crashes on opening a file with circular references.

    However it refuses to compile any Spin code claiming it cannot find openspin. Despite the fact that openspin is correctly specified in the preferences.
  • Heater.Heater. Posts: 21,230
    edited 2015-06-07 19:24
    Phil,

    It is actually the IDE that is crashing. With the buggy version I don't need to compile anything, just open the top level file with the circular reference and boom it immediately dies.

    The compiler, opespin, will try to compile this but complains about exceeding the object nesting limit of 16 levels.
    $ openspin a.spin 
    Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2014 Parallax Inc. DBA Parallax Semiconductor.
    Version 1.00.71 Compiled on Nov 30 2014 07:40:47
    Compiling...
    a.spin
    |-b.spin
      |-a.spin
        |-b.spin
          |-a.spin
            |-b.spin
              |-a.spin
                |-b.spin
                  |-a.spin
                    |-b.spin
                      |-a.spin
                        |-b.spin
                          |-a.spin
                            |-b.spin
                              |-a.spin
                                |-b.spin
                                  |-a.spin
    a.spin : error : Object nesting exceeds limit of 16 levels.
    
    Of course there should be no such arbitrary nesting limit and circular references should be detected properly. So we might get:
    $ openspin a.spin 
    Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2014 Parallax Inc. DBA Parallax Semiconductor.
    Version 1.00.71 Compiled on Nov 30 2014 07:40:47
    Compiling...
    a.spin
    |-b.spin
    b.spin : error : Circular object reference.
    
Sign In or Register to comment.