Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-18 Thread David Mitchell
Dan Sugalski [EMAIL PROTECTED] wrote: At 06:05 PM 12/12/00 +, David Mitchell wrote: Also, some of the standard perumations would also need to do some re-invoking, eg ($int - $num) would invoke Int-sub[NUM](sv1,sv2,0), which itself would just fall through to Num-sub[INT](sv2,sv1,1) -

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-13 Thread Nicholas Clark
On Thu, Nov 30, 2000 at 06:43:35PM +, David Mitchell wrote: * do values ever get demoted - eg an expression inolving bigints that evaluates to 0: should this be returned as an int or a bigint? [I may have mailed this already] Experimentation on perl5 says yes. Making the sv_setuv actually

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-13 Thread David Mitchell
Nick Ing-Simmons [EMAIL PROTECTED] wrote: That is a Language and not an internals issue - Larry will tell us. But I suspect the answer is that it should "work" without any special stuff for simple perl5-ish types - because you need to be able to translate 98% of 98% of perl5 programs.

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-12 Thread David Mitchell
On Thu, 07 Dec 2000, Dan Sugalski [EMAIL PROTECTED] mused: My original suggestion was that scalar types provide a method that says how 'big' it is (so complex bigreal real int etc), and pp_add(), pp_sub() etc use these values to call the method associated with the biggest operand,

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-12 Thread Nicholas Clark
On Tue, Dec 12, 2000 at 02:20:44PM +, David Mitchell wrote: If we assume that ints and nums are perl builtins, and that some people have implemented the following external types: byte (eg as implemented as a specialised array type), bigreal, complex, bigcomplex, bigrat, quaternian; then

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-12 Thread David Mitchell
Nicholas Clark [EMAIL PROTECTED] wrote: On Tue, Dec 12, 2000 at 02:20:44PM +, David Mitchell wrote: If we assume that ints and nums are perl builtins, and that some people have implemented the following external types: byte (eg as implemented as a specialised array type), bigreal,

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-12 Thread Nick Ing-Simmons
David Mitchell [EMAIL PROTECTED] writes: I think this this boils down to 2 important questions, and I'd be interested in hearing people's opinions of them. 1. Does the Perl 6 language require some explicit syntax and/or semnatics to handle multiple and user-defined numeric types? Eg "my type

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-12 Thread Nicholas Clark
On Tue, Dec 12, 2000 at 06:05:30PM +, David Mitchell wrote: Nicholas Clark [EMAIL PROTECTED] wrote: On Tue, Dec 12, 2000 at 02:20:44PM +, David Mitchell wrote: If we assume that ints and nums are perl builtins, and that some people have implemented the following external types:

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-07 Thread Nicholas Clark
On Thu, Dec 07, 2000 at 01:14:40PM +, David Mitchell wrote: Dan Sugalski [EMAIL PROTECTED] wrote: All the math is easy if the scalars are of known types. Addition and multiplication are easy if only one of the scalars involved is of known type. Math with both of unknown type, or

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-07 Thread David Mitchell
Nicholas Clark [EMAIL PROTECTED] wrote: On Thu, Dec 07, 2000 at 01:14:40PM +, David Mitchell wrote: Dan Sugalski [EMAIL PROTECTED] wrote: All the math is easy if the scalars are of known types. Addition and multiplication are easy if only one of the scalars involved is of known

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-07 Thread Dan Sugalski
At 02:01 PM 12/7/00 +, David Mitchell wrote: Nicholas Clark [EMAIL PROTECTED] wrote: On Thu, Dec 07, 2000 at 01:14:40PM +, David Mitchell wrote: Dan Sugalski [EMAIL PROTECTED] wrote: All the math is easy if the scalars are of known types. Addition and multiplication are

Re: Opcodes (was Re: The external interface for the parser piece)

2000-12-02 Thread Dan Sugalski
At 11:24 AM 12/1/00 +, David Mitchell wrote: and Buddha Buck [EMAIL PROTECTED] wrote: I seem to remember a suggestion made a long time ago that would have the vtable include methods to convert to the "standard types", so that if the calls were b-vtable-add(b,a) (and both operands had

Re: Opcodes (was Re: The external interface for the parser piece)

2000-11-30 Thread Buddha Buck
At 05:59 PM 11-30-2000 +, Nicholas Clark wrote: On Thu, Nov 30, 2000 at 12:46:26PM -0500, Dan Sugalski wrote: (Note, Dan was writing about "$a=1.2; $b=3; $c = $a + $b") $a=1; $b =3; $c = $a + $b If they don't exist already, then something like: newscalar a, num, 1.2

Re: Opcodes (was Re: The external interface for the parser piece)

2000-11-30 Thread Dan Sugalski
At 05:59 PM 11/30/00 +, Nicholas Clark wrote: On Thu, Nov 30, 2000 at 12:46:26PM -0500, Dan Sugalski wrote: (Moved over to -internals, since it's not really a parser API thing) At 11:06 AM 11/30/00 -0600, Jarkko Hietaniemi wrote: Presumably. But why are you then still talking about

Re: Opcodes (was Re: The external interface for the parser piece)

2000-11-30 Thread Chaim Frenkel
"DS" == Dan Sugalski [EMAIL PROTECTED] writes: The "add" op would, in C code, do something like: void add() { P6Scaler *addend; P6Scaler *adder; addend = pop(); adder = pop(); push addend-vtable-add(addend, adder); } it would be up to the addend-vtable-add() to figure out how to