Re: Release doc tasks

2004-02-25 Thread Paul Cochrane
* Michael Scott ([EMAIL PROTECTED]) [040220 10:35]:
 
 One thing that would help is if people ran
 
   perl tools/docs/write_docs.pl -d -s
 

Runs fine on my box:

interactionmac parrot $ uname -a
Linux interactionmac.physics.uq.edu.au 2.4.19-r6 #7 Tue Apr 22 16:54:53 EST
2003 ppc  740/750 GNU/Linux
interactionmac parrot $ perl -v

This is perl, v5.8.0 built for powerpc-linux

Copyright 1987-2002, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.

Later

Paul

-- 
[EMAIL PROTECTED]
Department of Physics
University of Queensland
St Lucia
Brisbane
Queensland 4072
Australia

Quantum Mechanics: the dreams stuff is made of.


[perl #27095] [PATCH] Corrections to memory handling for win32/exec.c

2004-02-25 Thread via RT
# New Ticket Created by  [EMAIL PROTECTED] 
# Please include the string:  [perl #27095]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=27095 


The following corrects my poor memory handling 
pointed out by mrnobo1024 at 

news://nntp.perl.org/perl.perl6.internals/21454




exec.diff
Description: Binary data


Feature freeze

2004-02-25 Thread Leopold Toetsch
You knew it already, but just to make sure ...
- No new feature checkins
- Object patches are fine
- Tests, bug fixes, docu updates, and such are more then welcome
Release date is still considered to be Feb, 29th.
*If* objects need some more days to settle, release will be on Feb, 30th 
(that is the date, when objects are usable ;)

WRT release name: Piers has proposed The Leaping Kakapo (whatever that 
is:) We could also name it The Leaping Aoudad.

leo



Re: [perl #27057] Let OrderedHash store STRING and FLOATVAL

2004-02-25 Thread Leopold Toetsch
Bernhard Schmalhofer [EMAIL PROTECTED] wrote:

 This patch adds the methods 'get_number_keyed', 'set_string_keyed' and
 'set_number_keyed' to
 the OrderedHash PMC.

Thanks, applied.

 The method 'set_string_keyed_str' is also included, but I can't figure out
 when it
 will be called.

Its only usable internally. Opcodes use {g,s}et_string_keyed, which just
verify and extract a string from the contant key.

 CU, Bernhard

leo


Re: [perl #27095] [PATCH] Corrections to memory handling for win32/exec.c

2004-02-25 Thread Leopold Toetsch
[EMAIL PROTECTED] (via RT) wrote:

The following corrects my poor memory handling 
pointed out by mrnobo1024 at 

news://nntp.perl.org/perl.perl6.internals/21454
Thanks, applied,
leo


native PBC issues

2004-02-25 Thread Leopold Toetsch
First of all its of course my fault. This whole stuff is vastly untested 
and it makes my brain hurt. I've cleaned up a bit and committed some 
changes, but this might still all be wrong.

So to get that running, people please submit native_pbc test files from 
64-bit machines and from big-endian architectures. Please follow the 
instructions in t/native_pbc/*.t and commit test files with -kb.

Reading foreign PBC isn't number 1 priority yet, but it should work some 
time.

Thanks,
leo


Re: [CVS ci] PLATFORMS

2004-02-25 Thread Dan Sugalski
At 8:02 PM -0800 2/24/04, Robert Spier wrote:
   After a bit of self-education on the CVS FAQ, I've come to the
  conclusion that renaming (delete/add) PLATFORMS to PLATFORMS.txt is
  the best way to solve this.
 Better it get fixed in CVS. There could be more errors of this kind.
Confused.  What would you like me to do?
Can you delete the directory entirely from CVS?

Also.

cvs update -dP should work just fine for this. 

at least it does for me.  Unless -P doesn't work properly on
case-insensitive filesystems.
It doesn't work properly for this in case-insensitive file systems. 
It tries doing directory things with platforms, which is at that 
point PLATFORMS, which isn't at all a directory, and CVS dies with a 
platforms not a directory error.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


RE: Feature freeze

2004-02-25 Thread Garrett Goebel
Leopold Toetsch wrote:
 
 WRT release name: Piers has proposed The Leaping Kakapo 
 (whatever that is:) We could also name it The Leaping
 Aoudad.

A Kakapo is a flightless night parrot: http://www.kakapo.net/en/. So leaping
Kakapo does make a kind of sense. kaka is the Maori word for parrot. Po
must be Maori for night. The mountain kaka is carnivorous. It has been known
to attack and kill lambs and pigs.

Kakapo is also a combination of kaka and pooh. -Which are words loaded with
other meanings... In American English (at least), kaka is childish slang
for shit as is poo.

--
Garrett Goebel
IS Development Specialist 

ScriptPro   Direct: 913.403.5261 
5828 Reeds Road   Main: 913.384.1008 
Mission, KS 66202  Fax: 913.384.2180 
www.scriptpro.com  garrett at scriptpro dot com 


Need some help with object tests

2004-02-25 Thread Dan Sugalski
If we're going to hit the February 30th release, I'm gonna need a little help.

At the moment I'm most of the way through getting objects done. And, 
amazingly enough, there's stuff to do that I'm not bottlenecking on. 
Specifically the object tests.

PDD 15, as it stands in the repository, documents the ops as they 
either do or will exist. I'm not going to change that, at least not 
now. Probably not ever, really.

We have a reasonably extensive set of tests for objects, 
unfortunately I've massively broken them all with the changes to the 
intruction set. What I need is for someone (or someones) to go 
through and patch up the tests to use the new, Officially Blessed(tm) 
object ops. Some of the tests will fail right now, as (for example) 
attribute inheritance doesn't work and the op to actually get a 
class' attribute offset doesn't exist yet, but it will, so...

This'd be a good time to dig into things. It's also probably the last 
chance for someone to try this and point out where things are 
horribly deficient. (Note that this isn't in reference to the 
deficiencies Mike Wallace is pointing out--that's separate, and 
something I've unfortunately put aside for the moment until this 
piece of functionality gets released. Sorry, Mike, but I've not 
forgotten!)
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Feature freeze

2004-02-25 Thread Leopold Toetsch
Garrett Goebel [EMAIL PROTECTED] wrote:
 Leopold Toetsch wrote:

 WRT release name: Piers has proposed The Leaping Kakapo
 (whatever that is:) We could also name it The Leaping
 Aoudad.

 A Kakapo is a flightless night parrot: http://www.kakapo.net/en/. So leaping
 Kakapo does make a kind of sense.

Thanks for the explanation. So 0.1.0 got a name ...

leo


Re: Need some help with object tests

2004-02-25 Thread Simon Glover

 One question: there doesn't appear to be any way to generate a list of
 the existing attributes of a class or even to determine how many
 attributes a particular class has. Should there be ops for one or both
 of these things?

 Simon





Re: Need some help with object tests

2004-02-25 Thread Dan Sugalski
At 11:59 AM -0500 2/25/04, Simon Glover wrote:
 One question: there doesn't appear to be any way to generate a list of
 the existing attributes of a class or even to determine how many
 attributes a particular class has. Should there be ops for one or both
 of these things?
I hadn't planned on putting that in for this round. I've been working 
under the assumption that a class' code knows the details about its 
part of an object, and all the other parts belonging to other classes 
are hidden from view. Adding in some introspection capabilities 
wouldn't be a bad thing, certainly, though we'll need to figure out 
how to gateway to non-parrotclass-based objects at some point.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Need some help with object tests

2004-02-25 Thread Larry Wall
On Wed, Feb 25, 2004 at 11:59:21AM -0500, Simon Glover wrote:
: 
:  One question: there doesn't appear to be any way to generate a list of
:  the existing attributes of a class or even to determine how many
:  attributes a particular class has. Should there be ops for one or both
:  of these things?

From the language point of view that would be a method call on the
metaclass instance.  Of course, maybe *that* method needs a special
opcode to get at the real metaclass data...

Larry


Re: addattribute bug

2004-02-25 Thread Dan Sugalski
At 12:23 PM -0500 2/25/04, Simon Glover wrote:
 This code:

newclass P1, Foo
subclass P2, P1, Bar
addattribute P2, bar_i
print ok 2\n
end
 barfs with:

   SArray index out of bounds!

 Is this a bug or just something that hasn't been implemented yet?
Good question, though I'd lean towards a bug. I'm in the middle of 
some of the attribute stuff, so let me take a look at it.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


addattribute bug

2004-02-25 Thread Simon Glover

 This code:

newclass P1, Foo
subclass P2, P1, Bar
addattribute P2, bar_i
print ok 2\n
end

 barfs with:

   SArray index out of bounds!

 Is this a bug or just something that hasn't been implemented yet?

 Simon




More object questions...

2004-02-25 Thread Simon Glover

 Currently, calling get_integer on a ParrotClass returns the attribute
 count, so you can do:

newclass P1, Foo
addattribute P1, foo_i
addattribute P1, foo_j
set I1, P1
print I1

 and the code will print '2'. Will this be part of the new API, or is it
 simply a relic of the previous implementation.

 Similarly, calling get_integer_keyed_str with a fully-qualified attribute
 name returns the attribute offsets, meaning that this:

newclass P1, Foo
addattribute P1, foo_i
addattribute P1, foo_j
set I2, P1[Foo\x00foo_j]
print I2

 prints '1' -- is this part of the API or not?

 Finally, a number of the current tests seem to rely on being able to
 set and get attribute values with the syntax:

set P2[Foo\x00i], 10
set P3[Foo\x00i], 20
set I2, P2[Foo\x00i]
set I3, P3[Foo\x00i]

 (where P2, P3 are objects of class Foo, and Foo has an attribute i).
 Is this part of the API?

 Simon



Re: More object questions...

2004-02-25 Thread Dan Sugalski
At 1:51 PM -0500 2/25/04, Simon Glover wrote:
 Currently, calling get_integer on a ParrotClass returns the attribute
 count, so you can do:
newclass P1, Foo
addattribute P1, foo_i
addattribute P1, foo_j
set I1, P1
print I1
 and the code will print '2'. Will this be part of the new API, or is it
 simply a relic of the previous implementation.
Relic.

 Similarly, calling get_integer_keyed_str with a fully-qualified attribute
 name returns the attribute offsets, meaning that this:
newclass P1, Foo
addattribute P1, foo_i
addattribute P1, foo_j
set I2, P1[Foo\x00foo_j]
print I2
 prints '1' -- is this part of the API or not?
Relic.

 Finally, a number of the current tests seem to rely on being able to
 set and get attribute values with the syntax:
set P2[Foo\x00i], 10
set P3[Foo\x00i], 20
set I2, P2[Foo\x00i]
set I3, P3[Foo\x00i]
 (where P2, P3 are objects of class Foo, and Foo has an attribute i).
 Is this part of the API?
Relic.

In all these cases the object will ultimately do a method lookup to 
see if it has a method in place to do the operation, so you can 
substitute an object for any other sort of PMC. Attribute access 
should be only through the attribute API.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: More object questions...

2004-02-25 Thread Simon Glover

 (You're probably getting sick of these by now...)

 Should asking for a non-existant attribute cause Parrot to throw an
 exception. Currently, it doesn't seem to be able to make up its mind
 -- this:

newclass P1, Foo
find_type I0, Foo
new P2, I0
getattribute P3, P2, -2
getattribute P3, P2, -1
getattribute P3, P2, 0
getattribute P3, P2, 1
end

 completes silently, but if we ask for an attribute with an offset = 2
 or = -3, we get an Array index out of bounds! exception. Which is the
 correct behaviour?

 (Incidentally, I get the same behaviour with setattribute).

 Simon





Re: Need some help with object tests

2004-02-25 Thread Simon Glover

 OK, I've dumped a few of the tests that were purely testing features
 of the old interface, and converted the rest to use the new object
 ops.

 Of the 21 tests that remain, nos. 14-15, 18-19 and 21 are still
 failing: 14, 15 and 21 due to the subclassing bug mentioned previously,
 18, 19 because accessing a non-existant attribute at offset 0 currently
 doesn't throw an exception.

 Note that the test coverage of the object ops is far from complete,
 so there's still plenty of scope for people to write object tests if
 they want to help out.

 Simon






Object benchmarks?

2004-02-25 Thread Dan Sugalski
As I continue to inch ever-closer to things working (down to three 
failed tests) it'd be cool if we could have some benchmark programs 
to give things a shakeout to see how our performance looks. (Given 
that we have no method cache or anything I can see things being... 
suboptimal :)

Anyway, bodging together some tests just of parrot's performance, as 
well as some comparisons to perl 5 (or ruby, or python... that'd be 
cool too!) would be a nice thing to see if we're on the right track 
here or not.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Object benchmarks?

2004-02-25 Thread Simon Glover

 Here's something very simple I just hacked together to see how
 fast storing and retrieving attribute values is:

set I1, 100

newclass P1, Foo
addattribute P1, i
find_type I0, Foo
new P2, I0
new P3, .PerlInt
set P3, 0
time N0
L1:
setattribute P2, 0, P3
getattribute P4, P2, 0
inc P3
lt P3, I1, L1
time N1
sub N2, N1, N0
print N2
print \n
end

 For 1 million iterations, I get:

  un-JITTED -- 0.42 sec
  JITTED-- 0.34 sec

 (Incidentally, if I comment out the setattribute and getattribute lines,
  then I get:

  un-JITTED -- 0.11 sec
  JITTED-- 0.05 sec

  which is the cost of the inc and comparison).

  Simon




Another object bug

2004-02-25 Thread Simon Glover

 If I'm understanding the docs correctly, this should print '0'.
 Instead, it prints 'Array index out of bounds!'

newclass P1, Foo
addattribute P1, i
find_type I0, Foo
new P2, I0
classoffset I1, P2, Foo
print I1
print \n
end

 Simon



Re: Another object bug

2004-02-25 Thread Dan Sugalski
At 4:54 PM -0500 2/25/04, Simon Glover wrote:
 If I'm understanding the docs correctly, this should print '0'.
 Instead, it prints 'Array index out of bounds!'
Another bug, though the offset ought to be 2 right now. (Attributes 0 
and 1 are taken by other things so they're valid)

--
Dan
--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Another object bug

2004-02-25 Thread Simon Glover

On Wed, 25 Feb 2004, Dan Sugalski wrote:

 At 4:54 PM -0500 2/25/04, Simon Glover wrote:
   If I'm understanding the docs correctly, this should print '0'.
   Instead, it prints 'Array index out of bounds!'

 Another bug, though the offset ought to be 2 right now. (Attributes 0
 and 1 are taken by other things so they're valid)

 OK, I think I see what's going on now: attribute 0 is the class PMC,
 attribute 1 is the classname PMC, and then any other attributes go
 into slots 2+

 However, there's currently nothing to stop you stomping on the PMCs
 in slots 0 and 1 by setting attributes with those offsets: in other
 words, doing:

newclass P1, Foo
addattribute P1, i
find_type I0, Foo
new P2, I0

new P3, .PerlInt
set P3, 1024
setattribute P2, 1, P3

 works, but changes the classname PMC to be a PerlInt with a value of
 1024. Are we supposed to be able to do this?

 A second issue (and what confused me in the first place) is that in your
 attribute example in PDD 15 you have:

   Adding the attributes Ca and Cb to the new class CFoo:

newclass $P0, Foo
addattribute $P0, a, Foo::a # This is offset 0
addattribute $P0, b, Foo::b # This is offset 1

 I assume that this should actually refer to offsets 2 and 3?

 Finally, in looking at the ops code, I noticed an unrelated bug:
 in the classname op, you do:

  classname_pmc = VTABLE_get_pmc_keyed_int(interpreter,
  (PMC *)PMC_data($2), POD_CLASS_NAME);

 To get the classname for the PMC. The problem is that the op is
 documented as working with a PMC respresenting a class, but you're
 using the symbolic constant from the object enum. This currently works,
 since the classname PMC is stored in slot 1 in both a ParrotObject and
 a ParrotClass PMC, but it still looks like a bug.

 Simon



Objects. Nearly there

2004-02-25 Thread Dan Sugalski
We've only two failing tests. Object.t/21 is failing because the test 
is incorrect (the PMCs aren't copied into the attribute array, 
they're actually put in there so the same PMC is used over and over) 
and object.t/22 is, well, tripping a bug of some sort.

Hopefully by the time you read this test 22 will be working right. If 
someone wants to take a shot at 21 in the interim that'd be, well, 
swell.
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Another object bug

2004-02-25 Thread Dan Sugalski
At 6:42 PM -0500 2/25/04, Simon Glover wrote:
On Wed, 25 Feb 2004, Dan Sugalski wrote:

 At 4:54 PM -0500 2/25/04, Simon Glover wrote:
   If I'm understanding the docs correctly, this should print '0'.
   Instead, it prints 'Array index out of bounds!'
 Another bug, though the offset ought to be 2 right now. (Attributes 0
 and 1 are taken by other things so they're valid)
 OK, I think I see what's going on now: attribute 0 is the class PMC,
 attribute 1 is the classname PMC, and then any other attributes go
 into slots 2+
 However, there's currently nothing to stop you stomping on the PMCs
 in slots 0 and 1 by setting attributes with those offsets: in other
 words, doing:
newclass P1, Foo
addattribute P1, i
find_type I0, Foo
new P2, I0
new P3, .PerlInt
set P3, 1024
setattribute P2, 1, P3
 works, but changes the classname PMC to be a PerlInt with a value of
 1024. Are we supposed to be able to do this?
Yes. At least... sorta kinda yes. Everything inside an object's 
attributes that's outside the range (class_offset .. 
class_offset+class_attrib_count] is supposed to not be touched.

This all assumes that compilers will generate correct code, and at 
the moment there's no reason, other than for testing, to use absolute 
offsets--the ops to do it all relatively are there and work. We may 
hide or otherwise protect these slots in the future--right now I'm 
happy with it all working as long as you don't poke it too hard. 
(Many of the functions don't properly check for class or objectness, 
for example)

 A second issue (and what confused me in the first place) is that in your
 attribute example in PDD 15 you have:
   Adding the attributes Ca and Cb to the new class CFoo:

newclass $P0, Foo
addattribute $P0, a, Foo::a # This is offset 0
addattribute $P0, b, Foo::b # This is offset 1
 I assume that this should actually refer to offsets 2 and 3?
Yes. That example's wrong and I'll go fix it.

 Finally, in looking at the ops code, I noticed an unrelated bug:
 in the classname op, you do:
  classname_pmc = VTABLE_get_pmc_keyed_int(interpreter,
  (PMC *)PMC_data($2), POD_CLASS_NAME);
 To get the classname for the PMC. The problem is that the op is
 documented as working with a PMC respresenting a class, but you're
 using the symbolic constant from the object enum. This currently works,
 since the classname PMC is stored in slot 1 in both a ParrotObject and
 a ParrotClass PMC, but it still looks like a bug.
D'oh! I'll go fix. Though since classes are supposed to be objects 
you could argue that it's actually correct, other than the fact that 
it's wrong. :)
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Ladies and gentlemen, I give you... objects!

2004-02-25 Thread Dan Sugalski
Yep, it looks like everything that should work now actually *does* 
work now, modulo a test that needs a thump. If folks would abuse this 
heavily, I'd much appreciate it.

Y'know, we may well make that Feb 30th date after all. :)
--
Dan
--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Ladies and gentlemen, I give you... objects!

2004-02-25 Thread chromatic
On Wed, 2004-02-25 at 15:54, Dan Sugalski wrote:

 Yep, it looks like everything that should work now actually *does* 
 work now, modulo a test that needs a thump. If folks would abuse this 
 heavily, I'd much appreciate it.

I'll revise some of the SDL code to use objects instead of pseudo
objects.

While I'm at it, is there nice IMCC syntactic sugar for making method
calls, or do I have to fill in the registers myself?  It's quite nice to
write:

($I2, $I3) = _some_function_call( $I0, $I1 )

It'd be a shame not to have something similar for methods

-- c



Re: Ladies and gentlemen, I give you... objects!

2004-02-25 Thread Simon Glover

On Wed, 25 Feb 2004, Dan Sugalski wrote:

 Yep, it looks like everything that should work now actually *does*
 work now, modulo a test that needs a thump. If folks would abuse this

 The test has now been thumped. All tests now pass here. Of course, that
 just means that it's time to write some more than don't... :-)

 Simon




[PATCH] win98 fixes for imcc/t/syn/file.t, classes/env.pmc, t/pmc/env.t

2004-02-25 Thread Goplat
imcc/t/syn/file.t: has a qx() use 21, and later an (unnecessary) qx() using
single quotes, neither of which the windows 98 shell supports.

classes/env.pmc: used getenv() when it should use Parrot_getenv()

t/pmc/env.t: parrot can't change or delete the PARROT_TMP that this sets so
tests 3, 5, and 6 were failing - added a delete $ENV{PARROT_TMP} after test 2

__
Do you Yahoo!?
Get better spam protection with Yahoo! Mail.
http://antispam.yahoo.com/tools--- imcc/t/syn/file.t~  Tue Feb 17 01:38:00 2004
+++ imcc/t/syn/file.t   Wed Feb 25 17:54:08 2004
@@ -8,7 +8,7 @@
 
 =head1 SYNOPSIS
 
-A test script which is suppossed to be called by Test::Harness.
+A test script which is supposed to be called by Test::Harness.
 
 =cut
 
@@ -23,7 +23,7 @@
 my $PERL5  = $PConfig{perl};
 
 ##
-open FOO, temp.pasm or die Cant write temp.pasm\n;
+open FOO, temp.pasm or die Can't write temp.pasm\n;
 print FOO 'ENDF';
   .constant BAR 42
 ENDF
@@ -45,7 +45,7 @@
 unlink temp.pasm;
 
 ##
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO 'ENDF';
   .const int BAR = 42
 ENDF
@@ -67,7 +67,7 @@
 unlink temp.imc;
 
 ##
-open FOO, temp.inc or die Cant write temp.inc\n;
+open FOO, temp.inc or die Can't write temp.inc\n;
 print FOO 'ENDF';
   .const int BAR = 42
 ENDF
@@ -148,7 +148,7 @@
 # test load_bytecode branches and subs
 
 # write sub2
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO 'ENDF';
 .pcc_sub _sub2 prototyped
 print sub2\n
@@ -179,7 +179,7 @@
 OUT
 
 # write sub2
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO 'ENDF';
 .pcc_sub _sub2 prototyped
 print sub2\n
@@ -214,7 +214,7 @@
 OUT
 
 # write sub2
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO 'ENDF';
 .pcc_sub _not_sub2 prototyped
 print not sub2\n
@@ -250,7 +250,7 @@
 OUT
 
 # write sub2
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO 'ENDF';
 .pcc_sub _sub2 prototyped
 print sub2\n
@@ -308,7 +308,7 @@
 OUT
 
 # write subs
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO 'ENDF';
 .pcc_sub _sub1 prototyped
 print sub1\n
@@ -344,7 +344,7 @@
   # include a non-existent file and catch the error message
   my $err_msg;
   {
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO  'END_PIR';
 # Including a non-existent file should produce an error
 .include non_existent.imc
@@ -355,14 +355,22 @@
 .end
 END_PIR
 close FOO;
-$err_msg = qx{$PARROT temp.imc 21}
+open OLDERR, STDERR or die Can't save STDERR\n;
+open STDERR, temp.out or die Can't write temp.out\n;
+system $PARROT temp.imc;
+open FOO, temp.out or die Can't read temp.out\n;
+{ local $/; $err_msg = FOO; }
+close FOO;
+open STDERR, OLDERR or die Can't restore STDERR\n;
+unlink temp.out;
   }
 
   # read a non-existent file and catch the error message
   my $enoent_err_msg;
   {
-my $ENOENT = qx{$PERL5 -e 'open FOO, non_existent.file; print( \$! + 0 )'};
-open FOO, temp.imc or die Cant write temp.imc\n;
+open FOO, non_existent.file;
+my $ENOENT = $! + 0;
+open FOO, temp.imc or die Can't write temp.imc\n;
 print FOO  END_PIR;
 .sub _main
   # run a OS command, and get the errmessge for the exit code
--- classes/env.pmc~Sun Feb 22 09:48:42 2004
+++ classes/env.pmc Wed Feb 25 18:12:16 2004
@@ -39,14 +39,14 @@
 int free_it = 0;
 STRING *retval;
 char *val = NULL;
-
+
 if (keyname) {
 val = Parrot_getenv(keyname, free_it);
 string_cstring_free(keyname);
 if (val) {
-retval = string_from_cstring(interpreter, val, 0);
+retval = string_from_cstring(interpreter, val, 0);
 } else {
-retval = string_from_cstring(interpreter, , 0);
+retval = string_from_cstring(interpreter, , 0);
 }
 } else {
 retval = string_from_cstring(interpreter, , 0);
@@ -67,7 +67,7 @@
 
 void set_string_keyed(PMC* key, STRING* value) {
 char *keyname = string_to_cstring(interpreter,
-VTABLE_get_string(interpreter, key));
+VTABLE_get_string(interpreter, key));
 char *env_val = string_to_cstring(interpreter, value);
 if (keyname  env_val) {
 Parrot_setenv(keyname, env_val);
@@ -91,20 +91,20 @@
 */
 
 INTVAL exists_keyed(PMC* key) {
-  char *keyname = string_to_cstring(interpreter,
-  VTABLE_get_string(interpreter, key));
-  int free_it;
-
-  if (keyname) {
-

UNIMPORTANT in the scheme of things.

2004-02-25 Thread nigelsandever
On Wed, 25 Feb 2004 10:30:24 +0100, [EMAIL PROTECTED] (Leopold Toetsch) wrote:
 [EMAIL PROTECTED] (via RT) wrote:
 
  The following corrects my poor memory handling 
  pointed out by mrnobo1024 at 
  
  news://nntp.perl.org/perl.perl6.internals/21454
 
 Thanks, applied,
 leo
 

Leo,

Now that cvs will let me update my local copy from the server properly. Looking 
at the my local copy, it has been updated, but the complete source (not just the 
diffs) have been incorporated TWICE, one below the other. The second time 
double-spaced?

I've check the server end via the web interface and that is fine, so the problem 
is purely local, but if anyone has encountered this and know how to prevent it, 
or even just has some suggestions as to what to try, I'm all ears.


Sorry to bother you guys with such trivia.

Nigel.




Re: [CVS ci] PLATFORMS

2004-02-25 Thread Robert Spier
 Better it get fixed in CVS. There could be more errors of this kind.
  Confused.  What would you like me to do?
 
 Please purge the platforms directory on the server. It collides with the 
 PLATFORMS file on these poor pseudo-OS, that have case-insensitive 
 filenames. (There could also still be a directory called hints on the 
 server, it did exist some time ago. If yes please rm it too)


*POOF*

-R


Re: Another object bug

2004-02-25 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote:
 At 4:54 PM -0500 2/25/04, Simon Glover wrote:
  If I'm understanding the docs correctly, this should print '0'.
  Instead, it prints 'Array index out of bounds!'

 Another bug, though the offset ought to be 2 right now. (Attributes 0
 and 1 are taken by other things so they're valid)

*Please* don't. Cclassoffset (and attribute access) should by all
means start with 0.

- Let's hide the internals
- If that offset is ever changed, existing code will break
- Its ugly

We can afford one more instruction ( offset += POD_FIRST_ATTRIB; )
that's just one CPU cycle.

leo


Re: Ladies and gentlemen, I give you... objects!

2004-02-25 Thread Leopold Toetsch
Chromatic [EMAIL PROTECTED] wrote:

 While I'm at it, is there nice IMCC syntactic sugar for making method
 calls, or do I have to fill in the registers myself?  It's quite nice to
 write:

   ($I2, $I3) = _some_function_call( $I0, $I1 )

Not yet. But you could try to prepend one instruction

P2 = the_object

 It'd be a shame not to have something similar for methods

Please read Melvins proposal. There will be of course support for it,
but not just now.

 -- c

leo


Re: native PBC issues

2004-02-25 Thread Leopold Toetsch
chromatic wrote:

Hm, I'm still not sure where they should go, but here are the integer
and number pbc and header files from Linux PPC.
No problem, I've sorted these tests in.
Thanks,
leo



Re: Another object bug

2004-02-25 Thread Luke Palmer
Leopold Toetsch writes:
 Dan Sugalski [EMAIL PROTECTED] wrote:
  At 4:54 PM -0500 2/25/04, Simon Glover wrote:
   If I'm understanding the docs correctly, this should print '0'.
   Instead, it prints 'Array index out of bounds!'
 
  Another bug, though the offset ought to be 2 right now. (Attributes 0
  and 1 are taken by other things so they're valid)
 
 *Please* don't. Cclassoffset (and attribute access) should by all
 means start with 0.
 
 - Let's hide the internals
 - If that offset is ever changed, existing code will break
 - Its ugly
 
 We can afford one more instruction ( offset += POD_FIRST_ATTRIB; )
 that's just one CPU cycle.

Agreed.  Though I do like the ability to replace the class name PMC
currently in slot 0.  But then there are a lot of PMCs in a lot of
places that I'd like to replace, and the eventual Parrot::B should do
that for me.  So I vote Yes on offset 0.

Luke