»ö« 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:07 flightrecorder joined 00:09 havenn joined 00:12 flightrecorder left
dalek kudo/nom: 58fd8fa | jnthn++ | src/Perl6/Grammar.pm:
Eliminate a workaround.
00:13
00:23 fgomez left
jnthn sleep & 00:23
dalek kudo/nom: 2bb3029 | jnthn++ | src/Perl6/Grammar.pm:
Add class/methods in preparation for heredocs.
00:24
00:30 MayDaniel left 00:32 bowtie left, fgomez joined 00:45 spider-mario left 00:47 leont left 00:59 fgomez left 01:15 PZt left 01:20 sirrobert left 01:23 fgomez joined
colomon heredocs! \o/ 01:38
02:10 mst left 02:12 mst joined 02:16 benabik joined 02:32 PacoAir left 02:41 plobsing joined 02:47 kurahaupo joined 02:50 benabik left 02:51 benabik joined 03:00 Chillance left 03:11 orafu left, orafu joined 03:21 benabik left 03:23 tokuhiro_ joined 03:30 benabik joined 03:31 tff joined, tff left 03:43 benabik left 03:45 benabik joined 03:59 tokuhiro_ left 04:00 tokuhiro_ joined 04:05 tokuhiro_ left 04:28 kurahaupo left, dayangkun joined, kurahaupo joined 04:46 xinming left 04:56 jaldhar_ left 05:00 thou joined 05:03 jaldhar joined, cognominal left 05:07 xinming joined 05:10 cognominal joined 05:35 grondilu joined
grondilu rn: class Foo {...}; class Bar is Foo {}; class Foo { }; say Bar.new; 05:35
p6eval niecza v22-15-gc600005: OUTPUT«===SORRY!===␤␤Two definitions found for symbol ::GLOBAL::Foo␤␤ first at /tmp/fAbrdWXbwj line 1␤ second at /tmp/fAbrdWXbwj line 1 at /tmp/fAbrdWXbwj line 1:␤------> o {...}; class Bar is Foo {}; class Foo ⏏{ }; say Bar.new…
..rakudo 2bb302: OUTPUT«No such method 'new' for invocant of type 'Bar'␤ in block at /tmp/cQGUxSzlKp:1␤␤»
sorear apparently it only works for my-classes 05:36
05:40 benabik left, benabik joined 06:27 kaare_ joined 06:47 araujo left 06:58 benabik left 07:15 azawawi joined
azawawi hi 07:15
tadzik: ping
07:45 tokuhiro_ joined 07:46 thou left 07:51 benabik joined 07:52 wk left 08:07 GlitchMr joined 08:19 Mescale joined 08:42 domidumont joined 08:55 stocks left 09:02 Mescale left 09:04 azawawi left 09:05 domidumont left 09:06 domidumont joined 09:38 SamuraiJack joined 09:46 nyuszika7h left 09:47 sorenso joined 09:50 nyuszika7h joined, kaare_ left 09:52 kaare_ joined 10:02 nyuszika7h left 10:03 nyuszika7h joined, havenn left, havenn joined 10:04 xinming left, nyuszika7h left 10:06 nyuszika7h joined 10:08 havenn left 10:10 rindolf joined 10:24 araujo joined, araujo left, araujo joined
masak good antenoon, #perl6 10:25
10:25 leont joined
tadzik hello hello 10:29
...and it's still morning! \o/
masak does some air quotes 10:30
leont denies it's morning. It's still night and he's still asleep :-S 10:31
masak r: macro greet($t) { quasi { say "good " ~ {{{$t}}} ~ "!" } }; greet "morning"; greet "day"; greet "evening"; greet "night" 10:32
p6eval rakudo 2bb302: OUTPUT«good morning!␤good day!␤good evening!␤good night!␤»
masak \o/
though this example, just as many others, is Better Written As Sub.
tadzik (: 10:33
macros macros
masak wanted: macro examples which are not Better Written As Sub.
tadzik can they be exported now?
masak good question.
my guess is "no", but please go ahead and try ;)
tadzik yay, rakudo update time 10:34
masak also, if y'all keep naming your macros "marco", I will eventually release the ferrets on you.
tadzik (:
cognominal will christmas come early this year? macros, heredoc… 10:35
masak tadzik: exporting macros seems to work, yes. 10:36
tadzik ossum
# these will be macros one day, yet macros can't be exported so far 10:37
I wrote that 2 years ago :)
masak next to what?
tadzik next to 'sub RESET is export { "\e" }' and friends in Term::ANSIColor 10:38
masak looks 10:39
sure, you could make those macros. but honestly, they look like highly inline-able functions to me, and so it shouldn't really matter. 10:40
by the principle of least power, you should probably keep them as subs and lobby for excellent inlining. 10:41
tadzik hm 10:44
indeed, being inlinable subs they'll probably end up being the same thing in the generated code
masak right. 10:45
so... Better Written As Sub. :)
10:45 kurahaupo left
masak finds it quite ironic that he first gives the Perl 6 world macros and then chooses that as his slogan 10:45
10:55 cognominal left
jnthn Rakudo may well already be inlining that RESET fwiw :) 11:05
masak \o/
is there any way to find out? 11:06
jnthn Only trawling through the generated code :) 11:07
11:08 spider-mario joined
masak doesn't sound so bad. 11:08
11:11 snearch joined
masak r: macro foo($code) { quasi { {{{$code}}}() } }; my $c = 0; my &inc = -> { $c++ }; foo &inc; say $c 11:11
p6eval rakudo 2bb302: OUTPUT«1␤»
masak everything just... works! \o/
11:14 havenn joined
masak Missing test file: t/spec/S03-operators/andthen.t 11:14
commit c82a6d5436c75978a29300367ac4c09933e9cdbf, Author: Moritz Lenz [email@hidden.address] "implement infix:<andthen>" 11:15
added S03-operators/andthen.t to t/spectest.data 11:16
but there's no corresponding file in roast.
11:18 PZt joined 11:19 havenn left
jnthn r: macro infix:<pos-or>(*@asts) is assoc('list') { my $result = @asts.pop; for @asts.reverse { $result := quasi { {{{$_}}} > 0 ?? {{{$_}}} !! {{{$result}}} } } $result }; sub foo() { say "oops"; 4 }; say -5 pos-or 3 pos-or foo; 11:20
p6eval rakudo 2bb302: OUTPUT«===SORRY!===␤Unable to parse expression in block; couldn't find final '}' at line 2, near "for @asts."␤»
masak jnthn: semicolon
jnthn r: macro infix:<pos-or>(*@asts) is assoc('list') { my $result = @asts.pop; for @asts.reverse { $result := quasi { {{{$_}}} > 0 ?? {{{$_}}} !! {{{$result}}} } }; $result }; sub foo() { say "oops"; 4 }; say -5 pos-or 3 pos-or foo;
p6eval rakudo 2bb302: OUTPUT«3␤»
jnthn Using two of the month's new features together :P 11:21
masak that's pretty impressive.
jnthn Sadly, fixing the double evaluation exposes a bug.
masak "the double evaluation"? 11:22
jnthn r: macro infix:<pos-or>(*@asts) is assoc('list') { my $result = @asts.pop; for @asts.reverse { $result := quasi { my \x = {{{$_}}}; x > 0 ?? x !! {{{$result}}} } }; $result }; sub foo() { say "oops"; 4 }; say -5 pos-or 3 pos-or foo;
p6eval rakudo 2bb302: OUTPUT«Lexical 'x' not found␤ in at /tmp/tiE6e4uirM:1␤ in block at /tmp/tiE6e4uirM:1␤␤»
masak sounds like you're referring to a known RT ticket.
jnthn masak: It evalutes the macro argument twice.
masak oh!
how do you know?
jnthn masak: Because I wrote it that way
masak oh!
(phew)
11:22 MayDaniel joined
jnthn {{{$_}}} > 0 ?? {{{$_}}} !! ... 11:23
masak nodnod.
yes, each {{{}}} evaluates once.
jnthn And I wanted to just do it once, but when I try to stick it in a temporary variable, it busts.
masak as above. I see.
maybe declaring variables in quasis doesn't work?
jnthn Seems so
Still, pretty neat that list associative macros work :P
masak r: macro foo { quasi { my $a = "OH HAI"; say $a } }; foo 11:24
p6eval rakudo 2bb302: OUTPUT«Cannot assign into a PMCNULL container␤ in at /tmp/sUPrYDDbdi:1␤ in block at /tmp/sUPrYDDbdi:1␤␤»
masak submits rakudobug
jnthn Aside from running into that, it pretty much worked as I expected first time :) 11:25
11:27 MayDaniel left 11:29 cognominal joined 11:30 MayDaniel joined
masak r: macro apply($code, $arg) { quasi { {{{$code}}}({{{$arg}}}) } }; apply sub ($t) { say $t }, "OH HAI" 11:32
p6eval rakudo 2bb302: OUTPUT«OH HAI␤»
masak \o/
(but Better Written As Sub)
11:34 cognominal left, am0c joined 11:35 cognominal joined
masak r: sub apply($code, $arg) { $code($arg) }; apply sub ($t) { say $t }, "OH HAI" # like this 11:36
p6eval rakudo 2bb302: OUTPUT«OH HAI␤»
masak r: (sub ($t) { say $t })("OH HAI") 11:38
p6eval rakudo 2bb302: OUTPUT«OH HAI␤»
masak r: sub ($t) { say $t }("OH HAI")
p6eval rakudo 2bb302: OUTPUT«===SORRY!===␤Confused␤at /tmp/_JIW9Kguk5:1␤»
masak thought so.
11:45 xinming joined 11:46 leont left 11:49 PacoAir joined
dalek kudo/nom: 203f97e | masak++ | src/Perl6/Actions.pm:
[Perl6::Actions] unify macro code paths

