Final draft: Conventions and Guidelines for Perl Source Code

2001-08-06 Thread Dave Mitchell
Here's the final draft. Please consider it formally submitted; someone (Dan? Ask? Adam?) needs to assign it a number, please. Dave. =head1 TITLE Conventions and Guidelines for Perl Source Code =head1 VERSION =head2 CURRENT Maintainer: Dave Mitchell [EMAIL PROTECTED] Class: Internals

Re: Opcode Dispatch

2001-08-06 Thread Uri Guttman
BCW == Bryan C Warnock [EMAIL PROTECTED] writes: BCW I was doing some thinking on the event loop (and how to tie it in BCW later), and ran into a question. Given the current priority BCW idea, how far does a priority stretch? (Horrible description, so BCW let me give an example. Say

RE: Draft assembly PDD

2001-08-06 Thread Dan Sugalski
At 02:55 PM 8/6/2001 -0700, Hong Zhang wrote: There are many typos. Please correct them. I see. I'll fix 'em. The branch instruction is wrong. It should be branch #num. The offset should be part of instruction, not from register. Nope, because that kills the potential for computed relative

RE: Draft assembly PDD

2001-08-06 Thread Hong Zhang
The branch instruction is wrong. It should be branch #num. The offset should be part of instruction, not from register. Nope, because that kills the potential for computed relative branches. (It's in there on purpose) Branches should work from both constants and registers. Even so, the

RE: Draft assembly PDD

2001-08-06 Thread Sam Tregar
On Mon, 6 Aug 2001, Hong Zhang wrote: It is not just for performance, the stack size and cache locationality are also big issues. Cache sizes and timings vary from machine to machine. Maybe we should make it configurable at compile-time? If we do that then there's no reason to try to guess

RE: Draft assembly PDD

2001-08-06 Thread Dan Sugalski
At 03:41 PM 8/6/2001 -0700, Hong Zhang wrote: The branch instruction is wrong. It should be branch #num. The offset should be part of instruction, not from register. Nope, because that kills the potential for computed relative branches. (It's in there on purpose) Branches should work

RE: Draft assembly PDD

2001-08-06 Thread Dan Sugalski
At 05:27 PM 8/6/2001 -0700, Hong Zhang wrote: If we define caller-save and callee save. The 64 register may not be bad, as long as caller-save set is small. At least a full push without a copy to the new frame is dead cheap, so it's not much of a cost. May not be true. If we use gc,

RE: Draft assembly PDD

2001-08-06 Thread Dan Sugalski
At 07:23 PM 8/6/2001 -0400, Sam Tregar wrote: On Mon, 6 Aug 2001, Hong Zhang wrote: It is not just for performance, the stack size and cache locationality are also big issues. Cache sizes and timings vary from machine to machine. Maybe we should make it configurable at compile-time? If we

Re: Draft assembly PDD

2001-08-06 Thread Bart Lateur
On Mon, 6 Aug 2001 15:41:59 -0700 , Hong Zhang wrote: Branches should work from both constants and registers. Even so, the branch #num should have better performance, and it is part of any machine language. Since we already have jump instruction, do we really need the branch %r, which can be

Re: Draft assembly PDD

2001-08-06 Thread Uri Guttman
DS == Dan Sugalski [EMAIL PROTECTED] writes: DS Nothing hard about it, really. We'll see either: DSbranch $10 DS or DSstore I12, $10 DSbranch I12 DS Not that tricky. (And no, those aren't regex variables. I'm having DS LSI-11 Macro flashbacks here) wow, the

Re: Opcode Dispatch

2001-08-06 Thread Dan Sugalski
At 01:47 AM 8/6/2001 -0400, Bryan C. Warnock wrote: Okay, next set of results. 508 opcodes, arranged in a primary set of 255, and a secondary set of 253. The primary set contained the escape opcode (opcode 0), the null opcode (opcode 254), and the program termination opcode (opcode 255). The

Re: Opcode Dispatch

2001-08-06 Thread Dan Sugalski
At 02:17 AM 8/6/2001 -0400, Uri Guttman wrote: a few pseudo-random thoughts, take them as pure musings. dan has ordered^Wsuggested that the op code be a 32 bit value. Got it right the first time. Ordered is as good a word as any. (Mandated in the fundamental design documents is a good way

Re: Opcode Dispatch

2001-08-06 Thread Uri Guttman
DS == Dan Sugalski [EMAIL PROTECTED] writes: DS At 02:17 AM 8/6/2001 -0400, Uri Guttman wrote: a few pseudo-random thoughts, take them as pure musings. he didn't like the escape code and 16 bits was too small a space. but i haven't heard him spell out the op code dispatch

Re: Opcode Dispatch

2001-08-06 Thread Dan Sugalski
At 12:23 PM 8/6/2001 -0400, Uri Guttman wrote: DS == Dan Sugalski [EMAIL PROTECTED] writes: DS At 02:17 AM 8/6/2001 -0400, Uri Guttman wrote: a few pseudo-random thoughts, take them as pure musings. he didn't like the escape code and 16 bits was too small a space. but i

Re: Opcode Dispatch

2001-08-06 Thread Uri Guttman
DS == Dan Sugalski [EMAIL PROTECTED] writes: but a pure 32 bit table can be very large (and sparse) if we have those gaps you seem to propose below. DS True, but only if we actually use the whole set. We're 32 bit for a few DS reasons, none of which are to provide a billion opcodes:

Re: Opcode Dispatch

2001-08-06 Thread Bryan C . Warnock
On Monday 06 August 2001 02:17 am, Uri Guttman wrote: dan has ordered^Wsuggested that the op code be a 32 bit value. he didn't like the escape code and 16 bits was too small a space. but i haven't heard him spell out the op code dispatch design for that. so, here is a way to use a 32 bit op

Re: Opcode Dispatch

2001-08-06 Thread Dan Sugalski
At 09:35 PM 8/6/2001 -0400, Stephane Payrard wrote: Can we expect that perl6 bytecode will be used to implement the Perl equivalent of shared libraries. Yes, in fact we can. :) Perl bytecode will have three sections: 1) Fixup section. RW. This has all the real-address pointers and suchlike

Re: Opcode Dispatch

2001-08-06 Thread Stephane Payrard
Can we expect that perl6 bytecode will be used to implement the Perl equivalent of shared libraries. I wrote an (admittedly poorly worded) RFC to state the problem, but got no feedback: see http://dev.perl.org/rfc/338.pod -- stef

Re: Opcode Dispatch

2001-08-06 Thread Uri Guttman
DS == Dan Sugalski [EMAIL PROTECTED] writes: DS Perl bytecode will have three sections: DS 1) Fixup section. RW. This has all the real-address pointers and DS suchlike things stored in it. It will be abused as needed when DS 2) Constants section. RO. Holds constants. (I bet that was a

Re: Opcode Dispatch

2001-08-06 Thread Dan Sugalski
At 09:08 AM 8/6/2001 -0400, Bryan C. Warnock wrote: On Monday 06 August 2001 02:17 am, Uri Guttman wrote: dan has ordered^Wsuggested that the op code be a 32 bit value. he didn't like the escape code and 16 bits was too small a space. but i haven't heard him spell out the op code dispatch

Re: Opcode Dispatch

2001-08-06 Thread Bryan C . Warnock
On Monday 06 August 2001 09:16 am, Dan Sugalski wrote: It's probably the name causing problems. Unless things change, everything in the executable bits of parrot's bytecode stream will be 32 bits. We might drop that to 16 bits, but that puts a heavy burden on branches I'd as soon not have to