Benjamin Goldberg <[EMAIL PROTECTED]> writes:

> > Normal processors also don't have setline and setfile operations. They
> > use an extra segment in the *.o file, which is only used by the
> > debugger. This could also be done in parrot.
> 
> In other words, setline and setfile ops in source don't translate to
> actual ops in the bytecode, but instead translate to additions/changes
> to the debugging segment?

In principle yes. But as they are no opcodes any more they should not
look like ones. They should be written .setline or #setline
 
>>>    #line 17 "sourcefile.p6"

> I don't like this syntax -- it sounds too easy for someone to write a
> comment like:
> 
> #When this was in the original foobar language, it was on
> #line 17
> 
> And have it interpreted as a directive, when the author meant for it to
> be just a comment.

from the point of the bytecode this is just a comment. No different
bytecode is generated with or without this line. Only for the
debugsegment gets other information.

> There's no reason not to have the directives look like ops (setline,
> setfile).

No they should not look like ops. They are no ops.

They might look like macros .setfile, macros can evaluate to nothing.

> Oh, and you could have get{line,file} directives, which end up
> translated as being simple "set" ops, using the info generated by the
> set{line,file} directives.

Same here. Use .getline macros which are expanded to a set
operation. Or better use a .currentline macro which expands to the
current line. Much like the __LINE__ macro in C.

bye
boe
-- 
Juergen Boemmels                        [EMAIL PROTECTED]
Fachbereich Physik                      Tel: ++49-(0)631-205-2817
Universitaet Kaiserslautern             Fax: ++49-(0)631-205-3906
PGP Key fingerprint = 9F 56 54 3D 45 C1 32 6F  23 F6 C7 2F 85 93 DD 47

Reply via email to