»ö« 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() $lolMu() %_» | ||
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() $lolMu() %_» 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 1Check failedFAILED 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 traitParse failedFAILED 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).WHATParse failedFAILED 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^^^^⏏^^7Parse failedFAILED 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 failedFAILED 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:------> ~~⏏3Parse failedFAILED 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 |