Three code paths are now one code path. Finally!
11:51
11:52 cognominal left
masak some nice additions having to do with error reporting, added by moritz++ to one of the code paths, is now avaiable in all three kinds of macro call syntax. 11:52
jnthn yay, 50 lines of stuff gone :)
masak yep.
there was a lot of repetition in there.
jnthn Indeed. 11:53
masak the only code that turned out to be parametric was "how to collect arguments". because we were in different rules in the grammar.
so we just pass that in as a callback :)
callbacks++
11:59 cognominal joined
masak r: macro f { my $a = "OH HAI"; quasi { say $a } }; f 12:01
p6eval rakudo 2bb302: OUTPUT«OH HAI␤»
dalek kudo/nom: 4925c91 | jnthn++ | src/Perl6/ (2 files):
Eliminate leftover quoting code; unused since Q.
12:03
atures: 8a6cb6c | masak++ | features.json:
[features.json] Rakudo does hygiene now
12:06
jnthn masak: The coment on "Basic macros" says "no placeholders yet", but we have those now. Also worth an update? 12:07
12:09 cognominal left
masak fixes 12:15
jnthn++ 12:16
dalek atures: ea70272 | masak++ | features.json:
[features.json] rakudo has placeholders now
12:17 cognominal joined 12:45 nebuchadnezzar left 12:48 Lola_91 joined
Lola_91 is the maintainer of fedora perl6 rakudo package here? i tried to install from the repo and keep getting this on fedora 17 PARROT VM: Could not load bytecode Could not load oplib `nqp_ops' :s 12:49
masak Lola_91! \o/
Lola_91: I recognize that error message. 12:50
it happens when installed versions of Parrot/nqp/Rakudo are out of sync.
Lola_91 masak: hiiii!^____________^
masak :D
Lola_91: nice to see you pop in now and then :)
Lola_91 masak: i might be no more a programmer but i can not leave you alone here without passing by :P 12:51
jnthn hi Lola_91 :) 12:52
Lola_91 jnthn: Helooooo :)
jnthn Maybe a source install is easier...if you've a C compiler handy :)
12:52 rindolf left 12:53 rindolf joined, rindolf left
Lola_91 jnthn: I have gcc and the needed tool to compile but I found it fancier to use the repo :( 12:54
12:55 nebuchadnezzar joined
Lola_91 so the fedora packages are mmm.. rakudo star 0.0.2012.08_4.7.0-2.fc17 and parrot 4.7.0-1.fc17.1 .. they seem old too i think 12:55
jnthn Those aren't terribly old 12:56
And they look like they should be compatible too...odd.
Lola_91 jnthn: mmm if it seems odd to the gurus then i should just build from source :P 12:57
jnthn Lola_91: I'm only the compiler writing guru. I don't know much at all about packaging... :) 12:58
masak it's a bit of a blind spot among the compiler writers, I guess. we tend to always build directly from source. 12:59
Lola_91 masak: i can manage creating the rpms i think i still remember how i used to do it ^__^ 13:00
masak cool.
13:04 Patterner left 13:05 Psyche^ joined, Psyche^ is now known as Patterner
Lola_91 i tried on a couple more of my virtual machines, fedora17 perl6 rakudo does not work :( will remove and install from source 13:06
someday I will buy a mac :P 13:07
jnthn shop, bbl &
Lola_91 ops i burned my lunch :( must go see you soon ! :) 13:09
13:09 Lola_91 left 13:12 Chillance joined 13:18 cognominal left 13:25 cognominal joined 13:42 tokuhiro_ left, tokuhiro_ joined 13:47 tokuhiro_ left 14:02 sorenso left 14:09 dayangkun left 14:10 rindolf joined 14:24 cognominal left 14:29 sorenso joined 14:30 xinming left 14:32 cognominal joined 14:37 skids left 14:38 skids joined
grondilu do you guys use an IDE? Padre, maybe? 14:40
14:41 thou joined
rindolf grondilu: hi. 14:42
grondilu: I'm using gvim mostly.
masak grondilu: I do most of my coding in vim. it has excellent hooks to the shell, pulling in things like `sort` and `perl` naturally. 14:43
grondilu ok. I'll stick to vim as well then. I thought I was missing something by not using an IDE. 14:44
masak chances are you are. :) 14:46
though personally, those things that I'm missing haven't yet been convincing enough to make me adopt an IDE.
flussence (at what point does vim become an IDE? it still loads in under a second for me...) 14:49
14:51 REPLeffect left
grondilu Do you use special vim-scripts/plugins for Perl? 14:52
flussence I'm using vim-perl for the slightly more up to date syntax stuff, but nothing fancy 14:53
14:54 xinming joined
grondilu r: say [ 1, @([2, 3]) ].perl 15:02
p6eval rakudo 4925c9: OUTPUT«[1, 2, 3]␤»
grondilu r: say [ 1, list [2, 3] ].perl
p6eval rakudo 4925c9: OUTPUT«[1, [2, 3]]␤»
grondilu do I really need to use the @() notation for dereferencing? 15:03
masak r: say [ 1, [2, 3].list ].perl
p6eval rakudo 4925c9: OUTPUT«[1, 2, 3]␤»
masak list != .list 15:04
grondilu oh
ok
15:05 am0c left 15:09 Mescale joined
TimToady r: say [ 1, [2,3][] ].perl 15:12
p6eval rakudo 4925c9: OUTPUT«[1, 2, 3]␤»
15:19 rindolf left 15:21 Chat0237 joined, Chat0237 left
grondilu r: say [ 1, [,] [2, 3] ].perl 15:22
p6eval rakudo 4925c9: OUTPUT«[1, [2, 3]]␤»
grondilu rn: say [ 1, [,] [2, 3] ].perl
p6eval rakudo 4925c9, niecza v22-15-gc600005: OUTPUT«[1, [2, 3]]␤»
TimToady [2,3] is still a single item to the list that is the argument to [,]
zen slice is the shortest way that I know of, as I did above 15:23
but if it's a literal [], why not use () instead?
and if it's not a literal, why isn't it in a @ var?
grondilu it is not a literal. 15:24
I used a literal here to make the example clear
TimToady nr: my $aref := [2,3]; say [ 1, @$aref ].perl
p6eval rakudo 4925c9, niecza v22-15-gc600005: OUTPUT«[1, 2, 3]␤» 15:25
TimToady don't need the parens, even if it's in a $ var
grondilu the code I had in mind was more like: [ 1, some-function-returning-an-array().list ]
TimToady why isn't the function returning a list instead of an array?
grondilu hang on 15:26
Mescale /quit Failed to hang on
15:26 Mescale left
TimToady this often means the function should be using gather/take rather than pushing to an array :) 15:26
grondilu indeed it should return a list in my example, not an array.
my bad 15:27
TimToady though 'return @array' should be returning it as a list
no problem; we're all still trying to figure this out on one level or another... :) 15:28
grondilu the thing is my function as returning a list of arrays, and at some point this confused me into thinking I should dereference the output.
which was wrong.
TimToady I prefer the word "suboptimal"... 15:29
15:30 sorenso left
TimToady gah, I give one talk and it sets me back four days in backlogging... 15:31
jnthn That was either a very long talk, or a serious amount of prep :) 15:32
15:32 azawawi joined
TimToady well, driving here took one day 15:32
jnthn Oh... 15:33
TimToady I shouldn't blame only the talk; been fighting with the email forwarding from my home server to my ISP as well
jnthn doesn't know where stuff is much in California :)
I know the sea is to the west and there's this fault line through the middle and that's about it :)
TimToady well, California is kinda longish 15:34
I wonder if there's a way to quantify long-and-skinny-ness 15:35
dunno how you'd do that, especially for states that curve like Florida 15:36
Tennessee is pretty straight though...
azawawi jnthn: Is Perl6::Compiler accessible from within a Perl 6 script?
jnthn azawawi: No
Well, OK, not by that name. :) 15:37
That'd be a confusion of compiler vs compilee scope :)
If you want to get hold of the compiler object, pir::compreg__Ps('perl6') will get you it
TimToady perimeter over area would be one way, but as we know perimeter is fractally indeterminate when you have a coastline
azawawi jnthn: hmm.. so what's the new name?
jnthn TimToady: Hm, I keep forgetting that California goes all the way up from Mexico to Oregon. 15:38
awwaiid: You can get it using compreg like I showed.
TimToady unless it goes the other direction...
jnthn :)
awwaiid: What are you wanting to do with it, out of curiosity?
azawawi jnthn: cool thx 15:39
jnthn: It would be nice to have that valuable info in github.com/rakudo/rakudo/blob/nom/...mpiler.nqp :) 15:40
15:47 xinming_ joined 15:50 xinming left 15:52 bowtie joined, am0c joined
grondilu has edited rosettacode.org/wiki/Permutations#Perl_6 15:53
the Perl5 version was actually simpler than the Perl6 one. That was no good, imho. 15:54
TimToady interesting use of smartmatch semantics 15:56
I wonder which is faster... 15:58
phenny: tell hoelzro that the eject symbol (in yellow) is in there primarily for people who are colorblind. it used to just switch from green to red at that point. 16:02
phenny TimToady: I'll pass that on when hoelzro is around.
awwaiid wrong tabcomplete, jnthn
awwaiid is awoken from his slumber 16:03
16:06 havenn joined
jnthn awwaiid: oops, sorry 16:06
masak grondilu: that is possibly the nicest recursive implementation of permutations I've ever seen. 16:07
TimToady nr: sub postfix:<.fakemeth> ($n) { "faked method on $n" }; say 42.fakemeth 16:10
p6eval niecza v22-15-gc600005: OUTPUT«Potential difficulties:␤ &postfix:<.fakemeth> is declared but not used at /tmp/xLtyeAaicT line 1:␤------> sub postfix:<.fakemeth> ⏏($n) { "faked method on $n" }; say 42.fa␤␤Unhandled exception: Unable to resolve method fakemeth in type …
..rakudo 4925c9: OUTPUT«No such method 'fakemeth' for invocant of type 'Int'␤ in block at /tmp/vuZameO8_l:1␤␤»
TimToady hmm
arguable 16:11
jnthn r: 'awwaiid'.comb.categorize({$_}).map({ $^c.key => $c.value.elems }).perl.say; 'azawawi'.comb.categorize({$_}).map({ $^c.key => $c.value.elems }).perl.say # :-) 16:12
p6eval rakudo 4925c9: OUTPUT«("a" => 2, "w" => 2, "i" => 2, "d" => 1).list␤("a" => 3, "z" => 1, "w" => 2, "i" => 1).list␤»
TimToady pugs: sub postfix:<.fakemeth> ($n) { "faked method on $n" }; say 42.fakemeth
p6eval pugs: OUTPUT«*** No such method in class Int: "&fakemeth"␤ at /tmp/JUAl2l7_Pc line 1, column 60 - line 2, column 1␤»
jnthn TimToady: Hm, wonder why LTM doesn't land us in the postfix... 16:13
16:13 snearch left, am0c left
TimToady it seems to me that the ability to declare fake methods would be a feature, kinda sorta 16:14
see .WHAT et al.
16:14 azawawi left
dalek kudo/nom: 0268805 | masak++ | src/Perl6/Actions.pm:
make macro expansion ignore empty ASTs

Fixes RT #115506.
16:15
grondilu masak: thanks :) 16:19
TimToady jnthn: because LTM comes out to the same length, and <dotty> comes before <postop> in the alternation, I think 16:23
jnthn TimToady: ah...right. 16:25
yeah, of course, the identifier of the method name is declarative...
TimToady yes, moving <postop> to the top of the alt inside POST fixes it, at least in STD 16:27
dalek d: 04216b1 | larry++ | STD.pm6:
fake-method postfixes can override real methods
16:28
16:32 huf left
jnthn > sub postfix:<.fakemeth> ($n) { "faked method on $n" }; 42.fakemeth 16:39
faked method on 42
TimToady: Seems swapping them is enough in Rakudo too 16:40
spectesting to see if causes any fallout
16:40 havenn left
masak *why* is swapping them enough? I thought LTM... oh, is this a case when earliest alternative wins? 16:40
16:40 havenn joined
flussence I guess it works like CSS, most specific one wins usually, then there's some obscure rules not many people remember after that... 16:42
jnthn masak: Same length by LTM
masak: So fall back to ordering
masak right.
then it makes sense.
16:42 huf joined
masak blog post! \o/ strangelyconsistent.org/blog/macros...-d2-merged 16:42
jnthn Which is a bad idea to rely on for protoregexes, but for alternations is pretty safe
masak aye. 16:43
16:44 havenn_ joined
dalek kudo/nom: 170c90f | jnthn++ | src/Perl6/Grammar.pm:
Chase an STD change.

Fake-method postfixes can override real methods.
16:45
16:45 havenn left
jnthn TimToady: no spectest reggies 16:46
16:50 xinming_ left 16:52 xinming joined
TimToady "reggies"? 16:52
oh, regressions
No amount of caffiene makes up for certain forms of stupidity... 16:53
so far niecza has no reggies either, nearly done 16:54
masak in an alternate universe, each new spectest has to be registered with Microsoft in order to be trusted, and "reggies" refers to this process... :) 16:55
TimToady sometimes this universe is an alternate universe...
masak one person's actual universe is another person's alternate universe. :) 16:56
jnthn hmmm 16:57
my %r = %$self;
$r{_herelang} = $self;
bless \%r, $::LANG{Q};
TimToady: What's this actually doing? :) 16:58
Or, more to the point: why does it have to bless back into %*LANG<Q> here?
TimToady parsing the quoted part of q:to 'foo' using Q, and saving the actual derived quote language for the heredoc
jnthn OH! 16:59
masak nice.
jnthn Right, we don't want to parse the terminator with the derived.
16:59 mikec_ left
jnthn doesn't really read Perl 5 well any more... 16:59
16:59 mikec_ joined
jnthn And certainly not non-Moose OO :) 16:59
masak it never occurred to me that heredocs, somewhat perversely, contain a nested q or qq quote. 17:00
yo dawg.
TimToady one of those places where the implementor takes on vicarious suffering for the user...
jnthn Yeah...just need to figure out a way to do this that's less of a hack :P 17:02
Think I got something figured. 17:03
17:04 topo` joined
TimToady Note to any future historian who collects my sayings from the irclogs: Please feel free to fix my capitalization at the beginnings of sentences without editorial notations. 17:04
jnthn Hm, gonna have to be really careful the quote language cache doesn't go caching on the :to...
masak in the future, everything is lower-case, anyway.
TimToady hates things like [W]e are not amused.
past historians can do whatever they like, however... 17:05
dalek ecza: 4c016f5 | larry++ | src/STD.pm6:
allow fakemethods
17:07
TimToady next thing you know, people are going to want 'my method' to declare fakemethods...
but maybe only in one of masak's alternate universes... 17:08
TimToady wonders if he's in one of those
masak depends what you mean by "you". 17:09
TimToady pronouns is tricky, not to mention verbs 17:10
masak ;) 17:11
sorear o/ 17:13
masak sorear! \o/
TimToady 17:14
(which looks rather different in the log) 17:15
sorear meh, english is case insensitive
sorear idly wonders if german channels capitalize more
jnthn o/ sorear 17:16
masak TimToady: is that a light saber? 17:17
TimToady well, gnome-term doesn't overlay it at all, so it looks like o/ on my terminal 17:18
masak .u o̸
phenny U+006F LATIN SMALL LETTER O (o)
U+0338 COMBINING LONG SOLIDUS OVERLAY (◌̸)
TimToady in the log it shows up here as an o with a diagonal line totally within the o.
but if I past to a text box in the browser, it has the overlay close to right, except that the solidus is a bit up and to the left of the middle of the o 17:19
*paste
xterm does it pretty close to right 17:20
sorear iterm2 also gets it pretty close to right 17:21
geekosaur it's wrong in xchat, but that's more or less normal 17:22
flussence that looks more correct here in urxvt than it does in chromium... 17:38
17:47 xinming_ joined 17:50 xinming left 17:52 lex_ joined, kurahaupo joined 17:55 lex_ left 17:59 spanner_ joined 18:01 topo`_ joined, xdbr_ joined, pmichaud joined, krunen_ joined 18:02 Lex__ joined, grondilu_ joined 18:04 Lex__ is now known as Lex9 18:06 topo` left, domidumont left, grondilu left, pmichaud_ left, colomon left, dbr left, spanner left, krunen left, colomon joined 18:09 Lex9_ joined 18:11 Lex9 left, Lex9_ is now known as Lex9 18:13 wk joined 18:14 domidumont joined
dalek kudo/nom: 7c0820a | jnthn++ | src/Perl6/Grammar.pm:
Tweak whitespace parsing to be more STD-like.

