[svn:parrot-pdd] r25087 - trunk/docs/pdds/draft

2008-01-21 Thread allison
Author: allison
Date: Mon Jan 21 00:42:50 2008
New Revision: 25087

Modified:
   trunk/docs/pdds/draft/pdd18_security.pod

Log:
[pdd] Add a reference and start to standardize format of Security PDD.


Modified: trunk/docs/pdds/draft/pdd18_security.pod
==
--- trunk/docs/pdds/draft/pdd18_security.pod(original)
+++ trunk/docs/pdds/draft/pdd18_security.podMon Jan 21 00:42:50 2008
@@ -1,16 +1,20 @@
 =head1 NAME
 
-docs/pdds/pdd18_security.pod - Parrot's security infrastructure
+docs/pdds/pdd18_security.pod - Parrot's security model
 
 =head1 ABSTRACT
 
-This PDD describes the safety, security, and quota infrastructure of Parrot.
+This PDD describes the security infrastructure of Parrot.
 
-{{ NOTE: This PDD is inadequate. We want to provide a much more
-extensive level of sandboxing. }}
+=head1 VERSION
+
+$Revision$
 
 =head1 DESCRIPTION
 
+{{ NOTE: This PDD is inadequate. We want to provide a much more
+extensive level of sandboxing. }}
+
 There are three basic subsystems in Parrot's security system. They are:
 
 =over 4
@@ -151,38 +155,11 @@
 
 =head1 REFERENCES
 
+"Exploring the Broken Web": http://talks.php.net/show/osdc07
 
+=cut
 
-=head1 VERSION
-
-=head2 CURRENT
-
-Maintainer: Dan Sugalski
-Class: Internal
-PDD Number: 18
-Version: 1.0
-Status: Developing
-Last Modified: 29 Aug 2004
-PDD Format: 1
-Language: English
-
-=head2 HISTORY
-
-=over 4
-
-=item version 1
-
-None. First version
-
-=back
-
-=head1 CHANGES
-
-=over 4
-
-=item Version 1.0
-
-None. First version
-
-=back
-
+__END__
+Local Variables:
+  fill-column:78
+End:


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

2008-01-21 Thread chromatic
Author: chromatic
Date: Mon Jan 21 01:00:01 2008
New Revision: 25088

Modified:
   trunk/docs/pdds/pdd09_gc.pod

Log:
[PDD] Minor edits to PDD 09; added some questions for clarification.

Modified: trunk/docs/pdds/pdd09_gc.pod
==
--- trunk/docs/pdds/pdd09_gc.pod(original)
+++ trunk/docs/pdds/pdd09_gc.podMon Jan 21 01:00:01 2008
@@ -34,12 +34,12 @@
 object set is divided into three parts: white, gray, and black. The white
 objects are presumed dead. The gray objects have been marked as live by some
 other object, but haven't yet marked the objects they refer to. The black
-objects are live, and have marked all objects they directly refer to. 
+objects are live, and have marked all objects they directly refer to.
 
 In the initial run, all objects start as white and the root set is marked gray.
 The marking process changes white objects to gray (marking them from another
-gray object), and gray objects to black (when all object they refer to are
-marked). When the gray set is empty, all live objects have been marked, and
+gray object), and gray objects to black (when all objects they refer to are
+marked). When the gray set is empty, all live objects have been marked and
 the white set can be collected. After a collection run, all black objects are
 reset to white, the root set to gray, and the process begins again.
 
@@ -77,7 +77,7 @@
 
 =head2 Reference counting
 
-In this scheme, all objects have a count of how often they are refered to by
+In this scheme, all objects have a count of how often they are referred to by
 other objects. If that count reaches zero, the object's memory can be
 reclaimed. This scheme doesn't cope well with reference loops--loops of dead
 objects, all referencing one another but not reachable from elsewhere, never
@@ -89,7 +89,7 @@
 (including all threads that use the same memory pools) must be suspended while
 the whole memory set is examined during marking and collection.  Normal
 operation continues only after the whole GC cycle is performed. This can lead
-to arbitrary long pauses during program execution.
+to arbitrarily long pauses during program execution.
 
 =head2 Incremental
 
@@ -119,7 +119,6 @@
 threads participating in GC. On a multi-processor machine, concurrent GC may be
 truly parallel.
 
-
 =head1 DESCRIPTION
 
 =over 4
@@ -127,7 +126,7 @@
 =item - Parrot provides swappable garbage collection schemes. The GC scheme can
 be selected at configure/compile time.  The GC scheme cannot be changed
 on-the-fly at runtime, but in the future may be selected with a command-line
-option at execution time. 
+option at execution time.
 
 =item - All live PMCs must be reachable from the root set of objects in the
 interpreter.
@@ -143,8 +142,8 @@
 =head1 IMPLEMENTATION
 
 Parrot supports pluggable garbage collection cores, so ultimately any garbage
-collection model devised can run on it. But, different GC models are more or
-less appropriate for different application areas. The current default
+collection model devised can run on it. However, different GC models are more
+or less appropriate for different application areas. The current default
 stop-the-world mark-and-sweep model is not well suited for concurrent/parallel
 execution. We will keep the simple mark-and-sweep implementation, but it will
 no longer be primary.
@@ -160,21 +159,21 @@
 
 =head2 Initial Marking
 
-Each PMC has a C member which, among other things, is used to facilitate
-garbage collection. At the beginning of the mark phase, the 
C
-and C are both unset, which flags the PMC as 
presumed
+Each PMC has a C member which, among other things, facilitates garbage
+collection. At the beginning of the mark phase, the C and
+C are both unset, which flags the PMC as presumed
 dead (white). The initial mark phase of the collection cycle goes through each
-PMC in the root set and sets the C bit in the C 
member
-(the PMC is gray).  It does not set the C bit
+PMC in the root set and sets the C bit in the C
+member (the PMC is gray).  It does not set the C bit
 (changing the PMC to black), because in the initial mark, the PMCs or buffers
 contained by a PMC are not marked. It also appends the PMC to the end of a list
 used for further marking. However, if the PMC has already been marked as black,
 the current end of list is returned (instead of appending the already processed
 PMC) to prevent endless looping.
 
-The fourth combination of the two flags, where C is unset 
and
-C is set, is reserved for PMCs of an older
-generation, not actively participating in the GC run.
+The fourth combination of the two flags, where C is unset
+and C is set, is reserved for PMCs of an older
+generation not actively participating in the GC run.
 
 The root set for the initial marking phase includes the following core storage
 locations:
@@ -199,22 +198,23 @@
 
 After the root set of PMCs have been marked, a series of incremental mark runs
 a

