really a
topic for -internals, it's really a purely language thing.
More importantly, it never really was a topic for -internals. Punctiation's
a strictly cosmetic issue. :)
Dan
--it's like this---
Dan
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 08:36 PM 7/2/2001 +0100, Simon Cozens wrote:
On Mon, Jul 02, 2001 at 03:00:54PM -0400, Dan Sugalski wrote:
what about starting offset? that is used now to shorten a string from
the left side.
D'oh! In. Out goes the unused.
Whoa there. Do we still actually want to do this? It's unclear
7: Same as chapter 6, only different
Chapter 8: Same as chapter 7, only different
.
.
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
system to build on. It's
the various Unices that are a pain.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
'Kay, here's the final version of this.
Cut here
=head1 TITLE
Perl's internal data types
=head1 VERSION
1.3
=head2 CURRENT
Maintainer: Dan Sugalski [EMAIL PROTECTED]
Class: Internals
PDD Number: 4
Version: 1.3
, but I can't think of a processor newer
than the 6502 that does BCD math. (Well, OK, I think the System/3x0
processors do--I suppose that counts))
Dan
--it's like this---
Dan Sugalski
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
of a hack wedged in to avoid multi-character switches.
And since we're not going to, the potential confusion just doesn't seem
worth the keystroke savings.
Dan
--it's like this---
Dan Sugalski
At 11:44 AM 7/6/2001 -0500, David M. Lloyd wrote:
On Fri, 6 Jul 2001, Dan Sugalski wrote:
At 01:26 PM 7/5/2001 -0500, David M. Lloyd wrote:
It would be nice to be able to tell the interpreter to call a user-defined
C function between opcodes. This could make it easier to implement
)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 01:59 PM 7/6/2001 -0500, David L. Nicol wrote:
Dan Sugalski wrote:
At 12:51 PM 7/6/2001 -0500, David L. Nicol wrote:
Benjamin Stuhl wrote:
(eg. I solemnly swear to never use symbolic
references, count on specific op patterns, or
use
well to
end of block actions. I can't recall offhand what it was, but it would've
been nifty if perl could have done it reliably)
Dan
--it's like this---
Dan Sugalski even samurai
override the opcode function and push your function on top of the stack. :)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears
, with less impact on threads and such) is up in the air.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
At 03:30 PM 7/9/2001 -0400, Uri Guttman wrote:
DS == Dan Sugalski [EMAIL PROTECTED] writes:
PJ Done by what? Adding opcodes at all conceivable positions could
PJ be unnecessarily expensive for most applications, and you're bound
PJ to miss something that someone wants. I would
At 12:02 AM 7/10/2001 +0200, Paul Johnson wrote:
On Mon, Jul 09, 2001 at 04:30:08PM -0400, Dan Sugalski wrote:
At 03:30 PM 7/9/2001 -0400, Uri Guttman wrote:
definitely insert special opcodes only when asked for by a compiler
option. stuff like profiling, tracing, fine grained single step
At 10:21 PM 7/10/2001 -0400, Uri Guttman wrote:
DS == Dan Sugalski [EMAIL PROTECTED] writes:
DS At 12:02 AM 7/10/2001 +0200, Paul Johnson wrote:
And ultimately it's going to be possible to directly manipulate the
optree, even while a program is running, right?
DS Absolutely
this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
in the internals, it should be worth a
drop-in)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 07:51 PM 7/19/2001 +0200, Paul Johnson wrote:
On Thu, Jul 19, 2001 at 01:40:50PM -0400, Dan Sugalski wrote:
Sure, sounds good. I'll see about having the first draft of the Parrot
Assembly Language Manual and Architecture Handbook PDD with me too.
(All I
need to do now is write
when multiple modules are used is rather up in the air. I don't
have the answer at the moment.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
At 10:32 PM 7/30/2001 -0400, Sam Tregar wrote:
On Mon, 30 Jul 2001, Dan Sugalski wrote:
When you actually use a module, the simple name (like IO) will be
internally expanded out to the three value thing. So if you have two
modules that each use a different version of the same module
...)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
Dan
--it's like
or something)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
it is
at the moment. (We'll have to make sure we remember to use a non-cache
dirtying clear if we have it on the platform we're running on)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL
not possible with semi-generic code. We can reach an adequate compromise,
though.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy
At 11:10 AM 8/7/2001 +0200, Bart Lateur wrote:
On Mon, 06 Aug 2001 21:55:07 -0400, Dan Sugalski wrote:
But I do not agree that calculated jumps should be done in such a hard
way.
Nothing hard about it, really.
I was referring to Hong Zhang's proposal, not yours.
Ah, OK. I tend to get
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
) that we'll likely have
a fairly large number of new opcodes generated--if a sub is qualified to be
treated as an opcode function, we probably will.
Dan
--it's like this---
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
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
that if you had some monster string
constant we wouldn't have two copies--the one in your source and the one in
the constants section)
Dan
--it's like this---
Dan Sugalski even samurai
burden on branches I'd as
soon not have to deal with if we can avoid it.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears
On Sun, 26 Aug 2001, Ken Fox wrote:
Uri Guttman [EMAIL PROTECTED] wrote:
DS == Dan Sugalski [EMAIL PROTECTED] writes:
DS At 03:22 PM 8/18/2001 -0400, Uri Guttman wrote:
i didn't see any references to support debugging an external perl
process. ...
DS Good point
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 08:09 PM 9/3/2001 -0400, Ken Fox wrote:
Dan Sugalski wrote:
At 05:44 PM 9/3/2001 -0400, Ken Fox wrote:
Lexicals are fundamentally different from Perl's package (dynamically
scoped) variables.
No, actually, they're not.
How can you possibly think that lexical scoping and dynamic
methods and benchmark them as need be)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
At 08:19 PM 9/3/2001 -0400, Sam Tregar wrote:
On Mon, 3 Sep 2001, Dan Sugalski wrote:
Basically chunks of perl code can define opcodes on the fly--they might be
perl subs that meet the proper critera, or opcode functions defined by C
code with magic stuck in the parser, or wacky optimizer
At 09:26 PM 9/3/2001 -0400, Sam Tregar wrote:
On Mon, 3 Sep 2001, Dan Sugalski wrote:
avoid using a call opcode all over the place, right?
No, more a try and leave the bytecode sections read-only hack.
Imagine, if you will, building LWP and bytecode compiling it. It uses
private
)
Needless to say, this makes the optimizer's job... interesting. On the
other hand, it does allow for some really powerful things to be done by
code at runtime.
Dan
--it's like this---
Dan Sugalski
At 09:42 PM 9/3/2001 -0400, Ken Fox wrote:
Dan Sugalski wrote:
First, of course, runtime and compiletime are mixed on perl. String eval
has to go walk back up the pads *at runtime* and resolve the variable
names.
Sure, if you use eval, the symbol table for the current scope
needs
At 07:05 PM 9/3/2001 -0700, Brent Dax wrote:
# From: Dan Sugalski [mailto:[EMAIL PROTECTED]]
# At 05:30 PM 9/3/2001 -0700, Brent Dax wrote:
# As far as expensiveness, I think this can be just as fast as
# our current
# offset-into-the-pad method.
#
# I was speaking in both speed and memory use
of maybe more aggressive in our
optimizations, since there's less entropy in the system. (Well, from the
invisible source front, at least)
Dan
--it's like this---
Dan Sugalski even
At 09:12 PM 9/3/2001 -0700, Brent Dax wrote:
From: Dan Sugalski [mailto:[EMAIL PROTECTED]]
# At 07:05 PM 9/3/2001 -0700, Brent Dax wrote:
# # From: Dan Sugalski [mailto:[EMAIL PROTECTED]]
# # At 05:30 PM 9/3/2001 -0700, Brent Dax wrote:
# # As far as expensiveness, I think this can be just
At 09:06 AM 9/4/2001 +0100, Simon Cozens wrote:
On Mon, Sep 03, 2001 at 09:53:11PM -0400, Dan Sugalski wrote:
Might as well just promote the things to PMCs and pass in a list of them.
I anticipate that, especially for Perl, in a lot of cases we'll be dealing
with PMCs more often than
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
,
possibly check them, then call into the sub as if it'd been called with the
parameters in registers. (At which point we'll probably apply the checks
for type)
Dan
--it's like this---
Dan Sugalski
this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 01:58 PM 9/4/2001 -0500, Garrett Goebel wrote:
From: Dan Sugalski [mailto:[EMAIL PROTECTED]]
At 10:32 AM 9/4/2001 +0100, Piers Cawley wrote:
* Methods get their parameters passed in as a list in
* PMC register 0, unless we can unambiguously figure
* out their prototype
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 08:05 PM 9/4/2001 +0100, Graham Barr wrote:
On Tue, Sep 04, 2001 at 03:03:04PM -0400, Dan Sugalski wrote:
At 01:58 PM 9/4/2001 -0500, Garrett Goebel wrote:
From: Dan Sugalski [mailto:[EMAIL PROTECTED]]
At 10:32 AM 9/4/2001 +0100, Piers Cawley wrote:
Can you see any use of a sub
At 03:48 PM 9/4/2001 -0400, Uri Guttman wrote:
DS == Dan Sugalski [EMAIL PROTECTED] writes:
DS Ah. I've always wanted to do that with tied hashes. Okay, even
DS more reason to pass the data in! (We're going to end up with a
DS WANT register by the time we're done
(what you see above) it's 9.
Do you really think the stack-based way will be faster?
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
[I'm answering these out of order--sorry. Already answered elsewhere bits
snipped]
At 02:28 PM 9/5/2001 +0200, Paolo Molaro wrote:
On 09/04/01 Dan Sugalski wrote:
More on this point later in the mail.
There's a reason for that: register virtual machines are more complex
and more difficult
is where the
register-based system should buy us a win. If anyone wants to cobble
together a simple stack machine we can compare against, that'd be fine.
Dan
--it's like this---
Dan Sugalski
... :)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
# Call the sub
At least that's one way to do it. The compiler may generate different code.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
comparing
and constrasting pads/lexicals in the context of Perl5 vs. Perl6.
Well, that'll be reasonably tough as we don't have anything running for
perl 6. Yet. ;-)
Dan
--it's like this---
Dan Sugalski
At 06:12 PM 9/6/2001 +0200, Paolo Molaro wrote:
On 09/05/01 Dan Sugalski wrote:
It's easier to generate code for a stack machine
So? Take a look at all the stack-based interpreters. I can name a bunch,
including perl. They're all slow. Some slower than others, and perl tends
like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 01:21 PM 9/6/2001 -0400, Ken Fox wrote:
Dan Sugalski wrote:
Dan Sugalski [EMAIL PROTECTED] wrote:
Where do they come from? Leave a plate of milk and cookies on your back
porch and the Temp PMC Gnomes will bring them. :)
Bad Dan! No cookie for me.
You aren't fooling anybody
the interpreter's burning). Still, they are numbers.
When I get the assembler to spit out C instead of bytecode I'll add it into
the repository.
Dan
--it's like this---
Dan Sugalski even
shall
be unhappy if we're slower. :)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
At 12:34 PM 9/6/2001 -0700, Brent Dax wrote:
Dan Sugalski:
...
# new P0, list# New list in P0
# get_lex P1, $x # Find $x
# get_type I0, P1 # Get $x's type
# set_i I1, 1 # Set our loop var
# $10: new P2, I0
...
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 01:43 PM 9/6/2001 -0700, Brent Dax wrote:
Dan Sugalski:
# At 12:04 PM 9/6/2001 -0700, Brent Dax wrote:
# In the more general case, however (say, $x*1+$x*2+...$x*65) that's an
# interesting question. Could we just do some fun stuff with
# lists? What
# do real CPUs do?
#
# Real CPUs don't do
. Anything I can fix with a perl -pi -e and still
fit in an 80 character terminal line's OK with me. :)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
At 10:47 PM 9/6/2001 +0200, Paolo Molaro wrote:
On 09/06/01 Dan Sugalski wrote:
Then I'm impressed. I expect you've done some things that I haven't yet.
The only optimizations that interpreter had, were computed goto and
allocating the eval stack with alloca() instead of malloc().
Doesn't
Here's the assembly PDD. Changes to it to come, of course.
---Cut Here--
=head1 TITLE
Parrot assembly language
=head1 VERSION
=head2 CURRENT
Maintainer: Dan Sugalski
Class: Internals
PDD Number: 6
Version: 1.2
Status
benchmark things on
perl 5.004_04 and 6.x, and see who wins. If 6 doesn't, we find out why and
speed it up. :)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
At 05:41 PM 9/7/2001 -0400, Bryan C. Warnock wrote:
On Friday 07 September 2001 05:38 pm, Dan Sugalski wrote:
As for perl 6 vs perl 5, that's reasonably easy. We benchmark things on
perl 5.004_04 and 6.x, and see who wins. If 6 doesn't, we find out why and
speed it up. :)
5.004
At 12:12 PM 9/8/2001 -0400, Uri Guttman wrote:
DS == Dan Sugalski [EMAIL PROTECTED] writes:
DS Can anyone think of things I've forgotten? It's been a while since
I've
DS done numeric work.
i am not being picky, but there is secant, and arc hyperbolics too. you
can derive secant from
pow : Raise x to the y power
Can anyone think of things I've forgotten? It's been a while since I've
done numeric work.
Dan
--it's like this---
Dan Sugalski
to the
underscore issues later)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 03:51 PM 9/8/2001 -0700, Matthew Cline wrote:
On Saturday 08 September 2001 09:00 am, Dan Sugalski wrote:
Okay, I'm whipping together the fancy math section of the interpreter
assembly language. I've got:
sin, cos, tan : Plain ones
asin, acos, atan : arc-whatevers
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 08:07 PM 9/9/2001 -0400, Uri Guttman wrote:
DS == Dan Sugalski [EMAIL PROTECTED] writes:
DS Yeah, I can't think of a good reason for a noop. We might have one
DS anyway, though, just in case one comes along anyway.
in a hardware cpu they were commonly used to fill an instruction slot
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
those should probably be Parrot_ as well. We can change them to Perl_ at
some point if it becomes appropriate)
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
when we start dynaloading libraries, as
we'll be doing pretty darned soon. (String and opcode function libraries,
at least, and the rest will follow)
Dan
--it's like this---
Dan Sugalski
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
development project. I don't want one
or two people (Namely me... :) to be holding up development that other
folks could be doing.
Dan
--it's like this---
Dan Sugalski even samurai
.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 05:41 PM 9/10/2001 -0400, Ken Fox wrote:
Dan Sugalski wrote:
=item if tx, X, Y
What's the purpose of providing Y? Does it make anything easier
allowing Y != 0?
Hmmm. No, it doesn't, it just bloats out the opcode stream by an IV. I'll
fix that.
=item jump tx
I expected a call op too
this---
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk
At 08:00 PM 9/10/2001 -0400, Bryan C. Warnock wrote:
On Monday 10 September 2001 06:23 pm, Dan Sugalski wrote:
At 05:23 PM 9/10/2001 -0500, Brian Wheeler wrote:
First off, here's an inconsistancy I found: In test.pasm
REDO: eq_i_ic I2, I4, DONE, NEXT
appears. Shouldn't
) at
some point didn't grok 'em. Patches have been applied, but you might've
checked out before that happened.
Dan
--it's like this---
Dan Sugalski even samurai
[EMAIL PROTECTED
At 08:44 PM 9/10/2001 -0400, Bryan C. Warnock wrote:
On Monday 10 September 2001 08:47 pm, Dan Sugalski wrote:
Because I think backwards from most people, apparently. :)
That and generally speaking if there are three args the second is the same
type as the first, while the third
At 05:49 PM 9/10/2001 -0700, Damien Neil wrote:
On Mon, Sep 10, 2001 at 08:48:48PM -0400, Dan Sugalski wrote:
At 04:56 PM 9/10/2001 -0700, Brent Dax wrote:
This patch seems to work on the FreeBSD box I have access to. Now to
figure out what's causing all those 'use of uninitialized value
At 09:05 PM 9/10/2001 -0400, Ken Fox wrote:
Dan Sugalski wrote:
At 05:41 PM 9/10/2001 -0400, Ken Fox wrote:
You're expecting the current lexical scope to be carried implicitly
via the PC?
No, it'll be in the interpreter struct.
But how does the interpreter know where a lexical scope
, and the documentation doesn't quite keep pace. (Sometimes its
ahead, sometimes its behind, but it beats having two source modules out of
sync :)
Dan
--it's like this---
Dan Sugalski even
At 06:16 PM 9/10/2001 -0700, Brent Dax wrote:
Dan Sugalski:
...
# The jump ops will be easy to figure--either they'll take a
# register, a
# constant number, or a label. We don't allow labels that could
# be confused
# with registers. (No I0: anywhere...)
Noo! How will I write really
At 09:01 PM 9/10/2001 -0400, Bryan C. Warnock wrote:
On Monday 10 September 2001 09:00 pm, Dan Sugalski wrote:
But how does the interpreter know where a lexical scope begins
and ends in the bytecode? For example, a jump FOO might change
scopes. How is the scope discovered?
jump FOO
At 06:02 PM 9/10/2001 -0700, Damien Neil wrote:
On Mon, Sep 10, 2001 at 08:56:52PM -0400, Dan Sugalski wrote:
I'm thinking of writing something to generate a Parrot::Opcode.pm
module, so code doesn't need to parse opcode_table and interp_guts.h.
Sound reasonable?
Yes, please do. I knew
401 - 500 of 3756 matches
Mail list logo