Re: parrotbug working...

2004-03-05 Thread Jerome Quelin
Robert Spier wrote:
  The mails are indeed sent to parrotbug, parrotstatus-ok and
  parrotstatus-nok (at parrotcode.org) for resp. bug reports, ok
  reports or nok reports. And since I don't think those addresses are
  set up...
 Not yet.  I'm nudging Ask regularly about this.

But what should those addresses do when receiving a message?
- parrotbug: should open a RT ticket?
- status-ok: ?
- status-nok: should open a RT ticket?

Other things? 
Anyone (Robert? :-) ) knows what [EMAIL PROTECTED] do?

Jerome
-- 
[EMAIL PROTECTED]



[perl #27414] tests failing on powerpc JIT

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


A few tests are failing with JIT on powerpc linux, even though everything
works perfectly fine without JIT. The tests in question are
t/op/integer.t 1 and 33, and t/op/stacks.t 1-5. These seem to have in
common the fact that they use all of the integer registers I0-I31,
and this causes parrot -j to segfault.


Arcady

Summary of my parrot 0.1.0 configuration:
  configdate='Thu Mar  4 12:15:25 2004'
  Platform:
osname=linux, archname=powerpc-linux-thread-multi
jitcapable=1, jitarchname=ppc-linux,
jitosname=LINUX, jitcpuarch=ppc
execcapable=1
perl=/usr/bin/perl
  Compiler:
cc='cc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN
+-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  Linker and Libraries:
ld='cc', ldflags=' -L/usr/local/lib',
cc_ldflags='',
libs='-ldl -lm -lpthread -lcrypt'
  Dynamic Linking:
so='.so', ld_shared='-shared -L/usr/local/lib',
ld_shared_flags=''
  Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=4 byteorder=4321,
nv=double, numvalsize=8, doublesize=8



[perl #27418] object __init bug: end op does not work

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


Hi,

the attached pasm code prints
: A
: error!
instead of only A as expected.

jens
newclass P0, Foo 

newsub P0, .Sub, _end 
store_global Foo, __init, P0 

find_type I0, Foo 
new P0, I0

print error!\n
end  
_end:
print A\n 
end


Re: parrotbug working...

2004-03-05 Thread Rafael Garcia-Suarez
Jerome Quelin wrote in perl.perl6.internals :
 
 But what should those addresses do when receiving a message?
 - parrotbug: should open a RT ticket?
 - status-ok: ?
 - status-nok: should open a RT ticket?

Excuse me from stepping in, but I don't see why three adresses are
necessary. From my (limited) knowledge of RT, I thing that the parrot
bug address could create a ticket in the parrot queue, or add the mail
body to the appropriate ticket if the subject contains [perl #X]
-- then, it could close the ticket automatically if the subject matches
an OK report.


Re: [perl #27418] object __init bug: end op does not work

2004-03-05 Thread Leopold Toetsch
Jens Rieks [EMAIL PROTECTED] wrote:

 the attached pasm code prints
: A
: error!
 instead of only A as expected.

The __init code is run in its own run loop. This may (as in your
example) have an end opcode, which is just the same as invoke P1,
i.e. a return from the __init subroutine.

So this is a feature.

 jens

leo


Re: [perl #27391] parrot -t crash

2004-03-05 Thread Leopold Toetsch
Jens Rieks [EMAIL PROTECTED] wrote:

 Hi,

 The following code crashes parrot if run with -t (trace).
 It seems to be due to an unused .param, see line marked with XXX.

The unused param doesn't harm. The problem is memory corruption very
likely due to the PIO_printf code inside trace.c (or string code called
from that).
The extra line just lets more of these functions be called.

  $ parrot -tG crash.imc

runs fine.

 jens

leo


Re: [perl #27391] parrot -t crash

2004-03-05 Thread Leopold Toetsch
Jens Rieks [EMAIL PROTECTED] wrote:
 Hi,

 The following code crashes parrot if run with -t (trace).

Some more notes:

- it happens with or w/o ARENA_DOD_FLAGS
- it happens with the copying GC or with --gc=libc
- it does not happen with DOD/GC disabled

- I did not find any breakage in e.g. examples/benchmarks/*.pasm
- it could be related to objects - currently only your crash.imc and
  oo1.pasm are failing

The segfault is normally related to the string_header pool:

at src/smallobject.c:270
270 pool-free_list = *(void **)ptr;

The corrupted free_list looks like these:

(gdb) p ptr
$8 = (void *) 0x3200

(gdb) p ptr
$9 = (void *) 0x3300

(gdb) p ptr
$11 = (void *) 0x3d303100

Could be some numbers from the trace.

leo



Re: [DOCS] Documentation tools

2004-03-05 Thread Jeff Clites
On Mar 4, 2004, at 7:50 PM, Robert Spier wrote:

IMHO, the releases better include everything necessary to build the
application, within reason.  Consistency and simplicity counts for a 
lot.
Why create headaches we don't need?
within reason.  Thats where we're way off right now.
Let's keep a bit of perspective here. The non-Parrot:: contents of lib 
accounts for only 4.6% of the non-ICU content (and only 1.5% if you 
count ICU in the total size). It's difficult to see that as 
unreasonable, or as bloat.

JEff



Re: [perl #27414] tests failing on powerpc JIT

2004-03-05 Thread Jeff Clites
On Mar 4, 2004, at 2:48 PM, Arcady Goldmints (via RT) wrote:

A few tests are failing with JIT on powerpc linux, even though 
everything
works perfectly fine without JIT. The tests in question are
t/op/integer.t 1 and 33, and t/op/stacks.t 1-5. These seem to have in
common the fact that they use all of the integer registers I0-I31,
and this causes parrot -j to segfault.
This is probably because ppc linux uses slightly different calling 
conventions that Mac OS X, and I believe reserves r2 as a TOC pointer, 
and jit is probably stomping on that. In jit/ppc/jit_emit.h, try 
setting:

#define INT_REGISTERS_TO_MAP 23

and taking r2 out of the intval_map[INT_REGISTERS_TO_MAP] section (both 
of these are near the bottom of the file). This is already being done 
for AIX (but defining PARROT_EXEC_OS_AIX would probably cause more 
problems, so try making just these two changes, and see if it works 
then).

JEff



cygwin

2004-03-05 Thread Dmitry Nikolayev
Did Somebody try to assemble parrot on CygWin?
I tried... 
perl configure.pl - ok
make - and error ocured:

gcc -o parrot.exe -s -L/usr/local/lib  -g  imcc/main.o blib/lib/libparrot.a -lcrypt 
blib/lib/libparrot.a(io_unix.o)(.text+0x8f7): In function `PIO_sockaddr_in':
/inst/parrot/io/io_unix.c:626: undefined reference to `_inet_pton'
collect2: ld returned 1 exit status
make: *** [parrot.exe] Error 1

What is the problem?

With best wishes,
Dmitry Nikolayev




Freezing strings?

2004-03-05 Thread Brent \Dax\ Royal-Gordon
I figure it's about time for Parrot programs to be able to look at 
Parrot's configuration, so I'm trying to implement a library equivalent 
to Parrot::Config.  My current thoughts on implementation involve three 
elements:

  1.  A Configure step that writes and executes a Parrot program. Said
  program builds up a PerlHash of options and freezes it to disk.
  2.  Said frozen hash, stored in (e.g.) Flibrary/config.fpmc.
  3.  A small chunk of code in (e.g.) Flibrary/config.imc which reads
  the frozen hash from disk and re-creates it.
This would guarantee that you're seeing the configuration info for the 
current system, even if you moved a bytecode file with config.imc 
compiled into it.

Unfortunately, I'm being stopped before I can even start.  The following 
code prints foo= on my Debian server:

new P0, .PerlString
set P0, foo
freeze S0, P0
thaw P1, S0
print P0
print =
print P1
print \n
end

If I freeze a hash, the keys are preserved, but string values are lost. 
 Integer values are kept; float values all come out as 0.0 (plus or 
minus about eight zeros).

Ft/pmc/freeze.t doesn't test freezing and thawing strings or floats. 
Is this because the functionality hasn't been implemented yet?  A 
cursory examination of Fsrc/pmc_freeze.c suggests that it should be 
working, but I may well be missing something.

If it's just some busywork, such as copying some code into PerlString 
and tweaking it, I can probably do it, but I've been out of the loop for 
a while, so anything particularly involved is likely beyond me.

--
Brent Dax Royal-Gordon [EMAIL PROTECTED]
Perl and Parrot hacker
Oceania has always been at war with Eastasia.


Re: cygwin

2004-03-05 Thread TJ Anthony
Dmitry Nikolayev wrote:

Did Somebody try to assemble parrot on CygWin?
I tried... 
perl configure.pl - ok

You'll need to use:
perl Configure.pl --define=inet_aton
make - and error ocured:

gcc -o parrot.exe -s -L/usr/local/lib  -g  imcc/main.o blib/lib/libparrot.a -lcrypt 
blib/lib/libparrot.a(io_unix.o)(.text+0x8f7): In function `PIO_sockaddr_in':
/inst/parrot/io/io_unix.c:626: undefined reference to `_inet_pton'
collect2: ld returned 1 exit status
make: *** [parrot.exe] Error 1

What is the problem?

With best wishes,
Dmitry Nikolayev






Compile-time undefined sub detection

2004-03-05 Thread Nigel Sandever
On the basis of what is known so far, will p6 be able to detect undefined subs 
at compile time?

Regards, Nigel.




Re: Compile-time undefined sub detection

2004-03-05 Thread Larry Wall
On Thu, Mar 04, 2004 at 11:04:38PM +, Nigel Sandever wrote:

: On the basis of what is known so far, will p6 be able to detect
: undefined subs at compile time?

In theory, yes, if you ask it to check in a CHECK block, and if you're
willing for the check to assume that no eval or INIT block is going
to supply the missing sub before it's actually called, and that no
run-time code is going to alias the sub into one of your namespaces
where it'll be visible to call, and that no AUTOLOAD in scope will
be willing to emulate it.  (But then, all that's true of Perl 5 right
now as well...)

Larry


Re: Compile-time undefined sub detection

2004-03-05 Thread Rafael Garcia-Suarez
Larry Wall wrote in perl.perl6.language :
 
 In theory, yes, if you ask it to check in a CHECK block, and if you're
 willing for the check to assume that no eval or INIT block is going
 to supply the missing sub before it's actually called, and that no
 run-time code is going to alias the sub into one of your namespaces
 where it'll be visible to call, and that no AUTOLOAD in scope will
 be willing to emulate it.  (But then, all that's true of Perl 5 right
 now as well...)

While we're at it. Is there some precise definition of the CHECK/INIT
blocks for perl 6 right now ? In perl 5 those blocks are executed at the
transition between the compilation and the execution phase *of the main
program*. This is convenient for some purposes (the O and B::* modules)
and inconvient for others (Attribute::Handlers, etc. etc.). It's not
feasible to modify this for Backwards Compatibility Reasons; how will
Perl 6 handle this ? is there going to be a CHECK-by-compilation-unit
kind of block ?


Re: Compile-time undefined sub detection

2004-03-05 Thread Larry Wall
On Fri, Mar 05, 2004 at 01:57:40PM -, Rafael Garcia-Suarez wrote:
: While we're at it. Is there some precise definition of the CHECK/INIT
: blocks for perl 6 right now ?

Yes, the same precise definition as anything else we haven't defined yet:
That works exactly the same as in Perl 5, until we change our minds.  :-)

: In perl 5 those blocks are executed at the
: transition between the compilation and the execution phase *of the main
: program*. This is convenient for some purposes (the O and B::* modules)
: and inconvient for others (Attribute::Handlers, etc. etc.).

Hmm, well, I think it's a problem with Attribute::Handlers only because
that interface binds too late by default.  Perl 6 traits will run at
BEGIN time by default.  (Though you can define actions at trait time
that don't run till a later phase.)  Can you elaborate on the etc. etc.?

: It's not
: feasible to modify this for Backwards Compatibility Reasons; how will
: Perl 6 handle this ? is there going to be a CHECK-by-compilation-unit
: kind of block ?

The link phase is still controlled by the main compilation pulling
in other modules, so CHECK still has the same semantics for the main
program, at least.  And for consistency (especially with Perl 5),
a CHECK block from a separately compiled module probably should wait
till end of link time to run.  Particularly since we have modules
that specifically create a CHECK knowing it runs at the end of the
main compilation.

So if we divide the CHECK notion up, you are correct that it's the
end-of-the-compilation-unit check that needs a new name.  That might
be convenient, though redundant, since you can always run something at
the end of the compilation by putting a BEGIN block down at the bottom.
That BEGIN wouldn't know that it's the last thing, and can't guarantee
that it's the last thing if someone inserts more code after it, but
that doesn't stop you from putting stuff into the BEGIN block that
knows it's the last thing, and putting a comment afterwards saying

# Put no code here.  Put it before the preceding BEGIN

On the other hand, there are things that the compiler probably has
to think about at the end of the compilation unit, and you might want
to do something after that.  For example, given the way that subs
can forward-ref a declaration they haven't seen yet, we might want
to figure out at that time what signature to apply to a mysterious
call like:

foo(@bar, @baz)

So your final BEGIN would be ignorant of that decision unless it had
some way to force it.  But if we're going to provide an interface to
let BEGIN tell the compiler to finish up, that's just as complicated
as providing a different kind of block that lets the compiler finish
up explicitly.

So I guess the question boils down to, what shall we name it?

UNBEGIN
POSTCOMP
PRELINK
COMPCHECK
UNITCHECK

Actually, I could see an argument for REDUCE, which runs after the
current block is reduced in the grammar.  Which, if put at file-scope
level, comes out to running after the file is reduced, kinda sorta,
though to get the right semantics we'd have to consider not just the
grammatical reduction, but all the action routines triggered as part
of the reduction.

So that might also give us a way to capture control after a sub is
compiled, for instance.  Or at least, its closure block...  Hmm.
BEGIN blocks work fine for that, probably better, since the reduction
of the entire sub can happen, not just the block associated with
the sub.  So nevermind about REDUCE.  It seems to be an ill-formed
notion, since multiple reductions happen before your entire sub is
defined.

Which takes us back to something like UNITCHECK.  Let's see:

my @x will unitcheck { .stuff() };

I guess that works as a verb.

So unless someone talks me out of it, we now have

my @x will begin {...}  # at BEGIN time
my @x will unitcheck {...}  # at UNITCHECK time
my @x will check {...}  # at CHECK time
my @x will init {...}   # at INIT time
my @x will pre {...}# at PRE time (return boolean for DBC)
my @x will enter {...}  # at ENTER time (block entry)
my @x will leave {...}  # at LEAVE time (block exit)
my @x will post {...}   # at POST time (return boolean for DBC)
my @x will end {...}# at END time
state @x will first {...}   # at FIRST time (first time through)
has @.x will build {...}# at BUILD time (object init time)

But most of you don't officially know about that last one yet.
Few more days... :-)

Larry


Re: Compile-time undefined sub detection

2004-03-05 Thread Rafael Garcia-Suarez
Larry Wall wrote in perl.perl6.language :
: In perl 5 those blocks are executed at the
: transition between the compilation and the execution phase *of the main
: program*. This is convenient for some purposes (the O and B::* modules)
: and inconvient for others (Attribute::Handlers, etc. etc.).
 
 Hmm, well, I think it's a problem with Attribute::Handlers only because
 that interface binds too late by default.  Perl 6 traits will run at
 BEGIN time by default.  (Though you can define actions at trait time
 that don't run till a later phase.)  Can you elaborate on the etc. etc.?

Of course :) the main problem is not that CHECK blocks are executed
late (just at the end of the compilation phase); it's that they're
executed too early, notably in some persistent environment, notably
mod_perl (or mod_parrot in the future.) When you have a virtual machine,
you'll end up including modules at run time, because the main
compilation phase becomes less important. Thus CHECK blocks become
worthless, code-reusability-wise.

 The link phase is still controlled by the main compilation pulling
 in other modules, so CHECK still has the same semantics for the main
 program, at least.  And for consistency (especially with Perl 5),
 a CHECK block from a separately compiled module probably should wait
 till end of link time to run.  Particularly since we have modules
 that specifically create a CHECK knowing it runs at the end of the
 main compilation.

But, as I was saying, modules have no control on what the end of the
compilation is; notably, they've no control on whether it's still
finished.

 my @x will unitcheck {...}# at UNITCHECK time

your next mission is now to put something like this in Perl 5...


Re: Compile-time undefined sub detection

2004-03-05 Thread Larry Wall
On Fri, Mar 05, 2004 at 06:45:58PM -, Rafael Garcia-Suarez wrote:
: Of course :) the main problem is not that CHECK blocks are executed
: late (just at the end of the compilation phase); it's that they're
: executed too early, notably in some persistent environment, notably
: mod_perl (or mod_parrot in the future.) When you have a virtual machine,
: you'll end up including modules at run time, because the main
: compilation phase becomes less important. Thus CHECK blocks become
: worthless, code-reusability-wise.

Possibly a CHECK block that is compiled after end of main compilation
should translate itself to a UNITCHECK.  But maybe it should be an error.

But it's also possible that CHECK should mean unit check, and
there should be an explicit MAINCHECK for delegating checks to the
main compilation.  In that case, only in the main compilation would
CHECK and MAINCHECK mean the same thing.  (And since MAINCHECK is
explicitly requesting a check at the end of main, a late MAINCHECK
should probably be considered an error.  (But by that argument, a late
CHECK should probably fail under the current naming scheme.))

Anybody got opinions on the naming of these beasts?  Certainly *not*
renaming CHECK is more compatible with Perl 5.  And I kinda got fond
of UNITCHECK in the last hour or so.  :-)

Larry


Re: Compile-time undefined sub detection

2004-03-05 Thread Rafael Garcia-Suarez
Larry Wall wrote in perl.perl6.language :
 
 Possibly a CHECK block that is compiled after end of main compilation
 should translate itself to a UNITCHECK.  But maybe it should be an error.
 
 But it's also possible that CHECK should mean unit check, and
 there should be an explicit MAINCHECK for delegating checks to the
 main compilation.  In that case, only in the main compilation would
 CHECK and MAINCHECK mean the same thing.  (And since MAINCHECK is
 explicitly requesting a check at the end of main, a late MAINCHECK
 should probably be considered an error.  (But by that argument, a late
 CHECK should probably fail under the current naming scheme.))
 
 Anybody got opinions on the naming of these beasts?  Certainly *not*
 renaming CHECK is more compatible with Perl 5.  And I kinda got fond
 of UNITCHECK in the last hour or so.  :-)

I think I like CHECK and MAINCHECK. (and MAINCHECK being an error
after the main compilation phase.)

Lots of people who use CHECK (for some value of lots -- let's say,
Damian and a few others) actually mean UNITCHECK. MAINCHECK is mainly
useful for the O compiler backend, which is part of the perl core
anyway, thus without any backward-compatility constraint. (I'd like to
have opinions about PAR as well.) So I think changing the meaning of
CHECK in Perl 5 is feasible. (and I know it would be welcomed by the
mod_perl crowd.)


Re: Compile-time undefined sub detection

2004-03-05 Thread Damian Conway
Larry wrote:

Anybody got opinions on the naming of these beasts?  Certainly *not*
renaming CHECK is more compatible with Perl 5.  
I'd favour UNITCHECK and CHECK, mainly for the greater compatibility with
Perl 5 and with software engineering jargon.
And because MAINCHECK is *ugly*. ;-)

So ugly that, if we go the other way and do change CHECK's behaviour, then the 
new postlinkage phase should be something else: like POSTLINK or PREINIT or 
INTEGRATE.

 And I kinda got fond of UNITCHECK in the last hour or so.  :-)

Well, that counts in its favour too. ;-)

Does that imply a UNITEND as well?

Damian


Re: Compile-time undefined sub detection

2004-03-05 Thread Larry Wall
On Sat, Mar 06, 2004 at 08:47:25AM +1100, Damian Conway wrote:
: Does that imply a UNITEND as well?

Why would you want to unite North Dakota?

And how would it differ from END?  You can't predict when the last
time a module is going to get used...

Larry


Re: Compile-time undefined sub detection

2004-03-05 Thread Rod Adams
Larry Wall wrote:

On Fri, Mar 05, 2004 at 06:45:58PM -, Rafael Garcia-Suarez wrote:
: Of course :) the main problem is not that CHECK blocks are executed
: late (just at the end of the compilation phase); it's that they're
: executed too early, notably in some persistent environment, notably
: mod_perl (or mod_parrot in the future.) When you have a virtual machine,
: you'll end up including modules at run time, because the main
: compilation phase becomes less important. Thus CHECK blocks become
: worthless, code-reusability-wise.
Possibly a CHECK block that is compiled after end of main compilation
should translate itself to a UNITCHECK.  But maybe it should be an error.
But it's also possible that CHECK should mean unit check, and
there should be an explicit MAINCHECK for delegating checks to the
main compilation.  In that case, only in the main compilation would
CHECK and MAINCHECK mean the same thing.  (And since MAINCHECK is
explicitly requesting a check at the end of main, a late MAINCHECK
should probably be considered an error.  (But by that argument, a late
CHECK should probably fail under the current naming scheme.))
Anybody got opinions on the naming of these beasts?  Certainly *not*
renaming CHECK is more compatible with Perl 5.  And I kinda got fond
of UNITCHECK in the last hour or so.  :-)
Larry
 

Given the fact that use of these blocks are overall quite rare, and 
potentially very confusing to the casual perl hacker who encounters one 
of them, I propose a rather different tact:

BEGIN = EXECUTE_ON_PARSE
CHECK = EXECUTE_AFTER_COMPILE and EXECUTE_AFTER_UNIT_COMPILE
INIT = EXECUTE_INITIALIZATION
END = EXECUTE_ON_EXIT
This also has the advantage of being able to reserve all subs with name 
EXECUTE_.* for compiler/interpreter special sub like these, so we could 
add more of them come perl 6.8 w/o much issue.

-- Rod




Re: Compile-time undefined sub detection

2004-03-05 Thread Rafael Garcia-Suarez
Damian Conway wrote in perl.perl6.language :
 
 I'd favour UNITCHECK and CHECK, mainly for the greater compatibility with
 Perl 5 and with software engineering jargon.

As far as Perl 5 is concerned, it appears that most people who write
CHECK mean UNITCHECK. Including you :)

 And because MAINCHECK is *ugly*. ;-)

I can't disagree.

 So ugly that, if we go the other way and do change CHECK's behaviour, then the 
 new postlinkage phase should be something else: like POSTLINK or PREINIT or 
 INTEGRATE.

But INTEGRATE is even more ugly.


Re: Compile-time undefined sub detection

2004-03-05 Thread Damian Conway
Larry asked:

And how would it differ from END?  
Like CHECKs, ENDs execute in reverse order. Which generally means that main 
END executes before module ENDs (unless we're careful to put our main END 
before our module loads -- which is subtle and counterintuitive). Sometimes it 
would be handy to be able to mark some cleanup code so that it executes before 
main's END, regardless of how early main's END is declared.


You can't predict when the last time a module is going to get used...
I'm not suggesting you need to. I'm saying that, just as all UNITCHECKs are 
guaranteed to run before any main CHECK, we might want a UNITEND that's 
guaranteed to execute before any main END.

Damian


Re: Compile-time undefined sub detection

2004-03-05 Thread Jonathan Scott Duff
On Fri, Mar 05, 2004 at 04:17:12PM -0600, Rod Adams wrote:
 Given the fact that use of these blocks are overall quite rare, and 
 potentially very confusing to the casual perl hacker who encounters one 
 of them, I propose a rather different tact:
 
 BEGIN = EXECUTE_ON_PARSE
 CHECK = EXECUTE_AFTER_COMPILE and EXECUTE_AFTER_UNIT_COMPILE
 INIT = EXECUTE_INITIALIZATION
 END = EXECUTE_ON_EXIT
 
 This also has the advantage of being able to reserve all subs with name 
 EXECUTE_.* for compiler/interpreter special sub like these, so we could 
 add more of them come perl 6.8 w/o much issue.

I'm not sure I agree with your actual proposal, but I certainly agree
with the spirit of it.  When I first saw UNITEND I had to double take
to make sure I read it correctly.  I propose that if we use multi-word
block names, that they have an underscore between the words to be
slightly more readable.  (I hate underscores, but I hate LONGCAPSWORDS
more) 

-Scott
-- 
Jonathan Scott Duff Division of Nearshore Research
[EMAIL PROTECTED]   Senior Systems Analyst II


Re: cygwin

2004-03-05 Thread Dmitry Nikolayev



Thank you!
All is ok,
but when "make test" - errors 
occuring(attached to this message)
After this errors testing continues(some tests have 
"okay"  100%) 

And then it hands-up on:
t/src/extendok 11/13

Is it ok for cygwin?






  - Original Message - 
  From: 
  TJ 
  Anthony 
  To: Dmitry Nikolayev 
  Cc: p6i List 
  Sent: Saturday, March 06, 2004 4:51 
  AM
  Subject: Re: cygwin
  Dmitry Nikolayev wrote:Did Somebody try to assemble 
  parrot on CygWin?I tried... perl configure.pl - 
  okYou'll need to use:perl Configure.pl 
  --define=inet_atonmake - and error ocured:gcc -o 
  parrot.exe -s -L/usr/local/lib -g imcc/main.o blib/lib/libparrot.a 
  -lcrypt blib/lib/libparrot.a(io_unix.o)(.text+0x8f7): In function 
  `PIO_sockaddr_in':/inst/parrot/io/io_unix.c:626: undefined reference 
  to `_inet_pton'collect2: ld returned 1 exit statusmake: *** 
  [parrot.exe] Error 1What is the problem?With 
  best wishes,Dmitry 
  Nikolayev
attachment: parrot.jpg


Re: cygwin

2004-03-05 Thread Dmitry Nikolayev



Thank you!
All is ok,
but when "make test" - errors 
occuring(attached to this message)
After this errors testing continues(some tests have 
"okay"  100%) 

And then it hands-up on:
t/src/extendok 11/13

Is it ok for cygwin?






  - Original Message - 
  From: 
  TJ 
  Anthony 
  To: Dmitry Nikolayev 
  Cc: p6i List 
  Sent: Saturday, March 06, 2004 4:51 
  AM
  Subject: Re: cygwin
  Dmitry Nikolayev wrote:Did Somebody try to assemble 
  parrot on CygWin?I tried... perl configure.pl - 
  okYou'll need to use:perl Configure.pl 
  --define=inet_atonmake - and error ocured:gcc -o 
  parrot.exe -s -L/usr/local/lib -g imcc/main.o blib/lib/libparrot.a 
  -lcrypt blib/lib/libparrot.a(io_unix.o)(.text+0x8f7): In function 
  `PIO_sockaddr_in':/inst/parrot/io/io_unix.c:626: undefined reference 
  to `_inet_pton'collect2: ld returned 1 exit statusmake: *** 
  [parrot.exe] Error 1What is the problem?With 
  best wishes,Dmitry 
  Nikolayev
attachment: parrot.jpg


Re: [DOCS] Documentation tools

2004-03-05 Thread Robert Spier
 
  within reason.  Thats where we're way off right now.
 
 Let's keep a bit of perspective here. The non-Parrot:: contents of lib 
 accounts for only 4.6% of the non-ICU content (and only 1.5% if you 
 count ICU in the total size). It's difficult to see that as 
 unreasonable, or as bloat.

The problem isn't today.  It's the trend and next month, when
someone decides they need to add some other module, and has a
precedent to follow.   Then, suddenly we end up with 30 different
modules included in our distribution, each one changed slightly from
the CPAN one.  Dual-lifed modules that live with perl5 are hard
enough.

-R


Re: Freezing strings?

2004-03-05 Thread Leopold Toetsch
Brent Dax Royal-Gordon [EMAIL PROTECTED] wrote:

 Ft/pmc/freeze.t doesn't test freezing and thawing strings or floats.
 Is this because the functionality hasn't been implemented yet?

Exactly. Sould be simple though. Please have a look at
classes/perlint.pmc (or such) that implement the freeze/thaw vtables.

 If it's just some busywork, such as copying some code into PerlString
 and tweaking it, I can probably do it, but I've been out of the loop for
 a while, so anything particularly involved is likely beyond me.

The interfaces are all there. It *should* just be:
- cut'n paste code from perlint
- s/_integer/_string/ for (push, shift) and s/int_val/str_val/

For debugging you could set FREEZE_ASCII in pmc_freeze.c albeit its not
saving the whole information.

leo


RE: Compile-time undefined sub detection

2004-03-05 Thread Austin Hastings
  You can't predict when the last time a module is going to get used...

 I'm not suggesting you need to. I'm saying that, just as all
 UNITCHECKs are
 guaranteed to run before any main CHECK, we might want a UNITEND that's
 guaranteed to execute before any main END.

Perhaps this is one of those places where properties can help. Instead of
having BEFORE, REALLY_BEFORE, NO_I_MEAN_REALLY_BEFORE, DONE, MOSTLY_DONE,
PARTIALLY_DONE, WELL_DONE, DONE_AND_PROCESS_SPACE_ALMOST_RECLAIMED, etc., we
could simply use some ordering properties:

# Each broad class of upcased block is an execution group. The entries
# in each execution group are not guaranteed to run in any particular order,
# and in fact may run in parallel on a multithreaded perl.
#
# However, blocks in the same source file are guaranteed to run in order of
# occurrence. (Since they're catenated, basically.)
#
# Thus, all BEGIN blocks in a file are effectively catenated and added to
# an overall BEGIN execution group. All the separate BEGIN entries have
# the same initial priority(10), so they will run in whatever order suits
# the P6 runtime.
#
# The Cgo property introduces changes to the execution group and/or
# priority of the block in question. (Note that different priorities may
# be attached to different blocks within the same file. Doing so creates
# separate execution bundles, and breaks any guarantees about order of
# execution.)
#
package OtherPackage;
BEGIN will go first {
  print first!;
}

package SomePackage;
BEGIN will go after OtherPackage::BEGIN {
  print Second!;
}

END will go priority 5 {
  print End block with early priority;
}

package ThirdPackage;
END will go group BEGIN before SomePackage::BEGIN {
  print I feel really out of place!;
}

Comment?

=Austin