Re: [perl #48024] [DEPRECATED] type ids

2008-01-21 Thread Klaas-Jan Stol
On Jan 21, 2008 4:55 AM, Will Coleda via RT <
[EMAIL PROTECTED]> wrote:

> On Sun Jan 20 08:57:52 2008, ptc wrote:
> > Completed as per r25053.
>
> The ticket is for removing the ability to do this, not merely removing the
> instances where it is
> done.
>
> Re-opening ticket; Thanks for all the cleanup work, however,  that should
> make it easier to rip
> out the actual code.


Not sure, but I don't think all '.const  .Sub foo = "foo" '  is gone
already

before we rip out the dot stuff from IMCC, these should be rephrased.

kjs


FW: Parrot 0.5.2 Released

2008-01-21 Thread Conrad Schneiker
François Perrad wrote:

> Bob Rogers wrote:
> > On behalf of the Parrot team, I'm proud to announce Parrot 0.5.2
> > "P.e. nipalensis."  Parrot (http://parrotcode.org/) is a virtual machine
> > aimed at running all dynamic languages.
> > 
>
> The Windows setup is available on http://parrotwin32.sourceforge.net/
> with a perl6.exe for the first time.

Very cool!

I wanted to feature this on the Perl 6 wiki, but when I first naively gave
this a try (on Win XP Pro), here's what I got:


C:\parrot-0.5.2\bin>perl6 -e "say 'Hello World!'"
Null PMC access in isa()
current instr.: 'parrot;Perl6Object;make_proto' pc 55
(src/gen_builtins.pir:76)
called from Sub 'parrot;Perl6Str;onload' pc 415 (src/gen_builtins.pir:332)
called from Sub 'parrot;Perl6::Compiler;main' pc -1 ((unknown file):-1)


(Got same results trying to use a file. Also tried putting bin dir on path.)

Any special setup required for this? As a non-developer, it wasn't obvious
where I should look for info. I didn't see a doc dir or README in the
installation dir, and I didn't see anything obvious at
http://www.parrotcode.org/docs/. 

Best regards,
Conrad Schneiker

www.AthenaLab.com

http://www.perlfoundation.org/perl6  — Official Perl 6 Wiki
http://www.perlfoundation.org/parrot — Official Parrot Wiki
http://www.perlfoundation.org/perl5  — Official Perl 5 Wiki



Re: [perl #39196] [TODO] tests - need to test addmethod

2008-01-21 Thread Klaas-Jan Stol
On Jan 21, 2008 5:50 AM, Will Coleda via RT <
[EMAIL PROTECTED]> wrote:

> On Fri Jan 11 13:25:21 2008, [EMAIL PROTECTED] wrote:
> > On Wed Feb 21 05:47:29 2007, kjs wrote:
> > > On Wed May 24 05:26:22 2006, coke wrote:
> > > > New addmethod opcode needs tests.
> > > >
> > > > --
> > > > Will "Coke" Coleda
> > > > [EMAIL PROTECTED]
> > > >
> > > >
> > > Attached a patch that adds a test for "addmethod".
> > >
> >
> > Coke:  Did this patch DWYM?
>
> Patch no longer applies cleanly; kjs, can you rebase?
>

attached. I changed "get_global" into "get_hll_global", as the former is
deprecated.
I'm not entirely clear when I should use what (hll or root), but this works,
and makes most sense to me.

the patch also changes some whitespace. I wasn't sure I  could just change
the patch file be removing that stuff.

kjs


addmethod.patch
Description: Binary data


Re: [perl #49972] Error message for misspelled sub name in PIR code is confusing

2008-01-21 Thread Klaas-Jan Stol
On Jan 20, 2008 1:34 AM, Geoffrey Broadwell <[EMAIL PROTECTED]> wrote:

> On Sat, 2008-01-19 at 16:12 -0600, Patrick R. Michaud wrote:
> > On Fri, Jan 18, 2008 at 09:41:01PM -0800, Geoffrey Broadwell wrote:
> > >   "Null PMC access in invoke(); misspelled sub name in function call?"
> >
> > I fear this error message may actually send a beginner down a false
> > trail.  This particular error occurs anytime we attempt to call
> > a sub that cannot be located in the current lexical/namespace/global
> > symbol table.  So, there could be other causes for the error besides
> > a simple misspelling.
>
> Fair enough.  I had indeed experienced the error both in the direct code
> I presented in the initial ticket, and in the case of a symbol table
> lookup.  But no matter what route I took to get there, there were only
> two mistakes I had made:  either I had misspelled the name somewhere, or
> I hadn't inserted it into the symbol table before looking it up (which
> itself had a few different causes -- one time it even turned out to be
> saving one file but not another in my editor).
>
> > The "Null PMC access in invoke()" except gets thrown at the
> > point of the invokecc call, at which point we no longer have
> > convenient access to the name.
>
> Nodnod, understood.
>
> > So, the options I see at this point are to modify the find_name
> > opcode to throw an exception when asked to locate a non-existent
> > symbol (note that this is somewhat counter to the way we've been
> > heading), or to have the PIR compiler generate code to check
> > the result of find_name and throw an exception.
>
> I personally don't want any runtime cost to improve this error message;
> I was merely suggesting the first thing that came to mind to demystify
> the original message.  Heck, we can put a whole paragraph in the error
> message if need be, but *no runtime cost for correct code* please.  I'd
> rather have a bad error message than a slower VM.
>
>
It might not be a bad idea to create some kind of glossary of error messages
from the PIR compiler. So, some kind of overview, "if you get *this* error
message, you might want to check this, that and such". Maybe an additional
error code, so it can be an indexed list.
Of course, this list should evolve over time, as it's difficult to create it
completely from scratch. (Also, IMCC could use some cleanups anyway
somewhere in the future in this field and others.. for instance, there are
some mallocs that aren't checked for success. I assume this is not really
desirable for a production system that runs a 100K business)

kjs


Re: [perl #48260][PATCH] - compilers/imcc/main.c]

2008-01-21 Thread ajr

I think I've now connected brain to fingers and patch to message.


--

Email and shopping with the feelgood factor!
55% of income to good causes. http://www.ippimail.comIndex: compilers/imcc/main.c
===
--- compilers/imcc/main.c	(revision 25001)
+++ compilers/imcc/main.c	(working copy)
@@ -107,7 +107,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Outputs usage error message.
 
 =cut
 
@@ -125,7 +125,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Print out list of debugging flag values.
 
 =cut
 
@@ -169,7 +169,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Print out "help" list of options.
 
 =cut
 
@@ -224,7 +224,8 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Print out parrot version number and copyright message.
+Include warning if Configure's version # doesn't match.
 
 =cut
 
@@ -306,7 +307,8 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Tests all characters in a string are hexadecimal digits.
+Returns 1 if true, 0 as soon as a non-hex found
 
 =cut
 
@@ -328,7 +330,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Parse Parrot's command line for options and set appropriate flags.
 
 =cut
 
@@ -565,7 +567,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Pre-processor step.  Turn parser's output codes into Parrot instructions.
 
 =cut
 
@@ -689,7 +691,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Create list (opt_desc[]) describing optimisation flags.
 
 =cut
 
@@ -725,7 +727,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Initialise interpreter and set optimisation level.
 
 =cut
 
@@ -760,7 +762,8 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Write out or run Parrot bytecode. 
+ RT#46149 no return value :-( 
 
 =cut
 
@@ -796,7 +799,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Output Packed bytecode file.
 
 =cut
 
@@ -834,7 +837,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Read in the source and determine whether it's Parrot bytecode or PASM
 
 =cut
 
@@ -874,7 +877,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Decide what kind of file we are to outout.
 
 =cut
 
@@ -909,7 +912,7 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Compile source code into bytecode (or die trying).
 
 =cut
 
@@ -986,7 +989,8 @@
 
 =item C
 
-RT#48260: Not yet documented!!!
+Compile source code (if required), write bytecode file (if required)
+and run.
 
 =cut
 

[perl #50040] GC makes a namespace entry disappear?

2008-01-21 Thread via RT
# New Ticket Created by  Bob Rogers 
# Please include the string:  [perl #50040]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50040 >


   The attached tarball has a test case in which one file
(gc-debug-test.pir) loads another (structures.pir), where the second has
a :load sub that calls a sub defined in the first file.  The bug is
that, under what must be fairly arcane conditions, get_hll_global in the
:load sub doesn't find the sub defined in the main file.  To reproduce,
unpack the tarball, edit the makefile macros to point to your Parrot
instance, and type "make".  You should get a "couldn't find
_fdefn_init_kludge" error.  If it fails to fail, it will say "hey, it's
working", and exit normally.

   I've been seeing this problem intermittently for at least three or
four months now, but had never been able to isolate a test case until I
tried specifying --runcore=gcdebug (chromatic++!) while tracking down
another problem (which may be related).  It fails reliably for me on
GNU/Linux with x86 in Parrot r25001 and r25076, using two separate
distro versions.

   Some additional clues:

   1.  It appears to require not only loading the pmclass via .HLL, but
doing a get_class of that pmclass before loading structures.pbc file.

   2.  Trimming any more subs out of structures.pir makes it work.
(There are dependencies between the :load subs, so work backwards from
the next-to-last one.)  If it works for you off the bat, you may be on
the other side of some internal threshold; rename orig-structures.pir to
structures.pir and try again.

   3.  And, of course, it needs --runcore=gcdebug to fail.

   This is my current roadblock, so I'll continue looking at it, but I
would be exceedingly grateful for any help.  Just knowing that someone
else can reproduce this would be very good for my sanity.

   TIA,

-- Bob Rogers
   http://rgrjr.dyndns.org/



gc-bug.tgz
Description: Binary data


[perl #50052] [PATCH] [lolcode] YARN parsing with basic escapes

2008-01-21 Thread via RT
# New Ticket Created by  Stuart Jansen 
# Please include the string:  [perl #50052]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50052 >



* Test case for disappearing whitespace in string literals
* Fix for disappearing whitespace in string literals
* Support for basic escape sequences
---
 MANIFEST  |1 +
 languages/lolcode/config/makefiles/root.in|1 +
 languages/lolcode/lolcode.pir |1 +
 languages/lolcode/src/parser/actions.pm   |2 +-
 languages/lolcode/src/parser/grammar.pg   |2 +-
 languages/lolcode/src/parser/yarn_literal.pir |   71 +
 languages/lolcode/t/00-sanity.t   |8 +++-
 languages/lolcode/t/04-strings.t  |   11 
 8 files changed, 94 insertions(+), 3 deletions(-)
 create mode 100644 languages/lolcode/src/parser/yarn_literal.pir
 create mode 100644 languages/lolcode/t/04-strings.tdiff --git a/MANIFEST b/MANIFEST
index d7d048a..bbcb64a 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1560,6 +1560,7 @@ languages/lolcode/src/builtins/math.pir [lolcode]
 languages/lolcode/src/builtins/var_or_function.pir  [lolcode]
 languages/lolcode/src/parser/actions.pm [lolcode]
 languages/lolcode/src/parser/grammar.pg [lolcode]
+languages/lolcode/src/parser/yarn_literal.pir   [lolcode]
 languages/lolcode/t/00-sanity.t [lolcode]
 languages/lolcode/t/01-vars.t   [lolcode]
 languages/lolcode/t/02-functions.t  [lolcode]
diff --git a/languages/lolcode/config/makefiles/root.in b/languages/lolcode/config/makefiles/root.in
index 4244135..9b4e1ae 100644
--- a/languages/lolcode/config/makefiles/root.in
+++ b/languages/lolcode/config/makefiles/root.in
@@ -36,6 +36,7 @@ SOURCES = lolcode.pir \
   src/gen_grammar.pir \
   src/gen_actions.pir \
   src/gen_builtins.pir \
+  src/parser/yarn_literal.pir \
 #  $(LOLCODE_GROUP)
 
 BUILTINS_PIR = \
diff --git a/languages/lolcode/lolcode.pir b/languages/lolcode/lolcode.pir
index 0d46096..576bccb 100644
--- a/languages/lolcode/lolcode.pir
+++ b/languages/lolcode/lolcode.pir
@@ -52,6 +52,7 @@ to the lolcode compiler.
 
 .include 'src/gen_builtins.pir'
 .include 'src/gen_grammar.pir'
+.include 'src/parser/yarn_literal.pir'
 .include 'src/gen_actions.pir'
 
 =back
diff --git a/languages/lolcode/src/parser/actions.pm b/languages/lolcode/src/parser/actions.pm
index 341bd9d..6c9b06c 100644
--- a/languages/lolcode/src/parser/actions.pm
+++ b/languages/lolcode/src/parser/actions.pm
@@ -173,7 +173,7 @@ method boolean($/) {
 }
 
 method quote($/) {
-make PAST::Val.new( :value( $($) ), :node($/) );
+make PAST::Val.new( :value( $($) ), :node($/) );
 }
 
 method math($/) {
diff --git a/languages/lolcode/src/parser/grammar.pg b/languages/lolcode/src/parser/grammar.pg
index 3c96dee..7152f83 100644
--- a/languages/lolcode/src/parser/grammar.pg
+++ b/languages/lolcode/src/parser/grammar.pg
@@ -123,7 +123,7 @@ token float { '-'? \d+ '.' \d+ {*} }
 rule boolean { [ 'WIN' | 'FAIL' ] {*} }
 
 rule quote {
-[ \"  \" ]
+[ <.before '"'>  ]
 {*}
 }
 
diff --git a/languages/lolcode/src/parser/yarn_literal.pir b/languages/lolcode/src/parser/yarn_literal.pir
new file mode 100644
index 000..d9bc1f0
--- /dev/null
+++ b/languages/lolcode/src/parser/yarn_literal.pir
@@ -0,0 +1,71 @@
+# $Id$
+
+.namespace ['lolcode::Grammar']
+
+.sub 'yarn_literal' :method
+.param pmc adverbs :slurpy :named
+
+.local string delim
+delim = '"'
+
+##  create a new match object, get the new match position
+.local pmc mob
+.local int pos, lastpos, delimlen
+.local string target
+(mob, pos, target) = self.'new'(self)
+lastpos = length target
+
+##  leave space for close delimiter
+delimlen = length delim
+lastpos -= delimlen
+
+##  now initialize and loop through target
+  literal_init:
+.local string literal, litchar, escaped
+literal = ''
+litchar = substr target, pos, 1
+inc pos
+if litchar == delim goto literal_loop
+self.'panic'('Missing open delimiter for YARN literal.')
+
+  literal_loop:
+##  if we're beyond the last possible position, fail
+if pos > lastpos goto fail
+
+##  get next character in literal
+litchar = substr target, pos, 1
+inc pos
+if litchar == delim goto literal_end
+
+##  add non-escape characters to literal
+if litchar != ':' goto add_litchar
+
+##  interpolate escaped
+escaped = substr target, pos, 1
+$I0 = index ':)>o"', escaped
+if $I0 < 0 goto add_litchar
+inc pos
+
+litchar = substr ":\n\t\a\"", $I0, 1
+goto add_litchar
+
+  add_litchar:
+literal .= litchar
+goto literal_loop
+
+  literal_end:
+mob.'to'(pos)
+mob.'result_object'(literal)
+.return (mob)
+
+  fa

[perl #50050] [PATCH] [lolcode] Add exe files to make clean

2008-01-21 Thread via RT
# New Ticket Created by  Stuart Jansen 
# Please include the string:  [perl #50050]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50050 >



As every good child knows, at the end of the day when we're dont playing
with our toys, we should put things back the way they were.
---
 languages/lolcode/config/makefiles/root.in |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)diff --git a/languages/lolcode/config/makefiles/root.in b/languages/lolcode/config/makefiles/root.in
index 9b4e1ae..3980572 100644
--- a/languages/lolcode/config/makefiles/root.in
+++ b/languages/lolcode/config/makefiles/root.in
@@ -103,6 +103,8 @@ test: all
 testclean:
 
 CLEANUPS = \
+  [EMAIL PROTECTED]@ \
+  lolcode.c \
   lolcode.pbc \
   src/gen_grammar.pir \
   src/gen_actions.pir \


[perl #50054] [PATCH] [lolcode] Support YARNs with hex escapes

2008-01-21 Thread via RT
# New Ticket Created by  Stuart Jansen 
# Please include the string:  [perl #50054]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50054 >



This patch depends on http://rt.perl.org/rt3/Public/Bug/Display.html?id=50052
---
 languages/lolcode/src/parser/yarn_literal.pir |   28 -
 languages/lolcode/t/04-strings.t  |6 -
 2 files changed, 32 insertions(+), 2 deletions(-)diff --git a/languages/lolcode/src/parser/yarn_literal.pir b/languages/lolcode/src/parser/yarn_literal.pir
index d9bc1f0..ebf09e9 100644
--- a/languages/lolcode/src/parser/yarn_literal.pir
+++ b/languages/lolcode/src/parser/yarn_literal.pir
@@ -42,13 +42,39 @@
 
 ##  interpolate escaped
 escaped = substr target, pos, 1
-$I0 = index ':)>o"', escaped
+$I0 = index ':)>o"(', escaped
 if $I0 < 0 goto add_litchar
 inc pos
+if $I0 == 5 goto scan_hexchar
 
 litchar = substr ":\n\t\a\"", $I0, 1
 goto add_litchar
 
+  scan_hexchar:
+.local int decnum
+decnum = 0
+
+  scan_hexchar_loop:
+if pos > lastpos goto fail
+$S0 = substr target, pos, 1
+inc pos
+if $S0 == ')' goto add_hexchar
+$I0 = index '0123456789abcdefABCDEF', $S0
+if $I0 < 0 goto fail_hexchar
+if $I0 < 16 goto shift_hexchar
+$I0 -= 6
+  shift_hexchar:
+decnum *= 16
+decnum += $I0
+goto scan_hexchar_loop
+
+  fail_hexchar:
+self.'panic'('Invalid character in hex escape.')
+
+  add_hexchar:
+litchar = chr decnum
+goto add_litchar
+
   add_litchar:
 literal .= litchar
 goto literal_loop
diff --git a/languages/lolcode/t/04-strings.t b/languages/lolcode/t/04-strings.t
index abddf50..cd5c7f4 100644
--- a/languages/lolcode/t/04-strings.t
+++ b/languages/lolcode/t/04-strings.t
@@ -1,5 +1,5 @@
 HAI 1.2
-  VISIBLE "1..3"
+  VISIBLE "1..4"
 
   BTW SIMPLE ESCAPE
   VISIBLE "ok 1 :)" !
@@ -7,5 +7,9 @@ HAI 1.2
   BTW SIMPLE ESCAPE WITH MULTIPLE ARGS
   VISIBLE "ok 2" ":)" "ok 3"
 
+  BTW HEX ESCAPE "ok 4"
+  VISIBLE ":(6f):(6B):(20):(34)" !
+  VISIBLE "   # I :(2665) Unicode"
+
   BTW vim: set filetype=lolcode :
 KTHXBYE


[perl #50056] [BUG] "Undefined symbols" on OS X

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


In the past few weeks we've had an increasing number of "Undefined 
symbols" errors on OS X (Tiger). Previously it was only a handful of 
failing tests, but now it's preventing 'make' from completing, 
terminating with the following error:

--
c++ -o pbc_to_exe pbc_to_exe.o  -L/usr/local/lib -L/opt/local/lib 
-L/sw/lib -L/sw/lib -L/opt/local/lib -L/sw/lib 
-L/Users/allison/projects/svn/parrot/blib/lib -lparrot 
-L/Users/allison/projects/svn/parrot/blib/lib -lm -lgmp -lreadline 
/Users/allison/projects/svn/parrot/src/parrot_config.o
/usr/bin/ld: Undefined symbols:
_Parrot_set_executable_name
collect2: ld returned 1 exit status
linking failed
current instr.: 'link_file' pc 752 (pbc_to_exe.pir:365)
called from Sub 'main' pc 124 (pbc_to_exe.pir:32)
make: *** [pbc_to_exe] Error 1
--

Looks like this particular failure was caused by r25020, but it's only a 
symptom of the wider problem.

Allison


Parrot Bug Summary

2008-01-21 Thread Parrot Bug Summary
Parrot Bug Summary

http://rt.perl.org/rt3/NoAuth/parrot/Overview.html
Generated at Mon Jan 21 14:00:04 2008 GMT
---

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

---

Numbers

Ticket Counts: 105 new + 732 open = 837
Created this week: 34
Closed this week: 25

---

New Issues

New issues that have not been responded to yet

1 - 2 weeks old
49718 JIT Core Needs to Handle Scheduler Tasks
49558 [PATCH] Note inter::progs ought to be smarter about finding linker
2 - 3 weeks old
49328 [BUG] problem between PBC loading and garbage collection
49258 Parrot::Test with --run-exec assumes "." is in $PATH
3 - 4 weeks old
49177 [TODO] pct - PAST::Val node should throw exception if :value attribute
  not set
4 - 5 weeks old
49023 Error in library/pg on Ubuntu 7.10
49001 [PROPOSAL][DOCS] Change word "compilation_unit" into something else (like
  "sub")
48877 [TODO] Don't generate .constant declarations for vtable method names.
5 - 6 weeks old
48749 [BUG] t/examples/tutorial.t if_unless failure (Win32)
48645 [CAGE] Make PMCs depend on Parrot::Pmc2c::* Modules
48587 [BUG] pmc.num contains missing PMCs
48581 [DEPRECATED] vtable type_keyed_str
48549 [RFC][PIR] Let .namespace (no args) have empty brackets
48513 [TODO][PCT] Use of int registers in PCT.
48507 [BUG] oo - n_add, n_sub, etc. don't work with objects
48467 [BUG] assignment of objects creates Ref instead of copy
48445 [TODO] [NQP] - report undeclared variable usage
48439 [TODO] [configure] compiling Parrot with LLVM
6 - 7 weeks old
48367 intlist_get could be dereferencing NULL
48357 Initialize vtables for newly created interpreter
48320 [BUG] Example in pdd23 doesn't work
48296 Implement get_namespace vtable from pdd17
48286 [TODO] [C] Warnings aren't emitted if a var isn't initialised and -w flag
  is on in propagate_need()
48282 [TODO] [C] Check that invoke is ok near the set_addr instruction in
  bb_findadd_edge()
48280 [TODO] [C] Check for a sub with more up-to-date unit->type lookup
48278 [TODO] [C] Should we call GetLastError for failure messages in .../win32/
  exec.c?
48276 [TODO] [C] Warn when failure occurs in Parrot_setenv()
48274 [TODO] [C] Stop ignoring the known errors in Parrot_dlopen()
48272 [TODO] [C] Stop exporting Parrot_signbit()
48264 [TODO] [C] Write file-level documentation
48212 "make smoke" hangs on win32 latest build
48206 [TODO] [cola] Check that expression evaluates to a method in
  gen_method_call()
48204 [TODO] [cola] Check method signature in gen_arg_list_expr() and find out 
  what type is expected
48202 [TODO] [cola] Rewrite push_sym() to call generic Node versions of calls
48200 [TODO] [cola] Add documentation to files and functions
48198 [TODO] [cola] Add support for member resolution in lookup_type()
48196 [TODO] [APL] Should the PMC in set_shape() be cloned?
48194 [TODO] [APL] Move any constant string declarations into class_init()
48192 [TODO] [amber] Correct overflow issue in integer()
48190 [TODO] [amber] Can null variable check be reinstated by generating n_neg 
  instead of neg?
48188 [TODO] [amber] Correct overflow for -maxint in abs()
48186 [TODO] [amber] Consider using unicode in character()
48184 [TODO] [amber] Use has(index) to check indices in set_item()
48182 [TODO] [amber] Reject out of range values in item()
48180 [TODO] [amber] Reject first() and last() methods if count = 0
48176 [TODO] [pugs] Warning: use of uninitialized value
48174 [TODO] [pugs] Store undef for consistency
48172 [TODO] [pugs] Getting nonexistent value, exception or undef?
48170 [TODO] [regex] Remove 'use of uninitialized value' issues in match.pmc
48168 [TODO] [regex] Implement init_pmc
48164 [TODO] [Tcl] Document the functions in tcl/src/binary.c
48162 [TODO] [Tcl] Document what the tcl/src/binary.c file does in the
  DESCRIPTION
48150 [DOCS] pdd23 doesn't document obtaining thrown exception object
48134 [BUG][PATCH]interp->current_args overwritten in callmethodcc
48132 [TODO] [cardinal] Need to throw an exception about invalid boolean type
  in get_bool()
48130 [TODO] [dotnet] Why does sig_token have to be set to 0x in
  make_bytecde_pmc()?
48128 [TODO] [dotnet] Does a null first byte need special handling in
  dotnetsignature.pmc?
48124 [TODO] [C] Fix arithmetic ops in perlarray.pmc
48122 [TODO] [C] PerlInt should extend PerlAny or PerlScalar in perlint.pmc (?)
48120 [TODO] [C] Remove nonportable signbit code from perlnum.pmc
7 - 8 weeks old
48034 [BUG] examples/streams/Bytes.pir runtime error
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 except

RE: Parrot 0.5.2 Released

2008-01-21 Thread Conrad Schneiker
François Perrad wrote:

> Bob Rogers wrote:
> > On behalf of the Parrot team, I'm proud to announce Parrot 0.5.2
> > "P.e. nipalensis."  Parrot (http://parrotcode.org/) is a virtual machine
> > aimed at running all dynamic languages.
> > 
>
> The Windows setup is available on http://parrotwin32.sourceforge.net/
> with a perl6.exe for the first time.

Very cool!

I wanted to feature this on the Perl 6 wiki, but when I first naively gave
this a try (on Win XP Pro), here's what I got:


C:\parrot-0.5.2\bin>perl6 -e "say 'Hello World!'"
Null PMC access in isa()
current instr.: 'parrot;Perl6Object;make_proto' pc 55
(src/gen_builtins.pir:76)
called from Sub 'parrot;Perl6Str;onload' pc 415 (src/gen_builtins.pir:332)
called from Sub 'parrot;Perl6::Compiler;main' pc -1 ((unknown file):-1)


(Got same results trying to use a file. Also tried putting bin dir on path.)

Any special setup required for this? As a non-developer, it wasn't obvious
where I should look for info. I didn't see a doc dir or README in the
installation dir, and I didn't see anything obvious at
http://www.parrotcode.org/docs/. 

Best regards,
Conrad Schneiker

www.AthenaLab.com

http://www.perlfoundation.org/perl6  — Official Perl 6 Wiki
http://www.perlfoundation.org/parrot — Official Parrot Wiki
http://www.perlfoundation.org/perl5  — Official Perl 5 Wiki



Re: [svn:parrot] r25075 - in trunk/languages/perl6/src: builtins classes

2008-01-21 Thread jerry gay
On Jan 20, 2008 7:39 PM, Patrick R. Michaud <[EMAIL PROTECTED]> wrote:
> On Sun, Jan 20, 2008 at 04:36:37PM -0800, [EMAIL PROTECTED] wrote:
> > Modified: trunk/languages/perl6/src/builtins/list.pir
> > [...]
> > Modified: trunk/languages/perl6/src/classes/List.pir
>
> FWIW, I think that the both the method version and the global
> subroutine wrapper should be placed in classes/List.pir .
>
> As a general rule I'm hoping to reduce the number of entries
> in src/builtins/ as much as we can.
>
good idea. i've moved the sub wrappers in the class files for Hash,
List, Str, and Junction.
~jerry


[perl #49558] [PATCH] Note inter::progs ought to be smarter about finding linker

2008-01-21 Thread James Keenan via RT
I've taken this ticket simply so that it shows up on my list of
configuration-related things to do.  Anyone/everyone else is welcome to
look into these questions as well.


[perl #50066] [BUG] $LIBPARROT_STATIC macro not expanded properly when building pbc_to_exe

2008-01-21 Thread via RT
# New Ticket Created by  Paul Cochrane 
# Please include the string:  [perl #50066]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50066 >


Hullo,

when building parrot on Solaris I get most of the way through the
build, but right at the end, building pbc_to_exe fails with the
following output:

./parrot -o pbc_to_exe.pbc pbc_to_exe.pir
./parrot pbc_to_exe.pir pbc_to_exe.pbc
/opt/SUNWspro/bin/cc -Fopbc_to_exe.o -I/home/cochrane/parrot/include
-I/usr/local/include -I/opt/local/include -I/opt/gnu/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c pbc_to_exe.c
cc: Warning: option -F passed to ld
Compiled: pbc_to_exe.o
/opt/SUNWspro/bin/cc -o pbc_to_exe pbc_to_exe.o  -L/usr/lib
-L/usr/ccs/lib -L/export/lvd20/tool/solaris/opt/SUNWspro/prod/lib/v8plus
-L/export/lvd20/tool/solaris/opt/SUNWspro/prod/lib -L/lib
-L/usr/local/lib -L/opt/local/lib -L/opt/gnu/lib  -xlibmieee
$(LIBPARROT_STATIC)  -lsocket -lnsl -ldl -lm -lpthread -lrt
/home/cochrane/parrot/src/parrot_config.o
sh: syntax error at line 1: `(' unexpected
linking failed
current instr.: 'link_file' pc 752 (pbc_to_exe.pir:365)
called from Sub 'main' pc 124 (pbc_to_exe.pir:32)
*** Error code 1
make: Fatal error: Command failed for target `pbc_to_exe'

It seems that the Makefile macro $(LIBPARROT_STATIC) isn't being
expanded.  I had a bit of a look around and found the following lines
in config_lib.pasm (which is used for the configuration information
necessary to build pbc_to_exe):

set P0["libparrot"], "$(LIBPARROT_STATIC)"
set P0["libparrot_ldflags"], "$(LIBPARROT_STATIC)"

further digging showed that these values are set within
config/inter/libparrot.pm, and the code in there seems perfectly sane
(especially considering that the value would be later expanded by
make).  Unfortunately, from here I don't know where else to look to
solve the problem, however it is stopping me from building parrot on
the Solaris platform at present.

Paul


Re: Instance and Class disambiguation?

2008-01-21 Thread Ovid
--- Jonathan Lang <[EMAIL PROTECTED]> wrote:

> Ovid wrote:
> > If I call this:
> >
> >   if $class.^can('wibble') { ... }
> >
> > Does Perl 6 return false if that's only an instance method?  Will
> the
> > WALK iterator returned by .^can return references to instance
> methods?
> 
> As I understand it, Perl 6 generally doesn't bother with the
> class-vs-instance distinction.  Instead, it uses an "objects and
> prototypes" paradigm, much like the distinction between proper nouns
> and common nouns.

I'm not sure that helps.  From the docs:

  If you declare an ordinary method, it can function as a
  "class" method when you pass it a protoobject such as
  "Dog" regardless of how defined the prototype object is,
  as long as the method body doesn't try to access any
  information that is undefined in the current instance.

Which means, as far as I can tell, that 'can' can still return methods
which it's not legal for me to call.  I can add those methods to the
metaobject, but that seems like a hack to get around this problem.  Not
disambiguating between class and instance methods makes it seem like
can() cannot possible return correct methods in all cases.  As a
result, metaprogramming seems broken.

Cheers,
Ovid

--
Buy the book  - http://www.oreilly.com/catalog/perlhks/
Perl and CGI  - http://users.easystreet.com/ovid/cgi_course/
Personal blog - http://publius-ovidius.livejournal.com/
Tech blog - http://use.perl.org/~Ovid/journal/


[perl #50068] Configure doesn't detect backtrace* on ubuntu gutsy

2008-01-21 Thread via RT
# New Ticket Created by  Kevin Tew 
# Please include the string:  [perl #50068]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50068 >


Determining whether libc has the backtrace* functions (glibc only)...cc 
-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -pipe 
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-I./include -c test.c
test.c:7: error: conflicting types for ‘backtrace’
/usr/include/execinfo.h:28: error: previous declaration of ‘backtrace’ 
was here
test.c:8: error: conflicting types for ‘backtrace_symbols’
/usr/include/execinfo.h:34: error: previous declaration of 
‘backtrace_symbols’ was here
...no.



[perl #50064] [PATCH] call_list signature for mod_parrot

2008-01-21 Thread via RT
# New Ticket Created by  Jeff Horwitz 
# Please include the string:  [perl #50064]
# in the subject line of all future correspondence about this issue. 
# http://rt.perl.org/rt3/Ticket/Display.html?id=50064 >


This patch modifies a single NCI signature to support mod_parrot 0.4.Index: src/call_list.txt

===

--- src/call_list.txt   (revision 24887)

+++ src/call_list.txt   (working copy)

@@ -298,7 +298,7 @@

 v   p

 v   pit

 v   ptt

-v   tiiiptt

+v   Jtiiipt

 

 # PyBuiltins

 P  JOPP



[svn:parrot-pdd] r25108 - trunk/docs/pdds/draft

2008-01-21 Thread allison
Author: allison
Date: Mon Jan 21 11:09:07 2008
New Revision: 25108

Modified:
   trunk/docs/pdds/draft/pdd18_security.pod

Log:
[pdd] Adding a reference to the Security PDD.


Modified: trunk/docs/pdds/draft/pdd18_security.pod
==
--- trunk/docs/pdds/draft/pdd18_security.pod(original)
+++ trunk/docs/pdds/draft/pdd18_security.podMon Jan 21 11:09:07 2008
@@ -157,6 +157,8 @@
 
 "Exploring the Broken Web": http://talks.php.net/show/osdc07
 
+"Safe ERB": http://agilewebdevelopment.com/plugins/safe_erb
+
 =cut
 
 __END__


[svn:parrot-pdd] r25111 - trunk/docs/pdds/draft

2008-01-21 Thread allison
Author: allison
Date: Mon Jan 21 14:06:19 2008
New Revision: 25111

Modified:
   trunk/docs/pdds/draft/pdd19_pir.pod

Log:
[pdd] Applying pdd patch adding #line annotation, resolving RT#47141.


Modified: trunk/docs/pdds/draft/pdd19_pir.pod
==
--- trunk/docs/pdds/draft/pdd19_pir.pod (original)
+++ trunk/docs/pdds/draft/pdd19_pir.pod Mon Jan 21 14:06:19 2008
@@ -359,6 +359,20 @@
 which is more consistent, and not as confusing as #line, which looks as a 
comment.
 Also, the #line directive must be at the beginning of the line. See 
[RT#45857]. }}
 
+=item #line  
+
+Set the line number and filename to the value specified. This is useful in
+case the PIR code is generated from some source file, and any error messages
+should print the source file, not the line number and filename of the generated
+file.
+
+{{ PROPOSAL: Change this to:
+
+ .line  ',' 
+
+which is more consistent, and not as confusing as #line, which looks as a 
comment.
+Also, the #line directive must be at the beginning of the line. See 
[RT#45857]. }}
+
 =back
 
 =head3 Subroutine flags


[svn:parrot-pdd] r25113 - trunk/docs/pdds/draft

2008-01-21 Thread allison
Author: allison
Date: Mon Jan 21 14:39:35 2008
New Revision: 25113

Modified:
   trunk/docs/pdds/draft/pdd19_pir.pod

Log:
[pdd] Approve proposal for changing '#line' to '.line', RT#45857.


Modified: trunk/docs/pdds/draft/pdd19_pir.pod
==
--- trunk/docs/pdds/draft/pdd19_pir.pod (original)
+++ trunk/docs/pdds/draft/pdd19_pir.pod Mon Jan 21 14:39:35 2008
@@ -345,33 +345,15 @@
 
 End a compilation unit. Always paired with C<.sub>.
 
-=item #line  
-
-Set the line number and filename to the value specified. This is useful in
-case the PIR code is generated from some source file, and any error messages
-should print the source file's location, not the line number and filename of
-the generated file.
-
-{{ PROPOSAL: Change this to:
-
- .line  ',' 
-
-which is more consistent, and not as confusing as #line, which looks as a 
comment.
-Also, the #line directive must be at the beginning of the line. See 
[RT#45857]. }}
-
-=item #line  
+=item .line , 
 
 Set the line number and filename to the value specified. This is useful in
 case the PIR code is generated from some source file, and any error messages
 should print the source file, not the line number and filename of the generated
 file.
 
-{{ PROPOSAL: Change this to:
-
- .line  ',' 
-
-which is more consistent, and not as confusing as #line, which looks as a 
comment.
-Also, the #line directive must be at the beginning of the line. See 
[RT#45857]. }}
+{{ DEPRECATION NOTE: was C<<#line  >>. See [RT#45857],
+[RT#43269], and [RT#47141]. }}
 
 =back
 


[svn:parrot-pdd] r25116 - in trunk: compilers/pct/src/PCT docs/pdds runtime/parrot/library/Parrot

2008-01-21 Thread pmichaud
Author: pmichaud
Date: Mon Jan 21 18:32:45 2008
New Revision: 25116

Modified:
   trunk/docs/pdds/pdd26_ast.pod

Changes in other areas also in this revision:
Modified:
   trunk/compilers/pct/src/PCT/Node.pir
   trunk/runtime/parrot/library/Parrot/Capture_PIR.pir

Log:
[pct]:
* Add shift and pop operations to PAST::Nodes.
* Patch courtesy Stuart Jansen 


Modified: trunk/docs/pdds/pdd26_ast.pod
==
--- trunk/docs/pdds/pdd26_ast.pod   (original)
+++ trunk/docs/pdds/pdd26_ast.pod   Mon Jan 21 18:32:45 2008
@@ -61,10 +61,20 @@
 
 Add C to the end of the node's array of children.
 
+=item pop()
+
+Remove the last child from the node's array of children.
+Returns the child.
+
 =item unshift(child)
 
 Add C to the beginning of the node's array of children.
 
+=item shift()
+
+Remove the first child from the node's array of children.
+Returns the child.
+
 =item iterator( )
 
 Return a newly initialized C for the node's list


[perl #50074] [PATCH] [pct] Add pop() and shift() to PCT::Node

2008-01-21 Thread Patrick R. Michaud via RT
I split the patch into separate 'pct' and 'lolcode' commits, but
otherwise it's excellent.  Thanks for patching the docs as well.  :-)

Applied in r25116 and r25117.

Pm


Re: [perl #50064] [PATCH] call_list signature for mod_parrot

2008-01-21 Thread chromatic
On Monday 21 January 2008 07:38:10 Jeff Horwitz wrote:

> This patch modifies a single NCI signature to support mod_parrot 0.4.

Thanks, applied as r25518.

-- c


Re: [perl #50066] [BUG] $LIBPARROT_STATIC macro not expanded properly when building pbc_to_exe

2008-01-21 Thread chromatic
On Monday 21 January 2008 08:58:25 Paul Cochrane wrote:

> when building parrot on Solaris I get most of the way through the
> build, but right at the end, building pbc_to_exe fails with the
> following output:

> It seems that the Makefile macro $(LIBPARROT_STATIC) isn't being
> expanded.  I had a bit of a look around and found the following lines
> in config_lib.pasm (which is used for the configuration information
> necessary to build pbc_to_exe):
>
> set P0["libparrot"], "$(LIBPARROT_STATIC)"
> set P0["libparrot_ldflags"], "$(LIBPARROT_STATIC)"
>
> further digging showed that these values are set within
> config/inter/libparrot.pm, and the code in there seems perfectly sane
> (especially considering that the value would be later expanded by
> make).  Unfortunately, from here I don't know where else to look to
> solve the problem, however it is stopping me from building parrot on
> the Solaris platform at present.

Are you building Parrot as static or shared?  What happens if you switch to 
shared?

Is LIBPARROT_STATIC defined correctly in your Makefile?

-- c


Re: [perl #50056] [BUG] "Undefined symbols" on OS X

2008-01-21 Thread chromatic
On Monday 21 January 2008 01:09:29 Allison Randal wrote:

> In the past few weeks we've had an increasing number of "Undefined
> symbols" errors on OS X (Tiger). Previously it was only a handful of
> failing tests, but now it's preventing 'make' from completing,
> terminating with the following error:
>
> --
> c++ -o pbc_to_exe pbc_to_exe.o  -L/usr/local/lib -L/opt/local/lib
> -L/sw/lib -L/sw/lib -L/opt/local/lib -L/sw/lib
> -L/Users/allison/projects/svn/parrot/blib/lib -lparrot
> -L/Users/allison/projects/svn/parrot/blib/lib -lm -lgmp -lreadline
> /Users/allison/projects/svn/parrot/src/parrot_config.o
> /usr/bin/ld: Undefined symbols:
> _Parrot_set_executable_name
> collect2: ld returned 1 exit status
> linking failed
> current instr.: 'link_file' pc 752 (pbc_to_exe.pir:365)
> called from Sub 'main' pc 124 (pbc_to_exe.pir:32)
> make: *** [pbc_to_exe] Error 1
> --
>
> Looks like this particular failure was caused by r25020, but it's only a
> symptom of the wider problem.

Does this happen after a 'make realclean' and recompilation?

You in particular know that I have a special dislike for the state of building 
and linking C code on Mac OS X, being dangerously close to The Best That Unix 
Had To Offer Circa NeXT 1987...

... but apart from slapping PARROT_API on the symbol, what in the world do we 
need to do special to tell GCC 4.x on Mac OS X to:

1) hide symbols not explicitly exported
2) actually export symbols when we mark them as exportable

I mean, the main reason we hide symbols by default is so that we'll catch what  
would be compilation errors on Win32 on platforms with GCC 4.x, but if Mac OS 
X can't handle a bog-standard compilation option, well maybe we should work 
on getting them the source code to GCC or something.

-- c


Re: [perl #50050] [PATCH] [lolcode] Add exe files to make clean

2008-01-21 Thread chromatic
On Sunday 20 January 2008 22:17:10 Stuart Jansen wrote:

> As every good child knows, at the end of the day when we're dont playing
> with our toys, we should put things back the way they were.

Thanks, applied as RT #25119.

-- c


[perl #48260] [TODO] [C] Write function documentation

2008-01-21 Thread James Keenan via RT
On Thu Dec 06 08:21:00 2007, ptc wrote:
> There are MANY functions within the Parrot repository which as yet aren't
> documented.  

See attached for a list of undocumented functions as of r25117, Jan 21 2008.

kid51

./compilers/bcg/src/bcg.c:88:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:111:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:133:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:161:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:187:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:209:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:231:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:259:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:285:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:320:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:347:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:374:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:391:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:413:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:441:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:469:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:486:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg.c:503:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_emitter_pasm.c:33:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_logger.c:33:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:35:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:61:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:80:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:104:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:129:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:159:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_op.c:195:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_reg_alloc_vanilla.c:34:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_reg_alloc_vanilla.c:73:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_unit.c:36:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_unit.c:59:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_unit.c:88:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_unit.c:115:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_unit.c:133:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_utils.c:33:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_utils.c:53:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_utils.c:70:RT#48260: Not yet documented!!!
./compilers/bcg/src/bcg_utils.c:87:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:162:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:197:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:301:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:512:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:537:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:579:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:634:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:657:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:681:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:702:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:767:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:882:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1135:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1160:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1185:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1418:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1443:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1472:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1495:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1522:RT#48260: Not yet documented!!!
./compilers/imcc/cfg.c:1567:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:34:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:57:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:80:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:103:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:129:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:152:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:176:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:199:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:239:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:274:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:314:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:347:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:392:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:419:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:468:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:507:RT#48260: Not yet documented!!!
./compilers/imcc/debug.c:540:RT#48260: Not yet documented!!!
./compilers/imcc/imc.c:54:RT#482

Re: [perl #48260][PATCH] - compilers/imcc/main.c]

2008-01-21 Thread chromatic
On Sunday 20 January 2008 16:16:10 [EMAIL PROTECTED] wrote:

> I think I've now connected brain to fingers and patch to message.

Thanks, applied as r25120.

-- c


Re: [perl #49836] [BUG] segfault in ascii_compare

2008-01-21 Thread chromatic
On Sunday 20 January 2008 21:31:08 Will Coleda via RT wrote:

> Spent some more time trying to track this down. On OSX/86, I was able to
> reproduce the segfault with much less tcl code:
>
> %cat foo.tcl
> after 10
> %./tclsh foo.tcl
>
> if I ran:
>
> %../../parrot -G tcl.pbc foo.tcl
>
> The segfault goes away, which smells like a GC issue.
>
> However, I can't duplicate it with --runcode=gcdebug on feather.perl6.nl;
> Any suggestions on a plan of attack?

What does a binary search of checkins suggest?  It might not help 
tremendously, but it might give us some idea of what goes kablooie.

Otherwise, how do you feel about putting on my Hat of Memory Checking and 
slogging through my GC debugging guidelines?

-- c


Re: New wiki page: RFP Parrot needs better smoke reports

2008-01-21 Thread James E Keenan
I have added more content to this wiki page concerning what's wrong with 
our current smoke test reporting and some things I'd like to see in an 
improved version.  Allison added some links to older RT tickets re smoke 
testing, which led me to merge one of those tickets into one I started 
in the last month.


Please read and comment.   Thank you very much.

kid51


[perl #47998] r23293: Make smoke "invalid format" failure

2008-01-21 Thread James Keenan via RT
On Mon Dec 03 16:36:40 2007, [EMAIL PROTECTED] wrote:
> Yes, up upgrading svn does it.  

> Unless somebody wants to add a patch to check for 
> svn versions, you can close this one as of my account.
> 

I do *not* want to add a patch to check for svn versions. 
lib/Parrot/Revision.pm is already enough of a mindf*!#$k and I do not
want it to get any more complex and unmaintainable than it already is. 
Plus, if we opened the door to checking for svn versions, eventually
we'd be checking for svk versions and git versions as well.  And then
only an expert in all 3 VCSes would be qualified to maintain
Parrot::Revision.

So I'm going to close this ticket.  Since 'make smoke' is something that
is likely to be done only by a small but relatively sophisticated group
of hackers, I think we'll be able to include a recommendation to them to
upgrade to Subversion 1.44 (?) before smoke testing and be confident
that they'll get it right.

kid51



[perl #48260] [TODO] [C] Write function documentation

2008-01-21 Thread James Keenan via RT
Applied in r25122.

Based on the work I've been doing on Parrot::Revision over the last
week, I added a bit more to the documentation on Parrot_version().

kid51



Re: [perl #50056] [BUG] "Undefined symbols" on OS X

2008-01-21 Thread Allison Randal

chromatic via RT wrote:


Does this happen after a 'make realclean' and recompilation?


In fact, it only happened when I ran 'make realclean' and recompiled. 
I'd been happily running 'make' with no problems. I was surprised to see 
the error pop up on the pdd17pmc branch after I merged, so went back to 
trunk and ran 'make realclean', and there it was.


You in particular know that I have a special dislike for the state of building 
and linking C code on Mac OS X, being dangerously close to The Best That Unix 
Had To Offer Circa NeXT 1987...


.. but apart from slapping PARROT_API on the symbol, what in the world do we 
need to do special to tell GCC 4.x on Mac OS X to:


1) hide symbols not explicitly exported
2) actually export symbols when we mark them as exportable

I mean, the main reason we hide symbols by default is so that we'll catch what  
would be compilation errors on Win32 on platforms with GCC 4.x, but if Mac OS 
X can't handle a bog-standard compilation option, well maybe we should work 
on getting them the source code to GCC or something.


Maybe I should try compiling on LLVM. ;)

Allison


[perl #50090] [TODO] pge - throw useful exception on non-quoted non-word characters

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


When PGE::Perl6Regex encounters a bare non-word character in a 
Perl 6 regex (that probably ought to be quoted), it should throw 
a useful exception message.

Pm


[perl #50052] [PATCH] [lolcode] YARN parsing with basic escapes

2008-01-21 Thread Will Coleda via RT
Thanks, applied (with one minor MANIFEST tweak) in r25125.