Leo --

Thanks for the pointer.

I made the change, and now I get consistent results. I'll check that in.

I am still not clear, though, on why we wouldn't have the same failure
in all cases. I'd think these should be equivalent:

  * Running parrot on 'foo.imc'
  * Running parrot on 'foo.pasm' generated from 'foo.imc'
  * Running parrot on 'foo.pbc' generated from 'foo.pasm'

since I'd think that the later cases would be mirroring what is going
on inside parrot in the earlier ones. Where am I going wrong?


Regards,

-- Gregor

On Sat, 2004-02-28 at 05:33, Leopold Toetsch wrote:
> Gregor N. Purdy <[EMAIL PROTECTED]> wrote:
> 
> > I was running the various languages/jako/examples and I ran
> > across this oddity (after doing a fresh 'make' of Parrot and
> > in the languages/jako directory):
> 
> > [EMAIL PROTECTED] jako]$ ./jako examples/fact.jako
> > [EMAIL PROTECTED] jako]$ ../../parrot examples/fact.imc
> 
> This segfaults because of illegal code. The "branch __IN_LINE_1" doesn't
> get a proper fixup - branches are not supposed to go into different
> compilation units.
> 
> Changing the code to:
> 
> .sub __INLINE_0
>       .globalconst int N = 15
>     bsr __INLINE_1
>     ret
> .end
> 
> fixes this.
> 
> When compiling the PASM, all is one compilation unit and the error
> vanishes.
> 
> leo
-- 
Gregor Purdy                            [EMAIL PROTECTED]
Focus Research, Inc.               http://www.focusresearch.com/

Reply via email to