Not a huge change, but provides a place to hang heredoc parsing off. Also gets us the version control marker detection.
18:23
18:24 kurahaupo left
masak version control marker detection! \o/ 18:30
sorear masak++ bloggage 18:39
masak it made sense? nice. :) 18:40
nwc10 masak: the macro definition has this: {{{$code}}}( {{{$argument}}} ); 18:41
but your expansion is this: (sub ($t) { say $t })("OH HAI"); 18:42
why did the extra? set of () appear?
flussence std: sub ($t) { say $t }('arf') 18:43
p6eval std 04216b1: OUTPUT«ok 00:00 45m␤»
flussence ...well if that's the case I dunno
r: sub ($t) { say $t }('arf') 18:44
p6eval rakudo 170c90: OUTPUT«===SORRY!===␤Confused␤at /tmp/K4oZTuuAdM:1␤»
masak nwc10: I tried it without the parens in Rakudo while writing the post, and it didn't work without the parens.
nwc10 admits to being impatient and not reading everything carefully before asking..
flussence n: sub ($t) { say $t }('arf')
p6eval niecza v22-16-g4c016f5: OUTPUT«arf␤»
masak nwc10: but the real answer is that the transformation is not textual, but on the AST level. so the parens are just there for clarity, they don't change the AST topology.
masak submits rakudobug
nwc10 ah OK
flussence tbh, I really didn't expect that to work in niecza
(nice that it does :) 18:45
masak well, since it parses in STD, it should mean something :)
18:47 xinming joined 18:51 xinming_ left
masak woot, the blog post seems to have triggered another email from the scala macros guy! \o/ 18:52
r: macro test { my $a = "OH HAI"; quasi { $a } }; say test 18:53
p6eval rakudo 170c90: OUTPUT«OH HAI␤»
sorear masak: yay 18:58
masak I think my reply to him may be interesting for others to read, too. I might gist it when I'm done. 18:59
r: for 1..10 -> $i { our sub foo { say $i } }; our &foo; foo 19:07
p6eval rakudo 170c90: OUTPUT«10␤»
masak r: for 1..10 -> $i { our sub foo { say $i }; last }; our &foo; foo
p6eval rakudo 170c90: OUTPUT«1␤»
masak r: for 1..10 -> $i { BEGIN { say $i } }
p6eval rakudo 170c90: OUTPUT«Mu()␤»
masak Mu!
r: my $i; say $i 19:08
p6eval rakudo 170c90: OUTPUT«Any()␤»
masak so "Mu()" there means "really, really undefined"! :P 19:09
can anyone explain why I'm not getting "Any()"?
oh!
it's a loop parameter, right?
r: my $i = 42; BEGIN { say $i }
p6eval rakudo 170c90: OUTPUT«Any()␤»
masak yep. 19:10
r: my $i = 42; BEGIN { say $i }; say $i
p6eval rakudo 170c90: OUTPUT«Any()␤42␤»
19:12 fgomez left 19:13 domidumont left
masak r: my $x = 42; role R { method foo { $x } }; class C is R {}; say C.new.foo 19:16
p6eval rakudo 7c0820: OUTPUT«42␤»
masak \o/
n: my $x = 42; role R { method foo { $x } }; class C is R {}; say C.new.foo
p6eval niecza v22-16-g4c016f5: OUTPUT«42␤»
masak rakudo++ niecza++
p: my $x = 42; role R { method foo { $x } }; class C is R {}; say C.new.foo
p6eval pugs: OUTPUT«42␤»
masak pugs++ 19:17
r: my $x = 42; macro foo($value) { quasi { say {{{$value}}} } }; foo $x 19:24
p6eval rakudo 7c0820: OUTPUT«42␤»
19:29 havenn_ left, fgomez joined
dalek p: d27844e | jnthn++ | src/QRegex/Cursor.nqp:
Add a !cursor_pos, for explicitly setting pos.
19:30
19:30 raiph joined
masak r: sub foo { my $greeting = "OH HAI"; quasi { $greeting } }; macro bar { quasi { say {{{foo}}} } }; bar() 19:31
p6eval rakudo 7c0820: OUTPUT«Mu()␤»
masak interesting.
jnthn: bug?
r: sub foo { my $greeting = "OH HAI"; quasi { say $greeting; $greeting } }; macro bar { quasi { say {{{foo}}} } }; bar()
p6eval rakudo 7c0820: OUTPUT«Mu()␤Mu()␤»
masak r: sub foo { my $greeting = "OH HAI"; -> { say $greeting } }; BEGIN { foo()() } 19:32
p6eval rakudo 7c0820: OUTPUT«OH HAI␤»
jnthn masak: I think I'd expect that one to work. Not sure why it doesn't... 19:35
masak submits rakudobug
jnthn masak: Not sure where I suggest you look to track it down either... :S
masak jnthn: looks like the quasi in foo is getting the static lexpad. but why?
jnthn masak: Yeah, that's what I'm not sure about.
masak: Maybe something to do with the way quasis get their fixups? 19:36
masak maybe.
r: sub foo { my $greeting = "OH HAI"; quasi { say $greeting } }; BEGIN my $gast = foo; macro bar { $gast }; bar() 19:37
p6eval rakudo 7c0820: OUTPUT«OH HAI␤»
masak *that* works.
so, essentially, it's not foo's fault.
it's the fact that foo is called inside of {{{ }}}
jnthn That's odder still. 19:38
Though at least also more isolated...
masak yeah.
19:47 xinming_ joined 19:50 xinming left
masak here's the reply email I just wrote to the Scala macros guy: gist.github.com/c97c37efa09d0d72ad9e 19:50
TimToady why did you say class C is R instead of 'does'? 19:53
20:00 Friendofafriend joined
Friendofafriend so... whens perl 6 coming out? 20:01
ALSO where are some good tutorials for learning perl 5
?
TimToady coming out of what?
Friendofafriend Larry Wall's brain
flussence by "release", do you mean 10 years ago, or 4 years ago? 20:02
TimToady Larry Wall's brain doesn't even know when Perl 6 will quit flowing outward...
the flow seems to have slowed considerbly over the last couple years, and the implementations are starting to catch up 20:03
Friendofafriend gotcha
TimToady bbq & 20:04
Friendofafriend well in that case.. do you know of any good perl 5 tutorials / books ?
im trying to learn perl
rking Friendofafriend: I still advocate the Camel book.
Friendofafriend which one? 20:05
masak the latest one :) 20:06
rking Friendofafriend: www.amazon.com/Programming-Perl-Unm...camel+perl
Friendofafriend haha thanks for the link
yeah Larry Wall just talked at my school, so im kinda motivated
rking Friendofafriend: What did he talk about?
Friendofafriend just how perl came to be. 20:07
and why it is the way it is
it was a great talk
he explained the linguistic origins of perl
it was very cool 20:08
masak oh, Westmont college?
Friendofafriend indeed
masak we think Perl is cool, too. 20:09
Friendofafriend haha
how did you know about westmont?
masak Larry Wall is a friend of a friend... :P
I agree that the Camel book is hard to beat in terms of learning material.
it's sitting here on my shelf within arm's length. 20:10
Friendofafriend haha yeah, Im pretty good friends with his son, lewis
masak I know him as quietfanatic, but yes, I talk to him sometimes, too.
rking Friendofafriend: The `perldoc` information is actually excellent.
masak `perldoc` is excellent, but kinda difficult to bootstrap up from 0 with.
IIRC `perldoc` is actually based on the Camel book somehow? 20:11
Friendofafriend yeah hes a great guy, I pair program with him quite a bit, and have learned so much
rking Friendofafriend: What kind of programming is he into?
masak Friendofafriend: this is kind of the "future department" of Perl, in case you're wondering. we've been inventing the future of Perl for the past 12 or so years. 20:12
Friendofafriend just mostly school projects
ie weather servers written in raw c
blah
masak Friendofafriend: I've taken to discussing language design with him, which is also very interesting.
Friendofafriend yeah, hes started writing his own language
20:12 havenn joined
masak yeah. me too. 20:12
Friendofafriend check out his github profile 20:13
anyways thanks for everything guys, I gotta go. Best of luck
20:13 Friendofafriend left
masak o/ 20:13
rking swoops in and waves at masak so he isn't left hanging. o
raiph "Metacircularity is not about self-interpretation at all. Rather, it's an engineering approach to re-using as much code as possible between different parts of a toolchain (including compiler, runtime and debugger)." (from www.inf.usi.ch/postdoc/kells/blog/2012/06/01/) Anyone care to agree/disagree/comment on this perspective and/or its applicability to Perl 6? 20:14
masak raiph: we've definitely been seeing that aspect of metacircularity now and then, both in Niecza and Rakudo, I think. 20:15
though whether to elevate it to what metacircularity "is about", I don't know.
jnthn raiph: Well, in my meta-programming in Perl 6 talk, I define meta-circularity as extending the langauge using the language itself. 20:16
raiph: Which seems compatible with that point of view.
masak raiph: take val() as a recent example. it figures both internally (in the handling of <> qw-like lists and MAIN arguments) and in userspace.
raiph oh. gotta run. will backlog. thanks for your answers. 20:17
20:17 raiph left
masak "Metacircularity is awesome because it is metacircular!" 20:28
20:36 sizz_ joined 20:37 sizz left
dalek kudo/nom: 08436b7 | jnthn++ | src/Perl6/Grammar.pm:
Apply stopper role after tweaks role.

