»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:00 ruoso joined 00:04 Limbic_Region joined 00:08 am0c joined 00:09 PZt joined 00:13 risou_ left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....kup_tablet 00:20
00:20 impious left 00:25 masak left
lichtkind masak: <<>> no longer interpolates var or just rakudobug? 00:26
masak sorry found it 00:28
its rakudobug
jnthn: is it known?
00:33 puddingpimp left 00:39 smash left 00:50 puddingpimp joined 00:55 justatheory left, masak joined
masak lichtkind: could you use p6eval's 'rakudo:' target to show what you consider to be a bug, please? 00:56
lichtkind yes
00:56 Guest58567 left
lichtkind rakudo: my $b =1; my %h = 1..6; say %h<<$b>>; 00:57
p6eval rakudo : OUTPUT«Any()␤»
lichtkind should be 2
00:57 whiteknight joined
masak indeed. 00:57
not sure that's ever worked. 00:58
alpha: my $b = 1; my %h = 1..6; say %h<<$b>>;
p6eval alpha : OUTPUT«(timeout)»
lichtkind me either just checking here before writing it down into the tablets
masak do the tablets only contain working Rakudo features?
lichtkind no
but i try to nail it down 00:59
masak that's good.
00:59 bluescreen joined
masak kudos. lichtkind++ 00:59
lichtkind to get more juice out of it then synopses
00:59 bluescreen is now known as Guest94843
masak yes, they synopses are a bit dry sometimes. 00:59
they're meant to be. 01:00
lichtkind of course, but my focus are more perl 6 starters
that know some perl 5
or ar least have some fundamental understanding of computer languages 01:01
masak *nod*
lichtkind curretnly opened a new tablets with basics all the literals quoting comments
it getting recently into some decent shape even only 35% content is there 01:02
01:03 sftp left
lichtkind thats curretnly the main advantage over syntopses: you could go just to index and search a thing by name and jump into spot where it is explained 01:03
enough PR 01:04
masak :)
01:06 QinGW joined 01:13 masak left
colomon rakudo: my $b =1; my %h = 1..6; say %h{$b}; 01:13
p6eval rakudo : OUTPUT«2␤»
01:17 buubot joined
lichtkind colomon: yes but 01:17
rakudo: my $b = 2; say <<$b>>; 01:18
p6eval rakudo : OUTPUT«$b␤»
lichtkind thats should be definetivly 2
colomon you're looking for variable interpolation inside << >> ?
lichtkind yes
colomon Is it just a fancy double quote?
rakudo: my $b =1; my %h = 1..6; say qq<$b>; 01:19
p6eval rakudo : OUTPUT«1␤»
flussence <<>> is the same as p5 qw(), isn't it?
colomon rakudo: my $b =1; my %h = 1..6; say qq<<$b>>;
p6eval rakudo : OUTPUT«1␤»
colomon hmmm
lichtkind colomon: its bit more than the since qq doesnt work like qw// 01:20
<<>> is like qw with the abilities of qq
colomon I have to admit I'm not sure what qw does. 01:21
lichtkind colomon: almost like in P5 @words = qw/ a beautiful butterfly went over the fence/; 01:51
colomon quote words! right.
lichtkind colomon: just check the section in tablet 2 thats written in few minutes :)
colomon so << >> constructs a list of words, but with interpolation?
lichtkind bingo
colomon is the splitting into words before or after interpolation? 01:53
"The implicit split is done after interpolation"
rakudo: my $b =1; my %h = 1..6; say qq<<3>>; 01:54
p6eval rakudo : OUTPUT«3␤»
colomon rakudo: my $b =1; my %h = 1..6; say %h<<3>>;
p6eval rakudo : OUTPUT«4␤»
colomon hmmm... LHF?
lichtkind no thats correct list in hash context 3 => 4 01:55
colomon I mean <<$b>> might be LHF. 01:56
Obviously the basic structure is in the grammar, now it just needs to do the right thing.
01:57 envi joined 02:02 mikehh left 02:04 tylercurtis left 02:12 Guest87704 left, shi left 02:15 Entonian joined 02:17 Entonian left 02:20 whiteknight left 02:33 jferrero left 02:38 s1n joined, s1n left
lichtkind good night 03:00
03:00 lichtkind left 03:01 wamba left 03:14 glow left 03:15 justatheory joined
colomon can't figure out where << >> is handled in Grammar.pm 03:31
03:34 kanishka joined
colomon ah, found circumfix:sym<« »> 03:34
still no idea how the texas equivalent works. 03:35
lue ohai world o/ 03:37
rakudo: my @a = 1, 2, 4 ... *; say @a[3]; 03:39
p6eval rakudo : OUTPUT«(timeout)»
03:41 LaVolta joined
colomon rakudo: my @a := 1, 2, 4 ... *; say @a[3]; 03:49
p6eval rakudo : OUTPUT«8␤»
colomon well, I found the grammar for « », but now I can't find the action for it. :\
lue rakudo: say (2/1) ~~ Int; # bug? 03:51
p6eval rakudo : OUTPUT«0␤»
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet 03:52
lue rakudo: my $a = 2/1; say $a ~~ Int; 03:54
p6eval rakudo : OUTPUT«0␤»
TimToady notabug 03:57
rakudo: say (2/1) ~~ Rat
p6eval rakudo : OUTPUT«1␤»
TimToady "Once a rat, always a rat." :)
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet
03:58 wooden left
colomon right, 2 / 1 is a Rat. 03:58
03:59 lichtkind joined 04:00 _twitch joined
lue Although, the fact that 2/1 !~~ Int when 2/1 = 1 makes no sense to me. (I know it isn't a Int, but the result of the division is.) 04:00
TimToady no, 2 div 1 is an int 04:02
rakudo: say (2 div 1) ~~ Int
p6eval rakudo : OUTPUT«1␤»
lue
.oO(The subtle nuances of Perl 6)
04:03
lichtkind TimToady: are you okay with the general order www.perlfoundation.org/perl6/index...._6_tablets ?
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet
04:06 wooden joined
lichtkind allright maybe later .. cheers 04:08
04:08 lichtkind left 04:16 kanishka left 04:17 quietfanatic joined
sorear good * #perl6 04:23
04:23 Limbic_Region left 04:38 nymacro joined
sorear TimToady: ping 04:55
05:13 justatheory left 05:19 orafu left 05:29 glow joined
dalek ecza: 1443dcb | sorear++ | lib/NieczaCLR.cs:
Several more steps towards CLR interop
05:31
ecza: 90660e5 | sorear++ | src/Metamodel.pm:
Include class name in sub debug names
ecza: 08f0979 | sorear++ | lib/ (2 files):
[clr] Start on an argument mapper
05:37 xinming left
am0c rakudo: ( [ 1 .. 10 ] 􏿽xBB*􏿽xBB 2 ).perl.say 05:45
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "( [ 1 .. 1"␤»
05:45 s1n joined 05:46 s1n left
sorear .u � 05:47
phenny U+FFFD REPLACEMENT CHARACTER (�)
sorear am0c: ^^^ not valid syntax 05:48
am0c oops
I didn't entered that chracter though :( 05:49
rakudo: [ 1 .. 2 ] 􏿽xBB*􏿽xBB 2 05:50
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "[ 1 .. 2 ]"␤»
sorear your IRC client is incorrectly configured and cannot send non-ASCII characters to the channel 05:52
rakudo: ( [ 1 .. 10 ] «*» 2 ).perl.say
p6eval rakudo : OUTPUT«[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]␤»
sorear What did that look like?
am0c I see 05:55
rakudo: ( [ 1 .. 10 ] >>*>> 2 ).perl.say
p6eval rakudo : OUTPUT«[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]␤»
05:55 am0c left 05:56 am0c joined
sorear am0c: what did the characters on either side of the asterisk look like to you? 05:56
am0c yes, and I tried to reconfigure correctly now
rakudo: ( [ 1 .. 10 ] »*» 2 ).perl.say 05:57
p6eval rakudo : OUTPUT«[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]␤»
am0c heh
06:15 kanishka joined 06:17 cjk101010 joined 06:22 _kaare joined
dalek ecza: 4d023c2 | sorear++ | / (3 files):
Run iter_hasflat off trampoline
06:29
sorear 153 ns/loop Perl 5, 351 ns/loop now 06:30
I'm cheating a tiny bit though, using rwtrans parameters in the loop
clkao jnthn: i heard that you are coming to taipei! 06:37
diakopter clkao: what's in taipei? 06:42
hcchien osdc.tw 2011
diakopter hcchien: thanks 06:44
hcchien diakopter: you are welcome. # to come to Taipei too. :p 06:45
diakopter curious about flight costs 06:48
USD1100 06:49
sorear ow 06:50
am0c > "1; 2; 3".split( m:s/<[:,]>/ ).perl.say 06:52
Method 'match' not found for invocant of class ''
er.. what's wrong with this code please?
diakopter wow. SFO direct to Beijing
sorear am0c: you're using m 06:53
m means 'match NOW'
you want to pass a regex object, so use rx:s
am0c ah I see
sorear or just use /<[:,]>/ 06:54
:s has no effect on that regex
am0c rakudo: "1; 2; 3".split( rx:s/<[:,]>/ ).perl.say
p6eval rakudo : OUTPUT«("1; 2; 3")␤»
am0c rakudo: "1; 2; 3".split( /<[:,]>/ ).perl.say
p6eval rakudo : OUTPUT«("1; 2; 3")␤»
diakopter thinks a ; got mistyped as : 06:55
am0c oops;
dalek ecza: 9f9bc13 | sorear++ | v6/tryfile:
[v6] Rearrange tests in getsig on moritz++ 's suggestion
am0c rakudo: "1; 2; 3".split( /<[;,]> <.ws>/ ).perl.say 06:57
p6eval rakudo : OUTPUT«("1", "2", "3")␤»
am0c wow.. 06:58
sorear wow..? 07:00
am0c I just liked that result :D
sorear oh, you'll like this one better
rakudo: "1; 2; 3".comb(/\d+/).perl.say
p6eval rakudo : OUTPUT«("1", "2", "3")␤»
am0c wow!? 07:01
that's cool
sorear comb is dual to split
you pass a regex for the fields, instead of for the separators
which is often easier
am0c that's really novel approach 07:03
is there any easiest way to ceiling a *Num* into specific digit number? for example: 125 to 100 when for 3 digits. 07:17
it seems there is no builting ceiling function for Num for this case. 07:18
moritz_ divide by 10**$number, round, multiply by 10**$number 07:19
sorear that's not what ceiling does, am0c 07:25
rakudo: say ceil(1.25) 07:26
p6eval rakudo : OUTPUT«Could not find sub &ceil␤ in main program body at line 22:/tmp/6UMZocpCKn␤»
am0c I see I thought wrong.
sorear rakudo: say ceiling(1.25)
p6eval rakudo : OUTPUT«2␤»
sorear interesting, S32-num specs round($num, :$scale) but not for ceiling, floor
am0c sub where ($n) { $n.infix:</>(10000).floor.infix:<*>(10000) } 07:27
where(12345).say;
Method 'infix:</>' not found for invocant of class 'Int'
sorear . . . 07:28
moritz_ that's because &infix:</> is a sub, not a method
why don't you just use / ?
sorear what possessed you to write $n / 10000 in such a weird way
am0c ah.. 07:29
moritz_ rakudo: sub w($n) { ($n / 1000).floor * 1000 }; say w(12345);
p6eval rakudo : OUTPUT«12000␤»
am0c sorear: calling method connectively possessed me T__T 07:31
sorear ah. smalltalk programmer's disease. :p 07:33
am0c heh it's shameful to ask this sort of question T__T but here is so kind that I affected 07:35
that's intesting disease name. :p
07:44 Alias_ joined 07:50 LaVolta left 08:03 Guest87704 joined
sorear 8% of all method calls generated by STD are to Cursor.pos 08:17
from $¢.pos in token ws and token nibbler, mostly 08:18
moritz_ for the posessed, there is a way 08:31
rakudo: say 10.&infix:</>(2)
p6eval rakudo : OUTPUT«5␤»
sorear a further 8.6% come from $pair.key and $pair.value calls in Hash.LISTSTORE 08:36
08:44 kanishka left 08:45 kjeldahl joined 08:46 wamba joined 08:54 kensanata joined
dalek ecza: 92a451f | sorear++ | v6/tryfile:
A bit of ugly inlining for key/value
08:59
ecza: 84ef188 | sorear++ | v6/tryfile:
[v6] undo a wrong "bug fix"
ecza: 23f16c4 | sorear++ | v6/tryfile:
[v6] a little more refactoring on STD.ws
09:19 dakkar joined
dalek ecza: e2a9334 | sorear++ | lib/Kernel.cs:
Use a few unsafe optimizations in the binder
09:27
sorear I have managed to shave almost HALF A SECOND off the STD benchmark today
maybe it just needs fresh eyes *hinthinthint*
sorear out 09:28
10:04 QinGW left 10:18 satyavvd joined 10:20 _jaldhar left, _jaldhar joined 10:27 muixirt joined
muixirt rips out sorear's eyes and waits until science finds a way to grow fresh eyes in a petri dish 10:29
hope that helps :-)
10:35 cognominal left
muixirt ubuntu wants top restart... 10:36
10:36 cognominal joined, muixirt left 10:38 muixirt joined 10:48 gimix left 10:58 _twitch left 11:13 broquaint left 11:38 finanalyst joined 11:40 snearch joined, _twitch joined, jferrero joined 11:48 satyavvd left
jnthn clkao: Looking like it. :) \o/ 11:54
jnthn finally got a decent night's sleep. 11:55
11:55 mikehh joined 11:57 glow left
mikehh anyone here know much about keyboard settings - ie which gnome config files are used 11:57
I have somehow disabled my numeric keypad and would like to get it working again 11:58
tadzik ww?
mikehh sorry wrong channel 11:59
12:06 ch3ck left, ch3ck joined 12:15 oha joined 12:22 mtk joined 12:26 glow joined 12:46 mikehh left
takadonet morning all 12:51
12:52 fhelmberger joined 12:54 muixirt left
tadzik morning 12:55
moritz_ good morning 12:58
tadzik: how is the advent post coming along?
12:59 Guest87704 left 13:03 phio joined
tadzik moritz_: it's not, yet 13:04
I'll probably be writing it on an upcoming lecture
takadonet tadzik: are you today's post?
tadzik takadonet: no, I'm just the author 13:05
*SCNR*
13:05 scorp007 joined 13:08 gimix joined 13:10 Guest87704 joined 13:21 scorp007 left 13:33 sftp joined 13:38 lamstyle left 13:40 orafu joined 13:42 Guest87704 left
colomon jnthn: ping? 13:47
Teratogen listen, we need to get Perl 6, Version 1, out the door 14:02
14:02 plainhao joined
Teratogen a definitive version, ok? 14:02
of course nobody is going to want to use Version 1
so we will have to come out with a Version 2 pretty darned quick 14:03
moritz_ Teratogen: your patches are certainly welcome
14:03 masonkramer joined
Teratogen I thought the Perl 6 compiler was going to be one big regex 14:03
and of course, Perl 6 should be able to be written entirely in Perl 6 14:04
moritz_ Teratogen: your patches are certainly welcome
or phrased differently, "put up or shut up, pleease" 14:05
Teratogen look, we want Perl 6 now, not ten years from now! 14:06
huf is this some rite of passage, trolling p6? 14:07
tadzik moritz_?
huf hugme: hug Teratogen
hugme hugs Teratogen
14:07 ChanServ sets mode: +o moritz_, moritz_ sets mode: +b *!*leontopod@unaffiliated/teratogen, Teratogen was kicked by moritz_ (Teratogen)), moritz_ sets mode: -o moritz_
moritz_ tadzik: he (or she) has said the same thing several time, and doesn't seem to react to any kind of reasoning 14:08
maybe it's a bot.
tadzik well, that's not what I meant :) But anyway, could I drop today's post on your, or sb else's shoulders?
huf he's active on #perl so probably not a bot
14:09 thundergnat joined
moritz_ tadzik: sure thing 14:09
huf: probably :-)
huf moritz_: well, how can we be sure of anything, really? 14:10
maybe i'm a bot!
tadzik Even if'd be able to write it today, I'm afraid it won't be good enough for advent calendar; I'd like to give it a bit more love
moritz_: really? I'm terribly ashamed of the situation, but I'm really lacking time today 14:11
moritz_ tadzik: masak and I have a draft in the repo that was meant for tomorrow 14:12
tadzik so I'd go for tomorrow? 14:13
moritz_ aye
tadzik that's ok for me, again, if 16:00-17:00 is ok for a post 14:14
my exam is on 15:00, and all the effort goes here 14:15
moritz_ perl6advent.wordpress.com/2010/12/0...nt-things/ 14:19
dalek : 1df8466 | moritz++ | misc/perl6advent-2010/schedule:
[advent] switch slots
14:21
takadonet www.reddit.com/r/programming/commen..._names_of/ 14:24
flussence That %thing.push array thing is new to me, I suppose a destructive version would just be %hash = %original.invert? 14:25
moritz_ correct 14:26
[Coke] Has rakudo had a problem in the past few months where classes began to complain about not having set_string_native ? 14:30
thundergnat Anyone know of a good example of implementing context sensitive return values from a subroutine? The spec is kind of vauge about it. 14:34
takadonet thundergnat: still working on Algorithm::Diff? 14:35
thundergnat Specifically I'm trying to return diffeent values of false depending on list or item context
takadonet: not not recently
takadonet thundergnat: ok just wondering 14:36
thundergnat takadonet: I don't know that I want to go through the aggravation of implementing Get since it does heavy symbol table mangling for little return
That' really the only object method unimplemented. 14:37
takadonet ok 14:38
gfldex rakudo3: class A { multi method foo(Str :$lol){} }; say A.^methods(:local)[0].signature.WHAT; 14:39
rakudo: class A { multi method foo(Str :$lol){} }; say A.^methods(:local)[0].signature.WHAT; 14:40
p6eval rakudo : OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤ in main program body at line 1␤»
gfldex :(
thundergnat I found an example on stackoverflow: stackoverflow.com/questions/3962901...-in-perl-6 but it doesn't like False/Undef values
gfldex rakudo: class A { method foo(Str :$lol){} }; say A.^methods(:local)[0].signature.WHAT;
p6eval rakudo : OUTPUT«Signature()␤»
thundergnat The spec says to return an object that reponds appropriately to the calling context, but leaves implementation as an excercise for the reader. :- 14:43
And while that is fine, it would be nice to get a hint about how to actually do it... 14:44
colomon [Coke]: I seem to recall bumping into that sometime, but don't remember the exact circumstances at the moment. 14:45
thundergnat: I agree. I suspect the answer is to declare a class which has the appropriate .list, .Bool, .Str, etc methods. But I've never tried doing it in this way, and I'm not 100% sure what is required. Seems like a good thing to make sure we have a working example for. 14:48
afk # morning walk
14:48 gbacon left
gfldex rakudo: class A { method foo(Str :$lol){} }; for A.^methods(:local)[0].signature.params { say .type, ' ', .name; }; 14:49
p6eval rakudo : OUTPUT«Mu() ␤Str() $lol␤Mu() %_␤»
gfldex is that anonymous Mu intentional?
flussence self? 14:51
nah, that can't be right
14:53 mtk left
moritz_ a long known bug, if I remember correctly 14:55
14:58 cjk101010 left, _kaare left
gfldex sadly i have to leave in a few or i would ask masak who knows every rakudo bug by it's first name :-> 15:00
15:01 Bzek joined 15:05 masak joined
masak oh hai, #perl6 15:05
moritz_ oh hai masak 15:06
masak: I've published our advent post, since tadzik had troubles getting his finished 15:07
15:07 xinming joined, mtk joined
masak moritz_: hoaky. is tadzik on for tomorrow? 15:07
moritz_ masak: hopefully 15:08
tadzik masak: it's probably donna be a late tomorrow 15:10
masak tadzik: hokay.
15:12 gbacon joined 15:15 sahadev joined 15:16 kensanata left 15:25 rgrau joined, MayDaniel joined
flussence rakudo: say 'abcdef' ~~ / 'abcd' .**-2 'b' / 15:25
p6eval rakudo : OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 22, near "-2 'b' /"␤»
flussence hmm, S05 says that should work...
moritz_ what does **-2 mean? 15:26
flussence ". ** -2" according to this means back up 2 chars
line 1030ish
I wouldn't be surprised if rakudo doesn't implement that yet, it looks crazy :) 15:27
15:28 finanalyst left
moritz_ oh WTF, it sure does 15:28
flussence perl6: say 'abcdef' ~~ / 'abcd' . ** -2 'b' / # I wonder...
p6eval rakudo : OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 22, near " -2 'b' / "␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
flussence ouch
moritz_ and since it's not look-around-y, it'll generate weird match objects
15:34 Patterner left, xinming left
thundergnat std: class A { class B {}; A::B.new; } 15:38
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
thundergnat rakudo: class A { class B {}; A::B.new; }
p6eval rakudo : OUTPUT«Can not find sub A::B␤ in main program body at line 1␤»
jnthn colomon: pong 15:39
(only sorta here though...)
thundergnat is that legal/ rational calling convention? or NYI?
masak rakudo: say (900..1000).rand
p6eval rakudo : OUTPUT«67.4041728675932␤»
masak submits rakudobug
jnthn masak: which for? 15:40
The A::B lookup?
masak jnthn: no, the Range.rand one
jnthn masak: Is it really wrong?
masak jnthn: the A::B lookup is old :)
jnthn: oh, I thought that was obvious... :/
jnthn: twitter.com/VienosNotes/status/12388189830389760 15:41
jnthn masak: I mean, it numifies the range, which is the number of elements.
masak: Is range spec'd as implementing rand specially?
masak jnthn: I'll check.
jnthn: shouldn't it? I mean, really?
jnthn I agree it'd be cute if it worked, I'd also just like to know if it's spec. :)
masak is that even a point of discussion?
who'd be happier if it numified instead?
flussence rakudo: say rand(900..1000) #?
p6eval rakudo : OUTPUT«===SORRY!===␤Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick at line 22, near "(900..1000"␤»
moritz_ would just spec it to return a value between the end points 15:42
jnthn moritz_: That'd make sense.
masak let's do that, then.
moritz_ but only for numeric ranges
jnthn Just curious what if anything the spec says.
masak moritz_: yes.
TimToady that doesn't make sense to me
moritz_ jnthn: I can't remember that it says anything about it
jnthn hehe :)
masak un-submits rakudobug
jnthn moritz_: Me either. 15:43
thundergnat so A::B is old.., is it now illegal?
moritz_ otoh note that @array.rand can't do anything sensible but numifying first
flussence having Range.rand work that way looks nice, but sometimes you really want the array index.
thundergnat or meaningless at least?
masak maybe Range.rand should warn or die. 15:44
flussence or have a flag for "give me the value of whatever index you pick, I don't care!"
moritz_ flussence: that's what .pick is for
masak .rand would select something on the continuous interval instead. 15:45
tadzik > Range.rand
Type objects are abstract and have no attributes, but you tried to access $!excludes_min
hm?
masak TimToady: I'd be interested to hear why it doesn't make sense for you.
tadzik: it's a figure of speech :)
moritz_ tadzik: it numifies, and for numifying it accesses an attribute
tadzik :)
masak tadzik: I meant on an instantiated Range object.
TimToady it doesn't make sense because I haven't had my coffee yet 15:46
15:46 wtw left
tadzik maybe it should be an alias for .pick 15:46
moritz_ can wait to hear TimToady's post-coffee opinion :-)
tadzik: that would be very confusing 15:47
TimToady I do have a question though; how would you distinguish (1..2).rand from (1..^2).rand?
moritz_ tadzik: .pick is something discrete, .rand something continuous
TimToady: one can return 2, the other not
just like rand() in perl 5 can return 0, but not 1
15:47 phio left
TimToady how would you write a function that can return 1? 15:48
what is its probability?
moritz_ I wouldn't
masak me neither.
moritz_ since its probability is asymtotically 0, I'd just never return the bounds 15:49
and it'd be correct even if .rand were allowed to return them
masak I'd return the lower bound, but only with epsilon probability like all the other values.
15:49 Psyche^ joined, Psyche^ is now known as Patterner
masak and I wouldn't care about whether the endpoints were included or not. 15:49
TimToady epsilon is a funny thing on a computer
moritz_ if you have a fixed representation, you can calculate your epsilon 15:50
15:50 jjore left 15:51 mtk left
TimToady another consideration is that if they say (1..2).rand they may very well mean (1..^2).rand 15:52
human nature being fallible and all 15:53
15:53 mtk joined, xinming joined
moritz_ just always exclude the end points in .rand, and everbody is happy 15:55
TimToady thing is, you can define ($a ..^ $b).rand as ($b-$a).rand + $a, but you can't do the same with .. 15:56
you can't exclude the lower endpoint generally, or the randomicity wonks will come and shoot you
moritz_ hm 15:57
TimToady .. has to know epsilong, while ..^ doesn't
*lon
dukeleto Shortest Math Joke Ever: Let epsilon be a small negative number ... 16:00
TimToady I suppose ^.. doesn't need espilon either, but ^..^ does again
interestingly, if we define Range.rand, then 42.rand is the same as (^42).rand 16:02
16:05 Patterner left 16:06 Psyche^ joined, Psyche^ is now known as Patterner
masak I still vote for ignoring the endpoint information. 16:06
makes it much easier, and the user will hardly notice anyway.
colomon jnthn:
make PAST::Op.new( :inline( $<quote_EXPR>.ast.value ),
:pasttype('inline'),
:node($/) );
masak this confuses me. what does he mean? twitter.com/VienosNotes/status/12537502397104129
does he want an integer from Range.rand?
colomon jnthn: Does that mean the real code is in NQP? 16:07
TimToady it would be more conservative to die on .. or ^..^ with an apropriate message, and reserve the ability to do them "right" later
mathw masak: I would read it to say that he wants Range.rand to return a random number which fits within the range 16:08
I don't think that necessarily means it's an integer...
maybe
it's a bit unclear
masak mathw: ok.
colomon rakudo: say 4.Int.rand
p6eval rakudo : OUTPUT«0.527294043813413␤»
masak oh!
yes, that's what he means.
and that's what I meant to begin with.
and that's what we've been talking about... :) 16:09
TimToady well, one way to implement .. even if we don't know the epsilon of the underlying generator is to add a delta that is larger than any likely epsilon, then repeat if that generates something out of range 16:11
likewise, ^..^ can be implement by repeating ..^ if we happen to get the lower bound 16:12
colomon question for the TDD fanatics in the audience: how do you test if (N .. M).rand returns M properly? 16:13
TimToady ^.. is implemented in terms of ..^ by subtraction
colomon: make the underlying RNG pluggable 16:14
flussence colomon: LD_PRELOAD a library that overrides libc's rand to always return maximum
(even if it's cheating to do so)
colomon Doesn' 16:15
Doesn't seem like either of those actually tests the matter at hand.
I mean, it's turtles all the way down.
TimToady PRNGs generally return integers, and if you know the size of the integers, you know the epsilon 16:16
if you can cut the size of the integers, you can magnify the epsilon
colomon Huh. So that implies the real problem is that not all expressible Nums between 0 and 1 are equally likely?
(from plain rand, I mean.) 16:17
jnthn colomon: Hmm, where is that from? (which action method)
colomon jnthn: quote:sym<Q:PIR>
jnthn colomon: Is it the Q:PIR one?
Ah
moritz_ colomon: depending on the used data types, not all Num values are possible
flussence usually "good enough" is good enough for most users of rand() :)
moritz_ and all others use their own library anyway 16:18
jnthn colomon: quote_EXPR itself is inherited from, iirc, HLL::Grammar and HLL::Actions.
colomon: Which is in the nqp-rx repo.
colomon jnthn: I'm trying to figure how qq works. So that I can try to make qqw work
TimToady all PRNGs I'm aware of make all 0 ..^ $n integers equally likely, or at least try to
moritz_ integers yes 16:19
jnthn colomon: See quote_EXPR and all the quote_[mod|...other stuff...] bits in HLL::Grammar and HLL::Actions.
colomon: quote_EXPR takes argument
*arguments
colomon: Which indicate what kind of parsing it does.
moritz_ but the floats you get by $rand/$rand_max don't map well to all floats in the 0..^1 range
16:19 risou joined
jnthn colomon: And how it treats things. 16:19
colomon TimToady: what moritz_ said. 16:20
jnthn: thanks.
jnthn++
TimToady but you will get $n different floats, if you have more float precision than integer 16:21
and each of those floats will have equal probability
they're just scattered around their real values by fp distortion
moritz_ right
colomon my point here is that if you choose an arbitrary Num between 0 and 1, odds are that it can NEVER be generated by $rand / $rand_max. 16:23
masak I'm starting to wonder whether it's worth it. :(
maybe just throw a very nice error message that explains to the user how to do the appropriate subtractions and scalings by hand.
TimToady at which point they'll just monkey patch Range :)
moritz_ would rather have a Range.rand that might mis-treat the ends points than no sensible Range.rand at all 16:24
TimToady differently from the next guy
colomon huh. actually, can we get at the internal RNG that generates Ints? If we're accepting $rand / $rand_max as good enough, it's trivial to make it include the top of the range as well.
masak as long as we put it in the spec/manual, mistreatment of the endpoint is fair game IMO
TimToady colomon: that's what I think 16:25
moritz_ colomon: in the end I'd like the RNG exposed to the user anyway, with the option of creating multiple instances
16:25 rgrau left
colomon +1 16:25
TimToady and to use the repick methods, you really only need to have order of magnitude on $n so you don't pick a stupid delta
moritz_ it needs to exist anyway in some code somewhere :-)
TimToady well, any given power-of-two rng can be sized probabilistically even if there's no API to tell you its max 16:27
every time you generate one, there's 50% chance it'll be in its upper range 16:28
colomon huh. so really, Range.roll should be the fundamental RNG for p6, no?
TimToady or Int.roll
moritz_ colomon: something like that
colomon (I mean, that's the functionality we want -- return an Int between 0 and N)
moritz_ right 16:29
TimToady sounds fair
moritz_ the API itself will involve state that the PRNG has to store between two calls
TimToady the PRNG is really Int.roll(*) :)
16:30 kanishka joined
colomon TimToady: that would involve a new spec for Int.roll, no? 16:30
rakudo: say 10.roll
p6eval rakudo : OUTPUT«10␤»
colomon rakudo: say 10.roll
p6eval rakudo : OUTPUT«10␤»
colomon rakudo: say 10.roll
p6eval rakudo : OUTPUT«10␤»
colomon ;)
moritz_ rakudo: say ~10.roll(20)
p6eval rakudo : OUTPUT«10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10␤»
moritz_ rakudo: say ~^10.roll(20)
p6eval rakudo : OUTPUT«No applicable candidates found to dispatch to for 'prefix:<~^>'. Available candidates are:␤:(Buf $a)␤␤ in main program body at line 22:/tmp/x94f1H0lQF␤» 16:31
moritz_ rakudo: say ~(^10).roll(20)
p6eval rakudo : OUTPUT«9 1 8 3 9 6 5 4 8 0 2 1 0 8 9 3 5 8 8 1␤»
16:31 alester joined
TimToady my point was not about Int so much as about .roll(*) supplying the requested state 16:34
I'm of two minds about whether Int.roll should assume (^Int).role 16:36
moritz_ it is a nice interface
TimToady and like Int.rand
but an int might be a degenerate list
moritz_ you can enhance it with :seed($your_seed)
16:45 _kaare joined 16:46 jjore joined
masak hcchien: I'm currently investigating travel options to go to Taipei in March as well. I'll happily give a talk at OSDC.tw too... if you're still looking for speakers. :) 16:47
gfldex: yes, the OUTPUT«Mu() ␤Str() $lol␤Mu() %_␤» is a "known bug". jnthn says it's built into the model and inherently unfixable (becuase there's no fundamental distinction between methods and subs) 16:52
16:53 silug left
jnthn masak: It should say the type of the class instead of Mu() for the first arg. 16:55
masak moritz_: Teratogen is decidedly not a bot, but she has a very limited repertoire. she seems like a kind of "eternal newbie" who ended up being a #perl6 regular without the corresponding increase in what it is we're doing here (getting Perl 6 out the door).
jnthn: oh right. yes, 'course.
jnthn masak: But it's correct that it appears in the signature.
masak but even that is known and reported.
jnthn Right
But the appearance of it in the signature isn't a bug at all. :)
masak I don't mind it appearing in the signature.
I mind the error messages being stupid.
jnthn I don't think it is. 16:56
masak a good error message *must* know the distinction between a sub and a method, otherwise it'll confuse the user.
jnthn That's only true if the user thinks of the invocant as more to the target method than just a magical first parameter.
masak the burden of knowing that a method is "just a funny subroutine" with an extra, hidden parameter, should not be put on the confused newbie. 16:57
rakudo: class A { method foo() {} }; A.new.foo("OH HAI")
p6eval rakudo : OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in 'A::foo' at line 22:/tmp/kEMy0JFPVR␤ in main program body at line 22:/tmp/kEMy0JFPVR␤»
masak "expected 1".
that's what I'm talking about.
the method *clearly* has no parameters!
I just wrote an empty set of parens. 16:58
jnthn :/
masak and yes, I do know the underlying model that causes this, and it still sucks.
jnthn Yes, but then people write: class A { method foo($foo:) {} }; A.new.foo("OH HAI")
masak right. 16:59
jnthn And get an error saying it expected 1 and got 0...when they clearly did write a parameter.
masak so maybe the invocant parameter should be mentioned explicitly?
"expected 0 (and an invocant)"
TimToady "got 0 (plus invocant)"
jnthn Dunno. Can sorta see the argument for doing something in the error, but "just subtract one from the number" is too simplistic.
masak aye. 17:00
jnthn The signature object does know that the first parameter is an invocant parameter.
TimToady: Yes, something like that.
masak then it's at least theoretically possible.
jnthn Yes. The patch wants to go in bind.c. ;)
masak I'll keep that in mind. :)
TimToady it would also be nice to remember the declarator so you can say "sub" or "method" or whatever
masak oh, indeed. 17:01
jnthn TimToady: We know the current routine, so we can just go look at its type.
So that info is already available too :)
I think backtraces already do that fwiw.
rakudo: class A { method m() { die "painfully" } }; sub foo { A.m }; foo(); 17:02
TimToady does the type always distinguish the declarator?
p6eval rakudo : OUTPUT«painfully␤ in 'A::m' at line 22:/tmp/7vk9DEgBzu␤ in 'foo' at line 22:/tmp/7vk9DEgBzu␤ in main program body at line 22:/tmp/7vk9DEgBzu␤»
jnthn Aww, it doesn't.
TimToady: method => Method, sub => Sub, submethod => SubMethod, a block has type Block...
TimToady some methods are regexes
jnthn TimToady: Which are of type Regex. :) 17:03
TimToady some regexes are tokens
jnthn std: Token
p6eval std a194beb: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Token' used at line 1␤Check failed␤FAILED 00:01 117m␤»
jnthn aww :)
TimToady: yeah, but maybe we should fix the type hierarchy there so we set a good precedent.
TimToady: Different declarator => different type, just like different package declarator => different HOW.
17:04 _jaldhar left, jaldhar_ joined
jnthn We could separately stash away the declarator name used too but... 17:04
TimToady as long as you can reproduce the original declarator for the user, but it seems fragile
jnthn ...feels slightly overkill.
TimToady: ah, you really want to be able to do that? 17:05
TimToady the user wants it
17:05 justatheory joined
jnthn So Routine gets a .declarator method/attribute that stores it? 17:05
Would we follow the pattern with other declarable thingies? 17:06
TimToady or regenerates it from the type accurately
jnthn Well, we can promise that for built-in types.
We can't when people start slanging and adding their own routine declarators. :)
TimToady I'll bet you can't distinguish "multi" from "multi sub" though :)
jnthn No, that's purely syntactic sugar. :) 17:07
I think a routine does know in Rakudo if it's a candidate in a multi.
Not sure that actually is needed by the new multi model, though. I'm not sure why it knows at the moment, tbh.
Other than just for the sake of being able to say so. 17:08
TimToady certainly the multi dispatcher can override error messages that would say "method" but are really exported
low-level invocation probably doesn't know whether it is being called on behalf of function dispatch or method dispatch though 17:10
jnthn Hmm...in theory yes. In practice I'm not quite sure how to make that works.
Ideally the multi dispatcher even appearing in the call stack would be optimized away in various cases. 17:11
(e.g. if we know at compile time where the dispatch goes, it probably just becomes a low-level invocation right off)
17:11 MayDaniel left, broquaint joined
jnthn And even if the multi-dispatcher does end up getting written in Perl 6, I'd expect a lot of dispatches to never actually go through that and hit a dispatch cache in the first attempt to. 17:13
*too
(Various things work like that in 6model. If things publish a type cache, then .^typecheck never gets invoked. If they publish a method cache and the entry is found in there, .^find_method never gets invoked.) 17:14
(The nice thing being that even custom meta-objects written by the user can take the effort to publish such things and have a chance of performing as well as the built-in ones, rather than being unoptimizable second class citizerns.) 17:15
17:16 risou_ joined 17:18 risou left
TimToady it's probably okay if exported methods are reported as methods 17:24
that'll probably help them find the definition in any case
17:26 cdarroch joined, cdarroch left, cdarroch joined
colomon hmmm, timely: www.johndcook.com/blog/2010/12/06/h...eedfetcher 17:26
Actually, I should probably just buy the "Beautiful Testing" book. 17:27
17:30 mtk left
sjohnson early morning perl hackers 17:30
masak good prevening, sjohnson. 17:31
sjohnson yo
colomon good midday nom time, sjohnson
sjohnson had to come in early today (9:30am) because I didn't use my conscience and put wd-40 on a stuck nut in my car.. and i broke it
doh! 17:32
hows perl6 today 17:41
TimToady lotsa stuck nuts :) 17:43
17:46 mtk joined 17:48 kanishka left
sjohnson heh 17:49
colomon: (before|after)?noon
17:50 mtk left 17:51 mtk joined
sjohnson sprays wd-40 on p6specs 17:51
17:52 nadim_ left 17:54 mtk left 17:55 mtk joined 17:58 justatheory left 18:04 impious joined 18:06 _twitch left 18:11 sahadev left 18:12 nadim_ joined 18:24 dakkar left
sorear good * #perl6 18:31
colomon \o 18:33
18:37 Axius joined 18:38 glow left
[particle] \* 18:39
18:51 MayDaniel joined 19:02 silug joined
masak nice! Ovid++ uses (and explains) closures in a recent blog post: blogs.perl.org/users/ovid/2010/12/p...dient.html 19:07
19:07 hercynium joined
masak wonder if he was inspired by the Advent Calendar post from the other day? :) 19:07
also, I wonder if there is a more esthetic path through the color space other than the obvious one chosen, between #ff0000 and #00ff00 19:08
sorear hello masak! 19:12
masak hi sorear! 19:13
19:13 Axius left
masak nom & 19:14
19:15 kjeldahl left 19:17 justatheory joined, glow joined 19:20 jedai_ joined 19:22 araujo left, jedai left 19:24 wamba left 19:33 araujo joined, araujo left, araujo joined
jnthn masak: Generally to do gradients it's better to work in a non-RGB color base. 19:39
masak: Such as HSL.
19:42 MayDaniel left 19:47 kjeldahl joined
masak jnthn: right. that sounds like a fun little Perl 6 module to write at some point. 19:52
also, the green in #00ff00 is almost always much brighter than the red in #ff0000 on screens. 19:53
jnthn masak: Did something similar at $dayjob not long ago.
masak nice.
19:55 plainhao left, lichtkind joined
lichtkind is ^^^new? 20:00
i mean ^^
20:00 fhelmberger left
sorear ENOTENOUGHCONTEXT 20:00
lichtkind oh wait i found answer
sorear: i thought context was clear since yesterday was talked about here 20:01
sorear that was thousands of lines ago though
jnthn At least it pointed you in the right direction. :) 20:03
lichtkind jnthn: your too genorous :) 20:04
sorear so STD.dll, 2.1 MB, breaks down into 100kb tables (mainly Field and Method), 300k string heap (field names, etc), 60k user strings, 1550kb CIL
of the CIL, 130kb is in STD::.cctor 20:05
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 20:08
20:14 dual left
thundergnat rakudo: my $d; class A {method x { $d }}; for () { sub } #checking to see if this still blows up 20:17
p6eval rakudo : ( no output )
thundergnat std: my $d; class A {method x { $d }}; for () { sub } 20:19
p6eval std a194beb: OUTPUT«===SORRY!===␤Malformed block at /tmp/HyBXIBtGyI line 1:␤------> class A {method x { $d }}; for () { sub ⏏}␤ expecting any of:␤ name␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 121m␤»
20:21 dual joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 20:30
tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet
20:42 M_o_C joined 20:48 rgrau joined
lichtkind recommends paniq: www.paniq.cc/ 20:49
20:50 Chillance joined
[Coke] wonders if there's anything useful to hack on for rakudo other than "try to swamp out the queue" 20:51
I haven't seen a lot of commits lately, so I suspect there aren't a lot of surprisingly fixed tickets.
20:51 Sarten-X left
masak as far as I know, the RT queue is full of fallen fruit. 20:52
jnthn So you're saying it's all jammed up?
;)
masak someone with tuits could easily close a whole bunch of those tickets with relatively little effort. 20:53
[Coke] jnthn: Ugh, that rots.
masak: ah, so you do expect tickets to have examples that magically work?
masak yes, sometimes. but I wasn't referring to that.
[Coke] will troll the queue after $DAYJOB
masak: ah, what then? 20:54
masak I was referrint to things with <10-line fixes in easy places in Rakudo.
[Coke] ah, that requires more than just mindless rote. ;) 20:55
masak yes, but not much more, that's my point. 21:00
lichtkind: interesting music. reminds me of an old Atari I have standing in my room.
21:00 Sarten-X joined
lichtkind masak: he is still member of a demo crew 21:00
21:02 lamstyle joined
[Coke] I just did a git pull of parrot master, built it, then tried to build rakudo, which complained I didn't have a recent enough version of parrot installed. 21:03
(er, I installed parrot there in the right place, also) 21:04
21:04 justatheory left
[Coke] my git_describe says -614. rakudo wants -679 21:04
masak 614 < 679. so you need a newer one. 21:07
thundergnat BTW, I have been looking through the RT queue looking for tikets which might be closable
Here's a bunch with my comentary / observations: home.comcast.net/~thundergnat/perl6.htm 21:08
masak thundergnat: excellent. think you could add them to the individual tickets? 21:10
thundergnat: reading that, I'm also inclined to ping whoever hands out RT admin bits.
thundergnat I supose I could go through and edit them.
[Coke] masak: and since I just grabbed the latest version of master, where the <BLEEP> do I get the newer version from? the future? 21:11
masak: I used to have privs to hand out privs to the p6 bug queue. 21:12
masak [Coke]: ISTR people having problems similar to yours shortly after the latest R* release. I'll go check the backlog for hints. 21:13
flussence 679 just pulled fine for me... 21:14
[Coke] I am not using --gen-parrot. I'm using an existing git repo of parrot that I did a pull, rebuild, install on .
flussence are you pulling from a stale mirror, maybe? 21:15
[Coke] I'm pulling from github/parrot/parrot 21:16
flussence using the right branch? it happens... 21:17
masak [Coke]: I used to have Parrot externally like that. but when Parrot switched to git, I thought I might as well switch to the --gen-parrot veriant. 21:18
[Coke] rakudo is not the only parrot-related project I work on. 21:19
masak nod. 21:23
just saying I encountered some problems around that point myself.
thundergnat++ # all those comments on open tickets 21:32
dalek ecza: c953c81 | sorear++ | / (3 files):
Increase inline local space from 4 to 10 slots
21:33
masak std: say (7^^^^^^7).WHAT
p6eval std a194beb: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ^^ or redundant prefix ^␤ (to suppress this message, please use space between ^ ^) at /tmp/bgCpVduLnj line 1:␤------> say (7^^^^⏏^^7).WHAT␤Parse failed␤FAILED 00:01 120m␤»
masak std: 7^^^^^^7
p6eval std a194beb: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ^^ or redundant prefix ^␤ (to suppress this message, please use space between ^ ^) at /tmp/LvXk3hHw_O line 1:␤------> 7^^^^⏏^^7␤Parse failed␤FAILED 00:01 119m␤»
masak thundergnat: "Not imediately obvious perhaps, but not wrong." -- it fails in STD. as long as STD doesn't have a known bug here, it is wrong, and Rakudo shouldn't parse it either. 21:34
STD is the measure stick against which all the other parsers out there should be evaluated.
thundergnat Ok, perhaps my contension should be "STD has a bug" 21:35
PerlJam [Coke]: I've had that happen to me once. I thought at the time that it was because a previous build of parrot had left some of its configuration around. Did you do a "make realclean" prior to rebuild?
masak thundergnat: I understand and accept your reasons for thinking so. would be interesting to hear what TimToady thinks.
sorear thundergnat: why do you argue STD is wrong? 21:36
perl6: say ("foo";)
p6eval rakudo : OUTPUT«foo␤»
..pugs: OUTPUT«*** ␤ Unexpected ";)"␤ expecting term postfix, operator or ")"␤ at /tmp/Azwwzsk2Kb line 1, column 11␤»
sorear perl6: say ("foo";;)
p6eval rakudo : OUTPUT«===SORRY!===␤Method 'returns' not found for invocant of class 'Integer'␤»
..pugs: OUTPUT«*** ␤ Unexpected ";;)"␤ expecting term postfix, operator or ")"␤ at /tmp/YJGGpP6xfq line 1, column 11␤»
sorear hey masak, is that one known?
masak sorear: see comments at home.comcast.net/~thundergnat/perl6.htm
sorear: (about thundergnat's arguments) 21:37
sorear: no; first time I see it.
thundergnat std: say 0^^^^^5;
p6eval std a194beb: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ^^ or redundant prefix ^␤ (to suppress this message, please use space between ^ ^) at /tmp/qa7FlLBQ11 line 1:␤------> say 0^^^^⏏^5;␤Parse failed␤FAILED 00:01 120m␤»
masak submits rakudobug
thundergnat rakudo: say 0^^^^^5;
p6eval rakudo : OUTPUT«01234␤»
thundergnat rakudo is correct IMO 21:38
masak sorear: are you arguing that Pugs is right here, or just that the second Rakudo evaluation is Wrong?
sorear masak: the second rakudo evaluation is a crash in Perl6::Actions; it is automatically wrong 21:39
that error message indicates PAST mishandling (.returns is one of the PAST::Node accessors)
thundergnat Or, at least if 0^^^^^5 is wrong then 0 ||||| 5 should arguably be also.
sorear pugs' behavior is also wrong
the inside of () parses as a list of <statement> now 21:40
masak sorear: ok.
sorear++
sorear but pugs specrot is a dime a dozen these days so I'm not making an issue 21:41
niecza currently ignores empty statements
(;;;;;;2;;;;;;;;;) returns 2
which is probably wrong
in particular, it causes {; a => 2 } to be a hash constructor, because the empty statement is ignored
masak thundergnat: I merged the two tickets at the end of your list. 21:42
thundergnat masak: ok, I edit my list 21:43
* I'll
masak I suspect pmichaud might have RT privs.
PerlJam thundergnat: STD used to behave as Rakudo currently does IIRC. And because it's surprising, that's why STD behaves as it does now.
masak [Coke]: maybe this'll help? irclog.perlgeek.de/perl6/2010-11-29#i_3039452 21:44
thundergnat Oh, 0^^^^5 definitely viloate the principle of least suprise, but why doesn't 0|||||5?
std: 0|||||5 21:45
p6eval std a194beb: OUTPUT«ok 00:01 119m␤»
sorear thundergnat: because prefix:<||> is defined
dalek ecza: c9ef750 | sorear++ | src/Niecza/Actions.pm:
Approximate lol parsing in postcircumfixes better
21:46
thundergnat rakudo: say (||5).WHAT 21:50
p6eval rakudo : OUTPUT«Capture()␤»
thundergnat rakudo: say (|5).WHAT 21:51
p6eval rakudo : OUTPUT«Capture()␤»
thundergnat sorear: where does prefix || come into it?
21:51 lamstyle left
sorear thundergnat: the actual STD error check is 21:51
std: ~~3
p6eval std a194beb: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use space between ~ ~) at /tmp/lKU9fd6b6M line 1:␤------> ~~⏏3␤Parse failed␤FAILED 00:01 117m␤»
sorear std: ||3
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
sorear it doesn't make sense to die on ||3, because || is a prefix operator 21:52
~~ isn't a prefix operator
thundergnat I'm not saying it shoud die, but ||5 is a capture of a capture, 21:53
not a ||
21:53 justatheory joined
thundergnat std: | |5 21:53
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
sorear thundergnat: || is a || what are you talking about 21:54
jnthn sorear: Rakudo probably doesn't yet implement ||
sorear: It probably doesn't even parse it yet.
sorear: It parses ||$foo as |(|($foo)) still. 21:55
(I think, anyway.)
[Coke] PerlJam: I /always/ do a make realclean, yes.
jnthn If anyone fancies adding a || parsing that warns it's NYI that'd be fine by me.
It'd reduce confusion.
sorear jnthn: thundergnat is confusing Rakudo with Perl 6 again
it really irritates me when people do that 21:56
jnthn *sigh*
[Coke] masak: uh, which part?
masak sorear: it would, you're the implementor of the "second implementation". you're Pepsi. 21:57
jnthn sorear: You could gently point that out rather than getting irritated... :)
thundergnat sorear: sorry. I'll try not to mix those up again.
masak [Coke]: from the anchor I linked to and onwards.
[Coke] I find it hard to fault people for confusing rakudo & perl6.\
masak: the first page seems entirely irrelevant.
sorear sorry. it took me a while to catch on.
masak [Coke]: er, what did I link you to?
masak double-checks 21:58
sorear first I get confused
21:58 mtk left
[Coke] I'm not using --gen-parrot, so removing parrot/parrot_install doesn't help, I did a realclean before I did the build... 21:58
21:58 thundergnat left
masak oh, right. 21:59
then maybe a problem similar to yours isn't to be found in the backlog after all.
[Coke] and if I realcleaned, I shouldn't need a git reset. I think.
22:06 kjeldahl left
PerlJam [Coke]: maybe your parrot build linked against the already-installed parrot lib ? 22:07
22:09 donaldh joined
dalek ecza: f861d25 | sorear++ | test2.pl:
Tests for @foo[1,2] and @foo[*-1]
22:18
ecza: b23c285 | sorear++ | lib/Kernel.cs:
Implement array and hash slices
[Coke] PerlJam: I'll rebuild with my special "--kill" switch to my build script that removes the previous install dir and see if that helps. 22:22
PerlJam: nope. just rebuilt sans a currently installed parrot, and it still says -614 22:26
22:27 rgrau left 22:30 _kaare left
sorear perl6: my $a; say $a[*-1] 22:31
p6eval rakudo : OUTPUT«Any()␤»
..pugs: OUTPUT«␤»
sorear perl6: my $a; $a[*-0] = 1; say $a
p6eval pugs: OUTPUT«1␤»
..rakudo : OUTPUT«Any() 1␤» 22:32
22:33 kensanata joined
dalek ecza: 3e87ab8 | sorear++ | test2.pl:
Add a few more slice tests
22:36
sorear What *should* that do? 22:37
22:51 kensanata left 22:54 M_o_C left 22:55 Chillance left 22:59 bitter16 joined 23:06 ch3ck3r joined
masak sorear: I think Rakudo's behavior is correct. 23:09
rakudo: my $a; $a[* + 0] = 1; say $a.perl
p6eval rakudo : OUTPUT«[Any, 1]␤»
ch3ck3r hi masak 23:10
masak ch3ck3r: hi.
ch3ck3r may i see your feet?
23:10 ch3ck left
masak ch3ck3r: I kinda need them right now. 23:11
jnthn
.oO( what?! )
masak jnthn: I didn't want to say anything, but I had the same reaction. :)
ch3ck3r masak: ok, i can wait
masak ch3ck3r: don't get me wrong, but we're not really at the "may I see your feet?" stage in out relationship yet.
ch3ck3r aren't we? 23:12
masak not that I'm aware. sorry.
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet
masak s/out/our/
ch3ck3r sorry, then i have to apologize 23:13
masak no need. I'm not offended or anything.
ch3ck3r: did you have a real purpose with your discussion, besides delighting us with absurdity? 23:14
ch3ck3r hmm, i don't think so 23:15
masak very well.
ch3ck3r i was just interested to see your feet xD
colomon Here's one of my feet. It's pretty much the same as everyone else's, though. tinyurl.com/2fpn4jh
ch3ck3r it says a lot about ppl you know
masak colomon++ :) 23:16
ch3ck3r: yes, but how much does it say about people you don't know?
23:16 scp1 joined, risou joined
ch3ck3r masak: your foot looks strange 23:16
dalek ecza: 932e912 | sorear++ | lib/Kernel.cs:
Implement @foo[*-1] forms
ch3ck3r what's the matter with the numbers on it? 23:18
23:18 risou_ left
masak ch3ck3r: we're usually lenient to people who go off topic here, but we're quite strict towards users who behave like Markov chains. so please try not to act like one. 23:19
23:30 donaldh left 23:33 hudnix joined, quietfanatic left
saaki that there's some fancy computer talk =p 23:34
colomon I'm planning on using Markov chains in my next Advent post...
masak ooh
colomon Markov chains... and the sequence operator. ;) 23:35
masak a natural match, now that you mention it. 23:36
23:43 am0c left 23:47 soroush_ joined 23:48 soroush left
masak blog post! strangelyconsistent.org/blog/best-november-ever 23:54
sorear out 23:55
jnthn masak: Did you really mean to claim that you worked on "Fiat currency reform in Nationalist China"? :) 23:57
masak jnthn: yes, but don't tell anyone :P 23:58
masak fixes