[perl #113394] Returning from an exhausted routine causes segmentation fault

2012-05-27 Thread via RT
# New Ticket Created by  Moritz Lenz 
# Please include the string:  [perl #113394]
# in the subject line of all future correspondence about this issue. 
# URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113394 


09:47  moritz p6: sub f { gather loop { take 1; return } }; say f
09:47 +p6eval rakudo e75663: OUTPUT«(signal SEGV)»

I expected an error along the lines of Cannot return from exhausted
routine (because by the time the return() is run, the function already
has returned a lazy list.


[perl6/specs] 8c3efe: [S04] small nit

2012-05-27 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/perl6/specs
  Commit: 8c3efe4bf60065452c453cae3e7d4187e750d1be
  
https://github.com/perl6/specs/commit/8c3efe4bf60065452c453cae3e7d4187e750d1be
  Author: Moritz Lenz mor...@faui2k3.org
  Date:   2012-05-27 (Sun, 27 May 2012)

  Changed paths:
M S04-control.pod

  Log Message:
  ---
  [S04] small nit

let and temp are prefix operators, not ordinary functions





[perl #113398] [BUG] LTA internal error message when repeating a quantifier as in 'a+ +' in Rakudo

2012-05-27 Thread Carl Mäsak
# New Ticket Created by  Carl Mäsak 
# Please include the string:  [perl #113398]
# in the subject line of all future correspondence about this issue. 
# URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113398 


colomon r: / a+ + /
p6eval rakudo 300327: OUTPUT«===SORRY!===␤Method 'rxtype' not found
for invocant of class 'Integer'␤»
colomon std: / a+ + /
p6eval std 8632387: OUTPUT«===SORRY!===␤Quantifier quantifies
nothing at /tmp/pMpmohyp_Z line 1:␤-- / a+ +⏏ /␤Check
failed␤FAILED 00:00 41m␤»
jnthn STD's output is the one I expected.
* masak submits rakudobug


[perl6/specs] 084e81: [S32-setting-library/Exception.pod] remove stray '...

2012-05-27 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/perl6/specs
  Commit: 084e814a25628854458e38f17192bc178d448dd0
  
https://github.com/perl6/specs/commit/084e814a25628854458e38f17192bc178d448dd0
  Author: Siddhant Saraf siddhantsa...@gmail.com
  Date:   2012-05-27 (Sun, 27 May 2012)

  Changed paths:
M S32-setting-library/Exception.pod

  Log Message:
  ---
  [S32-setting-library/Exception.pod] remove stray '=head2'





[perl6/specs] 71cb5d: [S05] document ** backcompat mode for colomon and ...

2012-05-27 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/perl6/specs
  Commit: 71cb5d2b6682a697cbf65371685e62d733e67238
  
https://github.com/perl6/specs/commit/71cb5d2b6682a697cbf65371685e62d733e67238
  Author: Stefan O'Rear stefa...@cox.net
  Date:   2012-05-27 (Sun, 27 May 2012)

  Changed paths:
M S05-regex.pod

  Log Message:
  ---
  [S05] document ** backcompat mode for colomon and masak





On fashion, in Re: The trouble with awesome

2012-05-27 Thread Richard Hainsworth

On 05/23/2012 03:35 AM, Parrot Raiser wrote:

Perl 6 is awesome.

agreed

snip

In short, Perl 6 is awesome: Extremely impressive or daunting, inspiring awe.
http://oxforddictionaries.com/definition/awesome?view=uk
That is a problem, if we want to get it adopted widely and quickly.

Not convinced 'getting it adopted' should be a goal in itself.

A major goal is to ensure perl6 implementations can be utilized in every 
relevant environment. We have unix and windows, but I'm not sure we have 
android or iOS. And other important environments include browsers 
(scripts embedded in html).


The popularity of a language amongst programmers seems to be a function 
of fashion and ease of doing something that is fashionable. So perl 
became THE language for the internet at one time because it linked in so 
easily to the scripting url syntax. php became popular due to the ease 
of mixing html code with scripting language, and so on.


Personally, I would like to be able to write perl6 scripts (even if only 
a subset of perl6 was available) that can be embedded in html files. 
Since perl6 is just so much more elegant than javascript, it would 
attract a lot of programmers.


Fashion is not everything of course. perl was well designed, so even 
though the internet fashion for perl declined, to be replaced by other 
languages, programmers continue to use it for other reasons. For the 
same reason, once perl6 infects the programmer population, it will be 
used more widely because it is well designed.


At some point, I think, there will be a fashionable problem area which 
will be most easily solved using perl6 - eg., the grammar aspect is just 
so different from anything else I have seen that I am sure it will find 
a use.


In short, the gap between the status of perl6 as an interesting 
phenomenon for computer language scientists and the status of perl6 as a 
widespread standard for programming will be bridged - I suggest - by the 
appearance of a killer problem domain, a type of problem that is faced 
by many programmers and which is more easily handled in perl6 than in 
any other language.


It would also help for perl6 activists to demonstrate just how well 
perl6 works in that domain, and that will require tutorials, articles, 
etc. So educational texts are important, but secondary to the problem 
domain.


snip

The problem we have is to provide a path for learning 6, that presents a
comprehensible but useful subset of the language to the average user
as soon as possible, while leading the programmer with more complex needs,
(and greater abilities), to the features they need or will appreciate.
Crucial to this post is the set of assumptions around 'average user', 
assumptions that appear to me to be US-centric. The population of 
programmers resident outside the USA will soon exceed (if it has not 
already exceeded) the number within the USA. perl6 has been designed to 
be agnostic to human readable languages and scripts, and that might have 
an effect too if it is easier in perl6 to deal with non-English texts.


[perl #113404] [BUG] -32768 * -65536 yields a negative number (one some setups) in Rakudo

2012-05-27 Thread Carl Mäsak
# New Ticket Created by  Carl Mäsak 
# Please include the string:  [perl #113404]
# in the subject line of all future correspondence about this issue. 
# URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113404 


sisar i get 28 failures in t/spec/S03-operators/overflow.t
sisar ^rakudo
sisar (fresh build)
moritz sisar: did you get them before too?
sisar moritz: yes.
moritz sisar: and are you on a 32bit machine?
sisar moritz: yes
sisar hmm, i did report it earlier but got no response, but it
doesn't matter now
(http://irclog.perlgeek.de/perl6/2012-05-18#i_5609766 )
moritz sisar: I think [Coke]++ has reported similar behavior
moritz I just have trouble reacting to stuff I can't reproduce, even
when I know why
sisar Woodi++ reported it on OpenBSD, though don't know if it was
32-bit or 64-bit:
http://irclog.perlgeek.de/perl6/2012-05-15#i_5596082
 sisar r: say -32768 * -65536 ;
p6eval rakudo 6555ab: OUTPUT«-2147483648␤»
sisar moritz: ^ one of the bugs
moritz r: say (-32768) * (-65536)
sisar feather is 32-bit ?
p6eval rakudo 6555ab: OUTPUT«2147483648␤»
moritz no
moritz hm
moritz not sure actually
jnthn What about with --optimize=0, ooc?
moritz the problem is probably that the (int, int) version of
infix:* is used
moritz and that can overflow
* masak submits -32768 * -65536 rakudobug
masak sisar++


[perl #74326] [BUG] LTA error message when passing the invocant parameter as a named argument in Rakudo

2012-05-27 Thread Will Coleda via RT
On Tue Apr 13 03:05:56 2010, masak wrote:
 masak rakudo: class A { method foo($bar:) { say $bar.WHAT } };
 A.new.foo( :bar(42) )
 p6eval rakudo b9aaa3: OUTPUT�Too many positional parameters passed;
 got 1 but expected 1 [...]
 * masak submits LTA rakudobug
 
 It's questionable whether an invocant can be specified both by the
 dot-call form and by passing a named parameter. In any rate, the
 nonsensical error can be improved; we're not passing *any* positional
 parameters, and if Rakudo got 1 but expected 1 it should not throw an
 error.

This now outputs:

 class A { method foo($bar:) { say $bar.WHAT } }; A.new.foo( :bar(42) )
A()


-- 
Will Coke Coleda


[perl #66152] Rakudo consumes excessive resources for a simple loop

2012-05-27 Thread Will Coleda via RT
On Sat May 30 10:58:04 2009, a...@ali.as wrote:
 As requested by chromatic
 
 http://use.perl.org/~korpenkraxar/journal/39051

This url is now a 404. Anyone have the original text?

-- 
Will Coke Coleda


[perl #77426] [BUG] Possible duplication bug in the backtrace printer in Rakudo

2012-05-27 Thread Will Coleda via RT
On Tue Aug 24 17:03:23 2010, masak wrote:
 jnthn rakudo: my @a = 1,2,3,4; say @a[1..*-1]
 p6eval rakudo 82c9e9: OUTPUT«Method 'Num' not found for invocant of
 class WhateverCode'␤  in 'Cool::Numeric' at line 1745:CORE.setting␤
 in 'Cool::Numeric' at line 1746:CORE.setting [...]
 jnthn ew er
 jnthn Why on earth does Cool::Numeric show up twice in the backtrace?
 masak multi delegation?
 jnthn Doesn't look very delegatory to me.
 masak then I have no idea why.
 masak backtrace printer bug?
 jnthn yeah, that's what I'm fearing
 jnthn Feel free to file it, I can take a look when I'm back.
 * masak submits suspected backtrace printer bug RT ticket

  my @a = 1,2,3,4; say @a[1..*-1]
2 3 4

No backtrace at all anymore. Closable?


-- 
Will Coke Coleda


[perl #77644] memory leak on eval

2012-05-27 Thread Will Coleda via RT
On Thu Sep 02 08:37:25 2010, pmichaud wrote:
 On Thu, Sep 02, 2010 at 11:20:52AM -0400, Will Coleda wrote:
   Currently each eval() execution results in compiling and
   loading at least two additional Parrot subs into memory
   that represent the eval'ed code. �As far as I can tell,
   once loaded there's currently no way for a Parrot Sub PMC
   to become unloaded or GC'ed -- it stays in memory until
   the process ends. �So, it's not too surprising the above leaks.
  
   We probably need to file a Parrot ticket to get Parrot to
   support garbage collection of Sub PMCs when they're no
   longer used.
  
  I wonder if this related to http://trac.parrot.org/parrot/ticket/783
 
 Indeed it is, the script in that ticket is quite similar to the
 one I used to verify that anonymous subs don't get gc'd. 
 Great catch, we can keep an eye on TT #783 for this one.
 
 Pm
 

This trac ticket was closed 7 months ago:

This issue is going to be fixed with GC-able packfiles, which are high up on 
our TODO list of 
development priorities. Since this is basically just a TODO item, I'm going to 
close this ticket. 
There's no chance that we just forget about the underlying need.


-- 
Will Coke Coleda


[perl #78200] [BUG] LTA error message when using attributes on type objects

2012-05-27 Thread Will Coleda via RT
On Mon Oct 04 04:15:25 2010, masak wrote:
 From the backlog:
 
 hudnix well I just spent a miserable two hours figuring out that the
 error message Type objects are abstract and have no attributes, but
 you tried to access @!foo in fact had nothing to do with the
 attribute @!foo or anything else in my class, but was really
 complaining that I had declared my object with my $obj; instead of
 my $obj .= new
 
 Would it be possible to have the error message be something like
 Tried to use type object $obj as an instance object? Especially
 having the name of the variable with the object being improperly
 accessed seems like it would be a big help in a situation such as the
 above.


Can we get some sample code that demonstrates this problem?

-- 
Will Coke Coleda


[perl #78258] [BUG] %*ENV doesn't work from within a use'd module in Rakudo

2012-05-27 Thread Will Coleda via RT
On Wed Oct 06 16:01:03 2010, masak wrote:
 mberends++ reports the following bug:
 
 $ cat testenv.pm6
 
 print 'Test existence of %*ENVPERL6LIB: ';
 print %*ENV.exists('PERL6LIB');
 say  OK, still alive;
 
 $ rakudo testenv.pm6
 
 Test existence of %*ENVPERL6LIB: Bool::True OK, still alive
 
 $ rakudo -e 'use testenv'
 
 Test existence of %*ENVPERL6LIB: Method 'exists' not found for
 invocant of class 'Failure'
   in main program body at line 2:testlib.pm6
 
 ...
 
 In other words, %*ENV doesn't exist early enough for it to work within
 a use'd module.

This works now:

$ PERL6LIB=masak ./perl6 testenv.pm6 
Test existence of %*ENVPERL6LIB: True OK, still alive
$ PERL6LIB=masak ./perl6 -I. -e  use testenv
Test existence of %*ENVPERL6LIB: True OK, still alive

Closable with tests.


-- 
Will Coke Coleda


[perl #75958] [BUG] The REPL itself can die if something dies during autoprinting in Rakudo

2012-05-27 Thread Will Coleda via RT
None of these kill the REPL now:

 ...
Stub code executed
 class B { method f { ... } }; B.new.f
Stub code executed
 class A { method Str { die OH HAI } }; A.new
A.new()
 'x'.HOW
multi_dispatch_over_lexical_candidates was unable to find a candidate list


Closable with tests.
-- 
Will Coke Coleda


[perl #78876] [BUG] Null PMC access when defining a sub trait_auxiliary:a in Rakudo

2012-05-27 Thread Will Coleda via RT
On Sat Nov 06 12:25:05 2010, masak wrote:
 tadzik rakudo: role something {}; multi
 trait_auxiliary:is(something $trait, $block, $arg) { .WHAT.say for
 $trait, $block, $arg} # what's wrong?
 p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Null PMC access in
 get_string()␤»
 * masak submits rakudobug
 tadzik right :)
 masak rakudo: sub trait_auxiliary:a() {}
 p6eval rakudo 142d22: OUTPUT«===SORRY!===␤Null PMC access in
 get_string()␤»
 masak that's what's wrong.
 jnthn huh :S
 jnthn You wanted trait_mod anyway, if you're trying to write a
 trait, though. But yes, something's wrong there.
 masak something that seems to have evaded the spectests.

Output has changed:

 role something {}; multi trait_auxiliary:is(something $trait, $block, $arg) 
 { .WHAT.say for 
$trait, $block, $arg} # what's wrong?
Cannot add tokens of category 'trait_auxiliary'

Is this sufficient?

-- 
Will Coke Coleda


[perl #79160] [TODO] Rakudo doesn't support the syntax 'my Type subset NewType' (but STD.pm6)

2012-05-27 Thread Will Coleda via RT
On Sat Nov 13 08:27:52 2010, masak wrote:
 masak std: my Str subset Username;
 p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
 masak rakudo: my Str subset Username;
 p6eval rakudo 2c66f9: OUTPUT«===SORRY!===␤Unknown declarator type at
 line 22, near ;␤»
 tadzik . o O (masak submits rakudobug)
 * masak submits rakudobug

 my Str subset Username;
Username()

Closable with tests.

-- 
Will Coke Coleda


[perl #77458] [BUG] $*VM.perl and %*ENV.perl don't work in Rakudo

2012-05-27 Thread Will Coleda via RT
On Sat Nov 20 12:27:54 2010, cosimo wrote:
 On Gio. 26 Ago. 2010 13:31:26, masak wrote:
  masak rakudo: say $*VM.perl
  p6eval rakudo df38ac: OUTPUT�Cannot substr on a null string [...]
  * masak submits rakudobug
  moritz_ rakudo: %*ENV.perl
  p6eval rakudo df38ac: OUTPUT�Method 'key' not found for invocant of
  class 'String' [...]
 
 Bug still valid.
 
 Method 'key' not found for invocant of class 'String'
   in anon at line 5038:CORE.setting
   in 'Any::join' at line 1
   in 'EnumMap::perl' at line 5044:CORE.setting
   in main program body at line 1
 
 This is Rakudo Perl 6, version 2010.10-48-gf73bf4d built on parrot 
 2.9.1 RELEASE_2_9_1-261-g495feaf
 
 Copyright 2008-2010, The Perl Foundation
 

These now both output .perl-ish values.

Closable with tests.


-- 
Will Coke Coleda


[perl #65654] Texas quotes do The Wrong Thing when interpolating vars with strings with spaces in them in Rakudo

2012-05-27 Thread Will Coleda via RT
On Sun Jan 30 22:14:47 2011, coke wrote:
 On Thu May 14 07:48:19 2009, masak wrote:
  pmichaud rakudo:  my $foo = 'hello world';   say «$foo».elems
  p6eval rakudo 705cb2: OUTPUT«1␤»
  pmichaud oops.
  pmichaud oh well :-)
  moritz_ it's not yet christmas ;-)
  * masak submits rakudobug
  
  Expected value from the evaluation: 2, because hello and world
  should end up as different elements.
 
 Misbehavior has changed:
 
 01:11 [Coke] rakudo: my $foo = 'hello world'; say «$foo».elems
 01:11 p6eval rakudo 549d2a: OUTPUT«===SORRY!===␤Can't form :w list from 
non-constant strings (yet) at line 22, near .elems␤»

Behavior's the same, but the error changed:

 my $foo = 'hello world'; say «$foo».elems
:w list value must be known at compile time


-- 
Will Coke Coleda


[perl #69178] [BUG] Null PMC access when definedness of placeholder parameter is evaluated inside 'repeat while' block in Rakudo

2012-05-27 Thread Will Coleda via RT
On Wed Sep 16 14:51:47 2009, masak wrote:
 masak I smell a Null PMC access in the Force...
 masak rakudo: repeat while True {}
 p6eval rakudo 446d49:  ( no output )
 masak rakudo: my $a = 1; repeat while $a 10 { $^a.defined.say; }
 p6eval rakudo 446d49: OUTPUT�Null PMC access in find_method()
 * masak submits rakudobug
 
 Minimizing this a bit further, the program 'repeat while True {
 $^a.defined }' seems to do the trick

This now loops infinitely, generating a lot of output.

Closable with tests.

-- 
Will Coke Coleda


[perl #86880] [BUG] Null PMC access when instantiating a class doing a role with a private 'my'-scoped attribute in Rakudo

2012-05-27 Thread Will Coleda via RT
On Wed Mar 23 15:17:03 2011, masak wrote:
 colomon rakudo: role Breakable { my $!broken = Bool::False; }; class
 Frobnitz does Breakable {}; say Frobnitz.new()
 p6eval rakudo d5ccf9: OUTPUT«===SORRY!===␤Null PMC access in
 get_attr_str()␤»
 * masak submits rakudobug
 colomon masak++
 masak rakudo: class Frobnitz {}; say Frobnitz.new().broken
 p6eval rakudo d5ccf9: OUTPUT«Method 'broken' not found for invocant
 of class 'Frobnitz' [...]

Behavior changed:

 role Breakable { my $!broken = Bool::False; }; class Frobnitz does Breakable 
 {}; say 
Frobnitz.new()
Cannot use ! twigil on my variable


-- 
Will Coke Coleda


[perl #87076] [BUG] Null PMC access when calling built-in token as a method in Rakudo

2012-05-27 Thread Will Coleda via RT
On Sat Mar 26 10:48:03 2011, masak wrote:
 masak rakudo: say Perl6::Grammar.identifier
 p6eval rakudo 792e86: OUTPUT�Null PMC access in get_integer() [...]
 * masak submits rakudobug

Is this better?

 Perl6::Grammar.identifier
Could not find symbol 'Perl6::Grammar'

-- 
Will Coke Coleda


[perl #88708] [BUG] Rakudo wrongly allows $x..$y..$z

2012-05-27 Thread Will Coleda via RT
On Sat Apr 16 08:33:34 2011, masak wrote:
 masak std: 1..2..3
 p6eval std 4608239: OUTPUT«===SORRY!===␤.. and
 .. are non-associative and require parens  [...] FAILED 00:01 120m␤»
 masak oh, good.
 masak rakudo: say (1..2..3).perl
 p6eval rakudo 5ac05e: OUTPUT«2..3␤»
 * masak submits rakudobug
 masak rakudo: say (7..8..9).perl
 p6eval rakudo 5ac05e: OUTPUT«2..9␤»

Changed:

 say (1..2..3).perl
1..2..3
 say (7..8..9).perl
7..8..9

-- 
Will Coke Coleda


[perl #95514] [BUG] Bogus error message about not enough positional parameter when role method calls another after a role method delegation in Rakudo

2012-05-27 Thread Will Coleda via RT
On Sun Jul 24 07:11:16 2011, masak wrote:
 masak rakudo: role R { method foo { self.bar(42) }; method bar($x) {
 say OH HAI } }; class C does R { method foo { self.R::foo } };
 C.new.foo
 p6eval rakudo 922500: OUTPUT«OH HAI␤»
 masak rakudo: role R { method bar($x) {}; method foo { self.bar(42)
 } }; class C does R { method foo { self.R::foo } }; C.new.foo
 p6eval rakudo 922500: OUTPUT«Not enough positional parameters
 passed; got 1 but expected 2␤ in 'bar' at line 22:/tmp/N060_2D3In␤  in
 'C::foo' at line 22:/tmp/N060_2D3In␤  in main program body at line
 22:/tmp/N060_2D3In␤»
 * masak submits rakudobug
 masak only the order of the method declarations in the role differs.
 masak rakudo: role R { method bar($x) { say OH HAI }; method foo {
 self.bar(42) } }; R.new.foo
 p6eval rakudo 922500: OUTPUT«OH HAI␤»
 masak and it seems that, somehow, the role method delegation is
 necessary to trigger it.

The second variant no longer errors. If you put a say $x in the bar method, 
it's printed out.

Closable?

-- 
Will Coke Coleda


[perl #72830] [BUG] Parse difficulties with '::%%r' in Rakudo

2012-05-27 Thread Will Coleda via RT
On Tue Sep 13 06:16:21 2011, bbkr wrote:
 NOM: still broken
 
 bbkr:nom bbkr$ ./perl6 -e 'my %r = 4; say ::%%r'
 ===SORRY!===
 Cannot look up empty name

Changed again:
 my %r = 4; say ::%%r
CHECK FAILED:
Undefined routine 'r' called (line 1)


-- 
Will Coke Coleda


[perl #99658] sequence operator '...' timeout

2012-05-27 Thread Will Coleda via RT
On Tue Sep 20 23:03:06 2011, woosley.xu wrote:
 (13:50:48) woosley: rakudo: my @a = 1,3,5 ... *; say @a[^4]
 (13:50:49) p6eval: rakudo f1c805: OUTPUT«1 3 5 7␤»
 
 (13:46:40) woosley: perl6: my @odd = 1,3,5 ... 8; say @odd[^4]
 (13:47:05) p6eval: rakudo f1c805, niecza v9-32-g380d891: OUTPUT«(timeout)»
 
 according to S03, '1,3,5 ... 8' should act as '1,3,5 ... *'
 

S03 now says the opposite:

--
Likewise, this is all of the even numbers:

my $end = 7;
0,2,4 ... $end
--

Rejecting ticket.

-- 
Will Coke Coleda


[perl #99658] sequence operator '...' timeout

2012-05-27 Thread Will Coleda via RT
On Sun May 27 21:13:06 2012, coke wrote:
 On Tue Sep 20 23:03:06 2011, woosley.xu wrote:
  (13:50:48) woosley: rakudo: my @a = 1,3,5 ... *; say @a[^4]
  (13:50:49) p6eval: rakudo f1c805: OUTPUT«1 3 5 7␤»
  
  (13:46:40) woosley: perl6: my @odd = 1,3,5 ... 8; say @odd[^4]
  (13:47:05) p6eval: rakudo f1c805, niecza v9-32-g380d891: OUTPUT«(timeout)»
  
  according to S03, '1,3,5 ... 8' should act as '1,3,5 ... *'
  
 
 S03 now says the opposite:
 
 --
 Likewise, this is all of the even numbers:
 
 my $end = 7;
 0,2,4 ... $end
 --
 
 Rejecting ticket.

Whops. This isn't the opposite of what you said, ti's the same thing.

Reopening ticket.

(note to self, don't wrangle tickets at this hour.)

-- 
Will Coke Coleda