Leopold Toetsch wrote:
> Jerome Quelin <[EMAIL PROTECTED]> wrote:
> >  - will objects introduce a speed overhead?
> For sure, but not a big one. You can AFAIK obtain an integer index
> for an attribute or method so its basically an array lookup.

Nice. So maybe I'll go for an object...


> >  - if I implement the Lahey space module as a regular module, how
> > can I declare file-scoped vars that will be accessible by the
> > subroutines of the file and only them? Since imcc parses
> > compilation units first, I don't see how to do this... Maybe with
> > the ".namespace" keyword?
> Just put a ".local" or ".sym" declaration outside/in front of your
> subs. This declares a file-scoped variable.

It does not seem to be file-scoped:
$ cat main.imc
.sub __START__
     call _main
.end
.include "lahey_space.imc"
.sub _main
     call _lhs_init
     print "main.imc: "
     print width
     print "\n"
     end
.end
$ cat lahey_space.imc
.local int width
.sub _lhs_init
     width = 42
     print "lahey_space.imc: "
     print width
     print "\n"
     ret
.end
$ imcc main.imc
lahey_space.imc: 42
main.imc: 42
$

It looks like a global variable to me.


> >  - the global does not seem to be available:
> > $ cat foo.imc
> > sub _main
> >      .local int width
> >      width = 0
> >      global "lhs_width" = width
> The *global opcodes are PMC variables only.
> > Will the feature be implemented soon?
> As the global stash is a PerlHash, it could be done. OTOH all the
> lexical opcodes are PMC-only too and these can only store PMCs in
> their array slot.

Okay.


> >  - when including a file with .include, the line numbering
> > continues to increase without being zeroed, and it's quite
> > difficult to track errors because of this behavior
> This needs work - Or its a bug, if line numbers are messed up by
> including a file.

Not messed, but it would be nice to have the real file and line number 
of the error.


Jerome
-- 
[EMAIL PROTECTED]

Reply via email to