»ö« 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!
Set by sorear on 4 February 2011.
00:00 jferrero left
sorear niecza can now build itself again... 00:00
lichtkind shhh blogs.perl is broken 00:01
00:01 cdarroch left
TimToady colomon: typo: [&&} 00:15
colomon ? 00:17
oh, right
(at this distance, both brackets look the same. stupid eyes.)
TimToady also, how does your solution compare with [lcm] 2..20
colomon very poorly 00:18
though I haven't timed them carefully
well... [lcm] is twice as fast as my fastest, I think 00:21
sorear Bollman's solution works by considering each prime separately 00:23
log(20, 7).floor is the highest power of 7 that fits in 20
therefore, it is the highest power of 7 that fits in any number less than 20 00:24
therefore, it is the power of 7 in [lcm] 1..20
00:29 cotto left 00:31 icwiener left 00:32 daniel-s left
lichtkind good night 00:42
00:42 wamba left, beekar left, lichtkind left
colomon sorear: ...... damn, that's slick. 00:44
thanks for the explanation. sorear++
00:49 jaldhar left 00:50 jaldhar joined
colomon niecza: say 232 gcd 16 00:51
p6eval niecza v6-184-g55ff541: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &infix:<gcd> in mainline␤␤Server stack trace: ␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknow…
colomon bother 00:52
sorear rakudo: say "ff" ~~ /ff/i 00:53
p6eval rakudo b2bc99: OUTPUT«===SORRY!===␤Unsupported use of /i; in Perl 6 please use :i at line 22, near ""␤»
sorear rakudo: say "ff" ~~ m:i/ff/ 00:54
p6eval rakudo b2bc99: OUTPUT«␤»
sorear rakudo: say "ß" ~~ m:i/SS/
p6eval rakudo b2bc99: OUTPUT«␤»
sorear rakudo: say "ß" ~~ m:i/ss/
p6eval rakudo b2bc99: OUTPUT«␤»
sorear rakudo: say "Σ" ~~ m:i/σ/ 00:55
p6eval rakudo b2bc99: OUTPUT«Σ␤»
00:55 Garda joined, Garda left 00:57 takadonet left 01:01 noganex_ joined 01:04 noganex left 01:06 thou left 01:20 cotto joined 01:27 daniel-s joined
daniel-s \o 01:28
sorear o/
colomon \oo/ 01:32
daniel-s this is kinda more general than perl6 01:45
but after learning the basic parts of the syntax of a language, what should I do to become a better programmer
I never studied computer science 01:46
colomon daniel-s: program! :)
daniel-s is that all?
colomon seriously, actually trying to do stuff with a programming language is huge
I don't know if it's all, but it's probably 80-90% of it, anyway. 01:47
there's more to learn, but it's hard to appreciate it without getting your hands dirty, IMO.
(there's always more to learn.)
sorear the hard part is finding something to do. 01:48
colomon sorear: you think? for me, the hard part is usually finding time to do it. 01:50
sorear needs a direction suggestion 01:51
colomon for niecza, or in general?
daniel-s well, I have been looking at stuff on github or sourceforge 01:52
sorear niecza... I have trouble prioritizing
daniel-s but almost all of them look to daunting
the longest thing I've created has been about 30 lines
sorear start small. 01:53
if you can't find something useful to do, do something useless
make something useless, because if it's useful you might be tempted to keep it 01:54
01:54 cognominal_ joined
sorear rule of thumb: anything that you make in your first few months will be a maintance nightmare 01:55
alternatively, contribute to someone else's project; then they can clean stuff up
niecza has a nice long TODO list :D
01:57 cognominal left, whiteknight left 02:00 cotto left, cotto joined 02:04 krakan left
colomon niecza: macros? module compatibility? 02:07
p6eval niecza v6-184-g55ff541: OUTPUT«===SORRY!===␤␤Any()Confused at /tmp/Mcl2bt4FhT line 1:␤------> macros⏏? module compatibility?␤␤Undeclared routine:␤ 'macros' used at line 1␤␤Parse failed␤␤»
colomon *sorear:
(sigh)
sorear confused eh. apt. 02:09
right, macros and tests and stuff 02:10
colomon macros are sort of a crazy wish
but tests and modules would be really nic
nice.
and automatically would create additional test code to run, additional issues to fix, etc.... 02:11
sorear daniel-s: could I interest you in the Get Niecza Passing More Tests project? lots of pieces big and small 02:12
colomon is hoping YAPC::NA week means more time for him to hack on Rakudo and Niecza. 02:13
sorear daniel-s: rosettacode might also be fun, although it has fewer big tasks 02:16
colomon: Did anything ever become of your attempt at **? 02:28
daniel-s: still here?
colomon sorear: It's sitting around halfway done. Maybe further, hard to know what I'm missing. :)
daniel-s hey 02:29
sorry, I'm at work atm
sorear: I wouldn't mind helping with niecza
do you mean implement some of the things on rosettacode that haven't been done in perl6 yet? 02:35
TimToady or you could turn some of the rosettacode entries into Tests 02:41
sorear that's what I meant by "rosettacode might also be fun", yes. 02:43
02:50 cotto left 02:52 takadonet joined 03:08 Chillance left 03:19 zby_home__ left 03:22 cotto joined 03:23 Su-Shee_ joined
mikemol (On converting RC entries into unit tests) TimToady++ 03:24
Hm. That gives me an idea. 03:25
03:27 Su-Shee left
daniel-s yea, what does that mean exactly? 03:28
write code implementing something from RC, using parts of perl6 that may or may not have been implemented yet
so that when they are an implementation passes the test? 03:29
mikemol daniel-s: I take it to possibly mean two different things.
TimToady more like, set up tests that one of the implementations passes already, such that other implementations do the same thing
mikemol One, you might take the output of an existing snippet, and test that future versions of compilers give the same result. 03:30
TimToady plus check for regressions in the implementations that do it already
mikemol The other is to test that the language behaves nicely for the problem space, but I think TimToady covers most of that ground.
04:02 Bzek joined 04:03 thou joined 04:12 molaf_ left 04:18 lue joined
dalek kudo/nom: ca7573c | pmichaud++ | src/core/ (2 files):
Add infix:<~~> and things needed for given/when to work.
04:22
kudo/nom: 134f52e | pmichaud++ | src/ (5 files):
jnthn++ recommends "istype" instead of "p6isa".
kudo/nom: 7233ca4 | pmichaud++ | src/core/ (5 files):
Initial infix:<...> sequencing operator.
04:23 satyavvd joined
TimToady rosettacode.org/wiki/Vigen%C3%A8re_cipher#Perl_6 <-- massive use of hypers 04:39
only 3 more and we'll have 300 04:41
jdhore1 THIS! IS! PERL! 6! 04:45
Nope, doesn't work.
sorear TimToady++ # I finally understand soundex 04:46
benabik_ "This is line noise!" "No. This is PERL!!!"
04:47 benabik_ is now known as benabik
jdhore1 benabik, that works fairly well 04:48
pmichaud good evening, #perl6 04:55
TimToady howdees
pmichaud nom: my @a = 1,1,{$^a + $^b} ... * ; say @a[^10]; # checking
p6eval nom: OUTPUT«This type cannot unbox to a native integer␤current instr.: 'exists' pc 213673 (src/gen/CORE.setting.pir:0) (:1413)␤»
pmichaud grrr 04:56
nom: my @a = 1,1,{$^a + $^b} ... * ; say @a[(^10,)]; # checking
p6eval nom: OUTPUT«This type cannot unbox to a native integer␤current instr.: 'exists' pc 213673 (src/gen/CORE.setting.pir:0) (:1413)␤»
pmichaud nom: my @a = 1,1,{$^a + $^b} ... * ; say @a[0,1,2,3,4,5]; # checking
p6eval nom: OUTPUT«Any()Any()Any()Any()Any()Any()␤»
pmichaud *sigh*
not yet, I guess.
sorear helloes pmichaud
needs a rebuild?
pmichaud no, looks like a bugger. 04:57
oh, probably a problem with array assignment.
sorear is afraid to start culling the LHF because daniel-s might come back 04:59
pmichaud nom: my $x := 1,1,{$^a+$^b} ... *; say $x[20]; # testing
p6eval nom: OUTPUT«Method 'at_pos' not found for invocant of class 'Parcel'␤current instr.: 'postcircumfix:<[ ]>' pc 202892 (src/gen/CORE.setting.pir:0) (:248)␤»
pmichaud bah 05:00
nom: my $x := (1,1,{$^a+$^b} ... *).flat; say $x[20]; # testing
p6eval nom: OUTPUT«10946␤»
TimToady
.oO(It's a good thing there's more than one way to do it, because most of them don't work...)
05:01
pmichaud lol
TimToady sorear: pity you had to learn this jaw-cracker of a language first in order to understand soundex :) 05:03
pmichaud TimToady: got a keynote yet? ;-) 05:05
TimToady I've got about six lines in my ideas file so far... :/
but since they want me to talk about "community", I can always just open it up for questions :) 05:06
daniel-s hey
daniel-s is back
sorear Hi!
TimToady Lo!
daniel-s [13:00] * sorear is afraid to start culling the LHF because daniel-s might come back 05:07
were you looking for me?
sorear daniel-s: We never finished talking earlier. But work is more important
daniel-s well, I'm supposed to finish at 4:30 05:08
it's just after 1 at the moment
but since it's my last friday, my boss hinted she might let me go earlier 05:09
i'll PM you when I'm home
sorear Your last friday?
sorear had planned to sleep in 2h... but there are other #perl6ers
daniel-s yea, my contract finishes on 30th of June 05:10
sorear TimToady: do you remember how fudge works? 05:19
benabik Fudge works in a tasty way.
TimToady sorear: vaguely 05:20
sorear I don't really follow the $PENDING and block logic
it bears a certain superficial similarity to gimme5. perhaps if I had ever bothered to study that this would make more sense :) 05:21
I was hoping maybe I could have the globals explained to me... 05:22
TimToady $PENDING lets you say how many tests the # directive covers; a block is counted as one test for that purpose 05:24
sorear wants to add #?if #?elsif #?endif to fudger 05:25
mainly because of the module tests, which do BEGIN { @*INC.push(...) }
05:25 birdwindupbird joined
sorear I can have "use lib" working in niecza within an hour probably, but BEGIN and @*INC will take a lot longer 05:26
05:27 woosley joined
pmichaud just put them in a block and #?niecza skip it ? 05:28
or am I misremembering how that works?
(probably.) 05:29
sorear maybe it would work together with #?DOES 0
and I'd have to skip the use lib for all other implementations
pmichaud you could do #?niecza emit for the use lib lines 05:30
sorear #?niecza emit screws up line numbers 05:32
TimToady how so? wouldn't it just replace the #? line? 05:33
05:34 bakedb joined
TimToady or s/would/should/ 05:34
sorear not quite
although, fixable 05:35
TimToady the original design of fudge was that it never changed line numbers
sorear #?niecza emit foo\n becomes foo
TimToady we may have broken that
sorear I wonder if I would break anything by fixing that 05:36
oh
yes, roast depends on the line gluing
S01-perl-5-integration/modify_inside_p5_p6.t lines 15 and 17 for instance 05:37
TimToady maybe we could leave the comment there as well
that would work in that case 05:39
05:51 TOGoS joined 05:55 TOGoS left
sorear std: "foo" ~~ m/o{1,3}/ 06:06
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Unsupported use of {1,3} as general quantifier; in Perl 6 please use X**1..3 at /tmp/WuHMWHbxKy line 1:␤------> "foo" ~~ m/o{1,3}⏏/␤Check failed␤FAILED 00:01 121m␤»
06:06 wamba joined
dalek ast: 448f109 | sorear++ | S05-metasyntax/repeat.t:
[S05-metasyntax/repeat] Fix syntax in an eval_dies_ok
06:07
06:08 Su-Shee_ is now known as Su-Shee
pmichaud .u infinity 06:09
phenny U+221E INFINITY (∞)
06:10 bakedb left 06:11 Tedd1 left
sorear pmichaud: is it just me, or is quantifier compilation actually really annoying? 06:22
pmichaud it was annoying the first time I did it :)
06:23 koban joined
sorear I'm revisiting it to add a couple features, and the explosion of combinations is hurting my head 06:23
06:24 donri joined
daniel-s .u a hat 06:24
phenny daniel-s: Sorry, no results for 'a hat'.
daniel-s .u a 06:25
phenny U+0061 LATIN SMALL LETTER A (a)
benabik .u â
phenny U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX (â)
daniel-s .u a with circumflex
phenny U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX (â)
benabik Did I guess the right one?
daniel-s yep
benabik I knew how to type it, but not what it was called. :-D 06:26
pmichaud was looking for an actual head covering.
benabik .u hat
phenny U+A271 YI SYLLABLE HAT (ꉱ)
benabik Ah, well.
daniel-s .u circumflex
phenny U+005E CIRCUMFLEX ACCENT (^)
sorear heh, C# thinks (int) double.PositiveInfinity is -2147483648 06:34
NOT POLS
pmichaud bedtime here... may not be around much on fri due to all-day-travel 06:37
dalek kudo/nom: ead83d4 | pmichaud++ | src/core/Parcel.pm:
Let Parcels participate in postcircumfix:<[ ]>.
06:38
kudo/nom: eed7142 | pmichaud++ | src/core/List (2 files):
ListIter should not discard its infinite sublists when it doesn't
06:43 wamba left 06:50 Tedd1 joined 06:58 ttxyr joined
dalek ecza: fa199e9 | sorear++ | / (3 files):
Implement x ** {3} syntax
07:02
07:03 mj41 joined
dalek ecza: 9c59f52 | sorear++ | / (2 files):
Implement "spaces bordering **" rule
07:11
sorear +1 spectest 07:13
(well, +22, +1 file)
sorear sleep 07:16
07:24 daxim joined 07:33 hanekomu joined 07:45 mj41 left 07:46 thou left 07:50 bakedb joined 07:59 jferrero joined
ttxyr sleep 08:05
08:06 daniel-s left 08:08 woosley left 08:10 Pathin joined 08:26 molaf joined
mathw Dear C++, please let me declare two variables of different types in the initialisation part of my for loop. Pretty please! 08:28
08:29 molaf left 08:34 ttxyr left 08:35 Mowah joined 08:41 cbk left
jdhore1 Dear mathw, No. Love C++. 08:44
08:44 wamba joined, satyavvd left 08:45 icwiener joined
mathw bah 08:50
mathw goes looking for a job as a Lisp programmer
jdhore1 Have any of y'all ever taken a look at the Pike programming language, out of curiousity?
mathw I've heard of it, but that's about it
moritz same here 08:51
08:51 satyavvd joined
jdhore1 It feels to me like if it wasn't so damn obscure, it's like the perfect cross between C and Perl IMO 08:52
mathw I just read the Wikipedia entry 08:53
it looks quite interesting
tadzik yeah, it looks like Haskell of systems programming :)
mathw nonsense, Haskell is the Haskell of systems programming
tadzik pardon
moritz likes the composite types 08:54
int|float number;
08:54 cbk joined
mathw yeah 08:54
tadzik it's number int|float;, no?
mathw waves his magic code-manipulation wand and eliminates 14 warnings by changing one line. 08:55
sometimes this 'make it compile cleanly' business is very satisfying...
although then I stop to thinka bout it and get cross that somebody used an int instead of a size_t
08:58 Transformer joined 09:01 Transformer left 09:03 cbk left, daniel-s joined, cbk joined, slavik left
daniel-s ahh, home :) 09:04
09:19 cbk left 09:24 awoodland joined 09:26 mj41 joined 10:08 jerome_ joined, jerome_ left 10:20 wamba left 10:22 [particle] left 10:27 MayDaniel joined 10:30 REPLeffect left 10:31 MayDaniel left 10:33 REPLeffect joined 10:48 pernatiy joined 10:49 [particle] joined 10:55 HarryS joined 11:01 mj41 left
jnthn ohai :) 11:05
11:08 Teedev joined 11:10 hanekomu left
moritz \o 11:15
11:18 daniel-s left 11:24 ab5tract joined 11:31 satyavvd left 11:33 Grrrr left 11:37 Grrrr joined 11:38 Teedev left 11:44 awoodland left 11:48 JimmyZ joined 11:51 Teedev joined 11:57 Mowah left 11:58 lichtkind joined
lichtkind moritz: what perl 6 topic you want to talk about in GPW? 12:00
moritz lichtkind: I probably won't attend any perl-related conferences/workshops this year 12:01
lichtkind moritz: allright because i want to speak about lists in perl 6 ans wanted be shure there is no overlap 12:02
moritz lichtkind: does that mean you understand lists?
lichtkind i hope so
moritz lichtkind: then you're a step ahead of me 12:03
lichtkind moritz: whats so difficult on lazy lists? 12:04
moritz to know when/if they flatten, when/if they reify or stay lazy, how they deal with infinity
just to name the three most obvious problems 12:05
lichtkind moritz: you propably know more about that and yes there are some tricky cornercases
moritz my @a = 1...10; # layz? 12:06
erm, lazy
lichtkind i would think so
moritz my @a = 1...*; # lazy? or loops?
and if those cases are lazy, what about
my @a = 1 ... 10; my @b = @a; push @a, 20; # does that affect @b? 12:07
lichtkind it doesnt :)
moritz why not?
lichtkind because its a copy
12:08 orafu left
lichtkind not a reference to the same array 12:08
moritz but if it's lazy, it must use the same generator internally, no?
12:08 orafu joined, fhelmberger left
lichtkind only when bound or as long optimzation would aloow 12:09
allow
moritz what about my $x = 5; my @a = gather { take $x for ^5 }; $x = 6; my @b = @a; # what's in @b? 12:11
lichtkind mom 12:13
moritz perl6: my $x = 5; my @a = gather { take $x for ^5 }; $x = 'NEW'; say ~@a 12:14
p6eval pugs, rakudo b2bc99, niecza v6-186-g9c59f52: OUTPUT«5 5 5 5 5␤»
moritz perl6: my $x = 5; my @a := gather { take $x for ^5 }; $x = 'NEW'; say ~@a
p6eval rakudo b2bc99, niecza v6-186-g9c59f52: OUTPUT«NEW NEW NEW NEW NEW␤»
..pugs: OUTPUT«5 5 5 5 5␤»
moritz ah, the default pugs backend isn't lazy, it seems 12:15
lichtkind why dont let me think for a min 12:16
moritz you can think however long you want :-)
lichtkind i think rakudo is right
moritz it gets more interesting if you put an infinite loop inside the gather
perl6: my $x = 5; my @a := gather { loop { take $x } }; $x = 'NEW'; say ~@a[^5] 12:18
perl6: my $x = 5; my @a = gather { loop { take $x } }; $x = 'NEW'; say ~@a[^5]
p6eval pugs: OUTPUT«(timeout)»
..rakudo b2bc99: OUTPUT«NEW NEW NEW NEW NEW␤»
..niecza v6-186-g9c59f52: OUTPUT«===SORRY!===␤␤Any()Confused at /tmp/Zrk2lABym2 line 1:␤------> = 5; my @a := gather { loop { take $x }⏏ }; $x = 'NEW'; say ~@a[^5]␤␤Parse failed␤␤»
pugs, rakudo b2bc99: OUTPUT«(timeout)»
..niecza v6-186-g9c59f52: OUTPUT«===SORRY!===␤␤Any()Confused at /tmp/nZeh4KVVHk line 1:␤------> x = 5; my @a = gather { loop { take $x }⏏ }; $x = 'NEW'; say ~@a[^5]␤␤Parse failed␤␤»
moritz std: my $x = 5; my @a = gather { loop { take $x } }; $x = 'NEW'; say ~@a[^5] 12:19
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Confused at /tmp/MzMTG6VHYv line 1:␤------> x = 5; my @a = gather { loop { take $x }⏏ }; $x = 'NEW'; say ~@a[^5]␤ expecting horizontal whitespace␤Parse failed␤FAILED 00:01 123m␤»
moritz what's confusing there?
moritz confused at the confusion
lichtkind they dont do it like spec demands it 12:20
jnthn moritz: Confuses me also. 12:26
moritz: STD bug maybe...odd one though.
moritz std: my $x = 5; my @a = loop { take $x }; $x = 'NEW'; say ~@a[^5] 12:27
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'loop' used at line 1␤Check failed␤FAILED 00:01 123m␤»
moritz std: my $x = 5; my @a = gather loop () { take $x }; $x = 'NEW'; say ~@a[^5]
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Malformed loop spec at /tmp/2TsfaMS8Dj line 1:␤------> my $x = 5; my @a = gather loop (⏏) { take $x }; $x = 'NEW'; say ~@a[^5]␤ expecting term␤Parse failed␤FAILED 00:01 122m␤»
12:28 wamba joined
moritz STD.pm6 even uses loop { } itself 12:29
std: loop { } 12:30
p6eval std 37a0cdd: OUTPUT«ok 00:01 117m␤»
moritz std: loop { take my $x }
p6eval std 37a0cdd: OUTPUT«ok 00:01 120m␤»
moritz std: gather loop { }
p6eval std 37a0cdd: OUTPUT«ok 00:01 118m␤»
moritz std: my @a = gather loop { }
p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
moritz std: my @a = gather loop { take my $x }
p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
moritz std: my @a = gather loop { take my $x }; 1
p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
moritz all the simpler variants of the same thing seem to work 12:31
12:33 Teedev left 12:37 bluescreen10 joined 12:44 molaf joined 12:47 Holy_Cow joined, Holy_Cow left 12:50 Mowah joined 12:55 kanishka joined 12:56 karupanerura joined 12:57 skangas left, Chillance joined 12:59 mtk left
PerlJam wonders why people still feel the need to express their opinion that "Perl 6 is a bad name" 13:03
13:04 wamba left 13:05 mtk joined
lichtkind camelia is much worse name 13:14
its something here have woman between their legs :)
moritz (there's a German sanitary towel which is called "Camelia") 13:15
jnthn oh...lichtkind made me think it was worse than that :)
moritz ... which is why I tried to explain :-) 13:16
jnthn :)
13:22 kanishka left
pmichaud good morning, #perl6 13:23
13:23 wamba joined
pmichaud (on the road) 13:23
lichtkind pmichaud: moinsen 13:25
PerlJam pmichaud: good morning (and watch out for traffic! :) 13:27
pmichaud it's probably better if I don't watch. :) 13:29
moritz depends on who does the driving :-) 13:30
13:30 Mowah left
jnthn o/ pmichaud 13:31
moritz pmichaud: 10 of the files in src/core/ already have ACCEPTS methods - should I remove adding ACCEPTS methods from LHF.markdown?
pmichaud moritz: sure thing 13:32
13:33 estrabd joined
jnthn pmichaud: Have we any Nil support? 13:34
moritz nom: fail(3)
p6eval nom: OUTPUT«3␤current instr.: 'fail' pc 186280 (src/gen/CORE.setting.pir:0) (:124)␤»
jnthn pmichaud: Or, what is Nil? 13:35
moritz nom: say "foo\n".chomp
p6eval nom: OUTPUT«Method 'chomp' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 78 ((file unknown):101) (:1)␤»
pmichaud nom: say (1, 2, Nil, 3, 4, Nil, Nil, <eggs and>, Nil)
p6eval nom: OUTPUT«12Nil34NilNileggsandNil␤»
moritz nom: say "foo\n".substr(-1)
p6eval nom: OUTPUT«␤␤»
pmichaud oops
jnthn nom: Nil
p6eval nom: ( no output )
pmichaud nom: say Nil ~~ Iterable
p6eval nom: OUTPUT«Bool::True␤» 13:36
pmichaud hmmmmmm
oh, I know what's wrong
anyway, we have Nil defined, yes.
jnthn pmichaud: OK...I worked out what's going on
pmichaud (it's currently an Iterator)
jnthn We were getting away with looking up lexicals that weren't declared before. 13:37
I twiddled Perl 6's lexpad to complain loudly about that...maybe I shouldn't do that :)
dalek kudo/nom: b03bf28 | moritz++ | LHF.markdown:
ACCEPTS is not a LHF anymore
pmichaud maybe it should complain not loudly :) 13:38
13:38 grandmoun joined
grandmoun Hi guys! 13:38
pmichaud btw, I may lose my connection at any time :)
moritz hello grandmoun 13:39
grandmoun I'm a bit confused! I'm searching for a way to parse google result using perl
hi moritz!
13:39 pernatiy left
jnthn pmichaud: Initial patches for natively typed leixcals not far off. :) 13:39
pmichaud jnthn: coool 13:40
13:40 pernatiy joined
moritz that would make some parts of the setting much faster, I hope 13:40
grandmoun I found those perl module HTML::TreeBuilder and HTML::TreeBuilder::Xpath
jnthn moritz: hm, maybe :)
PerlJam grandmoun: first, a sanity check. when you say "using perl" do you mean Perl 5 or Perl 6 ? 13:41
jnthn moritz: Maybe a smaller win until we get handling of them in more places, and big win will be when we can inline ops.
moritz jnthn: hm right, the ops still (un)box all over the place
grandmoun perl 5.8 for the moment
pmichaud ...we can get a win from nested blocks, perhaps?
moritz grandmoun: then this is not the right channel for you 13:42
PerlJam grandmoun: then you probably want #perl or #perlhelp
grandmoun ok!
thanks
PerlJam grandmoun: good luck!
moritz wonder why people join #perl6 when they want to talk about Perl 5 problems 13:44
jnthn pmichaud: Perhaps so. If we use nqp::add_i and such with them, it'll be a nice win.
13:45 grandmoun left
moritz do they just think this is the 6th perl channel? 13:45
jnthn moritz: Becasue they don't know that Perl 6 is sufficiently different from Perl 5 to think it'd matter, perhaps.
pmichaud jnthn: yes. we might be able to inline the register cases fairly quickly -- not as much analysis required there (and the type of the variable is explicitly declared) 13:46
jnthn pmichaud: Well, it's kinda the same amount of analysis in a sense - but we do have the type info, yes :)
PerlJam moritz: perhaps they search for "perl", get a list of channels, then randomly choose one because they have no way to distinguish the relative merits of each. 13:47
13:47 jaldhar left 13:48 ab5tract left, pernatiy left
moritz PerlJam: sounds plausible 13:51
nom: my Str $x = 4; 13:52
p6eval nom: OUTPUT«Rebuild in progress␤»
moritz sorear++ I assume :-)
13:55 pernatiy joined
JimmyZ just saw a website: rakurakupress.com, which looks like rakudo.org 13:56
13:58 frew joined, cogno joined
jnthn nom: my Str $x = 4; 13:59
p6eval nom: OUTPUT«Type check failed in assignment to '$x'; expected 'Str' but got 'Int'␤current instr.: '_block1002' pc 28 ((file unknown):0) (:1)␤»
jnthn nom: my str $x = 4;
p6eval nom: OUTPUT«Type check failed in assignment to '$x'; expected 'str' but got 'Int'␤current instr.: '_block1002' pc 28 ((file unknown):0) (:1)␤» 14:00
jnthn heh :)
moritz nqp: say(pir::open('nonexistent').error) 14:01
p6eval nqp: OUTPUT«error:imcc:The opcode 'open_p' (open<1>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 34␤»
moritz nqp: say(pir::open__ps('nonexistent').error)
p6eval nqp: OUTPUT«Unable to open filehandle from path 'nonexistent'␤current instr.: '_block1000' pc 0 ((file unknown):1)␤»
moritz nqp: say(pir::open__ps('nonexistent'))
p6eval nqp: OUTPUT«Unable to open filehandle from path 'nonexistent'␤current instr.: '_block1000' pc 0 ((file unknown):1)␤»
moritz nqp: try { say(pir::open__ps('nonexistent')) } 14:02
p6eval nqp: ( no output )
moritz nqp: try { say(pir::open__ps('nonexistent')); say "Error: $!" }
p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:239)␤»
pmichaud does try { } work in nqp eyt? 14:03
*yet?
jnthn Think so
But that say needs parens.
pmichaud oh, nqp
I was thinking "nom"
ETOOSIMILAR
jnthn ah, no idea :)
moritz nqp: try { say(pir::open__ps('nonexistent')); say("Error: $!") }
p6eval nqp: OUTPUT«Symbol '$!' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (compilers/pct/src/PCT/HLLCompiler.pir:107)␤»
jnthn Similar? Only one letter in common :P
14:03 molaf left
moritz nqp: try { say(pir::open__ps('nonexistent')); say("Error: $_") } 14:04
p6eval nqp: OUTPUT«Symbol '$_' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (compilers/pct/src/PCT/HLLCompiler.pir:107)␤»
moritz nqp: try { say(pir::open__ps('nonexistent')); CATCH { say("Error: $_") } }
p6eval nqp: OUTPUT«Error: Unable to open filehandle from path 'nonexistent'␤»
pmichaud they're all ascii characters. both a 3 letters long. I can find plenty of similarities :)
moritz \o/
jnthn Try saying "om nqp nqp" out loud. :P
moritz nom: try { die "foo"; CATCH { say $! } }
p6eval nom: OUTPUT«Method 'blocktype' not found for invocant of class 'PAST;Op'␤current instr.: 'nqp;Perl6;Actions;push_block_handler' pc 22073 (src/gen/perl6-actions.pir:7210)␤»
pmichaud nom: say "om nqp nqp" <out loud>; 14:08
p6eval nom: OUTPUT«Confused at line 1, near "say \"om nq"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
jnthn :P 14:09
jnthn tries to add lexical_6model to go with our attribute_6model scope in PAST::Var. 14:10
pmichaud yes, redeveloping past into nqp is moving higher on my priority list :)
14:10 mantovani left
moritz JimmyZ: fwiw I see no similarity to rakudo.org at all 14:11
jnthn pmichaud: Yes, then I can write an optimizer... :) 14:12
14:13 spq1 joined 14:14 cogno left 14:16 pernatiy left, cogno joined
JimmyZ moritz: the site is called 楽楽钥匙, which is a bit similar with 楽土, 14:16
14:18 wamba left 14:19 pernatiy joined
TimToady that's a strange mix of japanese and chinese characters... 14:23
JimmyZ saw it today morning, from a journal 14:24
TimToady 楽 is 樂 or 乐 in chinese, normally 14:25
JimmyZ yes
TimToady and 钥匙 is simplified
well, the first one
JimmyZ I don't know why, that journal is written in japanese 14:27
TimToady the japanese like to think that all chinese characters are part of japanese too :)
even if they only use 2000 or so of them for most things
JimmyZ I guess that journal was written by chinese people, who may be not good enogh at japanese 14:29
14:29 PacoLinux left
TimToady I can see why that notion is attractive; I've been having enormous fun going through the Unicode CJK extension B and classifying all the characters 14:29
JimmyZ *enough
14:29 cogno left, PacoLinux joined
JimmyZ and Korean? 14:30
TimToady some of them are pretty easy to classify, like 𪚥
don't do much korean yet
just know a few phrases
though I should learn the syllabary someday
jnthn looked at the syllabary a while ago and found it awesome :) 14:31
Suspect I forget a most of it again by now though.
s/a//
TimToady it's pretty well designed, by the standards of "philosophical languages"
otoh, sometimes you want a language in which similar things look different 14:32
JimmyZ Korean is a good language, it learned advantage from chinese and japanese
yes, it's very pretty well designed 14:33
TimToady an English syllabary would have to do something similar to account for all the consonant clusters 14:34
you can get away with an arbitrary syllabary in Japanese only because it's a CV language
as it is, syllable-final n is thought of as a separate syllable
well, mora 14:35
same for doubled vowels and consonants 14:36
but the structure is easy enough to to a simple syllabary
in English you'd have to account for words like strengths
pmichaud losing network signal soon 14:37
bbl
TimToady peddle hard
14:37 masak joined
masak oh hai from FPW 14:37
pmichaud bonjour 14:38
masak I have a mystery question.
for the old-timers around here.
what's "skip" and how did it work?
TimToady looks around for old-timers...
masak specifically, how did it differ from "next"?
it's documented as implemented in github.com/parrot/parrot/blob/RELE...rl6/README
I looked around in the source code, but can't find anything substantial besides the fact that it's being parsed. 14:39
jnthn o/ masak
masak jnthn: \o
jnthn masak: How's FPW?
masak it's very French :)
TimToady masak: I suspect it was what we now call "succeed" 14:40
jnthn masak: Ой ля ля!
masak I'm enjoying myself. but I can't get my brain to parse everything.
TimToady: oh!
TimToady: that congrues with it being used in a 'when' statement.
so it was 'skip' -> 'break' -> 'succeed'?
TimToady yeah, and p5 picked it up at the 'break' point 14:41
14:41 mj41 joined
masak :P 14:41
TimToady alas
masak well, they can't wait around forever for us to find the right word...
Perl 5 needs to snapshot our progress on the way to our eventual goal.
anyway, thanks for clearing up that mystery. 14:42
other news: BooK gave a talk at a .nl PM meeting where he showed how to build Sierpinski triangles using git commits and their "parent" relation. he then said that it couldn't be done recursively. 14:44
this morning when I saw him again, I sat down and figgered out how to do it recursively. :)
now the only thing that remains is to implement it.
14:45 koban left
TimToady niecza: constant @foo = 1,@foo; say @foo[3] 14:47
p6eval niecza v6-186-g9c59f52: OUTPUT«Any()␤»
TimToady aw
masak isn't that correct? 14:48
I mean, wouldn't the assignment happen only once?
TimToady it's not really assignment
it's initialization
masak it's not a binding, and there's no delayed evaluation.
TimToady it is a binding, really...
masak ok.
TimToady most initializers are more like binding 14:49
masak so the 'constant' imposes binding semantics?
what about the delayed evaluation? I don't see any curly braces or whatevers...
TimToady if it's binding, it's not eager 14:50
masak does 'constant' impose a thunk on the RHS?
ooh.
right, so the binding semantics imposes (mostly?) lazy semantics on the RHS.
TimToady niecza: constant @integers = 0..*; say @integers[42] 14:51
p6eval niecza v6-186-g9c59f52: OUTPUT«42␤»
TimToady otoh, I think pseudoassignment = borrows flat from assignment
flat and lazy, like a slime mold 14:52
masak :P
TimToady rakudo: my @foo; @foo.plan: 1, @foo; say @foo[3] 14:53
p6eval rakudo b2bc99: OUTPUT«Method 'plan' not found for invocant of class 'Array'␤ in main program body at line 22:/tmp/lSS6Jex4NC␤»
TimToady niecza: my @foo; @foo.plan: 1, @foo; say @foo[3] 14:54
p6eval niecza v6-186-g9c59f52: OUTPUT«Any()␤»
TimToady um...
niecza: my @foo; @foo.plan: 1..5; say @foo[3]
p6eval niecza v6-186-g9c59f52: OUTPUT«4␤»
TimToady niecza: my @foo; @foo.plan: 1..5, @foo; say @foo[3] 14:55
p6eval niecza v6-186-g9c59f52: OUTPUT«4␤»
TimToady niecza: my @foo; @foo.plan: 1, |@foo; say @foo[3] 14:56
p6eval niecza v6-186-g9c59f52: OUTPUT«Any()␤»
TimToady looks like .plan is clobbering the identity of the array somehow
or somethin'
14:57 cogno joined, daxim left 14:59 mj41 left, woosley joined
Util TimToady++ # for rosettacode.org/wiki/Vigenère_cipher#Perl_6 15:00
TimToady I just wish we had a .nfkd so I could use the accented name as the key... 15:03
15:05 mkramer joined, mkramer left
masak sorry, .nfkd ? 15:06
TimToady canonical decomposition 15:07
er, compatible
if .nfkd does that... 15:08
15:08 ab5tract joined
TimToady anyway, I can't think of a good way to look up the base char 15:08
masak somewhere in Perl 6 that functionality has to exist. 15:09
even if it's in a module or other.
moritz maybe .normalize(Normalization::NKFD)
moritz doesn't want another 4 methods in Str or Cool
masak no, indeed. 15:10
15:10 cogno left
TimToady well, it would be less of an issue if .^methods worked as specced 15:10
at least for Cool
masak @quietfanatic on Twitter asked the other day "How many primitives are too many, and how will you know when to stop?" or something in that vein.
moritz TimToady: only less of an issue for introspection 15:11
TimToady how many words are there in English?
masak then he an @luqui got into a discussion about modularization.
TimToady we are primarily designing a human language here, not an axiomatic system, despite the computer's sincere desire for such... 15:13
masak fwiw, I personally can accept that the setting is quite big. having things like 'max' and 'lcm' in there is very good, I think.
it not only helps when writing one-liners, but also to prevent redesigning of wheels, etc.
TimToady if a concept is universal, it should have a universal-ish word, is one approach
it's when 20 different concepts compete for the same slot that we get phpitis. 15:14
masak or 20 different slots competing for variations of the same concept... :)
TimToady when you can't express the universal concept generically enough, it causes a name explosion
we'd certainly like to avoid that 15:15
15:15 PhatEddy joined
TimToady but uni-code is going to be pretty uni-versal 15:15
so one should avoid knee-jerk reactions on both sides of the issue 15:16
masak TimToady: did you read tchrist's recent StackOverflow rant? anything in there which applies to how we're doing things in Perl 6?
TimToady doubtless, which I will consider when I'm revising that chapter of the Camel. :) 15:17
masak mathw's reaction was "Unicode is hard", which I guess was tchrist's intent. 15:18
TimToady at the moment I'm stuck in the middle of chapter 4
masak control structures?
TimToady Unicode, like Perl 6, is trying to do something impossible, and largely succeeding.
masak :P
TimToady yes
mathw yes but unicode is inevitably going to be hard
masak hah, I know the chapters of the Camel thanks to Sxx.
how backward. 15:19
mathw: right. as will computing in general, up to accidental complexity.
mathw right
TimToady "For one so backward, you're far too forward." --TROTGTSOTC
15:19 jimmy1980 left
mathw but a single encoding system for every script on the planet... that's head-bending 15:19
huf what's this crazy acronym? 15:20
ah
PhatEddy Since we seem to have a good crowd I would like to announce that I am getting close to preparing a new version of the Perl6 URI module from the github branch here github.com/ihrd/uri/tree/uri_iface_01a 15:21
huf google found the channel logs
TimToady
.oO(a single computer language for every script on the planet... that's head-bendinger)
PhatEddy I am interested in any feedback I can get before merging with master.
masak wow, I could actually decipher that acronym. haven't seen the musical, tho'. 15:22
TimToady I've played it (in the orchestra)
15:22 mkramer joined
masak TimToady: drums? 15:22
15:22 mkramer left
TimToady no, concertmaster 15:22
masak ah; maestro.
TimToady only when the director hands me the baton 15:23
which never happened in that musical
masak oh.
TimToady I've conducted several others though
masak in a way a task very analogous to your job here in the Perl 6 community :) 15:24
TimToady Oklahoma, My Fair Lady for instance
15:24 jimmy1980 joined, slavik joined
PhatEddy The new URI module version has a description of what's new here in the ChangeLog - github.com/ihrd/uri/blob/uri_iface.../ChangeLog 15:25
15:25 kaare_ joined
TimToady looks sane, but I'm not a URI expert... 15:26
masak PhatEddy: nice.
PhatEddy: what do you mean by "parsing constructor"?
does it simply mean that all the computations are done at object creation?
TimToady as an orchestra conductor I only know how to speak loudly and carry a small stick... 15:27
PhatEddy masak: just my URI $x .= new('www.perl.com') as opposed to the old way where you would "new" and then "init"
masak TimToady: I would laugh out loud, but I'm in BooK's audience... :)
PhatEddy: ah. tres bien. 15:28
PhatEddy Thanks to all for looking and if you have any suggestions I can be reached from github or (ocassionally) here ... 15:29
masak #perl6 early, #perl6 often...
Su-Shee ouch :) 15:31
masak maybe I need to work on the precise wording of that. 15:32
15:32 bakedb left 15:35 karupas joined 15:37 karupanerura left 15:38 cognominal_ left 15:42 pernatiy left 15:45 noganex_ left 15:48 cotto left 15:52 bakedb joined 15:54 Mowah joined
colomon TimToady: You've conducted My Fair Lady?! 15:55
TimToady the 2nd chair violist did not like the Hungarian Rhapsody solo sprung on her suddenly. :) 15:56
*violinist
I guess I did No, No, Nanette too 15:57
colomon I've played in the pit for about twenty shows, but certainly never conducted.\ 15:59
15:59 noganex joined
masak oh crap. BooK just promised everyone that I will do a lightning talk to show off my yet-to-be-written mutually recursive Sierpinski-DAG-creating functions... :) 16:00
I shouldn't have said anything to him. 16:01
TimToady the first time I did the dream sequence in Oklahoma, I made the ballet dancers go too fast :)
slavik lol
16:01 skangas joined, thou joined
masak maybe someone in here would like to write the functions? I have to write a talk until tomorrow... 16:01
TimToady had better clean up brush before the sun gets too hot
masak I can give specific instructions. I've already worked it out on paper. 16:02
masak prepares a gist
tadzik colomon: played what? 16:07
or: on what
colomon tadzik: bassoon is my normal instrument, and I've also frequently been tasked with covering bari sax and (bass?) clarinet parts on it. I've also played a little bit of keyboard, whistles, and misc trivial percussion instruments in the pit. 16:08
16:10 buubot_backup left
tadzik I got back to playing the piano for the last few days 16:11
wondering if it will last, or will I stop again
16:15 mkramer joined, mkramer left
Util masak: oh crap indeed. RosettaCode has lots of different solutions for Sierpinski triangle and Sierpinski carpet, if you need inspiration. 16:17
16:17 karupas left
Util is still writing talk for YAPC::NA Monday :( 16:18
masak Util: is any of them recursive and DAG-based? 16:19
colomon hasn't even started writing his talk for YAPC::NA Wednesday. 16:20
16:20 zby_home_ joined
Util masak: recursive: rosettacode.org/wiki/Sierpinski_triangle#BASIC 16:21
16:22 wolfman2000 left
masak here are my loose thoughts on the subject: gist.github.com/1045125 16:23
masak looks at Util's link
Util: yes, but no :)
Util: BooK is using Git, so the basic assumption is that we're using DAGs. :)
tadzik better dags than kgs 16:24
masak doing it recursively with coordinates is arguably a simpler problem.
Util looks at masak's Gist
masak the interesting thing with the DAG problem is that the subtriangles have nontrivial interdependencies. 16:25
oh, and I should be clear: if you help me solve this before tomorrow afternoon, you'll most likely be in a lightning talk at FPW. :) 16:26
the gist contains all I know about the solution, and I think it completely outlines an actual implementation. 16:27
optional parameters in Perl 6 come in handy with all the nodes needing to be passed around.
Util Would it be simpler to rotate the diagram/conceptual-model 90deg counter-clockwise?
Reminder: Merges have two parents. 16:28
Util might have no idea what he is taking about :(
masak Util: in my pictures, parents point upwards. so we might be meaning the same thing. 16:29
sometimes Git commit diagrams are drawn top-down, sometimes left-to-right.
16:29 buubot_backup joined, kaare_ left
masak buubot_backup: eval say "hooray!" 16:29
buubot_backup masak: ERROR: syntax error at (eval 28) line 1, near "say "hooray!""
Util I wish I had more time; The coding group at Atlanta.pm has been hacking on Tree::DAG_Node module for over a year
16:29 ab5tract left
moritz buubot_backup: eval: use 5.010; say 'hooray'; 16:30
buubot_backup moritz: hooray 1
Util so I am rather steeped in DAGs by now.
masak moritz++
moritz buubot_backup: eval: use 5.010; say 'hooray ';
buubot_backup moritz: hooray 1
moritz buubot_backup: eval: use 5.010; print 'hooray';
buubot_backup moritz: hooray1
masak Util: the Node class in this case can be simple: it just needs to do .new(:@parents)
moritz buubot_backup: eval: use 5.010; print 'hooray ';
buubot_backup moritz: hooray 1
masak buubot_backup: eval: use 5.010; print "I will always end my utterances with the number "; 16:33
buubot_backup masak: I will always end my utterances with the number 1
masak buubot_backup: eval: use 5.010; say "for me, you are the only " 16:34
buubot_backup masak: for me, you are the only 1
masak awww
dalek p: abb69d9 | jonathan++ | / (3 files):
Bump to latest Parrot version to get natively typed lexical support and update NQPLexInfo/NQPLexPad to cope with that.
16:36
p: 97315f3 | jonathan++ | src/PAST/SixModelPASTExtensions.pir:
Add lexical_6model scope that knows how to look at the type and pick the correct register type when fetching/storing lexicals.
masak natively typed lexicals! \o/
tadzik o-ho
masak World Domination grows ever closer.
jnthn Calm down, there's still plenty of work to do yet before they're useful :P 16:37
masak I'm sorely tempted to attack the Sierpinski problem myself, mind. but I need to dedicate tuits towards getting my talk done for tomorrow. 16:38
jnthn Sleep is overrated ;) 16:39
masak point.
colomon really, it's not overrated. in the least.
jnthn hehe :)
jnthn spent this morning catching up on sleep lost over the past week and a half :)
masak time to disappear. see y'all later. 16:40
colomon is catching a 6:30 AM flight to YAPC::NA, mind you, so he's apparently not practicing what he preaches.
16:40 masak left, sivoais left
jnthn colomon: ugh, early 16:40
dalek kudo/nom: b697a48 | jnthn++ | src/pmc/perl6lexpad.pmc:
Update Perl6LexPad to know about natively typed lexicals. Note, this doesn't mean they work yet, just that the underlying storage support is updated.
16:42
kudo/nom: fd11858 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP revision to get bits needed for native lexicals support.
colomon jnthn: I've at least gotten a hotel near the airport, so I only have to get up silly-early rather than insanely early. 16:43
jnthn colomon: Oh, that's not so bad. 16:44
jnthn needs to remember to book travel to YAPC.
tadzik oh, thanks
a travel and a hotel 16:45
jnthn Ah, the hotel bit I did :)
colomon jnthn: yeah, I only very briefly considered waking up at 2:30 am to drive to the airport. ;)
tadzik jnthn: any hints?
jnthn Waking up at 2:30am sounds so odd. That's the time I often go to sleep :P
tadzik I wouldn't go to sleep then :)
jnthn tadzik: Some of us are staying at www.booking.com/hotel/lv/konventasetariga.html 16:46
tadzik Free! Wi-fi is available in the entire hotel and is free of charge 16:47
like
colomon but does it actually work? I've had lots of bad experiences with hotel wi-fi (free or not)...
tadzik I guess I'll go for 13-17 16:48
jnthn colomon: It depends on the hotel, and also on the country and what laws they have. 16:53
colomon also on how many geeks are using their laptops at once. 16:54
jnthn colomon: I've seen all sorts. Open wifi network, places where it's free and reception gives you access tokens, places where they carefully make a copy of your passport when giving you the tokens for wifi access so they know who did what... 16:55
(not because the hotel cares, but because that's the law in some silly countries)
tadzik "Pets are allowed on request. No extra charges". Funny, I thought about zebras... 16:58
jnthn I'm...er...not sure they'd consider that a pet :)
17:00 woosley left 17:01 cotto joined, cdarroch joined, cdarroch left, cdarroch joined 17:03 birdwindupbird left
PerlJam pmichaud: ping 17:05
TimToady nom: say (1, 2, Nil, 3, 4, Nil, Nil, <eggs and>, Nil).gist
p6eval nom: OUTPUT«1 2 Nil 3 4 Nil Nil eggs and Nil␤»
TimToady nom: say (1, 2, Nil, 3, 4, Nil, Nil, <eggs and>, Nil) 17:06
p6eval nom: OUTPUT«12Nil34NilNileggsandNil␤»
TimToady wonders why that arg to say isn't .gisting
jnthn nom: Nil.gist.say
p6eval nom: OUTPUT«Nil␤»
PerlJam pmichaud: a minor thing ... your document on "relationship mangagers" still has <person1> and <person2> further down in the text from where you added your and moritz's names 17:07
17:08 JimmyZ_ joined
TimToady pm is in travel mode 17:08
17:09 bakedb left 17:10 JimmyZ left, JimmyZ_ is now known as JimmyZ
PerlJam he'll back log at some point 17:12
17:13 kanishka joined 17:17 cotto left
sorear good * #perl6 17:18
slavik sorear: likewise
dalek kudo/nom: 90aa408 | jnthn++ | src/Perl6/ (3 files):
Start to more properly support natively typed lexicals, including assignment to them. This also fixes assignment to natively typed attributes. An assignment from a natively typed attribute to a natively typed lexical, or an assignment with int and num literals on the RHS, never boxes along the way and always works in terms of natives. Boxing is done in many situations as needed, including calls (so you don't tend to want to use natives yet unless
17:19
17:21 hanekomu joined
jnthn pmichaud: (for when you backog) See 90aa408. Note that for now if you want to use these and do ops, I advise using nqp::add_i and so forth. We need to build the inliner before we get infix:<+> really working there. 17:21
pmichaud: It works now but boxes on demand, which is a bunch of waste.
sorear moritz: what is confusing is the } } 17:22
jnthn pmichaud: BTW, PAST::Want is a wonderful thing. pmichaud++
o/ sorear 17:23
17:29 cotto joined 17:34 PhatEddy left 17:36 awoodland joined 17:43 mj41 joined, wamba joined
felher std: my @array = 1,2,3,4; sub change(@array) { @array.pop(); } ; change(@array); 17:53
p6eval std 37a0cdd: OUTPUT«ok 00:01 124m␤»
felher Hm... How is that 'ok'? Aren't containers also immutable by default according to S06? 17:55
sorear felher: STD is just a parser 17:58
17:59 mkramer1 joined 18:00 mkramer1 left
felher sorear: Ah, okay. And niecza, rakudo and pugs just don't implement immutable containers at the moment? 18:02
jnthn felher: If all the implementations agree, it may also be that your expectations are wrong. :) 18:03
sorear felher: we consider S06 dubious there; passing arrays needs to be cheap and it's not at all obvious how to cheaply make an array readonly 18:04
18:05 mantovani joined
flussence can't you just swap out all the mutator methods for "{ !!! }" bits? 18:05
felher jnthn: Yeah, sure, and most of the time they indeed are :) But i thought sorear implied my expectations to be correct :)
18:05 mantovani left
felher sorear: Ah, okay, thnx. 18:05
TimToady rosettacode.org/wiki/First-class_fu...sly#Perl_6 18:11
18:16 JimmyZ left, mkramer joined, mkramer left
TimToady rakudo: say *.sin === &sin 18:18
p6eval rakudo b2bc99: OUTPUT«_block1092␤»
TimToady o_O
colomon ha!
TimToady how do I do that? 18:19
rakudo: say [===] *.sin, &sin
p6eval rakudo b2bc99: OUTPUT«Bool::False␤»
sorear rakudo: say &infix:<===>(*.sin, &sin)
p6eval rakudo b2bc99: OUTPUT«Bool::False␤»
TimToady seems like that could be optimized
well, maybe not so easily 18:20
colomon &sin / *.sin could be optimized, you mean? 18:21
TimToady with enough knowledge, yeah
colomon sure, with enough knowledge and power. :)
sorear problem 1: WhateverCode adds an additional binder, which changes the semantics by disallowing extra arguments (you can't pass :base() to the WhateverCode)
TimToady in the typical program they'd be identical
hmm 18:22
sorear problem 2: &sin is statically bound to the current $?TRIGBASE setting, while *.sin uses CALLER::<$?TRIGBASE>
TimToady well, maybe the mythical method inliner will save the day
jnthn TimToady: I think === is turning into a curried block there.
TimToady yes, we figgered 18:23
colomon jnthn: right.
jnthn (because the LHS is a WhateverCode)
sorear problem 3: What if somebody defines a sin method that doesn't behave the same as the sin multi?
jnthn Dunno if it belongs on the exclusion list or not ;)
TimToady that's the "enough knowledge" part
perl6: say [===] (sin *), &sin 18:24
p6eval niecza v6-186-g9c59f52: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'sin' used at line 1,1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1133 (STD P6.comp_unit @ 30) ␤…
..rakudo b2bc99: OUTPUT«Method 'sin' not found for invocant of class 'Whatever'␤ in 'sin' at line 2137:src/gen/core.pm␤ in main program body at line 22:/tmp/F3w5803Mgq␤»
..pugs: OUTPUT«␤»
colomon :\ 18:25
oh, I see
TimToady the Q is whether prefix:<sin> is considered a unary operator
I guess it's not 18:26
18:26 snarkyboojum left
sorear there are only a handful of unary operators in Rakudo and STD 18:27
colomon rakudo: say [===] (abs *), &abs
p6eval rakudo b2bc99: OUTPUT«Bool::False␤»
sorear I think this is a bug; I wonder if it would cause problems if I went through perlop/perlsyn and made unary all the operators that were unary in Perl5 (and haven't changed in an invalidating way) 18:28
rakudo: say [===] *.&sin, &sin
p6eval rakudo b2bc99: OUTPUT«Method 'sin' not found for invocant of class 'Whatever'␤ in 'sin' at line 2137:src/gen/core.pm␤ in main program body at line 22:/tmp/A8DXyz3Q61␤»
colomon sorear: Just so we're on the same wavelength, you think sin not being a unary operator is a bug?
TimToady I've been trying to get rid of named unaries, except for traditional math ops
PerlJam sorear: you think it's a bug that there aren't more unaries?
sorear PerlJam: the only unaries in STD are abs, sleep, so, and not IIRC 18:29
this list makes no sense
PerlJam ah.
you don't want more unaries as much as you wan a conceptual hook to hang them on. 18:30
TimToady there is no list that actually does make sense, in the sense of not being rather arbitrary
colomon defined is a unary in rakudo, it appears... 18:31
TimToady and I'd like the user not to have to memorize a long list of unaries
quick, is mkdir a unary?
18:31 snarkyboojum joined
PerlJam no! 18:31
:)
TimToady is sin a unary?
if it has a :base? 18:32
sorear TimToady: adverb
TimToady nevertheless, it's a second arg
sorear niecza: say abs 1 :foo 18:33
p6eval niecza v6-186-g9c59f52: OUTPUT«Unhandled exception: Excess arguments to CORE prefix:<abs>, unused named foo␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE prefix:<abs> @ 0) ␤ at /tmp/m8CRXhIbu6 line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1780 (COR…
sorear perl6: say defined 1 && 0 # I really do not like this inconsistency
p6eval niecza v6-186-g9c59f52: OUTPUT«Bool::True␤»
..pugs, rakudo b2bc99: OUTPUT«0␤»
18:34 Bzek left
TimToady and if we drive it merely off of having one positional argument, you get many accidental unaries 18:35
18:35 mj41 left
TimToady which are suddenly no longer unary if you add another arg 18:35
PerlJam TimToady: so, for clarity, a short list of named unaries to memorize is okay? 18:36
(a *really* short list I would hope)
TimToady druther not have to memorize any list, but if there's a natural place to cut it, I'm all ears 18:37
sorear Why are abs, sleep, so, and not unaries?
TimToady note the comment: ## named unary examples 18:38
the intent is that most all such operators be defined in the setting eventually, not the grammar
I'm not opposed to having named unaries, but I'd like a rule I can tell people so they can at least guess right most of the time 18:39
I guess if we have too many, and they guess wrong, they'll just get a "useless use of" warning
or a misplaced arg 18:40
PerlJam so and not feel like they should be unary
TimToady define "feel"
PerlJam I wish I could. :)
It just seems like those would get used in contexts where "unariness" would be appropriate
18:41 mj41 joined
TimToady people are always carping about the ($) proto in p5 changing the syntax 18:41
so unaries really need to be put explicitly into the prefix category
not just rely on the sig
but we do have the named unary category, carried over from P5, and we should either grow it to the boundaries of "feely" unaries, or turn 'em all into listops 18:43
I'd also like to understand the failure modes a bit more
and are there any current "feely" listops "foo" that could use to be foo« instead 18:45
iow, do a similar analysis of mappy operations into scalar ops like we did with min LIST vs [min] LIST 18:48
only instead of foo LIST becoming [foo] LIST it becomes foo« LIST 18:49
we won't do this, but suppose for the sake of argument that print was a unary
current print would become print«
PerlJam or print(...) 18:50
TimToady well, only if there was a multi to handle it
PerlJam for things like abs or sleep, that seems like a "natural" way to write it in absense of unary 18:51
TimToady the natural unaries are close to the natural "argumentless" *.foo
but the fact that you can unambigously write 42.sin takes some pressure off of getting sin 42 right 18:52
PerlJam yeah, but it looks weird ;)
makes me suddenly think I'm writing ruby 18:53
tadzik I'd prefer Math.sin(42) to 42.sin any time
TimToady bletch
PerlJam what TimToady said
tadzik 42.sin just doesn't feel right to me 18:54
TimToady there's that "feel" thing again...
you'd be fine with it if mathematicians had been writing it that way for donkey's years
colomon not only is 42.sin right, it's more likely to work on weird types, and it is (at the moment) more efficient, at least in rakudo.
tadzik probably, yes
but that makes me feel that Int, Num or whatever should be capable of calling any common math function on itself 18:55
colomon also -- we've got sin(42), too. It's just sin 42 that's at question. 18:56
tadzik: errr... Int, Num or whatever (if whatever is Real) is capable of calling any common math function on itself.
TimToady "common math function" means it's already in the language, and hence should be in the language :)
colomon TimToady: actually, I've been meaning to add a few new ones at some point. ;) 18:57
TimToady I really don't like importing universal concepts from Math
sure, if you want to use OEIS-582, that's worth importing 18:58
but not things they teach in high school
they should just be there
rakudo: say i.sin 19:00
p6eval rakudo b2bc99: OUTPUT«0 + 1.1752011936438i␤»
PerlJam wanders off to a "web design" meetings
er, meeting
TimToady o/
huh, Figurate numbers based on 9-dimensional regular simplex 19:04
oeis.org/A000582 19:05
moritz "interesting"
19:06 mkramer1 joined
colomon hopes TimToady isn't getting ideas about having the sequence operator look up sequences from OEIS... 19:06
moritz sounds like a nice module. 19:07
TimToady oeis-42 is cute 19:08
perl6: .say for [\~] 1 xx *
tadzik colomon: yeah, I know, that bothers me a bit to. But I'm not the one who is to complain 19:09
p6eval rakudo b2bc99: OUTPUT«(timeout)1␤11␤111␤1111␤11111␤111111␤1111111␤11111111␤111111111␤1111111111␤11111111111␤111111111111␤1111111111111␤11111111111111␤111111111111111␤1111111111111111␤11111111111111111␤111111111111111111␤1111111111111111111␤11111111111111111111␤111111111111111111111␤1111…
..pugs: OUTPUT«(timeout)»
..niecza v6-186-g9c59f52: OUTPUT«(timeout)1␤11␤111␤1111␤11111␤111111␤1111111␤11111111␤111111111␤1111111111␤11111111111␤111111111111␤1111111111111␤11111111111111␤111111111111111␤1111111111111111␤11111111111111111␤111111111111111111␤1111111111111111111␤11111111111111111111␤11111111111111111…
TimToady funny, niecza blows up with I run that in the repl 19:11
System.NullReferenceException: Object reference not set to an instance of an object 19:12
sorear: ^^
All Systems Are Go For Lunch
19:13 kanishka left 19:16 mkramer1 left
TimToady not to be confused with Gopher Lunch... 19:17
diakopter Argot 4 Lunch
19:19 birdwindupbird joined
diakopter TimToady: which version of mono do you have these days 19:19
not to be confused with nucleosis 19:20
TimToady 2.8.2 19:26
19:28 mtk left 19:29 mtk joined 19:30 jdhore1 left 19:34 mj41 left
sorear TimToady: yeah, the repl doesn't like code that uses $_ 19:39
moritz nom: say "foo" if 1
p6eval nom: OUTPUT«foo␤»
sorear I think what's going on is that the repl isn't correctly binding to the setting, so "is dynamic" outer variables follow a null pointer
19:43 jdhore1 joined
TimToady sorear: your hyper function has a funny argument order 19:48
any particular reason?
sorear TimToady: consistency with .assuming, I think 19:51
TimToady jnthn: and what is the :path arg in rakudo's hyper function?
jnthn TimToady: No idea, I didn't write it. Lemme see if I can work out how it's used...
TimToady thinks we should agree on the general hyper api, y'see 19:52
sorear if the user writes [»+«], hyper(False, False, &infix:<+>, ...) needs to be wrapped in a function
TimToady: Rakudo's :path is just used for error messages
jnthn Ah
sorear++ # knows Rakudo better than me :)
TimToady let's you and him fight about the API then :)
moritz rakudo: { a => [1, 2] } >>+<< { a => [1,] } 19:53
p6eval rakudo b2bc99: OUTPUT«Sorry, lists on both sides of non-dwimmy hyperop are not of same length:␤ left: 2 elements␤ right: 1 elements␤At .{"a"}␤ in 'hyper' at line 192:src/gen/core.pm␤ in <anon> at line 264:src/gen/core.pm␤ in 'hyper' at line 1:src/metamodel/RoleToInstanceApplie…
TimToady 'cause I'd sure like to mention hyper() on RC
sorear more generally, I think it would be cool if there were a standard API for metaops
because then I could make infix_prefix_meta_operator and all that work in add_categorical 19:54
which would be awesome
TimToady and there should be a standard meta-API for that too... :P
19:54 mtk left
TimToady what's the opposite of turtles all the way down? 19:54
jnthn Cheetahs all the way up? 19:55
moritz turtles all the way up?
19:55 mtk joined
colomon butterflies all the way up 19:55
TimToady obviously, turtles only halfway down
19:55 mtk left 19:56 mtk joined 19:58 pernatiy joined 20:00 bluescreen10 left
dalek ecza: ad86d69 | sorear++ | / (7 files):
Remove content-free "bif_" prefix, reduce requirement for explicit _cgop use
20:04
colomon bif means built-in function, right?
colomon figured that out just a day before it got removed
moritz nom: my $x; $x++; say $x 20:06
p6eval nom: OUTPUT«Method 'succ' not found for invocant of class 'Any'␤current instr.: 'postfix:<++>' pc 187091 (src/gen/CORE.setting.pir:47015) (:278)␤»
20:06 wolfman2000 joined
moritz nom: my $x = Mu; $x++; say $x 20:07
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'postfix:<++>'. Available candidates are:␤:(Int $a)␤:(Num $a)␤:(Any $a)␤␤current instr.: 'postfix:<++>' pc 187047 (src/gen/CORE.setting.pir:46995) (:275)␤»
moritz rakudo: say Any.succ
p6eval rakudo b2bc99: OUTPUT«Method 'succ' not found for invocant of class ''␤ in main program body at line 22:/tmp/pbHp7kqRYt␤»
moritz niecza: say Any.succ
p6eval niecza v6-186-g9c59f52: OUTPUT«1␤»
20:13 Mowah left 20:18 MayDaniel joined
dalek kudo/nom: 6565c9a | moritz++ | / (3 files):
implement .chomp, note .chop as LHF
20:19
kudo/nom: 0b1bea7 | moritz++ | / (5 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 6db95e2 | moritz++ | src/core/ (3 files):
make "my $x; $x++" work.

I am not so sure this is the right approach, so pmichaud++ or jnthn++ please review it
20:20 birdwindupbird left
sorear colomon: your asking me about it was the clue that made me realize it was useless 20:22
TimToady rosettacode.org/wiki/Element-wise_o...ons#Perl_6 <-- more hypers 20:23
dalek kudo/nom: 07f2abd | jnthn++ | src/ (4 files):
Start to put BEGIN/CHECK/INIT/END back together. They run at the right times, though BEGIN and CHECK don't yet see the lexical environment (will be fixed when those issues are dealt with generally). Also need to twiddle a bit more with END in pre-compilation mode, but it's fine for the Test.pm case that we immediatley need it for.
20:24
kudo/nom: bb4567a | jnthn++ | src/Perl6/Actions.pm:
Fix binding to natives error.
kudo/nom: 47daf70 | jnthn++ | Test.pm:
Use my instead of our variables in Test.pm; they were likely at least partly workarounds for END blocks not seeing the lexical environment, which they do now.
jnthn moritz: Seems sane
moritz: Like that we end up with less protos too ;) 20:25
sorear token infix:sym<` `> { '`' ~ '`' <EXPR> <O(%additive)> } # Discuss. 20:26
mikemol The image processing tasks ought to be very good demonstrations of hypers with measurable differences in performance between different implementations of Perl 6.
moritz you mean slow-ish and "awefully slow"?
sorear niecza's hypers are probably very slow atm
mikemol More, "processes single-threaded" vs "passes to a thread pool" vs "passed to some OpenCL-like backend" 20:27
Since one of the suggested uses of hypers is automatic parallelization of operations.
sorear OpenCL hypers: now *that* is funny...
mikemol I really don't see how you'd do the cross-compile yet, but TimToday's the one who suggested it might get run on a GPU... 20:28
sorear At this time it looks pretty unlikely that hypers will be parallel *by default*, since most real-world use of hypers is on small data sets and I don't want to pessimize the common case 20:29
OpenCL hypers will probably make more sense once we have understood typed compact arrays
moritz you can still decide based on the size of the already-reified parts
sorear but the cutoff needs to depend on the operator 20:31
jnthn moritz: Think main think we're missing for Test.pm to be vaguely usable is "is export" now
sorear «+» shouldn't parallelize below (quite a few) items, ».&mandel should start parallelizing sooner because each call is more expensive
20:32 Moukeddar joined
Moukeddar Hello o/ 20:32
TimToady sorear: obviously you just start it both ways and see who wins :) 20:33
and certainly machines can generate some rules of thumb for various signatures 20:34
jnthn o/ Moukeddar 20:35
Moukeddar how are you all doing ?
TimToady much like the old configurators that would run several different sort routines to see which one was faster
moritz nom: sub f($x = 5) { say $x }
p6eval nom: ( no output )
moritz nom: sub f($x = 5) { say $x }; f
p6eval nom: OUTPUT«5␤»
TimToady or the first time you try to call such a routine, you start it in the CPU, and if it returns quickly, you leave it there 20:37
20:37 masak joined
masak y0 #perl6 20:37
TimToady if it's been N milliseconds and you haven't got an answer, then start up the GPU
masak I vote for no named unaries.
20:37 MayDaniel left
masak mostly just to see what happens. :) 20:37
TimToady you might or might not still beat the GPU
CPU
okay, that's one vote for named unaries...anyone else 20:38
masak no, against. :P
TimToady if you're against it, it counts as a vote for
masak dang.
jnthn :)
masak still haven't figured out this voting system.
jnthn o/ masak
masak \o
moritz votes exactly oposite to masak++'s vote
just 'cause
masak moritz: it's a trap! :) 20:39
TimToady are you a cretan?
masak we're all a bit epimedic sometimes.
sorear TimToady: I'm wary of starting races. seems like a waste of joules
moritz pmichaud: btw statement-modifying for doesn't seem to work (properly?) in nom
nom: .say for 1, 2, 3
p6eval nom: OUTPUT«Null PMC access in find_method('new')␤current instr.: 'nqp;Perl6;Actions;_block1837' pc 30162 (src/gen/perl6-actions.pir:10118)␤» 20:40
TimToady you only start it if it looks like the CPU is being slow, and you only try the race once
then you remember
20:40 prammer left
masak is pmichaud still in transit? I wanted to ask him about the exact reason perl6-on-parrot was canceled in 2004. 20:40
TimToady but hopefully the switchover points can be precalculated for most common operators and types
20:41 prammer joined
jnthn moritz: Looks like Actions just didn't get updated there yet. 20:41
sorear masak: I think Perl6 on Parrot is still actively developed
20:41 alester joined
TimToady you're thinking of Perl6 *over* Parrot :) 20:42
masak :P
TimToady there's some interturtles...
masak sorear: sure, but alpha is not genealogically related to 2004's perl6-on-parrot.
moritz btw I'm working on IO in nom now 20:43
TimToady IO is good
moritz IO is necessary
masak sorear: and pmichaud was actually "hired" because the Parrot people realized that this Perl 6 bit was too much to chew off while also making Parrot. or sump'n. 20:44
Moukeddar Hello masak
masak Moukeddar: hi.
jnthn moritz: Excellent, thanks.
masak Moukeddar: I'm closer to Morocco than usual :) I'm in Paris.
TimToady Gay Paris, not to be confused with Pairs... 20:45
Moukeddar nice :)
not gay :@
masak this place looks fairly gay to me.
huf is it full of scotsmen?
Moukeddar the kisses?
masak phenny: "c'est une ville gaie"?
phenny masak: "is a gay city" (fr to en, translate.google.com) 20:46
tadzik for some meaning of gay, yes
masak huh :)
jnthn rakudo: { say 'lol' } for 1..5
p6eval rakudo b2bc99: OUTPUT«lol␤lol␤lol␤lol␤lol␤»
jnthn Is this correct?
niecza: { say 'lol' } for 1..5
p6eval niecza v6-187-gad86d69: ( no output )
jnthn pugs: { say 'lol' } for 1..5
Moukeddar it's a nice city
p6eval pugs: ( no output )
tadzik why shouldn't it be?
masak phenny: "est-ce que tu connais la difference entre 'gai' et 'hereux'?"?
phenny masak: "est-ce que la difference between your connais 'gai' et 'hereux'?" (es to en, translate.google.com)
moritz jnthn: I don't think it should execute the block... at least not according to the spec I remember
TimToady it's in there somewhere 20:47
jnthn moritz: Yeah, that was my feeling too
Moukeddar enjoy it
masak thanks.
jnthn Rakudo master actually goes to some effort to make sure it executes it...
nom: .say given 42;
p6eval nom: OUTPUT«42␤»
TimToady it's considered a bare block
jnthn TimToady: Which'd mean it's executed?
masak jnthn: there's a spectest against that somewhere.
tadzik rakudo: { say 'lol' }.() for 1..5 20:48
masak or for.
p6eval rakudo b2bc99: OUTPUT«lol␤lol␤lol␤lol␤lol␤»
masak it's changed a few times. :)
jnthn heh ;)
tadzik niecza: { say 'lol' }.() for 1..5
p6eval niecza v6-187-gad86d69: OUTPUT«lol␤lol␤lol␤lol␤lol␤»
masak but there's a test is the important message.
outlining the latest decision, methinks.
20:49 PacoLinux left
jnthn github.com/perl6/roast/blob/master.../for.t#L62 20:49
20:49 PacoLinux joined
TimToady mostly as a degenerate case of S04:691 20:49
jnthn OK, current Rakudo does what the test wants. I'll preserve that.
20:50 daemon left
tadzik a-ha 20:50
Moukeddar masak, you should drop by :)
20:50 tomize left
dalek kudo/nom: fd62049 | moritz++ | src/core/IO.pm:
implement open()
20:50
masak I "almost" managed to implement gist.github.com/1045125
kudo/nom: 5307d26 | moritz++ | src/core/IO.pm:
start with implementing basic IO
Moukeddar El-Massira Airport :|
masak so anyone who wants to beat me to it has to hurry :)
Moukeddar: already have tickets home... :) 20:51
Moukeddar you miss Moma ?
20:51 PacoLinux left
masak Moukeddar: well, 'home' means 'where I live', not 'where Moma lives' :P 20:51
Moukeddar i thought they were the same , they're here :p 20:52
20:52 PacoLinux joined
masak depends on your age and stuff, I guess. 20:52
Moukeddar could be
20:52 tomize joined
Moukeddar so, did you enjoy your Parisien ? 20:52
croissant?
masak hm, no croissant yet. 20:53
but I am enjoying it.
now I understand what all the fuss about l'arc de triomphe is about. it's massive.
I mean, wow.
moritz nom: sub f($x, :$named = 1.Bool) { say $named }; f('foo', :!named);
p6eval nom: OUTPUT«Rebuild in progress␤»
masak p6eval++
Moukeddar just a big block of Marbel i guess , or regular stone, nothing fancy 20:54
moritz Unexpected named parameter 'named' passed
masak nom: say "Rebuild in progress"
p6eval nom: OUTPUT«Rebuild in progress␤»
tadzik touche
masak Moukeddar: you say that after you've made one yourself :)
Moukeddar they didn't made it :) 20:55
make*
masak I maintain they did, fsvo "they". :)
tadzik moritz: why 1.Bool rather than True?
jnthn ENOTrue
masak True NYI?
right.
Moukeddar Oh! they Di-Idnt :p
moritz tadzik: because True doesn't work in the setting 20:56
tadzik oh, I see 20:57
Moukeddar anyway masak have a nice flight :)
thanks for using le herp de la Derp airlines 20:58
masak :) 21:00
Niecza appears to have been born on 2010-06-22. oh right, sorear was talking about an anniversary a few days ago... 21:01
Niecza truly has come a long way in a year. 21:02
people, could you help me enumerate large-scale Perl 6 features? then I/we can check if Pugs/Rakudo/Niecza have them. 21:03
I'll start. classes. :)
all three have them, as far as I know.
jnthn roles :) 21:04
masak what about heredocs?
ooh
jnthn multis
masak perl6: role A }
argh
p6eval niecza v6-187-gad86d69: OUTPUT«===SORRY!===␤␤Any()Unable to parse role definition at /tmp/awN0DherMZ line 1:␤------> role A ⏏}␤␤Parse failed␤␤»
..rakudo b2bc99: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near "}"␤»
..pugs: OUTPUT«*** ␤ Unexpected "}"␤ expecting trait␤ at /tmp/a_ofCFe2r7 line 1, column 8␤»
masak perl6: role A {}; class C does A {}; say "alive"
p6eval niecza v6-187-gad86d69: OUTPUT«===SORRY!===␤␤Action method trait_mod:does not yet implemented at /tmp/Qu0IruJI5H line 1:␤------> role A {}; class C does A ⏏{}; say "alive"␤␤Cannot use hash access on an object of type Str at /tmp/Qu0IruJI5H line 1:␤--…
..pugs, rakudo b2bc99: OUTPUT«alive␤»
masak jnthn++ # nice 21:05
21:05 Moukeddar left
masak pugs: say q:to:"EOF" 21:06
p6eval pugs: OUTPUT«*** No such subroutine: "&q"␤ at /tmp/PCqIkbt_Cb line 1, column 5-9␤»
masak no heredocs.
but Niecza has 'em, ISTR.
TimToady niecza: say q:to:"EOF"␤alive␤EOF␤ 21:07
p6eval niecza v6-187-gad86d69: OUTPUT«===SORRY!===␤␤Any()Colons may not be used to delimit quoting constructs at /tmp/ezXxGbBEG7 line 1:␤------> say q:to⏏:"EOF"␤␤Parse failed␤␤»
masak oops
TimToady niecza: say q :to "EOF"␤alive␤EOF␤
p6eval niecza v6-187-gad86d69: OUTPUT«alive␤␤»
masak \o/
sorear++
macros. none of the implementations have that. 21:08
jnthn nom: sub f($x, :$named = 1.Bool) { say $named }; f('foo', :!named);
p6eval nom: OUTPUT«Unexpected named parameter 'named' passed␤current instr.: 'f' pc 281 ((file unknown):195) (:1)␤»
jnthn nom: sub f($x, :$named) { say $named }; f('foo', :!named);
p6eval nom: OUTPUT«Unexpected named parameter 'named' passed␤current instr.: 'f' pc 255 ((file unknown):153) (:1)␤»
sorear pugs: macro foo($x) { say $x; $x }; foo(2)
p6eval pugs: OUTPUT«2␤*** ␤ Unexpected end of input␤ expecting ":"␤ Macro did not return an AST, a Str or a Code!␤ at /tmp/WhcDvL5hnF line 1, column 37␤»
jnthn nom: sub f($x, :$named) { say $named }; f('foo', :named(1));
p6eval nom: OUTPUT«1␤»
TimToady pugs: macro foo { "bar" }; foo
p6eval pugs: OUTPUT«*** No such subroutine: "&bar"␤ at MACRO { "/tmp/QMKw01QiXm" (line 2, column 1) } line 1, column 1 - line 2, column 1␤»
TimToady ^^ 21:09
jnthn nom: sub f($x, :$named) { say $named }; f('foo', :named);
p6eval nom: OUTPUT«Unexpected named parameter 'named' passed␤current instr.: 'f' pc 255 ((file unknown):153) (:1)␤»
jnthn er, hm.
moritz so :foo doesn't work?
jnthn looks like
sorear nom: sub f(:$named) { say $named }; f(|{ '$named' => 5 })
p6eval nom: OUTPUT«Could not find sub &prefix:<|>␤current instr.: '_block1002' pc 112 ((file unknown):57542892) (:1)␤»
moritz ./perl6 -e 'say open("README", :chomp(0.Bool)).lines' 21:10
works in nom
masak sorear: I remember at least one big Niecza refactor; the one that made Niecza bootstrap. have there been others?
tadzik oh, chromatic responded to the naming story
TimToady "big" is a fractal
masak ooh
tadzik: url? 21:11
sorear ==TimToady
it's more of a power-law thing
like big earthquakes
masak oki, so it's not three distinct phases like with Rakudo? fair enough. 21:12
tadzik masak: www.modernperlbooks.com/mt/2011/06/...names.html
sorear I've had a couple of refactors big enough that I had to split them between commits with non-working states in between
the bootstrappification was the biggest one, it required translating the entire compiler to Perl 6... 21:13
recently I remember /mm (which did away with most automatic INIT blocks, moving them into a Begin compiler phase) and /immediate (which combined Begin with the parse) 21:14
masak tadzik: thanks. I found it by logging into Twitter :) 21:15
tadzik :)
masak ergh. truly, I dislike the name "Perl++" and its connotations a bit extra. 21:16
tadzik let's name it Zebra
moritz "Just as bad as C++"?
masak sorear: ok, so either zero big refactors, or one, or lots of them? 21:17
tadzik we could also use the 'package Foo;' syntax again
TimToady Obviously Perl++ would be Perm, then Pern, Pero, Perp, Perq, Perr, Pers, Pert, Peru, Perv, Perw, Perx, Pery, and Perz
sorear can't use Pern
TimToady sure we can, different domain 21:18
and Pero is a roasted-grain drink
I hear Peru is available
but actually it's Perl--, so Perk
tadzik Peru++ would be Perv
TimToady perk would be the JVM one, obviously 21:19
tadzik wasn't there something on Parrot called Perk? 21:20
TimToady Perk should be the real name of nqp
masak :P
tadzik github.com/chrisdolan/perk 21:21
masak I'll add "real LTM" as a point in favor of Niecza. 21:23
sorear: github.com/sorear/niecza/blob/mast...DIRECTIONS -- on line 47, you can strike <.SUPER::name>; it's no longer spec. 21:24
21:24 daemon joined
sorear uh... that file is so out of date, I forgot it existed :| 21:25
masak I'm slowly realizing that :)
things further down look out of date too. 21:26
where can I find more current information? the release announcements?
sorear yes
masak goes through them 21:28
21:30 masak` joined 21:33 masak left 21:37 masak` left
dalek kudo/nom: 067b038 | jnthn++ | src/Perl6/Actions.pm:
Fix statement modifying for, make way statement modifying given is done more consistent with that way.
21:38
kudo/nom: 6f054ba | jnthn++ | src/Perl6/Actions.pm:
Fix old-think lookup.
kudo/nom: 7963293 | jnthn++ | src/Perl6/Actions.pm:
Fix :foo and :!foo breakage spotted by moritz++.
21:39 cotto left 21:42 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner
tadzik AAAAAAAAAAAAAAAA search.cpan.org/~mschwern/AAAAAAAAA-1.00/ 21:44
we need to have this ported to Perl6 21:46
jnthn AAA?!
tadzik AAAAAAAAAA!
hopefully he will have a yapc talk about this module 21:48
slavik lol 21:51
tadzik resists the temptation to Rate this distribution 21:53
thou "works as advertised" 21:54
21:58 Holy_Cow joined
lichtkind thou: hai 21:58
thou hello!
21:58 Holy_Cow left 22:03 wamba left
lichtkind thou: please not remove the spam i need it show the problem :) 22:05
22:08 cotto joined
dalek ecza: 4c4f12a | sorear++ | / (7 files):
Move most builtin definitions into the setting
22:15
22:16 sjn left 22:19 sjn joined, alester left
felher just found the '...' operator ( big thnx to all rosettacode writers) and _really_ likes it :) 22:29
22:36 hanekomu left 22:41 neaer joined 22:42 masak joined
masak g'ah. not even deadlines instill the right kind of industrious fear in me anymore... :) 22:43
sorear hello masak!
what kind of deadlines?
masak well, I have this talk tomorrow.
jnthn masak: You have TWO. :P
masak actually two, but jnthn++'s slides were easy enough to adapt.
sorear is YAPC::EU started yet? I noticed an anomalous spike in my github new-follower rate
masak sorear: no no, that's in August. 22:44
sorear: but we had NPW last weekend and I'm at FPW this weekend.
lichtkind thou: next there will be action
masak I propose we kill off infix:<max>. together, &max and List.max already the same semantic space, and are less confusing. ditto infix:<min>, of course. 22:46
s/already/already cover/
22:46 cotto left
jnthn masak: [max] 22:46
masak jnthn: .max
jnthn inte så söt :P 22:47
masak I beg to differ.
jnthn :)
jnthn isn't sure if he prefers the op or the meth.
masak oh, and if you want the listop behavior, there's &max.
having all three is nonsensical.
or at least highly redundant. 22:48
more so than is common in Perl. :P
jnthn hm, true.
masak and truthfully, 'max' never felt like an infix operator to me.
4 max 5? hmmm? 22:49
what do you want me to do? max out 4 so it becomes 5? :)
jnthn Yeah, it's a stretch.
masak though... oh
I do like '$a max= 4'
TimToady @a Zmax @b
masak yeah.
jnthn And that. :) 22:50
masak I'd like to have all the metaop behavior, but not the ops themselves :P
TimToady and [\max]
jnthn :P
masak ooh
TimToady I think you're just not used to it
masak I'll give it three more years, then. 22:51
TimToady heheh
is that three years max?
masak :P
why do we have minmax, but not divmod? :P
TimToady round tuits
masak o.O 22:52
I was *joking*!
sorear I accidentally added divmod, quot, rem, and quotrem to the niecza runtime
but they're not bound to any names in the setting 22:53
TimToady it does seem like seriously wrong to force the programmer to do two divisions when one would do
sorear volunteers to read masak's report
22:53 masak` joined
sorear TimToady: I suspect it would only be a win for bignums 22:54
TimToady and it's a bit of a stretch to say that the optimizer will figure it out
masak` yes, probably.
22:54 donri left
masak` though it would be fun to try :) 22:55
TimToady well, we could just memoize all divisions :P
masak` all of them? all 447 of them? :)
hrm, les parisiens are howling to the moon outside of my window... 22:56
dalek kudo/nom: 4566436 | jnthn++ | src/Perl6/Actions.pm:
Start to refactor the various funky dispatches.
kudo/nom: 3ceb232 | jnthn++ | src/ (3 files):
First cut implementation of |@foo, |%bar.
kudo/nom: d9abccf | jnthn++ | src/core/Mu.pm:
$foo.&bar(), $foo.^bar and $foo.?bar.
kudo/nom: 067831f | jnthn++ | NOMMAP.markdown:
Update nommap.
22:56 masak left
sorear volunteers to read masak`'s report
masak` sorear: thanks. I doubt I will publish any slides before giving my talk, though. 22:57
22:57 masak` is now known as masak
masak hm, didn't rakudo.org/status previously contain lots of good stuff about implemented features? 22:58
masak hits the internet archive
TimToady lessee, what shall we do for #300 on RC.. 22:59
masak Sparta!
TimToady well, I was just looking at "Program termination", which is kinda about everyone dying... 23:00
masak :) 23:01
two things in life are guaranteed: GC and taxes... 23:02
timely GC, however...
found it. web.archive.org/web/20090322092459/...org/status 23:04
ISTR a nice pastel-colored slide with all those listed. don't know from whose presentation, though.
was thinking of making my own, similar, slide.
it brings the point home quite nicely: Rakudo has features.
23:06 masak left 23:07 masak joined
TimToady rosettacode.org/wiki/Program_termination#Perl_6 <-- #300 23:09
23:11 cooper left
masak \o/ 23:12
dalek ecs: cdb1b72 | larry++ | S29-functions.pod:
spec exit at least as well as rosettacode does :)
23:14
TimToady okay, you guys can do the next 300 :)
23:15 cotto joined
TimToady well, okay, I had help with the first 300 :) 23:15
well, okay, I *helped* with the first 300...
Util: ^^ 23:16
colomon: you still owe us a pi :) 23:17
masak ...and I had better go to bed. 23:19
'night, #perl6.
TimToady o/
23:20 cotto left, masak left
lichtkind good night 23:20
lichtkind submits another wxperl bug 23:37
jnthn sleep & 23:51
23:53 cooper joined
dalek kudo/nom: ef1aecf | jnthn++ | src/Perl6/SymbolTable.pm:
Cache literals that we build at compile time, so we don't build the same thing twice. Shaves ~65K off the setting PBC.
23:53
23:53 s1n left 23:54 s1n joined 23:57 whiteknight joined