Re: [perl #48365] get_string() on Fresh Key PMC Causes Infinite Loop

2007-12-10 Thread chromatic
On Saturday 08 December 2007 18:45:28 chromatic wrote:

 My favorite option so far is to check if the Key PMC has any flags set and
 call key_string() if so.  Otherwise, it returns the empty string.

 All coretests pass without infinite loops with this patch applied.

Thanks, applied as r23693.  You're completely awesome.

-- c


Re: [ANN] SF parrot win32

2007-12-10 Thread François Perrad

Andrew Shitov wrote:
I have no personal web site, so I create the project parrotwin32 on 
sourceforge : http://parrotwin32.sourceforge.net/


Cool, and I also promoted it at http://perl6.ru/parrotwin32/.


But an attempt to run perl6.pbc faied:

C:\Program Files\parrot-0.5.0-develbin/parrot.exe languages/perl6/perl6.pbc
load_bytecode couldn't find file 'PGE.pbc'
current instr.: 'parrot;Perl6::Compiler;__onload' pc 0 (perl6.pir:30)
called from Sub 'parrot;Perl6::Compiler;main' pc -1 ((unknown file):-1)

Probably setup.exe have to update an environment also?



I've found the problem.
Don't install Parrot in C:\Program Files\parrot-0.5.0-devel (the 
proposed path).
You must install Parrot in C:\usr\local\parrot-0.5.0 (the letter drive 
could be change).

I've generated Parrot with prefix=/usr/local/parrot-0.5.0.

François.



--
Andrew Shitov
__
[EMAIL PROTECTED] | http://www.shitov.ru










Re: [ANN] SF parrot win32

2007-12-10 Thread François Perrad

Xiao Yafeng wrote:

Cool!
But if it could include doc would be better.



Many doc are available in share/doc/parrot/docs (POD format).

François.