Same ordering as STD; turns out it matters for heredocs.
20:44
kudo/nom: f643fba | jnthn++ | src/Perl6/World.pm:
Factor out compile-time nabbing of nibbles.

Generalizes things a bit, to be useful in heredoc implementation.
kudo/nom: 7d32387 | jnthn++ | src/Perl6/ (2 files):
Get heredoc parsing in place.

Trimming of the parsed document not yet implemented, but seems to do about the right thing aside from that.
masak "nabbing of nibbles" :) 20:45
jnthn: trimming? isn't it just a question of using the spec'd/built-in Str.indent method?
r: say " foo;\n bar;\n baz".trim(*) 20:46
p6eval rakudo 7c0820: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method trim at src/gen/CORE.setting:4324␤ in block at /tmp/Il89zPC6uJ:1␤␤»
masak er.
r: say " foo;\n bar;\n baz".indent(*)
p6eval rakudo 7c0820: OUTPUT«foo;␤ bar;␤ baz␤»
20:47 xinming joined, sorenso joined
jnthn masak: Yeah, but we should see if we can do it at compile time or not too, I think. 20:47
20:48 Gliner is now known as Rix
masak ah. 20:49
20:50 xinming_ left
masak 'night, #perl6 21:12
awwaiid gnight
21:15 GlitchMr left 21:17 havenn left 21:18 havenn joined 21:20 havenn left 21:25 havenn joined 21:33 Lex9_ joined 21:36 Lex9 left, Lex9_ is now known as Lex9, Lex9 left 21:37 spider-mario left 21:42 spider-mario joined
[Coke] yawns 21:43
21:44 Mescale joined 21:47 SamuraiJack left, xinming_ joined 21:49 ChoHag left 21:50 ChoHag joined, xinming left 21:57 dorlamm joined 22:00 kaare_ left 22:17 PacoAir left 22:25 dorlamm left
[Coke] jnthn - latest nqp/parrot build and I can run partcl on it. 22:27
brrt++ jnthn++
dalek rl6-roast-data: bf61ef6 | coke++ | / (4 files):
today (automated commit)
22:28
rl6-roast-data: 09e4d92 | coke++ | / (2 files):
today (automated commit)
jnthn yay :)
[Coke] jnthn: (that roast data is old. fixing that up now.)
jnthn Yeah 22:29
shows
"" , , , , , ,
for Rakudo :)
Grr, that heredoc parsing thing I comitted is wonkier than I first realized...
[Coke] I didn't even look at it, I just pushed any pending commits. whoops. :)
jnthn Though doesn't break anything at least :)
[Coke] I'll just delete those.
dalek rl6-roast-data: a1856b6 | coke++ | perl6_pass_rates:
Remove bad/stale data.
22:30
22:35 HarryS left 22:37 HarryS joined
[Coke] jnthn: I'm going to change the daily run to check everything out fresh to avoid the weird not-always updating bug that hit rakudo. 22:37
Will also change it so that all 3 tests run the same version of roast. (instead of a fresh copy per run.) 22:38
er, per instance.
22:43 havenn left, havenn joined 22:46 bloonix left 22:48 havenn left
[Coke] would it be helpful to have the sha1 of the repo used for the testing? 22:50
22:50 cognominal left
[Coke] or is just the date close enough? 22:50
(I am putting roast's sha1, now that it's shared.)
jnthn [Coke]: It'd certainly make it easy to diagnose "didn't update the repo" issues 22:51
22:53 havenn joined 22:55 Mescale left
[Coke] I'm trying to get Pugs.hs building again. Getting this error: 22:59
* Missing (or bad) header file: perl5/p5embed.h
is there a way I can just wipe out anything I've done with cabal? 23:01
is rm ~/.cabal sufficient?
(-rf)
dalek kudo/nom: 4bab771 | jnthn++ | tools/build/NQP_REVISION:
Get NQP with !cursor_pos.
23:02
kudo/nom: 1585d5a | jnthn++ | src/Perl6/ (2 files):
Fix heredoc parsing, and add indent handling.

