parallaxinc / OpenSpin

Spin/PASM compiler for the Parallax Propeller.
56 stars 19 forks source link

Crash and strange behavior #24

Closed PropGit closed 8 years ago

PropGit commented 8 years ago

Source Files:

Here's a Lamestation piXel game folder I modified to contain all the files in one place: piXel.zip I don't know if my modification has anything to do with the behavior listed below.

Problem

On my Win 7 64-bit host, compiling piXel.spin with OpenSpin v1.0.77 ends with a "Done." message and then a Windows System crash message:

C:\piXel>openspin_v1.00.77 -u piXel.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2015 Parallax Inc. DBA Parallax
Semiconductor.
Version 1.00.77 Compiled on May 29 2015 02:19:57
Compiling...
piXel.spin
|-LameLCD.spin
  |-LamePinout.spin
|-LameGFX.spin
|-LameText.spin
  |-LameGFX.spin
|-LameMap.spin
  |-LameGFX.spin
|-LameAudio.spin
  |-LamePinout.spin
|-LameMusic.spin
  |-LameAudio.spin
    |-LamePinout.spin
|-LameControl.spin
  |-LamePinout.spin
  |-LameFunctions.spin
|-LameFunctions.spin
|-piXel_Effects.spin
  |-LameGFX.spin
  |-piXel_Sound.spin
    |-LameAudio.spin
      |-LamePinout.spin
    |-LameFunctions.spin
  |-gfx_boom.spin
|-piXel_Sound.spin
  |-LameAudio.spin
    |-LamePinout.spin
  |-LameFunctions.spin
|-gfx_player_small.spin
|-gfx_ibot.spin
|-gfx_idrone.spin
|-gfx_tank.spin
|-gfx_macrosoth.spin
|-gfx_laser.spin
|-gfx_bullet.spin
|-gfx_head.spin
|-gfx_healthbar.spin
|-gfx_starmap.spin
|-gfx_pixmain.spin
|-font8x8.spin
|-gfx_tiles_pixel.spin
|-song_pixeltheme.spin
|-song_sad.spin
|-song_ohno.spin
|-song_superohno.spin
|-song_boss.spin
|-song_yeah.spin
|-map_pixel.spin
Done.

image There is no .binary produced by this action.

Using OpenSpin v1.0.78 instead seems to work better (no crash message) but the output is strange in that it reports "Done." twice. It does indeed produce a .binary file in this case.

C:\piXel>openspin_v1.00.78 -u piXel.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2016 Parallax Inc. DBA Parallax
Semiconductor.
Version 1.00.78 Compiled on Jan 16 2016 15:37:47
Compiling...
piXel.spin
|-LameLCD.spin
  |-LamePinout.spin
|-LameGFX.spin
|-LameText.spin
  |-LameGFX.spin
|-LameMap.spin
  |-LameGFX.spin
|-LameAudio.spin
  |-LamePinout.spin
|-LameMusic.spin
  |-LameAudio.spin
    |-LamePinout.spin
|-LameControl.spin
  |-LamePinout.spin
  |-LameFunctions.spin
|-LameFunctions.spin
|-piXel_Effects.spin
  |-LameGFX.spin
  |-piXel_Sound.spin
    |-LameAudio.spin
      |-LamePinout.spin
    |-LameFunctions.spin
  |-gfx_boom.spin
|-piXel_Sound.spin
  |-LameAudio.spin
    |-LamePinout.spin
  |-LameFunctions.spin
|-gfx_player_small.spin
|-gfx_ibot.spin
|-gfx_idrone.spin
|-gfx_tank.spin
|-gfx_macrosoth.spin
|-gfx_laser.spin
|-gfx_bullet.spin
|-gfx_head.spin
|-gfx_healthbar.spin
|-gfx_starmap.spin
|-gfx_pixmain.spin
|-font8x8.spin
|-gfx_tiles_pixel.spin
|-song_pixeltheme.spin
|-song_sad.spin
|-song_ohno.spin
|-song_superohno.spin
|-song_boss.spin
|-song_yeah.spin
|-map_pixel.spin
Done.
|-LameLCD.spin
|-LameGFX.spin
|-LameText.spin
  |-LameGFX.spin
|-LameMap.spin
  |-LameGFX.spin
|-LameAudio.spin
|-LameMusic.spin
  |-LameAudio.spin
|-LameControl.spin
  |-LameFunctions.spin
|-LameFunctions.spin
|-piXel_Effects.spin
  |-LameGFX.spin
  |-piXel_Sound.spin
    |-LameAudio.spin
    |-LameFunctions.spin
  |-gfx_boom.spin
|-piXel_Sound.spin
  |-LameAudio.spin
  |-LameFunctions.spin
|-gfx_player_small.spin
|-gfx_ibot.spin
|-gfx_idrone.spin
|-gfx_tank.spin
|-gfx_macrosoth.spin
|-gfx_laser.spin
|-gfx_head.spin
|-gfx_healthbar.spin
|-gfx_starmap.spin
|-gfx_pixmain.spin
|-font8x8.spin
|-gfx_tiles_pixel.spin
|-song_pixeltheme.spin
|-song_sad.spin
|-song_ohno.spin
|-song_superohno.spin
|-song_boss.spin
|-song_yeah.spin
|-map_pixel.spin
Done.
Program size is 23392 bytes
drawkula commented 8 years ago

-u seems to be responsible for the second listing of all "objects" and therefore for the second "Done." too.

(yeti@aurora:2)~/wrk/propeller/spinsim$ cat main.spin 
pub main
(yeti@aurora:2)~/wrk/propeller/spinsim$ /opt/openspin/bin/openspin main.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2016 Parallax Inc. DBA Parallax Semiconductor.
Version 1.00.78 Compiled on Jan 17 2016 04:10:42
Compiling...
main.spin
Done.
Program size is 28 bytes
(yeti@aurora:2)~/wrk/propeller/spinsim$ /opt/openspin/bin/openspin main.spin -u
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2016 Parallax Inc. DBA Parallax Semiconductor.
Version 1.00.78 Compiled on Jan 17 2016 04:10:42
Compiling...
main.spin
Done.
Done.
Program size is 28 bytes
reltham commented 8 years ago

Yes, when you use -u it compiles the whole project twice. The first time it gathers information and then it determines what can be removed, then if compiles it a second time excluding methods/objects that it determined could be removed. This results in the double Done. message (and repeating most of the subobjects).

The crash is in the old version, and it was fixed already (I know what it was).

PropGit commented 8 years ago

Thanks @drawkula and @reltham. That makes perfect sense! All is well.