On Dec 5, 2007 11:38 PM, François Perrad [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote:



I have no personal web site, so I create the project parrotwin32 on
sourceforge : http://parrotwin32.sourceforge.net/

This project supplies only binaries for Windows ( setup.exe form) of the
monthly releases.

I hope that help Parrot end-users (on Windows) and promote the use of
Parrot.

François Perrad.







Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Tim Bunce
On Mon, Dec 10, 2007 at 09:59:40AM +, Tim Bunce wrote:
 Also, what's the status of docs/embed.pod? It seems out of date and/or
 imcomplete (no mention of Parrot_call_sub, for example).

I meant docs/pdds/draft/pdd10_embedding.pod

I could trying hacking on it to at least mention all the functions in embed.h
with a few words on each. I'd be fumbling in the dark mostly but it would at
least push the document along for others to review later.

Tim.


Re: Standards bearers (was Re: xml and perl 6)

2007-12-10 Thread Richard Hainsworth

Why thank you Mr. Chromatic!

In between all my other activities, I have been trolling along this list 
from its inception, and followed eagerly every Appocalpse, Exegisis and 
Synopsis as soon as they came on line. I download pugs and parrot from 
SVN repositories, written tests - one of which still hangs the 
compilation of pugs. Indeed the test I wrote for pugs concerned the 
ability of pugs to use existing CPAN modules. I have tried parrot with 
SDL and the tests fail. My aim was to write a P6 GUI module so that from 
the start it would be easy for P6 users to generate UI interfaces easily.


Unfortunately, despite my eagerness, I am not a professional programmer 
with the time or the skill to fix the problems. Where I can contribute 
is to express a view about how P6 might best be developed. Moreover, I 
do think that sketching out the way modules should (at least initially) 
be written, and skteching out which modules should be written as soon as 
possible, are as much a part of the language design as deciding how best 
to use the colon.


Moreover, consider the development of pugs. The first modules to be 
developed were Test and Test::Harness. Vital for the development of the 
language. Not a part of the core. Equally, Something to replace CGI or 
DBI will be essential to the uptake of P6. I would far prefer to have a 
skilled and resourceful professional, such as yourself or Damian Conway 
write these modules than leave it to enthusiastic amateurs such as myself.


And as for singularities, I appreciate Larry's idea of language 
development as being akin to a strange attractor (expressed in answer to 
a question I posed on this list nearly a year ago about when P6 would be 
complete), but I also fear that the orbits that describe solutions to 
some strange attractors have a great deal of volatility and it is never 
possible to define at any time exactly what the orbit is - a bit like 
not being able to define all aspects of an electron due to Heisenberg's 
uncertainty principle. But if that is the case with P6 (and why should 
it not given the wholly new areas of programming that P6 is defining?) 
where does that leave people like me? Does it mean that we must abandon 
P6 to the professionals, just as strange attractors and quantum physics 
are the domain of professional scientists? Does it mean that I must, as 
it now seems to be the case, move my own programming and the main 
language of my firm's IT department to Python?


I realise that @Larry have their own priorities, their own pressures, 
their own limited resources. I would like to help, yet there are limits 
to what I can do. And I am sure what is true for me is true for many 
others trolling on this list.


You are doing a fine and wonderful job. Your efforts - I sincerely 
believe - should be applauded and appreciated. My impatience is due to a 
heightened expectation and desire to use P6 that in fact is a result of 
the fantastic achievements I have already seen.


Richard

chromatic wrote:

On Saturday 08 December 2007 06:50:48 Richard Hainsworth wrote:

  

Surely, some concentrated thought by the inventive and resouceful minds of
who lead this project should go into language utilisation and
popularisation.



My goodness, @Larry's pretty darn busy trying to build the core kernel of Perl 
6 in such a way that the rest of the world can build beautiful and useful 
things around that kernel much in the same way that the CPAN as a whole is 
the shining gem of Perl 5.


You, Mr. Hainsworth, and every other person reading this message from December 
2007 through the singularity (aka Perl 7) officially have my permission to 
think about this yourself and pitch in!  (Fixing the mixed metaphor in my 
first paragraph is a good start.  Reading S11 is step two.)


No one ever needed permission, but if it makes anyone feel better, there it 
is.


-- c
  


[svn:parrot-pdd] r23695 - trunk/docs/pdds

2007-12-10 Thread allison
Author: allison
Date: Mon Dec 10 05:15:46 2007
New Revision: 23695

Modified:
   trunk/docs/pdds/pdd25_concurrency.pod

Log:
[pdd] Adding interface methods for event/exception handlers to concurrency PDD.


Modified: trunk/docs/pdds/pdd25_concurrency.pod
==
--- trunk/docs/pdds/pdd25_concurrency.pod   (original)
+++ trunk/docs/pdds/pdd25_concurrency.pod   Mon Dec 10 05:15:46 2007
@@ -43,14 +43,13 @@
 
 =head1 DEFINITIONS
 
-Concurrency is a parallel execution of units of code (on
-multiprocessor machines), or a flexible ordering of units of code (on
-single processor machines). For certain problem spaces, concurrency
-offers significant speed gains by parceling out processor-intensive
-activity or by ensuring that a wait for input or system resources
-doesn't hold up the entire application.
+Concurrency is a parallel execution of units of code (on multiprocessor
+machines), or a flexible ordering of serial units of code (on single processor
+machines). For certain problem spaces, concurrency offers significant speed
+gains by parceling out processor-intensive activity or by ensuring that a wait
+for input or system resources doesn't hold up the entire application.
 
-A task is a unit of code that can be executed in parallel.
+A task is a unit of code that can be executed concurrently.
 
 =head1 IMPLEMENTATION
 
@@ -269,6 +268,25 @@
 
 =back
 
+=head3 Methods
+
+=over 4
+
+=item add_handler
+
+$P1.add_handler($P2)
+
+Add an event or exception handler to the scheduler's list of handlers.
+
+=item find_handler
+
+$P1 = $P2.find_handler($P3)
+
+Search for an event or exception handler $P1, in scheduler $P2, for the task
+$P3. Returns a null PMC if an appropriate handler is not found.
+
+=back
+
 =head2 Task PMC API
 
 The interface of the Task PMC is also the minimum required interface for all


Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Tim Bunce
I'm interested in doing some work on Parrot::Embed.

So I'm wondering what state it's in and if there are any short term
plans for it.

Any good reason it's not part of the normal build/test cycle?

Also, what's the status of docs/embed.pod? It seems out of date and/or
imcomplete (no mention of Parrot_call_sub, for example).

I'm very much a novice with parrot. So my preferred approach for now
would be for someone more knowledgeable (Allison, chromatic, ...)
to lead the way by updating/expanding the docs/embed.pod specification.

I'll update/expand Parrot::Embed in sync and address the items in the
TODO file along the way. Sound okay?

Meanwhile there's some housekeeping I can be getting on with.
Like fixing the broken Makefile.PL (seems best to make it a wrapper for
the working Build.PL)

Tim.


Re: [ANN] SF parrot win32

2007-12-10 Thread Andrew Shitov
 You must install Parrot in C:\usr\local\parrot-0.5.0 (the letter drive
 could be change).

C:\usr\local\parrot-0.5.0bin/parrot languages/perl6/perl6.pbc
load_bytecode couldn't find file 'Protoobject.pbc'
current instr.: 'parrot;PGE::Match;__onload' pc 0
(compilers/pge/PGE/Match.pir:14)
called from Sub 'parrot;Perl6::Compiler;__onload' pc 0 (perl6.pir:30)

called from Sub 'parrot;Perl6::Compiler;main' pc -1 ((unknown file):-1)



Should some PATH be set before? (and there is no file Protoobject.pbc
in the dist).

-- 
Andrew Shitov
__
[EMAIL PROTECTED] | http://www.shitov.ru


Re: Switch/Given and English, Was perl 6 grammar

2007-12-10 Thread Richard Hainsworth

snip

I've never said that switch ... case was better than given ... when
or that switch ... case was even a good construct.
I have said that given ... when sounds weird as a construct
(not mentionning the use of past participle and on top of that of an 
irregular verb).

I understand the meaning and I can get over it
but is proliferation of English idioms, words a good idea?
There're bunch of words that could describe the same idea
in a sligtly different manner.
Perhaps writting a la smallTalk could be the solution.
getting rid off all shortcuts and change them into explicit description
entities and write english sentences, not programs.
This could be nice but I will first have to learn English.
Anyway, I will write my own 'Lingua::Given::Francais' with avec ... 
lorsque^^:

(well, if I can -  ^^; xx 1000 )


And that for me is the power of P6 - the fact that you WILL be able 
easily to write such a module. In fact, why not write a module 
Lingua::Francais that maps all the P6 constructs into French, thus 
making it much more accessible to the vast number of people whose 
primary and major secondary language is French.


Ditto, Chinese, Russian and Spanish.

Indeed, if that is done at the start of the utilisation of P6, it would 
ensure that P6 is used across the globe, and probably be the teaching 
language of choice for computer science in most non-English countries.


The difficulty will be - unfortunately - that in some languages the 
logic will not map exactly because some human languages have different 
logical constructs. Hence there is the likelihood that some of the 
programming in other languages might still be awkward. However, I think 
that will be a minor consideration for student programmers who are not 
forced into learning a pigeon form of English in order to code their 
programs.




Re: CONST_STRING vs string_from_literal ?

2007-12-10 Thread Allison Randal

chromatic wrote:


It doesn't *always* work.  For example, I think CONST_STRING() doesn't work in 
PCCMETHODs in PMCs for some reason I can't explain, and it doesn't work in 
other source files.


If you want to use CONST_STRING in other source files, you need to 
#include the corresponding .str file in the source code, since the 
CONST_STRING macro and the constant strings are defined in the .str 
file. See src/objects.c and src/objects.str for an example.


I haven't tested whether this works for regular functions declared in 
.pmc files yet (the other place the problem occurs most frequently).


Allison


Parrot Bug Summary

2007-12-10 Thread Parrot Bug Summary
Parrot Bug Summary

http://rt.perl.org/rt3/NoAuth/parrot/Overview.html
Generated at Mon Dec 10 14:00:02 2007 GMT
---

  * Numbers
  * New Issues
  * Overview of Open Issues
  * Ticket Status By Version
  * Requestors with most open tickets

---

Numbers

Ticket Counts: 91 new + 731 open = 822
Created this week: 62
Closed this week: 15

---

New Issues

New issues that have not been responded to yet

1 - 2 weeks old
48034 [BUG] examples/streams/Bytes.pir runtime error
48024 [DEPRECATED] type ids
48016 [DEPRECATED] store_global opcode
47996 [BUG] pge - regex adverbs don't accept leading space
47992 [RFE] 'parrot foo' automatically finds and invokes foo.pbc
47978 [C99] [IMCC] double free
47974 [DOCS] What are valid characteristics for 'inspect_str' vtable
47966 [DOCS] pdd23 doesn't list exception;death as a standard exception
47940 [CAGE] mk_native_pbc stale
47930 [RFC] Remove comma separated keys [a,b]
47894 [BUG] Non-existent lexical throws exception
47888 [TODO] gc - possibly merge gmc branch back into trunk
2 - 3 weeks old
47822 [Cola] - uses old 'float' type.
47764 [TODO] COW for one or all users of a modified string
3 - 4 weeks old
4 - 5 weeks old
5 - 6 weeks old
47153 [PATCH][Review] Proposed change from PMC_IS_NULL to PMC_is_null
47141 [PDD19] Line directive
47109 [CAGE] wrap macro args in parens inside macro bodies
6 - 7 weeks old
46971 [DEPRECATED] newfrom sub/method in PGE
46933 [PATCH] [RFE] Change behavior of Data::Dumper wrt Undef
46925 [TODO] [C] Call pmc slicing functions from PackFiles thaw()
46923 [TODO] [C] Check flags of parrot_range object in elements() method Slice 
  PMC
46761 Dynpmcs and ParrotLibrary Global Destruction
46757 [BUG] Segfault in Parrot_TclString_nci_get_list
7 - 8 weeks old
46597 wrong NOTNULL in Parrot_init_arg_indexes_and_sig_pmc
46593 [PATCH] better documentation on parameter passing
46479 Remove rt.saved.search from tools/util/release.json?
46457 [BUG][IMCC] long sub invocation with named parameters
8 - 9 weeks old
46437 refactor interpreter cloning so it doesn't redundantly reinsert subs
46295 [CAGE] [pdd15oo] Review the docs w.r.t. the new OO implementation
9 - 10 weeks old
10 - 11 weeks old
45857 [IMCC][RFC] #line vs .line
11 - 12 weeks old
45659 Tcl - [string is double .1] returns wrong value
45503 one test in 't/op/string.t' is failling for jit runcore
12 - 13 weeks old
13 - 14 weeks old
14 - 15 weeks old
15 - 16 weeks old
44979 [BUG] TGE reports an error, but won't say which line it's on.
16 - 17 weeks old
44765 [PATCH] Don't reuse interpreter argument on stack
17 - 18 weeks old
44471 [PATCH] :vtable is ignored when :anon
18 - 19 weeks old
19 - 20 weeks old
44139 opcodes, warnings, and exceptions
20 - 21 weeks old
---

Overview of Open Issues

PlatformSeverity  Tag  Lang
aix0abandoned 0   5005threads   0  Amber0
All3fatal 3   bounce0  BASIC0
bsdos  0High  0   Bug  70  bc   0
cygwin 4low   1   compiler  0  befunge  0
cygwin_nt  0medium0   configure 0  bf   0
darwin 4none  1   core  2  cola 1
dec_osf0Normal1   dailybuild0  forth0
dgux   0unknown   0   docs  2  jako 0
dos0Wishlist  3   duplicate 0  Lisp 0
dynixptx   0 install   1  m4   0
freebsd8  library   0  ook  0
generic0  notabug   0  perl61
gnu0  notok 0  plot 0
HPUX   2  ok0  punie0
irix   0  Patch49  pynie2
irix64 0  regex 2  python   0
Linux  3  sendToCPAN0  ruby 0
lynxos 0  Todo491  scheme   0
mac0  unknown   0  tcl 72
machten0  utilities 0  urm  0
macos  0  wontfix   0  Zcode0
MacOS X2
mswin320
netbsd 1
next   0
openbsd2
os20
os390  0
other  0
powerux0
qnx0
riscos 0
sco0
Solaris4
sunos  1
svr4   0
svr5   0
sysv   0
unicos 0
unicosmk   0
unix   0
unknown0
uts0
vms0
VOS0
Win32 10

Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Allison Randal

Tim Bunce wrote:

I'm interested in doing some work on Parrot::Embed.


Great!


So I'm wondering what state it's in and if there are any short term
plans for it.

Any good reason it's not part of the normal build/test cycle?


Only that it's incomplete.


Also, what's the status of docs/embed.pod? It seems out of date and/or
imcomplete (no mention of Parrot_call_sub, for example).


 I meant docs/pdds/draft/pdd10_embedding.pod

 I could trying hacking on it to at least mention all the functions 
in embed.h
 with a few words on each. I'd be fumbling in the dark mostly but it 
would at

 least push the document along for others to review later.

This was a partial first draft written by chromatic. The 
extending/embedding PDD's aren't on the core list of milestones, so I 
don't have a specific date when I'm planning to work on it. It probably 
makes the most sense to repeat the group drafting strategy we're using 
with the PIR PDD. You and others can help pull together the draft PDD, 
and I'll review/revise/approve it as it reaches a relatively solid 
state. We can also also talk back and forth about ideas on the mailing 
list as it solidifies.


There are two parts of the group drafting task: documenting how the 
system works now, and documenting how you would like it to work. 
Documenting the functions in embed.h is a great place to start.



I'm very much a novice with parrot. So my preferred approach for now
would be for someone more knowledgeable (Allison, chromatic, ...)
to lead the way by updating/expanding the docs/embed.pod specification.


At the moment, chromatic or I would start exactly where you'll be 
starting: sitting down with the code, extracting a list of current 
functions/features, and at the same time keeping an eye out for missing 
features, misfeatures, or other places in need of improvement. So, if 
you or others are willing to take a first stab at it, it would be 
enormously helpful. (It's also a great way to gain experience with parrot.)



I'll update/expand Parrot::Embed in sync and address the items in the
TODO file along the way. Sound okay?


Sounds good.


Meanwhile there's some housekeeping I can be getting on with.
Like fixing the broken Makefile.PL (seems best to make it a wrapper for
the working Build.PL)


Actually, what we'd like to do is eliminate the Module::Build 
dependency, and integrate the build process for Parrot::Embed into 
Parrot's build process (which is all Makefiles).


chromatic wrote Parrot::Embed as an independent CPAN module, but with 
the need to always have a version of Parrot::Embed that's compatible 
with the version of Parrot you have installed, we'll ship them together. 
(It may also be dual-life'd on CPAN, that's one of the open design 
questions.)


Allison


Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Allison Randal

Jeff Horwitz wrote:


I can take a stab at this, as I've done enough Parrot embedding to write 
a short novel.  Looks like PDD10 could use some updating as well -- were 
there any plans for that?  Maybe we should start there?


Great! Please merge docs/embed.pod into PDD 10.

Allison


Re: CONST_STRING vs string_from_literal ?

2007-12-10 Thread chromatic
On Monday 10 December 2007 05:52:59 Allison Randal wrote:

 chromatic wrote:
  It doesn't *always* work.  For example, I think CONST_STRING() doesn't
  work in PCCMETHODs in PMCs for some reason I can't explain, and it
  doesn't work in other source files.

 If you want to use CONST_STRING in other source files, you need to
 #include the corresponding .str file in the source code, since the
 CONST_STRING macro and the constant strings are defined in the .str
 file. See src/objects.c and src/objects.str for an example.

Yep.  There's one piece I don't remember at the moment, and that's where to 
add the filename so that the Makefile generates the .str file appropriately.  
I think it's just the root Makefile template.

 I haven't tested whether this works for regular functions declared in
 .pmc files yet (the other place the problem occurs most frequently).

It works now.  I fixed that a couple of weeks ago.

-- c


Re: CONST_STRING vs string_from_literal ?

2007-12-10 Thread Allison Randal

chromatic wrote:


Yep.  There's one piece I don't remember at the moment, and that's where to 
add the filename so that the Makefile generates the .str file appropriately.  
I think it's just the root Makefile template.


Aye, config/gen/makefiles/root.in, add it to STR_FILES.


I haven't tested whether this works for regular functions declared in
.pmc files yet (the other place the problem occurs most frequently).


It works now.  I fixed that a couple of weeks ago.


Great!

Allison



[PROPOSAL] Remove Absolute PASM registers from PIR. (was: Re: [BUG] imcc register allocation does not consider PASM register usage)

2007-12-10 Thread Klaas-Jan Stol
In order to draw attention to this point, I changed the subject.

On Dec 9, 2007 10:10 PM, Allison Randal [EMAIL PROTECTED] wrote:

 Klaas-Jan wrote:
 
  There is of course the option of taking the current behavior as
  correct, effectively forgetting about this piece of the
  specification.
  I can, however, imagine a situation in which someone would want to do
  manual register allocation (writing Parrot assembly) for
  certain cases. I'm not sure whether this manual allocation would be
  disregarded by IMCC which then does its own reg. allocation.

 That part of the spec/documentation was generally a caution against
 using the low-level registers, because they aren't guaranteed to do what
 you expect. Really, I'd be okay with disallowing the $-less register
 variables in PIR.



 Allison


Is there anybody who thinks the removal from PIR of $-less registers
(absolute or PASM registers) should not be done?

kjs


[BUG] headerizer can't handle new file src/atomic/gcc_x86.c

2007-12-10 Thread Allison Randal

When I try to run 'make headerizer' I get the following error:

--
can't find HEADERIZER HFILE directive in 'src/atomic/gcc_x86.c' at 
tools/build/headerizer.pl line 335.

--

But when I add the HFILE directive:

/* HEADERIZER HFILE: include/parrot/atomic/gcc_x86.h */

I then get the error:

--
Couldn't handle PARROT_INLINE
void *parrot_i386_cmpxchg(void *volatile *ptr, void *expect,
  void *update) at tools/build/headerizer.pl line 169.
--

I can't spare the brain bandwidth to dig into this further at the 
moment, so posting for others.


Allison


Re: [BUG] headerizer can't handle new file src/atomic/gcc_x86.c

2007-12-10 Thread Andy Lester


On Dec 10, 2007, at 11:59 AM, Allison Randal wrote:


Couldn't handle PARROT_INLINE
void *parrot_i386_cmpxchg(void *volatile *ptr, void *expect,
 void *update) at tools/build/headerizer.pl line 169.



Turn that into:

PARROT_INLINE
void *
parrot_i386_cmpxchg(void *volatile *ptr, void *expect,
 void *update)

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: [BUG] headerizer can't handle new file src/atomic/gcc_x86.c

2007-12-10 Thread Andy Lester
I can't spare the brain bandwidth to dig into this further at the  
moment, so posting for others.



BTW I have other headerizer stuff to update, like updating all the  
comments automagically so that the function declaration always matches  
the POD.


--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread chromatic
On Monday 10 December 2007 01:59:40 Tim Bunce wrote:

 Meanwhile there's some housekeeping I can be getting on with.
 Like fixing the broken Makefile.PL (seems best to make it a wrapper for
 the working Build.PL)

I've just run it successfully on x86 Ubuntu; what's broken for you and where?

-- c


Re: [BUG] headerizer can't handle new file src/atomic/gcc_x86.c

2007-12-10 Thread Allison Randal

Andy Lester wrote:


PARROT_INLINE
void *
parrot_i386_cmpxchg(void *volatile *ptr, void *expect,
 void *update)


Righto. Resolved in r23708.

Allison


Re: Standards bearers (was Re: xml and perl 6)

2007-12-10 Thread Darren Duncan

At 9:04 AM +0300 12/10/07, Richard Hainsworth wrote:
Equally, Something to replace CGI or DBI will be essential to the 
uptake of P6. I would far prefer to have a skilled and resourceful 
professional, such as yourself or Damian Conway write these modules 
than leave it to enthusiastic amateurs such as myself.


I for one can assert that both of these are being produced right now. 
Also that neither is part of the Perl 6 kernal, though the kernal may 
enhanced over time to better support them. -- Darren Duncan


Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Allison Randal

Tim Bunce wrote:


p.s. How do I get a commit bit? Or should I just post patches for now?


Start with patches.

- Mail/fax in a contribution agreement. 
http://www.perlfoundation.org/attachment/legal/cla.pdf (I thought we 
had one for you for Perl 5, but apparently not.)


- Committers are voted in by the core dev team, based on the sanity of 
prior contributions. You've been contributing since at least 2003 (first 
post I found), if not earlier, which gives you a longer history than our 
average new committer. :)