This gets us passing all the various heredoc tests in S02-literals, so seems fairly complete.
flussence yay
dalek kudo/nom: 1dc622c | jnthn++ | docs/ROADMAP:
ROADMAP update.
ast: eacb839 | jnthn++ | S02-literals/quoting.t:
Heredoc and other quoting unfudges.

Also harden the heredoc tests for Windows.
23:03
atures: 80d8df3 | jnthn++ | features.json:
Rakudo has heredocs.
23:04
23:04 wk left
[Coke] gist.github.com/4009237 - `last` of pugs configure failure. 23:05
it's complaining about libutil.h
is that something we can get installed on feather? (Or am I just misconfigured to miss it?) 23:06
23:07 Vlavv_ left
[Coke] aha. 23:08
found the header in /usr/include/bs, but see no way to get Pug.hs building with that piece of information. Any help greatly appreciated. 23:10
dalek kudo/nom: 68460ce | jnthn++ | docs/ChangeLog:
Some more ChangeLog additions.
[Coke] er, *bsd
23:21 fgomez left 23:27 sorenso left 23:32 MayDaniel left 23:36 fgomez joined 23:38 flightrecorder joined 23:39 havenn left
jnthn [Coke]: No idea how to help, but good luck! 23:41
'night, #perl6
23:47 adu joined, xinming joined 23:50 xinming_ left 23:59 flightrecorder left