As I prepared to dive into a big area of parrot that I'm completely
unfamiliar with, I decided to log my travels in hopes of helping out
the next poor soul who happens along a similar path.
For now, the focus is on converting my toy languages/regex compiler
into more of a real Perl6-style rule com
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
On 19 Aug 2004, at 18:04, Luke Palmer wrote:
The one in Perl 5 that stands out most was the cause for the only patch
I ever sent to p5p: the rand function. "rand $x" will give you a
uniformly distributed random number in [0, $x) for any $x EXCEPT 0. I
> "Rafael" == Rafael Garcia-Suarez <[EMAIL PROTECTED]> writes:
Rafael> BTW, isn't the habit to post to c.l.p.announce a bit deprecated now ?
Not at all. More people should do it. Don't remove it.
Either that, or entertain a proposal to cancel the group.
--
Randal L. Schwartz - Stonehenge
On Thu, 2004-08-19 at 12:17 -0400, Matt Diephouse wrote:
> At this point, you may as well use C<.records> (think C<$/> -- record
> separator):
>
>for $foo.records { ... }
>
> Then it'd be a small step to allow:
>
>for $foo.records :sep"," { ... }
> --or--
>for $foo.r
Larry Wall <[EMAIL PROTECTED]> wrote:
> Final blocks on statement-level constructs always imply semicolon
> precedence afterwards regardless of the position of the closing curly.
> Statement-level constructs are distinguished in the grammar by being
> declared in the statement syntactic group:
>
>
3) Incremental collection interfers badly with freeze & thaw, at least
if freeze uses the next_for_GC pointer to keep track of duplicates.
OTOH both freezing and creating the graph of live objects during DOD are
basically the same. The problem currently is that chaining objects
together is done
Larry Wall wrote:
=head1 Title
Synopsis 4: a Summary of Apocalypse 4
A little light reading is always good in the morning ;-)
To return a value from a pointy sub or bare closure, you either
just mention the value last that you want to return, or you can
use C. A C by default exits from the inne
On 8/19/04, [EMAIL PROTECTED] (Luke Palmer) wrote:
>David Green writes:
> > Hang on -- should we be saying "for each $foo" or "for $foo.each"
> > anyway? We don't say "for @foo.each"; the iteration is implicit. So
> > I'm thinking it should be "for $foo" or "while next $foo".
>
>Well, C gives you
On 8/19/04, [EMAIL PROTECTED] (Larry Wall) wrote:
>It's hard to come up with an English word that means "next" in scalar
>context but "all" in list context.
I never know whether to name my arrays singular or plural, either. =)
But couldn't there be Two Ways To Do It? One "singular" name and on
On Fri, 20 Aug 2004 00:05:10 -0700, Steve Fink <[EMAIL PROTECTED]> wrote:
> I know someone else was blogging his initial experiences
> slogging through the Parrot source -- that's where I got the idea,
> though I'm not exactly a newbie around here so I'll be assuming a bit
> more familiarity with t
Randal L. Schwartz wrote:
Rafael writes:
BTW, isn't the habit to post to c.l.p.announce a bit deprecated now ?
Not at all. More people should do it. Don't remove it.
Either that, or entertain a proposal to cancel the group.
Which of these are still alive and kicking?
perl.64bit
perl.advocacy
perl
Leo~
Nice summary of the issues, but I have a few nits to pick
On Fri, 20 Aug 2004 10:29:28 +0200, Leopold Toetsch <[EMAIL PROTECTED]> wrote:
> a) The mark phase of the garbage collection creates the graph of *all*
> life (reachable) objects[1].
> b) Freezing a PMC creates the graph of reacha
At 8:29 AM -0700 8/18/04, Dave Whipp wrote:
"Leopold Toetsch" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
Rather not. Python is AFAIK not as portable as Perl. But there is a Perl
based make somewhere, the named just escaped my mind.
We use Makepp (http://makepp.sourceforge.net/) h
At 10:10 AM -0700 8/17/04, Steve Fink wrote:
Still, I won't commit this patch directly, because I have only
recently delved into the latest incarnation of the keyed code, and it
scares me.
Well, I will. :) It's in, with the test.
--
Dan
--
At 3:10 PM -0700 8/16/04, Danny Werner (via RT) wrote:
# New Ticket Created by Danny Werner
# Please include the string: [perl #31197]
# in the subject line of all future correspondence about this issue.
# http://rt.perl.org:80/rt3/Ticket/Display.html?id=31197 >
Hi bugtracker,
Examples from the 2
At 4:03 PM +0200 8/17/04, Bernhard Schmalhofer wrote:
currently I'm looking into 'libtool' for turning 'libsyck.a' into a
shared library.
This brings me to the idea, wether it would it be an option to use
'libtool' for library building stuff within parrot.
'libtool' from the commandline seems t
On Fri, Aug 20, 2004 at 08:38:21AM -0400, Matt Diephouse said:
> That's me. I don't think I ever announced this to the list though. Any
> newbie lurkers can check it out: http://matt.diephouse.com/parrot
"The rest of the bytecode is made up of objects. Objects are preceeded
by a char denoting the
At 4:16 PM -0700 8/18/04, Will Coleda (via RT) wrote:
# New Ticket Created by Will Coleda
# Please include the string: [perl #31229]
# in the subject line of all future correspondence about this issue.
# http://rt.perl.org:80/rt3/Ticket/Display.html?id=31229 >
Index: build_tools/c2str.pl
Applied,
Dan~
Just a few small questions about scons to clarify...
On Fri, 20 Aug 2004 09:16:24 -0400, Dan Sugalski <[EMAIL PROTECTED]> wrote:
> Whatever we use is fine as long as:
>
> a) We can edit the dependency file without having to know the
> language the tool's written in
I believe that scons wil
Since I need this, and need to get it done reasonably soon, I'm
spec'ing out the syntax of the charset and encoding files.
Since there's been no more complaint or discussion, I'm taking the
encoding and charset APIs proposed as acceptable, with the caveat
that my docs suck and are going to be p
On Fri, 20 Aug 2004 14:56:25 +0100, Simon Wistow <[EMAIL PROTECTED]> wrote:
> Interesting - I wrote Python::Serialise::Marshal in May last year to
> snarf Mailman config files and I didn't realise it was so close to
> Python bytecode.
Mailman config files ARE python bytecode -- they're just python
On Thu, Aug 19, 2004 at 07:45:37PM -0700, Larry Wall wrote:
> BEGIN {...}*at compile time, ASAP
> CHECK {...}*at compile time, ALAP
>INIT {...}*at run time, ASAP
> END {...} at run time, ALAP
> FIRST {...}*at first block entry time
> ENTER
At 10:12 AM -0400 8/20/04, Matt Fowles wrote:
Dan~
Just a few small questions about scons to clarify...
On Fri, 20 Aug 2004 09:16:24 -0400, Dan Sugalski <[EMAIL PROTECTED]> wrote:
Whatever we use is fine as long as:
a) We can edit the dependency file without having to know the
language the tool'
> Parameters are by default constant within the block. You can
> declare a parameter read/write by including the "C" trait.
> If you rely on C<$_> as the implicit parameter to a block, then
> then C<$_> is considered read/write by default. That is,
> the construct:
>
> for @foo {...}
>
> is a
Dan~
Sounds good. I will start on that, but don't hold your breath as it
may take a little while. I will try to keep abreast of current CVS.
Matt
On Fri, 20 Aug 2004 10:37:14 -0400, Dan Sugalski <[EMAIL PROTECTED]> wrote:
> At 10:12 AM -0400 8/20/04, Matt Fowles wrote:
> >Dan~
> >
> >Just a fe
Dan Sugalski <[EMAIL PROTECTED]> wrote:
>> print 0x2A
>> print "\n"
>> print 0X2A
>
> on this line.
> Leo, any reason to be case sensitive on this stuff you can think of?
Nah. Not really. The lexer evolves, as it did with float parsing. And
all untested stuff doesn'
Dan Sugalski wrote:
print 0X2A
Fixed.
leo
Matt Fowles <[EMAIL PROTECTED]> wrote:
> Leo~
> Nice summary of the issues, but I have a few nits to pick
Thanks. I'll only look at DFS. It more cache-friendly.
> Thus I don't think that BFS works. Now lets consider DFS of both sets.
> A refs C,B; B refs D, E; C refs E; D refs G; E refs A
On Fri, Aug 20, 2004 at 09:21:02AM +0100, Matthew Walton wrote:
: It would be nice if rand behaved a bit more sanely in Perl 6. I can
: understand the reasoning for making rand 0 produce between 0 and 1, but
: that doesn't mean I have to like it.
What makes you think there was any "reasoning" in
Aaron Sherman writes:
> Larry Wall wrote:
> > leave :from(Loop) :labelÂLINEÂ <== 1,2,3;
> > [...]
> > leave <== :foo:bar:baz(1) if $leaving;
>
> I know it's probably just me, but This section seems to suddenly rely on
> a lot more knowledge of the current state of Perl 6 syntax than I have.
On Fri, Aug 20, 2004 at 09:18:06AM -0500, Jonathan Scott Duff wrote:
: Whither REDO {...} ? Or do we just manufacture that ourselves with
: NEXT?
Hmm, well, you can view C as just a C in disguise,
or as a C that suppresses the "while" check. But I think it's
seldom enough used that it doesn't r
hi chromatic :)
given being pointed toward Test::MockObject::Extends last time I decided to
rework my tests to use it instead of a dozen local overrides. I immediately
ran into a little snag.
I want to override IO::Socket::INET so that a class calling it's constructor
will use my mocked object.
David Green writes:
> Then I thought that maybe "for" doesn't need to work lazily (except that
> the conveniently just-posted Synopsis 4 confirms that it is supposed to
> be lazy). Or maybe "for" is only "as lazy as is reasonable", meaning if
> it knows how (e.g. if you're using an array or fil
On Fri, Aug 20, 2004 at 09:04:48AM -0700, Dave Whipp wrote:
: > Parameters are by default constant within the block. You can
: > declare a parameter read/write by including the "C" trait.
: > If you rely on C<$_> as the implicit parameter to a block, then
: > then C<$_> is considered read/write by
At 3:10 PM -0700 8/16/04, Danny Werner (via RT) wrote:
Examples from the 2th aoudad book (page 127) did not
turn out as expected. Being completely new to this,
I did not know where to put the testcode.
And now the test's in. Thanks!
--
Dan
---
I recently noticed that the benchmarks in
examples/benchmarks was running significantly slower.
I update Cygwin and Parrot daily - so there have been
a lot of changes to account for. I idly asked on IRC
if anyone was regularly tracking benchmark performance
because I was feeling lazy.
Dan said n
Leo~
On Fri, 20 Aug 2004 16:26:33 +0200, Leopold Toetsch <[EMAIL PROTECTED]> wrote:
> And yes, I'm really thinking of inserting these A* nodes. Freezing an
> object does need it. DOD of course not really.
How is space going to be made for these? DOD probably does not want
to allocate the dummy
> my $mock = Test::MockObject->new('IO::Socket::INET');
>
> $mock->fake_new('IO::Socket::INET')
>->set_false('connected')
>->mock('error', sub { 'localerror' });
>
> the goal being that when my class calls IO::Socket::INET->new($args) that it
> fails, returning my error strin
On Fri, 2004-08-20 at 11:03, Geoffrey Young wrote:
> hmph, I'm actually having a difficult time getting ::Extends to do what I
> would think it would do. consider
>
> use Test::MockObject::Extends;
> my $mock = Test::MockObject::Extends->new('IO::File');
> $mock->mock('open', sub { print "
> It's your understanding. You're not mocking the class as a whole.
> You're mocking an instance. If it helps, think of prototype-based
> programming, where you don't inherit from classes, you inherit from
> other objects and selectively override or add methods on the new
> objects.
hmm, ok, I
On Fri, 2004-08-20 at 11:24, Geoffrey Young wrote:
> Test::MockObject is clearly object/instance based.
> Test::MockObject::Extends is documented to mock either an object or the
> class as a whole. if that's not the case that is fine (I guess ;), but then
> I'm very confused what value passing a
> The docs may be misleading, especially as there's code in
> Test::MockObject that really should live in something like
> Test::MockModule or Test::MockPackage, neither of which exist yet.
>
> The important point is that you always have to work with the object
> returned from Test::MockObject::E
As part of the DOD/GC rework, we need to have a clean,
well-documented API for the garbage collector. Things were clean,
though not documented, for the original DOD and things have gotten
significantly messier since.
Part of the point of the GC/DOD rework is to allow alternate GC
implementatio
Joshua Gatcomb wrote:
I recently noticed that the benchmarks in
examples/benchmarks was running significantly slower.
I update Cygwin and Parrot daily - so there have been
a lot of changes to account for. I idly asked on IRC
if anyone was regularly tracking benchmark performance
because I was fee
Joshua Gatcomb <[EMAIL PROTECTED]> wrote:
> I recently noticed that the benchmarks in
> examples/benchmarks was running significantly slower.
That might very likely be related to current patches WRT garbage
collection. I've turned off ARENA_DOD_FLAGS, which was on since quite a
time. Turning that
Dan Sugalski <[EMAIL PROTECTED]> wrote:
> At 3:10 PM -0700 8/16/04, Danny Werner (via RT) wrote:
>>Examples from the 2th aoudad book (page 127) did not
>>turn out as expected. Being completely new to this,
>>I did not know where to put the testcode.
> And now the test's in. Thanks!
And fails with
[ Oops that one got the wrong address, resent ]
Original Message
To: perl6-internals-subscribe ...
Some remarks
0) Parrot's nomenclature DOD vs GC is a bit misleading. The "DOD"
subsystem is the stop-the-world mark & sweep collector that recycles
object headers. The "GC" is t
Matt Fowles <[EMAIL PROTECTED]> wrote:
> Leo~
> On Fri, 20 Aug 2004 16:26:33 +0200, Leopold Toetsch <[EMAIL PROTECTED]> wrote:
>> And yes, I'm really thinking of inserting these A* nodes. Freezing an
>> object does need it. DOD of course not really.
> How is space going to be made for these? DOD
On Fri, Aug 20, 2004 at 10:49:17AM -0600, Luke Palmer wrote:
:
: method postcircumfix:<> ($self: *%opt) returns List {
: scalar $self.<*%opt>, $self.<*%opt> # [1]
: }
:
: [1] Look, Larry, I had to use C! Maybe we _do_ need to revive
: $()!
It's not clear to me that $() would h
At 9:48 PM +0200 8/20/04, Leopold Toetsch wrote:
0) Parrot's nomenclature DOD vs GC is a bit misleading. The "DOD"
subsystem is the stop-the-world mark & sweep collector that recycles
object headers. The "GC" is the copying collector for variable sized
string and other buffer memory.
The incrementa
On Thu, Aug 19, 2004 at 08:12:37PM -0500, Peter Behroozi wrote:
: And to replace $/ we could have something like:
:
: for $foo.fetch :upto(",") { ... } #or
: for $foo.fetch :until(",") { ... }
I suppose in <>-ese, that could be one of:
for $foo.< :upto(",") > { ... } #or
for $foo.< :unti
I like that arguments will be readonly by default. But when I look at my
current code, I see that I would be typing " is rw" quite a lot, which in
my opinion is too long for a thing that occurs very often.
Every such situation in my code is a foreach loop. A thing that in Perl
6 will mostly be use
On Fri, Aug 20, 2004 at 12:52:56PM -0700, Larry Wall wrote:
: Unfortunately, the only obvious one, 's', is taken.
I remind myself that 'S' is equally obvious, and not taken. Like _,
it suffers from spacing issues, but could be the ASCII backup for
the § character. (As Y is likely to be the ASCII
At 9:36 PM +0200 8/20/04, Leopold Toetsch wrote:
Dan Sugalski <[EMAIL PROTECTED]> wrote:
At 3:10 PM -0700 8/16/04, Danny Werner (via RT) wrote:
Examples from the 2th aoudad book (page 127) did not
turn out as expected. Being completely new to this,
I did not know where to put the testcode.
And n
On Fri, Aug 20, 2004 at 10:07:02PM +0200, Juerd wrote:
: I'm proposing
:
: for zip(@foos, @bars, @xyzzies) <-> $foo, $bar, $xyzzy { ... }
: for %quux.kv <-> $key, $value { ... }
That'd probably work on the keys only if the hash was declared to have
object keys. At least in Perl 5, the ke
Dan Sugalski wrote:
As part of the DOD/GC rework, we need to have a clean, well-documented
API for the garbage collector. Things were clean, though not documented,
for the original DOD and things have gotten significantly messier since.
First is of course one of the goals of these changes. Second
On Fri, 20 Aug 2004 13:31:12 -0700, Larry Wall <[EMAIL PROTECTED]> wrote:
> It's vaguely possible I could be persuaded on the basis that
>
> for zip @a ¥ @b <-> { ($^a,$^b) = ($^b,$^a) }
Shouldn't that be:
for zip @a, @b <-> { ... }
--or--
for @a ¥ @b <-> { ... }
?
--
On Fri, Aug 20, 2004 at 12:39:35AM -0700, Brent 'Dax' Royal-Gordon wrote:
: Larry, you're a genius.
Yeah, well, that and 150 cents'll get me a cup of coffee...
Larry
On Fri, Aug 20, 2004 at 04:46:33PM -0400, Matt Diephouse wrote:
: On Fri, 20 Aug 2004 13:31:12 -0700, Larry Wall <[EMAIL PROTECTED]> wrote:
: > It's vaguely possible I could be persuaded on the basis that
: >
: > for zip @a ¥ @b <-> { ($^a,$^b) = ($^b,$^a) }
:
: Shouldn't that be:
:
: fo
On Fri, 20 Aug 2004 13:49:46 -0700, Larry Wall <[EMAIL PROTECTED]> wrote:
> Yes, a typo. Though it's not actually clear yet whether you have to
> write zips args with semicolons, which is why I partially switched
> to ¥ in midthink.
Just checking. I wondered if you'd introduced a new feature midt
Peter Behroozi wrote:
I'm not particular to any of the verbs used yet, but maybe that's
because I don't think of the <> as a general iterator, but more of a
gobbler-type creature (and formerly a globber, too). Could we try:
for $foo.fetch { ... } #or
for $foo.grab { ... } #or
for $foo.eat { ... }
Well, after I had something that made comparing
differences easier, I reverted back CVS. While I
noticed a speed difference, it was very minor which
means the significant speed bump is likely related to
something non-parrot related. I am going to rebuild
the latest/greatest gcc on Monday to see i
Dan Hursh wrote:
Peter Behroozi wrote:
I'm not particular to any of the verbs used yet, but maybe that's
because I don't think of the <> as a general iterator, but more of a
gobbler-type creature (and formerly a globber, too). Could we try:
for $foo.fetch { ... } #or
for $foo.grab { ... } #or
for
On Fri, 2004-08-20 at 14:26, Austin Hastings wrote:
> Dan Hursh wrote:
> > generalimpose scalarimpose list
> > -----
> > D$foo.eat$foo.bite$foo.gobble
> > N$foo.look$foo.peek$foo.peruse
> >
> > hmm, I don'
Larry Wall wrote:
On Fri, Aug 20, 2004 at 12:52:56PM -0700, Larry Wall wrote:
: Unfortunately, the only obvious one, 's', is taken.
I remind myself that 'S' is equally obvious, and not taken. Like _,
it suffers from spacing issues, but could be the ASCII backup for
the § character. (As Y is likel
Dan Sugalski wrote:
Leopold Toetsch wrote:
Dan Sugalski <[EMAIL PROTECTED]> wrote:
At 3:10 PM -0700 8/16/04, Danny Werner (via RT) wrote:
Examples from the 2th aoudad book (page 127) did not
turn out as expected. Being completely new to this,
I did not know where to put the testcode.
And now the
Chromatic wrote:
On Fri, 2004-08-20 at 14:26, Austin Hastings wrote:
Dan Hursh wrote:
generalimpose scalarimpose list
-----
D$foo.eat$foo.bite$foo.gobble
N$foo.look$foo.peek$foo.peruse
hmm, I don't like eat i
chromatic wrote:
On Fri, 2004-08-20 at 14:26, Austin Hastings wrote:
Dan Hursh wrote:
generalimpose scalarimpose list
-----
D$foo.eat$foo.bite$foo.gobble
N$foo.look$foo.peek$foo.peruse
hmm, I don't l
Austin Hastings writes:
> Larry Wall wrote:
> >Hmm. Gotta decided if S$foo.bar() is too ugly to live though...
> >
>
> It is.
Agreed.
> >I still kinda like underscore.
> >
> How about "scalar"? The fact that one person, one time, came up with a
> need to invoke it doesn't mean we have to race
Adverbs are confusing me mightily lately.
It may be that Larry's A12 revision just needs a few examples
*with* parenthesis to straighten me out.
Here are some semi-coherent attempts to sort it out
in my mind. Please correct me where I have made mistakes.
What is the rule(s) for when :foo is an
On Fri, Aug 20, 2004 at 04:15:43PM -0600, John Williams wrote:
: Adverbs are confusing me mightily lately.
:
: It may be that Larry's A12 revision just needs a few examples
: *with* parenthesis to straighten me out.
:
: Here are some semi-coherent attempts to sort it out
: in my mind. Please cor
On Fri, Aug 20, 2004 at 04:18:55PM -0700, Larry Wall wrote:
: Only a sig of () makes it *not* look for an argument as a list operator.
That's overstated. Only a sig of () or ($x) or (?$x) suppresses
list operator-ness on ordinary function names.
Larry
Larry Wall writes:
> On Fri, Aug 20, 2004 at 04:15:43PM -0600, John Williams wrote:
> :
> :say .meth :foo;# say( .meth( foo=>1 ) )
>
> That one works.
But that's because :foo is an adverb to .meth, not because .meth is
taking an argument 'foo' => 1, right?
> Likewise
>
> sqrt($x):bo
On Fri, Aug 20, 2004 at 06:12:06PM -0600, Luke Palmer wrote:
: Larry Wall writes:
: > On Fri, Aug 20, 2004 at 04:15:43PM -0600, John Williams wrote:
: > :
: > :say .meth :foo;# say( .meth( foo=>1 ) )
: >
: > That one works.
:
: But that's because :foo is an adverb to .meth, not because .m
On 21/08/2004, at 5:48 AM, Leopold Toetsch wrote:
3) The copying collector isn't integrated yet. But that should be easy.
After finishing sweep and if there is some possible wastage in the
memory pools, these get compacted.
I thought Parrot wasn't using copying collectors, since you're exposing
PM
On 8/20/04 5:30 PM, Austin Hastings wrote:
> How about "scalar"? The fact that one person, one time, came up with a
> need to invoke it doesn't mean we have to race it up the huffman tree.
> P6 is winning the DWIM race most of the time contextually. Maybe [#] as
> a macro, if you like.
Yeah, that'
Larry Wall wrote:
$_ $xType of Match ImpliedMatching Code
== = ==
Any Code<$> scalar sub truth match if $x($_)
This bit of POD made me think about POD's lack of tabular formatting, a
common idiom in technical
Andrà Pang writes:
> On 21/08/2004, at 5:48 AM, Leopold Toetsch wrote:
>
> >3) The copying collector isn't integrated yet. But that should be easy.
> >After finishing sweep and if there is some possible wastage in the
> >memory pools, these get compacted.
>
> I thought Parrot wasn't using copying
Aaron Sherman writes:
> Larry Wall wrote:
>
> > $_ $xType of Match ImpliedMatching Code
> > == = ==
> > Any Code<$> scalar sub truth match if $x($_)
> >
> This bit of POD made me think about POD's lack of tabular
On Sat, Aug 21, 2004 at 12:03:10AM -0600, Luke Palmer wrote:
: I've already had my epiphany about POD, though, so I'll spare doing it
: again. In short, there are two things that I see about POD that need to
: change:
:
: =over
:
: =item 1)
:
: C<=directive> lines shouldn't have to be in their
80 matches
Mail list logo