Allison


[perl #48445] [TODO] nqp - report undeclared variable usage

2007-12-10 Thread via RT
# New Ticket Created by  Patrick R. Michaud 
# Please include the string:  [perl #48445]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=48445 



When an NQP program uses a variable that hasn't been
previously declared, it should report a useful error message:

Use of undeclared variable '$x' at ...

Pm


Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Andy Armstrong

On 10 Dec 2007, at 19:44, Allison Randal wrote:

Start with patches.



ObHelping: I see a lot of items here: http://www.parrotcode.org/todo.html 
 - but no obvious priorities.


Where might a volunteer start?

I also promised Yuval that I'd refactor Test::TAP::Model to use  
Test::Harness 3.00 - so to some extent I've answered my own question -  
but I'd like to get my hands dirty with Parrot proper too.


--
Andy Armstrong, Hexten






Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread chromatic
On Monday 10 December 2007 15:44:22 Tim Bunce wrote:

 $ perl M*PL
 Unrecognized argument in LIBS ignored: '501'
 Unrecognized argument in LIBS ignored: '80'
 Unrecognized argument in LIBS ignored: '79'
 Unrecognized argument in LIBS ignored: '81'
 Unrecognized argument in LIBS ignored: '501LIBPARROT_STATIC)'
 Writing Makefile for Parrot::Embed

 Due to $( on line 20 in Makefile.PL:

 $config{ALL_PARROT_LIBS} = $(LIBPARROT_STATIC) $config{C_LIBS};

 I see Makefile.PL isn't in subversion so I presume it's generated
 somewhere. (I'm not familar with the parrot build system yet.)

Configure.pl builds it from config/gen/makefiles/parrot_embed.in.  The line 
there which generates the problem line for you is:

#INVERSE_CONDITIONED_LINE(win32):$config{ALL_PARROT_LIBS} 
= @libparrot_ldflags@ $config{C_LIBS};

Apparently whatever your configuration options, you're getting something in 
ALL_PARROT_LIBS which I never expected.  Would you mind sending along the 
root-level Makefile?

-- c


VMs in the news

2007-12-10 Thread Andy Armstrong

Rubinus (new Ruby runtime)

http://www.infoq.com/news/2007/12/engine-yard-bets-big-rubinius

C--: a portable assembly language that supports garbage collection

http://research.microsoft.com/~simonpj/Papers/c--/c--gc.htm

Everybody's at it :)

--
Andy Armstrong, Hexten






Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Jeff Horwitz

On Mon, 10 Dec 2007, Tim Bunce wrote:


Also, what's the status of docs/embed.pod? It seems out of date and/or
imcomplete (no mention of Parrot_call_sub, for example).

I'm very much a novice with parrot. So my preferred approach for now
would be for someone more knowledgeable (Allison, chromatic, ...)
to lead the way by updating/expanding the docs/embed.pod specification.


I can take a stab at this, as I've done enough Parrot embedding to write a 
short novel.  Looks like PDD10 could use some updating as well -- were 
there any plans for that?  Maybe we should start there?


-jeff


[perl #48439] [TODO] [configure] compiling Parrot with LLVM

2007-12-10 Thread via RT
# New Ticket Created by  Allison Randal 
# Please include the string:  [perl #48439]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=48439 


Marton Papp has successfully compiled Parrot with LLVM on Windows with 
mingw-make (it's failing 18 tests, which is impressively low for a first 
run on a new compiler). Below is his summary of the steps he followed. 
I'd like to extract the changes he made for the configuration system.

 Original Message 
Subject: Re: hi! LLVM and parrot
Date: Mon, 10 Dec 2007 14:33:46 +0100
From: [EMAIL PROTECTED]

[...]
I used this file to compile it
set path=%path%;c:\mingw\bin;D:\extracted\icu2\icu\bin
e:
cd e:\extracted\parrot-0.5.0\bin
perl configure.pl --cc=E:\llvm\bin\llvm-gcc.exe
--cxx=E:\llvm\bin\llvm-g++.exe --link=E:\llvm\bin\llvm-gcc.exe
--ld=E:\llvm\bin\llvm-gcc.exe



I changed the makefile in the directory
where there is line CUR_DIR = .
I changed it for  full path of the current directory.
(Otherwise ./mini_parrot caused in error)
In my case,
It became CUR_DIR = E:\extracted\parrot-0.5.0

and ran mingw-make
Then make stopped.
I moved into the directory, it just left.
Changed these files/
In dynpmc.pl
I changed last line of partial_link_cmd.
return
$LD .
'-o ' . $target .   .
join( , map {$PATHQUOTE$_$PATHQUOTE} @$sources) .
 $PATHQUOTE$LIBPARROT$PATHQUOTE $liblist $LDFLAGS $LD_LOAD_FLAGS ;

and changed this:our $LIBPARROT = q[]; for our $LIBPARROT = q[-lparrot]

continued make by mingw-make...

The make failed again , then

I changed parrot-0.5.0\tools\build\dynoplibs.pl
I inserted these lines (copied them from tools\build\dynpmc.pl) :
# Also note that we may need to look in the Parrot blib directory.
if ($CC =~ /gcc/i) {
$liblist .= qq{ -Wl,-L E:/extracted/parrot-0.5.0/blib/lib};
}
else {
$liblist .= qq{ /LIBPATH:E:/extracted/parrot-0.5.0/blib/lib};
}

I changed last lines of partial_link_cmd in dynpmc.pl
(something similar to this)

return
$LD .
'-o ' . $target .   .
join( , map {$PATHQUOTE$_$PATHQUOTE} @$sources) .
 $liblist $LDFLAGS $LD_LOAD_FLAGS ;

The explanation: remove $PATHQUOTE$LIBPARROT$PATHQUOTE  so that
unreferenced symbol do not occur..
I did something similar in the code it is not worth duplicating it here.

I changed $extraLibs in dynoplibs.pl inpartial_link_cmd
for $extraLibs = '-lparrot ..
I added -lparrot at the beginning

I went into directory just failed. I ran make.
Then I want back to the main make.
I ran it.

Marton Papp







Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Tim Bunce
On Mon, Dec 10, 2007 at 04:37:31PM +0200, Allison Randal wrote:
 
 s[...]. It probably makes the 
 most sense to repeat the group drafting strategy we're using with the PIR 
 PDD. You and others can help pull together the draft PDD, and I'll 
 review/revise/approve it as it reaches a relatively solid state. We can 
 also also talk back and forth about ideas on the mailing list as it 
 solidifies.

 There are two parts of the group drafting task: documenting how the system 
 works now, and documenting how you would like it to work. Documenting the 
 functions in embed.h is a great place to start.

 At the moment, chromatic or I would start exactly where you'll be starting: 
 sitting down with the code, extracting a list of current 
 functions/features, and at the same time keeping an eye out for missing 
 features, misfeatures, or other places in need of improvement. So, if you 
 or others are willing to take a first stab at it, it would be enormously 
 helpful. (It's also a great way to gain experience with parrot.)

I'm delighted that Jeff's offered to help.

Jeff, how do you want to proceed?

 Meanwhile there's some housekeeping I can be getting on with.
 Like fixing the broken Makefile.PL (seems best to make it a wrapper for
 the working Build.PL)

 Actually, what we'd like to do is eliminate the Module::Build dependency, 
 and integrate the build process for Parrot::Embed into Parrot's build 
 process (which is all Makefiles).

Okay. Will do.

Tim.

p.s. How do I get a commit bit? Or should I just post patches for now?


Re: Status of docs/embed.pod and Parrot::Embed?

2007-12-10 Thread Tim Bunce
On Mon, Dec 10, 2007 at 10:57:05AM -0800, chromatic wrote:
 On Monday 10 December 2007 01:59:40 Tim Bunce wrote:
 
  Meanwhile there's some housekeeping I can be getting on with.
  Like fixing the broken Makefile.PL (seems best to make it a wrapper for
  the working Build.PL)
 
 I've just run it successfully on x86 Ubuntu; what's broken for you and where?

$ perl M*PL
Unrecognized argument in LIBS ignored: '501'
Unrecognized argument in LIBS ignored: '80'
Unrecognized argument in LIBS ignored: '79'
Unrecognized argument in LIBS ignored: '81'
Unrecognized argument in LIBS ignored: '501LIBPARROT_STATIC)'
Writing Makefile for Parrot::Embed

Due to $( on line 20 in Makefile.PL:

$config{ALL_PARROT_LIBS} = $(LIBPARROT_STATIC) $config{C_LIBS};

I see Makefile.PL isn't in subversion so I presume it's generated
somewhere. (I'm not familar with the parrot build system yet.)

Tim.


Release Managers wanted for 2008

2007-12-10 Thread Will Coleda
We'd like to continue with our monthly release schedule for 2008.  
Volunteers needed!


At the moment, commit bits and an eye to detail are the only real  
prereqs... A PAUSE ID for uploading to CPAN will be necessary at some  
point.


I'd like to get at least six volunteers: if you're already on the list  
from 2007, or if you've responded to a previous ping, please re-up if  
you can; I know availabilty changes a lot.


I'd like to have the releases scheduled out through June of 2008 by  
year's end, so please respond (privately ok) asap.


Thanks in advance!
--
Will Coke Coleda

On Dec 10, 2007, at 10:00 AM, [EMAIL PROTECTED] wrote:


Author: coke
Date: Mon Dec 10 07:00:20 2007
New Revision: 23697

Modified:
  trunk/docs/project/release_manager_guide.pod

Log:
[docs] Update release schedule to reflect reality for previous and  
upcoming

release; Now is a good time to volunteer for 2008...



Modified: trunk/docs/project/release_manager_guide.pod
=== 
=== 
=== 
=

--- trunk/docs/project/release_manager_guide.pod(original)
+++ trunk/docs/project/release_manager_guide.podMon Dec 10  
07:00:20 2007

@@ -264,9 +264,8 @@
Planned releases in 2007.

To make a monthly release schedule possible, we're spreading the  
burden
-of releases across multiple release managers. Each release manager  
takes

-one release in a 6 month rotation. Releases are scheduled for the 3rd
-Tuesday of the month.
+of releases across multiple release managers.  Releases are  
scheduled for

+the 3rd Tuesday of the month.

 - Jan 16th (0.4.8)  Jerry Gay (particle)
 - Feb 20th (0.4.9)  Patrick Michaud (pmichaud)
@@ -278,7 +277,7 @@
 - Aug 21st (0.4.15) Patrick Michaud (pmichaud)
 - Sep 18th (0.4.16) Jerry Gay (particle)
 - Oct 16th (0.4.17) Will Coleda (Coke)
- - Nov 20th, chromatic
- - Dec 18th, Allison Randal
+ - Nov 20th (0.5.0)  chromatic
+ - Dec 18th (0.5.1)  Will Coleda (Coke)

=cut



[perl #48459] [PATCH]: Refactor config/inter/progs.pm into 2 config steps

2007-12-10 Thread via RT
# New Ticket Created by  James Keenan 
# Please include the string:  [perl #48459]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=48459 


The patch attached proposes to refactor Parrot configuration step  
class inter::progs into two classes:  inter::compiler and inter::progs.

inter::compiler will search for a C compiler, process any --cc option  
set on the command line and, if interactive configuration has been  
requested via command-line option --ask, prompt the user for the  
location of the desired C compiler.  It will then conduct a basic  
test of that compiler's functioning.  If interactive configuration  
has been requested, this step will print the introductory information  
currently printed by inter::progs.

inter::progs will process all the other compiler-related settings  
currently done in inter::progs.  Only the --cc-related code and the  
introductory explanation have been extracted.

inter::compiler has been refactored so that, in the two new test  
files found in the patch, we can thoroughly test the Perl 5 aspects  
of the code while steering clear of the test of the C compiler, which  
is outside the scope of these tests.

This refactoring *may* get us closer to resolving the problem  
reported by Andy Dougherty in https://rt.perl.org/rt3/Ticket/ 
Display.html?id=47393.

Please review.  Thank you very much.

Index: MANIFEST
===
--- MANIFEST(revision 23722)
+++ MANIFEST(working copy)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Mon Dec 10 18:59:19 2007 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Tue Dec 11 03:48:56 2007 UT
 #
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
@@ -385,6 +385,7 @@
 config/init/miniparrot.pm   []
 config/init/optimize.pm []
 config/inter/charset.pm []
+config/inter/compiler.pm[]
 config/inter/encoding.pm[]
 config/inter/lex.pm []
 config/inter/libparrot.pm   []
@@ -3033,6 +3034,8 @@
 t/configure/105-init_hints-03.t []
 t/configure/105-init_hints-04.t []
 t/configure/106-init_headers.t  []
+t/configure/107-inter_compiler-01.t []
+t/configure/107-inter_compiler-02.t []
 t/configure/107-inter_progs-01.t[]
 t/configure/107-inter_progs-02.t[]
 t/configure/107-inter_progs-03.t[]
Index: lib/Parrot/Configure/Step/List.pm
===
--- lib/Parrot/Configure/Step/List.pm   (revision 23722)
+++ lib/Parrot/Configure/Step/List.pm   (working copy)
@@ -14,6 +14,7 @@
 init::miniparrot
 init::hints
 init::headers
+inter::compiler
 inter::progs
 inter::make
 inter::lex
Index: t/configure/107-inter_progs-03.t
===
--- t/configure/107-inter_progs-03.t(revision 23722)
+++ t/configure/107-inter_progs-03.t(working copy)
@@ -58,7 +58,6 @@
 my ( @prompts, $object );
 foreach my $p (
 qw|
-cc
 link
 ld
 ccflags
Index: t/configure/107-inter_progs-04.t
===
--- t/configure/107-inter_progs-04.t(revision 23722)
+++ t/configure/107-inter_progs-04.t(working copy)
@@ -58,7 +58,6 @@
 my ( @prompts, $object );
 foreach my $p (
 qw|
-cc
 link
 ld
 ccflags
Index: t/configure/107-inter_progs-01.t
===
--- t/configure/107-inter_progs-01.t(revision 23722)
+++ t/configure/107-inter_progs-01.t(working copy)
@@ -59,7 +59,6 @@
 my ( @prompts, $object );
 foreach my $p (
 qw|
-cc
 link
 ld
 ccflags
Index: t/configure/107-inter_compiler-01.t
===
--- t/configure/107-inter_compiler-01.t (revision 0)
+++ t/configure/107-inter_compiler-01.t (revision 0)
@@ -0,0 +1,135 @@
+#! perl
+# Copyright (C) 2007, The Perl Foundation.
+# $Id$
+# 107-inter_compiler-01.t
+
+use strict;
+use warnings;
+
+use Test::More tests = 24;
+use Carp;
+use Data::Dumper;
+use lib qw( lib t/configure/testlib );
+use_ok('config::init::defaults');
+use_ok('config::init::install');
+use_ok('config::init::hints');
+use_ok('config::inter::compiler');
+use Parrot::Configure;
+use Parrot::Configure::Options qw( process_options );
+use Parrot::Configure::Test qw( test_step_thru_runstep);
+use Parrot::IO::Capture::Mini;
+
+my $args = 

Re: VMs in the news

2007-12-10 Thread Randal L. Schwartz
 Andy == Andy Armstrong [EMAIL PROTECTED] writes:

Andy Rubinus (new Ruby runtime)
Andy http://www.infoq.com/news/2007/12/engine-yard-bets-big-rubinius

I'm trying to figure out why Rubinous is building a squeak-like vm
when squeak already has a vm.  They would have been done faster had
they generated Squeak bytecodes.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
[EMAIL PROTECTED] URL:http://www.stonehenge.com/merlyn/
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!


memory checking I've been working on

2007-12-10 Thread MAILER-DAEMON

Now that I've got all but one function headerized, I'm running splint.
One of the things that splint is good at, and the reason I did all the
PARROT_CAN(NOT)_RETUN_NULL flags, is it'll keep track of when something
could be NULL or not.  So splint complains here:

 char * const p = malloc(n);
 p-foo = ...

and not here

 char * const p = mem_sys_allocate(n);
 p-foo = ...

because mem_sys_allocate() is marked as PARROT_CANNOT_RETURN_NULL.

So I can do this in PackFile_new:

Index: src/packfile.c
===
--- src/packfile.c  (revision 23681)
+++ src/packfile.c  (working copy)
@@ -1119,24 +1119,14 @@

PARROT_API
PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
PackFile *
PackFile_new(PARROT_INTERP, INTVAL is_mapped)
{
PackFile * const pf = mem_allocate_zeroed_typed(PackFile);

-if (!pf) {
-PIO_eprintf(NULL, PackFile_new: Unable to allocate!\n);
-return NULL;
-}
pf-is_mmap_ped = is_mapped;
-
pf-header = mem_allocate_zeroed_typed(PackFile_Header);
-if (!pf-header) {
-PIO_eprintf(NULL, PackFile_new: Unable to allocate header! 
\n);

-PackFile_destroy(interp, pf);
-return NULL;
-}
/*
 * fill header with system specific data
 */
Index: include/parrot/packfile.h
===
--- include/parrot/packfile.h   (revision 23681)
+++ include/parrot/packfile.h   (working copy)
@@ -453,7 +453,7 @@

PARROT_API
PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
PackFile * PackFile_new(PARROT_INTERP, INTVAL is_mapped)
__attribute__nonnull__(1);



The other thing to come out of this instrumentation is when splint tells
us that we can be dereferencing NULL, as in here:

intlist_get(PARROT_INTERP, NOTNULL(IntList *list), INTVAL idx)
{
   /* XXX list_get can return NULL RT #48367 */
   void * const ret = list_get(interp, (List *)list, idx,  
enum_type_INTVAL);

   const INTVAL retval = ret == (void *)-1 ? 0 : *(INTVAL *)ret;

ret could be NULL, but we're not checking that, so it's possible to
de-refernece a NULL.

So that's what I'm workin' on, running splint, fixing headerizations,
etc.  Let me know if anything shakes loose, or looks crazy, or causes
problems with your specific compiler.  I'd especially like it if someone
non-GCC has compiler options that we can put into
PARROT_CANNOT_RETURN_NULL and its brethren so we have more compilers
watching our backs.

xoxo,
Andy

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance



Re: Standards bearers (was Re: xml and perl 6)

2007-12-10 Thread Richard Hainsworth

A great relief. Fantastic.

Where should I be looking to see what is happening. Is there some form 
of coordination of this module writing activity?


Darren Duncan wrote:

At 9:04 AM +0300 12/10/07, Richard Hainsworth wrote:
Equally, Something to replace CGI or DBI will be essential to the 
uptake of P6. I would far prefer to have a skilled and resourceful 
professional, such as yourself or Damian Conway write these modules 
than leave it to enthusiastic amateurs such as myself.


I for one can assert that both of these are being produced right now. 
Also that neither is part of the Perl 6 kernal, though the kernal may 
enhanced over time to better support them. -- Darren Duncan


Re: [PROPOSAL] Remove Absolute PASM registers from PIR. (was: Re: [BUG] imcc register allocation does not consider PASM register usage)

2007-12-10 Thread Joshua Isom


On Dec 10, 2007, at 10:59 AM, Klaas-Jan Stol wrote:


In order to draw attention to this point, I changed the subject.

Is there anybody who thinks the removal from PIR of $-less registers
(absolute or PASM registers) should not be done?

kjs



Parrot provides a calling convention, but does not, that I know of, 
mandate that calling convention.  In any computer, there are multiple 
calling conventions used(often leading to a lack of interoperability, 
but nevertheless present).  The system itself uses specific registers.  
Mixing absolute and relative registers in PIR does cause problems, but 
a program that solely used absolute registers and its own calling 
convention shouldn't be necessarily forbidden.  Currently parrot has 
several ops that assist a different language/calling convention, such 
as bsr, and others of it's ilk.  Mixing those ops and the standard 
calling convention ops together will probably cause massive problems, 
but they still exist(even if they're there more because they were long 
ago rather than need to be).