»ö« 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.
sergot hi! :) 03:07
o/
tadzik 'morning 05:59
sorear o/ 06:08
tadzik hello sorear 06:11
sorear n: my $x = Int ( 3 / 2); say $x; 07:03
p6eval? 07:04
p6eval niecza v17-4-ge5b869e: OUTPUT«(timeout)»
sorear n: my $x = Int ( 3 / 2); say $x;
p6eval niecza v17-4-ge5b869e: OUTPUT«Rebuild in progress␤»
sorear what.
diakopter wow, quiet evening here 08:10
goraki I'm still waking up.
diakopter I woke up 17 hours ago 08:11
sergot ;)
goraki diakopter: yeah, but it *is* the morning here. 08:14
diakopter Europe?
goraki yes.
bonsaikitten what a strange idea 08:15
diakopter ...
goraki timezones?
jnthn good morning :) 08:20
diakopter ohy
sergot jnthn: morning! :)
jnthn o/ sergot 08:21
goraki mornings.
tadzik hello 08:25
sergot tadzik: o/ 08:45
masak good antenoon, #perl6 08:46
goraki good 08:52
good morning to you.
tadzik \o 08:53
moritz \o 09:06
tadzik it's release day \o/ 09:07
mikec_ ooh 09:08
masak do we know more about pmichaud's commits?
tadzik moritz | when I save a .t file and immediately after that I run fudge, the test file is gone from the disc 09:12
moritz: that's vim's fault, I've had the same thing on my old hdd 09:13
masak: I don't
masak mistab? 09:17
tadzik nope
masak oh, you don't know more about pmichaud's commit.
tadzik ywis
masak well, then we just sit tight, I guess.
dalek kudo/method-not-found: 47497c4 | moritz++ | src/core/Exception.pm:
fix control exception catcher
09:31
pmichaud good morning, #perl6 09:37
jnthn pmichaud: Whoa...early morning there :) 09:38
pmichaud yes... something came up last night so mark_commit is an early-morning job now :)
jnthn \o/ 09:39
moritz waits with the branch merge until after the release
jnthn moritz: wtf
er
moritz: wfm
...oops. :) 09:40
jnthn drinks more coffee and tries to feel awake
moritz :-)
tadzik hello pmichaud 09:52
masak is curious about what exactly mark_commit is... 09:53
jnthn: could you explain? I don't want to disturb pmichaud while he implements it :) 09:54
pmichaud mark_commit is the opcode that handles ratcheting
masak ok, gotcha.
pmichaud essentially, it has to throw away backtracking state but preserve captures 09:55
masak right.
and those are generally slightly coupled, so the challenge is to decouple them some.
pmichaud right. As I've been working on it and thinking on it heavily the past couple of days, I'm a little surprised it's the ratcheting that is causing issues. usually it's the non-ratcheting case that is problematic. 09:57
masak yeah. 09:58
masak remembers the headache of *finally* understanding and implementing backtracking and quantifiers for GGE... about five times :P 09:59
jnthn pmichaud: github.com/perl6/nqp/commit/87bb1c...40307849fd
pmichaud: You may want to revert that commit before solving things the "proper way" :)
pmichaud jnthn: thanks, you're correct 10:01
tadzik and I wonder if I want to do something parsing related for my engineer degree 10:03
masak sounds like great fun. 10:05
pmichaud okay, in QRegex the relevant code is "regex_commit" 10:07
....which I never finished. :-(
tadzik yeah, I'm quite sure I don't like any of the predefined topics, so I must figure out some great fun and a not bad mentor
masak .oO( ever tried to put a mentor in a bottle of Diet Coke? ) :P 10:10
pmichaud I think that causes the mentor to spew.
masak well, some kind of reaction is assured. 10:10
pmichaud it's much easier to get a Diet Coke into a mentor than vice-versa, though. :)
tadzik ;) 10:11
moritz jnthn: S11 says "Every C<UNIT> gets a lexically scoped C<EXPORT> package automatically. 10:44
"
jnthn: but we give it an our-scoped EXPORT package, so that it can be accessed from the outside 10:45
jnthn: should I change the spec? or is our implementation just a shortcut?
another weird thing: 10:47
Any C<proto> declaration that is not declared C<my> is exported by default. 10:48
but 'my' is usually the default
jnthn moritz: Huh?
moritz: Our UNIT::EXPORT is lexical.
I'm sure it is...
moritz so 'my proto' usually behaves just the same as 'proto', except when exporting is considered? 10:49
jnthn: oh, I might be wrong here
jnthn moritz: proto defaults to "my" too, since it's a sub
moritz yes that's the odd thing about that statement 10:50
jnthn (methods aside, which default to has)
Yeah
S11 has a few dubious parts ;)
That part feels like it was written before we changed subs to be lexically scoped by default.
I mean, we can detect explicit "my" and export it but...it feels weird. 10:51
Woodi hallo 11:33
I got that now .get on socket strips last \n but not \r 11:34
it is intentional or should I check eg. on Linux ?
moritz it's not intentional, I think 11:35
but I don't know how it is supposed to work
ie on which level the \r\n gets transformed to \n
masak should it strip things at all?
.get sounds fairly low-level
moritz .get is what gives you a line
and autochomp is the default 11:36
Woodi it removed both in November I think
Woodi moritz: I think that it is better that send/get use \r\n form becouse in net protocols OS related fixes can not be right thing to do... 11:47
tadzik maybe it wants a named param, (:$separator = "\n") or so 11:57
something equivalent to $/ 11:58
Woodi hides in coffee making place... 12:02
masak a... coffee grinder? 12:02
pmichaud a... coffee brewer? Sounds hot. 12:03
mikec_ dangerous
Woodi so far use bialetti.com tool :) 12:13
pmichaud okay, I have the new regex_commit working in nqp... spectesting rakudo now
masak \o/
tadzik hurra!
jnthn pmichaud: yay! :) 12:14
jnthn hopes it Fixes Some Stuff :)
pmichaud gist.github.com/2718518 # some stuff fixed -- from RT #107254 12:15
masak we could host an RT queue party! :D
jnthn \o/
pmichaud++
jnthn I'll probably pull this into qbootstrap later today and see how far it helps there. 12:16
pmichaud this still doesn't have transitive LTM yet
I'm not likely to get that before today's release.
jnthn Yes, that's the other thing qbootstrap needs.
pmichaud but I'm not as concerned about that from a release perspective -- it's not really a user-facing bug like #107254 is.
jnthn Right. 12:17
pmichaud gist.github.com/2718535 # also from RT #107254
(formerly RT #112148)
all spectests pass in rakudo 12:19
looks like it's time to commit and push :)
Woodi pmichaud: from where map gets $_ in last gist ? it to functional for my mind yet... 12:21
pmichaud Woodi: you mean in the 2718518 gist? 12:22
Woodi yes
and what $match realy is ? list ?
pmichaud Woodi: from ($match, $match<w1>, $match<w2>, $match<w3>)
$_ is set to each of those values one at a time 12:23
masak r: .say for map { $_ * 10 }, <1 2 3 4>
p6eval rakudo b390e8: OUTPUT«10␤20␤30␤40␤»
masak Woodi: ^^
pmichaud $match is a Match object -- it contains the result of the match.
dalek p: 67c15eb | pmichaud++ | t/qregex/rx_captures:
Add some tests for RT #107254.
12:24
p: 799f465 | pmichaud++ | src/ (2 files):
Revert 87bb1c to re-implement ratchet/capture semantics in regex_commit.
p: 6f6555f | pmichaud++ | src/ops/nqp.ops:
Documentation fix.
p: 485d4f2 | pmichaud++ | src/ (2 files):
Convert QAST::Compiler.regex_commit to use opcode form.
p: 215243f | pmichaud++ | src/ops/nqp.ops:
Update nqp_rxcommit to preserve captures at point of commit.
masak r: .say for (1, 2, 3, 4).map({$_ * 10})
p6eval rakudo b390e8: OUTPUT«10␤20␤30␤40␤»
pmichaud r: say (1,2,3,4).map({$_ * 10})
p6eval rakudo b390e8: OUTPUT«10 20 30 40␤»
pmichaud (more like the gist example)
or even 12:25
r: say (1,2,3,4).map({$_ * 10}).join(',')
p6eval rakudo b390e8: OUTPUT«10,20,30,40␤»
Woodi it looks there is no order in Perl6, things works from left to right and in other directions too :)
pmichaud there's more than one way to order it, yes. :)
masak Woodi: the idea is that it's up to you, the programmer, to tell the story in an order that makes sense.
pmichaud sometimes "subject verb" makes the most sense, sometimes "verb subject" makes more sense. Perl 6 allows both. :-) 12:26
moritz \o/ commits 12:27
masak in story-telling around the camp fire, it seems that there's some use to end-loading sentences for suspense. in programming, suspense isn't often what you want to achieve, and up-front details are preferable.
hence for example .subst(:g, q["], q[']) from yesterday.
jnthn
.oO( Lightning talk: writing Perl 6 like Yoda would )
masak jnthn: many ways in Perl 6 to write things, there are! 12:28
tadzik that's an awesome idea :) 12:29
Woodi I was probably parsing it as method call chain but was trying to apply some fp becouse of map...
pmichaud nobody's bumped NQP_REVISION to include 4.4.0 yet?
well, it is a method call chain :-)
masak Woodi: see also ==> and <==
pmichaud (10,20,30,40) is a list
.map({"$_"}) is a method on that list, producing a new list
jnthn r: <all the things> ==> say
p6eval rakudo b390e8: OUTPUT«all the things␤»
jnthn ;)
masak r: (1, 2, 3, 4) ==> map({ $_ * 10 }) ==> say 12:30
p6eval rakudo b390e8: OUTPUT«10 20 30 40␤»
moritz r: say <== <all the things>
p6eval rakudo b390e8: OUTPUT«== <all the things␤»
masak r: say <== map({ $_ * 10 }) <== (1, 2, 3, 4)
p6eval rakudo b390e8: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix <== instead at line 1, near " map({ $_ "␤»
pmichaud bumps NQP_REVISION, respectests
masak huh!
jnthn r: say() <== <all the things>
p6eval rakudo b390e8: OUTPUT«all the things␤»
masak r: say() <== map({ $_ * 10 }) <== (1, 2, 3, 4)
p6eval rakudo b390e8: OUTPUT«10 20 30 40␤»
masak :)
why did moritz' `say <== <all the things> 12:31
moritz masak: LTM
masak ` work, but not my `say <== map({ $_ * 10 }) <== (1, 2, 3, 4)`?
jnthn masak: Parsed as a qouting construct.
masak: It had a closing >
moritz <all the things> is a longer match than <==
jnthn masak: Yours didn't
masak hrm :)
moritz r: say() <== ( (1, 2, 3, 4) ==> map({$_ * 10}) ) 12:32
p6eval rakudo b390e8: OUTPUT«10 20 30 40␤»
masak r: say() <== (1, 2, 3, 4) ==> map({$_ * 10})
jnthn WAT? :)
p6eval rakudo b390e8: OUTPUT«10 20 30 40␤»
masak :P
moritz Perl 6: sending your data around in zigzaggs :-)
timotimo a parrot that flies like a rabbit ...
pmichaud You are in a maze of twisty feed operators, all different. 12:33
masak run away! run away!
colomon you have been eaten by a grue 12:34
moritz in sovjet russia, you eat the grue! 12:36
masak no no, that's not how you do a Soviet Russia joke... :) 12:38
colomon in Soviet Russia, the joke does you! 12:39
masak :P
colomon has a terrible urge to abandon all the things he should be doing and hack on ABC instead 12:40
tadzik in jokes, you do soviet russia? 12:45
masak ...and here's one at least two steps removed from the proper form :) 12:47
tadzik two levenshtein steps? :) 12:49
dalek kudo/nom: d438760 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get regex fixes for RT #107254.
12:50
masak tadzik: taking the appropriate thing as a unit of change, yes.
moritz a tiny step for a man, but a big step for levensthein! 12:51
pmichaud tadzik: okay, I'm going to look briefly at #111286, but the main patch I wanted to see done is now in.
masak <TimToady> maybe we should rename it to "promise" or some such 12:53
suggest "DEFER"
tadzik sounds good
pmichaud: take your time, I won't start releasing til I'm back from work anyway
moritz +1
or LATER :-)
tadzik so in about 3 hours
pmichaud tadzik: perfect, works for me. Apologies for causing the delay. 12:54
jnthn Do we allow computing the thing in parallel, on another thread?
Then it's basically a way of doing futures.
tadzik pmichaud: you're not causing the delay :)
moritz pmichaud++ # mark_commit fix 12:55
masak jnthn: I thought it wasn't a question of that, but of a by-need kind of semantics.
moritz: what I like about DEFER is that it's a transitive verb and so the block that comes after naturally becomes its direct object.
moritz masak: I like it too. And I wasn't quite serious with LATER 12:57
lumi_ "SOON"
moritz "later" is too vague
jnthn masak: True. It's two different semantics really.
jnthn masak: Probably futures want something else. 12:57
moritz AT-YOUR-CONVENIENCE { do costly calculation } 12:58
tadzik lumi_: :D
jnthn ponder { ... } # :)
tadzik IF-YOU-FEEL-LIKE-IT { }
std: sub your { }; take your time 12:59
p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
tadzik heh. "take your time" – "ok 00:00 41m" 13:00
masak that's "megs" though, not "minutes" :)
tadzik TIL
moritz somehow this discussion reminds me of de3.eu.apcdn.com/full/44103.jpg 13:01
tadzik nice one 13:02
masak though someone misunderstood what "periphery" means. 13:03
and that doesn't seem like "proper Englishman" English to me as much as overly elaborate ways of saying stuff. 13:04
moritz aye
masak but that was probably the whole point, in which case "ha ha"
moritz still nice :-)
jnthn I object to the insinuation that we Englishmen say every sentence in such a spiffingly considerate manner. 13:05
tadzik of course. You forgot a comma :P 13:05
moritz jnthn: objection sustained
tadzik (at least according to Polish rules)
jnthn :P 13:06
masak tadzik: ooc, where? before 'that'? 13:07
moritz tadzik: maybe you need to polish your rules a bit :-) 13:07
tadzik we, Englishmen
"Śmiem poddać pod wątpliwość teorię, iż my, Polacy, wypowiadamy każde zdanie w niezmiernie wysublimowany sposób" ;) 13:08
masak oh!
tadzik ...and I probably added an extra comma ;) 13:09
jnthn phenny: "niezmiernie"?
phenny jnthn: "extremely" (pl to en, translate.google.com)
masak no, there shouldn't be a comma there in the English sentence.
tadzik I see
masak phenny: en pl "an extreme"?
phenny masak: "ekstremalne" (en to pl, translate.google.com)
tadzik that's too casual
jnthn phenny: en pl "spiffing"?
phenny jnthn: "spiffing" (en to pl, translate.google.com)
jnthn Dang :)
masak dang, thought it'd be "zmier" or something. 13:10
tadzik I improvised a bit 13:10
masak: niezmiernie is like "uncountably"
phenny: warm up
masak phenny: en pl "to count"?
phenny masak: "liczyć" (en to pl, translate.google.com)
tadzik phenny: pl en "Śmiem poddać pod wątpliwość teorię, iż my, Polacy, wypowiadamy każde zdanie w niezmiernie wysublimowany sposób"?
phenny tadzik: "I dare to be questioned the theory that we, Poles, speak every sentence in an extremely sophisticated way" (pl to en, translate.google.com)
tadzik good job!
masak spiffing.
jnthn s3.amazonaws.com/ragefaces/85cbfbcb...e0d3b9.png 13:11
tadzik :D
didn't see that one coming 13:12
tadzik or: I did not suspect the sudden appearance of this entity 13:13
moritz all spectests pass 13:16
masak \o/
time to write more spectests!
:P
[Coke] envisions a nice relaxing vacation where he can hack on perl 6 instead of $dayjob. 13:17
masak read that as "...inside of $dayjob" 13:18
vacation by creative escapism!
au "perl 6 hacking: an inside job" 13:21
masak au! \o/
au heya \o
masak people come in here asking "when will it be ready/stable/production?" 13:23
and then you ask what they mean, and they say "1.0".
irclog.perlgeek.de/perl6/2012-05-12#i_5583298
tadzik is 2012.05 not enough? :) 13:24
masak if you ask me, 2012.05 is the best ever.
but enough? :)
I dunno...
I think we can do more! :)
[Coke] eh. there's some reasonable bit of "we cannot decide when it is production for you". But we can decide when it is for us. Is anyone here using it for $dayjob?
masak o/ 13:25
[Coke] I am not. I suppose I could start using it for $otherstuff, though.
masak I shouldn't overstate my use of it for $dayjob. there are occasions when Perl 5 is the perfect tool, and occasions when Perl 6 is. 13:26
[Coke] wonders if rakudo consulting is using it. 13:27
isBEKaml rakudo consulting LLC? :D
dalek ast: 18e1f80 | moritz++ | S05-capture/subrule.t:
subrule capturing, RT #107254
13:32
ast: 0431f79 | moritz++ | S05-capture/subrule.t:
more subrule capturing, RT #112148
masak moritz: re rt.perl.org/rt3/Ticket/Display.html?id=61764 13:32
moritz: ff implemented, fff still missing 13:33
moritz: is fff LHF?
jnthn huh
I did fff earlier this month
We pass tests on it.
masak oh!
masak closes ticket
r: .say when 4 fff 8 for 1..10
p6eval rakudo d43876: OUTPUT«1␤2␤»
masak er. 13:34
r: .say if $_ == 4 fff $_ == 8 for 1..10
p6eval rakudo d43876: OUTPUT«4␤5␤6␤7␤8␤»
masak I wish there was some shorthand there...
moritz write a macro!
masak *sigh* :) 13:35
no, but I wish there were a shorthand.
the nice thing about 4..8 in Perl 5 is that it defaults to $.
isBEKaml masak: you won't write a *macro*?? :P
jnthn r: .say when /4/ fff /8/ for 1..10 13:36
p6eval rakudo d43876: ( no output )
jnthn heh :)
moritz it might get the wrong $_
jnthn Yeah, that won't work :)
masak I was sighing over the fact that I'm now "that guy". macros are a good idea, but they're not the automatic answer to every design proposal.
jnthn masak: No, but they may actually let you do the right thing in this particular case :)
masak dangit, can't Perl 6 just DWIM for me? :) 13:36
tadzik change Perl 6! 13:37
jnthn I'm not sure making ff and fff do smartmatch by default is a good idea.
isBEKaml masak: * Perl6!
jnthn Maybe we need a ~ff~ and a ~fff~ :) 13:38
moritz ~f~f~f~
masak /ignores everyone :)
masak r: .say for (1..10).sort(&rand) 13:40
p6eval rakudo d43876: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub rand at src/gen/CORE.setting:3257␤ in method reify at src/gen/CORE.setting:4860␤ in method reify at src/gen/CORE.setting:4755␤ in method gimme at src/gen/CORE.setting:5142␤ in method eager at …
masak there's a ticket about this. (0-arg functions passed to .sort)
moritz r: .say for (1..10).sort( -> $, $ { rand })
p6eval rakudo d43876: OUTPUT«8␤7␤9␤1␤10␤6␤5␤2␤3␤4␤»
masak it ends with me saying "I don't see why this shouldn't work". 13:41
maybe I should put my money where my mouth is and just implement it.
moritz maybe
masak will *implement* something! shock! horror!
moritz though of course you could just .pick(*)
masak for this particular case, yes.
tadzik is there any other case
?
moritz well, there aren't that many useful nullary functions 13:42
masak now :)
moritz oh come on.
tadzik for sorting? Come on
masak :P
I could make any number of custom nullary functions which aren't &rand or &now, and pass them into &sort
it basically gives me APL-like "order things according to these indices" 13:43
moritz and how could they do useful sorting, without seeing the values?
Juerd An iterator could be useful to get randomish, but not quite random, results.
masak ok, I fold. the 0-ary case isn't worth its weight. closing ticket. 13:44
r: say Failure; say Failure.new 13:47
p6eval rakudo d43876: OUTPUT«Failure()␤Not enough positional parameters passed; got 1 but expected 2␤ in method new at src/gen/CORE.setting:8977␤ in block <anon> at /tmp/X4bll7XI28:1␤␤»
masak r: say Failure; say Failure.new("blah")
p6eval rakudo d43876: OUTPUT«Failure()␤Method 'throw' not found for invocant of class 'Str'␤ in method gist at src/gen/CORE.setting:9000␤ in sub say at src/gen/CORE.setting:6765␤ in block <anon> at /tmp/rdRpyBg5gi:1␤␤»
Ulti r: my num @nums[1]; @nums[1] = 'a'; 13:48
p6eval rakudo d43876: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/PT0gw60KI4:1␤»
masak r: say Failure; say Failure.new(X.new)
p6eval rakudo d43876: OUTPUT«Failure()␤You cannot create an instance of this type␤ in method bless at src/gen/CORE.setting:588␤ in method new at src/gen/CORE.setting:575␤ in block <anon> at /tmp/1nCdEn_yjj:1␤␤»
Ulti r: my num @nums; @nums[1] = 'a';
p6eval rakudo d43876: OUTPUT«Null PMC access in set_number_native()␤ in block <anon> at /tmp/82tBkS2lpO:1␤␤»
moritz r: say Failure.new(X::AdHoc.new(:payload<foo>))
p6eval rakudo d43876: OUTPUT«foo␤ in method gist at src/gen/CORE.setting:9000␤ in sub say at src/gen/CORE.setting:6765␤ in block <anon> at /tmp/BubtaX1S5H:1␤␤»
jnthn Ulti: Compact arrays are NYI 13:49
Ulti okedoke
jnthn On the todo list, just a bit fiddly 13:50
Ulti though it looks like its setup to be right? assuming set_number_native is doing what it hints at but is a stub?
jnthn It...probably shouldn't be doing that.
Ulti heh
masak rakudo: say 0..WHAT 13:51
p6eval rakudo d43876: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'WHAT' will never work with no arguments (line 1)␤ Expected: :(\$x)␤»
jnthn I can kinda guess why it ends up trying but...yeah, that won't work out.
masak closes rt.perl.org/rt3/Ticket/Display.html?id=72822
Ulti really cool thats an eventual feature of vanilla perl6 though, I can get my supervisor to stop using horrible C libraries from perl5
PerlJam good $localtime all
masak PerlJam! \o/ 13:52
jnthn Well, thanks to NativeCall, using C from Perl 6 ain't too nasty, even if he wants to continue. :)
o/ PerlJam
PerlJam how does one get the return value from a code block in PAST?
pmichaud I've just noticed that the .gist for Match objects looks.... backwards. 13:54
moritz pmichaud: it's optimized for large Match trees
masak pmichaud: you mean with the => in the beginning?
pmichaud: I can't say I'm a fan of it either.
pmichaud r: grammar XYZ { token TOP { [ $<a>='x' ]? $<b>='y' } }; say XYZ.parse('xyz')
moritz pmichaud: but you're not the first to complain
p6eval rakudo d43876: OUTPUT«=> <xy>␤ a => <x>␤ b => <y>␤␤»
pmichaud I mean with the fact that the 'x', and 'y' are in angles 13:55
even though they aren't keys
jnthn PerlJam: As in, invoke it?
masak pmichaud: I don't understand that criticism.
pmichaud how does one get to the 'x' there? By using $<a>
masak pmichaud: <x> means "the string 'x'"
moritz a and b are the keys, that's why the appear left of =>
jnthn PerlJam: Just wrap a PAST::Op.new( :pasttype('call'), ...the thing... ) around it 13:56
pmichaud <x> means "the string 'x'" as long as there aren't any spaces in it.
jnthn PerlJam: If you mean what I think you mean :)
masak pmichaud: it's the .gist format, not .perl
pmichaud r: grammar XYZ { token TOP { [ $<a>='x y' ]? $<b>='z' } }; say XYZ.parse('x yz')
p6eval rakudo d43876: OUTPUT«=> <x yz>␤ a => <x y>␤ b => <z>␤␤»
masak it's not meant to be Perl code.
PerlJam jnthn: *I* don't know what I think I mean :)
pmichaud it just seems like an odd use of angles to me, that's all.
moritz pmichaud: what would you prefer? 13:57
PerlJam jnthn: If I've got PAST::Op.new(:pasttype<call>, $code); and I want to checkthe return type of executing that code, how do I do it?
pmichaud I'd be okay if it was some other bracketing character that didn't accidentally pun with the meaning of $<...>
masak pmichaud: how about ''?
pmichaud I'm wondering if q[...] might be better. 13:58
masak that would highlight the string nature of the strings.
yeah, q[] wfm too.
jnthn PerlJam: Use the :pirop('type_check__IPP') node that I mentioned the other way around it, and then you can put that in an if node.
pmichaud anyway, the angles keep throwing me off because instinctively they look like keys or <subrule> thingies. 13:59
jnthn PerlJam: Assuming you mean "check the return type it produces at runtime when we run it"
PerlJam jnthn: aye
pmichaud or, more to the point
r: grammar XYZ { token TOP { <alpha> } }; say XYZ.parse("alpha");
p6eval rakudo d43876: OUTPUT«=> <a>␤ alpha => <a>␤␤»
jnthn PerlJam: You may want to bind the result of doing the call into a register though
(see :scope('register') for examples) 14:00
PerlJam jnthn: but I ... right! that's it :)
pmichaud that "alpha => <a>" looks weird, given that it was <alpha> in the source.
PerlJam jnthn: thanks
jnthn PerlJam: Since you'll want to test its type and then later use it. 14:00
masak pmichaud: so, "<alpha> => q[a]" ?
jnthn pmichaud: Agree...and if you find it confusing as the regex engine hacker, heck knows how others will find it :)
pmichaud I'd be fine with "alpha => q[a]", I think.
masak ok. 14:01
pmichaud that way it at least looks like a pair 14:01
jnthn +1 to q[...]
masak pmichaud: I can fix it if you have more important stuffs to do.
pmichaud sure, it's a low-priority nit for me :) 14:01
masak fixes it
moritz maybe not right before the release
just in case somebody depends on it
masak ok, I'll fix it in a branch. 14:02
pmichaud I doubt people should be depending on .gist :)
masak "should be" !=== "are" :P
PerlJam hmm. I find that statement about .gist quite odd.
pmichaud well, at least to this level.
masak I doubt it too.
pmichaud yes, I suppose it does make sense to depend on .gist, since it's the canonical 'say' output format.
masak but I'll be happy to be careful if it pleases moritz.
pmichaud as I said, minor nit, so pre- or post- release are both fine with me. 14:03
masak .oO( people who get the .gist output and parse it o.O )
moritz well, just go ahead if you want
masak I'm doing it in a branch. 14:05
moritz mathematicians do it in groups. programmers in branches :-) 14:07
dalek Heuristic branch merge: pushed 62 commits to nqp/qbootstrap by jnthn
moritz .u dolphin 14:23
phenny moritz: Sorry, no results for 'dolphin'.
dalek kudo/match-gist-fixup: 762996e | masak++ | src/core/Match.pm:
[src/core/Match.pm] changed <> to q[] in .gist

Suggested by pmichaud++. It may or may not be worth it to also escape all ']' in the matched text itself.
14:23
kudo/match-gist-fixup: 194f846 | masak++ | src/core/Match.pm:
[src/core/Match.pm] removed root-level '=> '
masak I ran the spectests on that. all tests pass.
(and it takes 4 minutes on this box, with TEST_JOBS=8) :) 14:24
dalek p/qbootstrap: 44e1c14 | jnthn++ | src/QHLL/Grammar.pm:
Update QHLL to not use ** with a separator.
p/qbootstrap: 7a76f20 | jnthn++ | src/NQPQ/Grammar.pm:
NQPQ's Grammar used the ** ',' syntax, which is now gone from QRegex, but it builds this in stage 1 too, using the old regex engine which doesn't do %. So, eliminate those two cases for something a little more verbose.
jnthn Why on earth would a test run just fine from the command line, but parse fail when run with prove? :S 14:25
(yes, used --exec)
pmichaud: Seems we get a performance win in qbootstrap now you've done that commit stuff. 14:26
moritz \o/
pmichaud yes, there should be a good sized performance win 14:27
well, maybe not huge, but at least a small bit
since we're freeing quite a bit more off the stack on commits now, I suspect.
tadzik jnthn: just 'prove -e foo <file>'?
jnthn nqp t\nqp\56-role.t # passes all 14:28
prove -e nqp t\nqp\56-role.t # doesn't even make it thorugh the parse
moritz prove -e nqp t/nqp/56-role.t ? 14:28
jnthn moritz: Same result 14:29
moritz :(
does it use the same nqp?
jnthn If anyone wants to try and reproduce, just grab qbootstrap branch
moritz: That's what I wondered too..
jnthn prove -e .\nqp t\nqp\56-role.t # also fails 14:29
moritz compiles 14:31
jnthn t\nqp\32-protoregex.t and t\nqp\52-vtable.t suffer the same odd fate. 14:33
moritz t/nqp/52-vtable.t parsefails here when run directly 14:37
the other two are fine both directly and with prove here
52-vtable.t also parsefails when run through prove
t/nqp/52-vtable.t .. Confused at line 48, near "$a.init();" 14:38
jnthn Oddness
tadzik wtf 14:39
tadzik builds
qbootstrap, si?
jnthn aye 14:40
tadzik huh. I did perl Configure.pl --gen-parrot and it started building nqp too 14:44
moritz yes 14:46
tadzik I didn't expect that, I thought --gen-nqp will build nqp and parrot, not --gen-parrot 14:47
pmichaud have to have an nqp to build rakudo
tadzik sure
pmichaud --gen-parrot implies --gen-nqp, I think. 14:48
tadzik okay
t/nqp/56-role.t works for me
pmichaud Configure.pl:58: # --with-parrot and --gen-parrot imply --gen-nqp
tadzik t/nqp/52-vtable.t doesn't work either way 14:49
tadzik and 32-protoregex.t works either way 14:49
sniff sniff. Is that non-deterministic compilation striking again? 14:50
moritz tadzik: I have the same results as you 14:50
I suspect that jnthn has some local mess
jnthn Oddness 14:51
tadzik right
jnthn git diff shows up nothing here.
What's odd is that the vtable.t one does run here
tadzik jnthn: and git status? 14:52
jnthn Nothin'. 14:53
Ulti jnthn: can you have autoindexed multi dimension arrays in rakudo? or has no one touched Synopsis 9 at all because its quite out there compared with everything else 14:54
jnthn That bit of S09 is decidedly untouched so far. :) 14:55
Ulti heh, did you check your magic synopsis 9 ball for that answer? 14:56
Ulti my @grid[**]; # Any number of dimensions x___X 14:57
masak though that's kinda the default. 14:58
Ulti uh oh sparseness is mixed in too 14:59
that looks impossible to implement wholistically
spider-mario expected Positional but got Array instead 15:00
how come?
tadzik hehe
spider-mario r: say Array ~~ Positional
tadzik odd. Code?
p6eval rakudo d43876: OUTPUT«True␤»
spider-mario I’ll try to reproduce it with a smaller code 15:01
r: sub f(Int @x) {}; f([])
p6eval rakudo d43876: OUTPUT«Nominal type check failed for parameter '@x'; expected Positional but got Array instead␤ in sub f at /tmp/_pcsDu1aLu:1␤ in block <anon> at /tmp/_pcsDu1aLu:1␤␤»
jnthn grr, really need to fix that to say Positional[Int] 15:02
masak spider-mario: the error message is misleading.
spider-mario: what jnthn said.
spider-mario ok
masak r: sub f(Int @a) {}; my Int @a; f(@a) 15:02
p6eval rakudo d43876: ( no output )
masak r: sub f(Int @a) {}; my Int @a; f(@a); say "alive"
p6eval rakudo d43876: OUTPUT«alive␤»
spider-mario r: sub f(Int @x) {}; f([5])
p6eval rakudo d43876: OUTPUT«Nominal type check failed for parameter '@x'; expected Positional but got Array instead␤ in sub f at /tmp/Dcwv_lS7OH:1␤ in block <anon> at /tmp/Dcwv_lS7OH:1␤␤»
jnthn r: say Positional[Int].WHAT
p6eval rakudo d43876: OUTPUT«Positional()␤»
jnthn r: say Positional[Int].name
p6eval rakudo d43876: OUTPUT«Method 'name' not found for invocant of class 'Positional'␤ in <anon> at src/gen/Metamodel.pm:1176␤ in block <anon> at /tmp/04Z0xZtoCU:1␤␤»
masak spider-mario: array literals are always untyped.
jnthn r: say Positional[Int].^name
p6eval rakudo d43876: OUTPUT«Positional␤»
spider-mario oh
ok.
tadzik eek 15:03
masak spider-mario: so you can't expect to pass one in like that. you need to declare it.
masak submits rakudobug
tadzik that makes sub (Int @k) much less useful
spider-mario r: my Int @x = [5]
p6eval rakudo d43876: ( no output )
masak tadzik: yes.
spider-mario r: my Int @x = ['a']
p6eval rakudo d43876: ( no output )
tadzik although I see the point
masak spider-mario: skip the []
spider-mario r: my Int @x = 'a' 15:03
p6eval rakudo d43876: ( no output )
masak tadzik: it would be a little better if there was some argument syntax that said "I promise that this array is an Int array" 15:06
tadzik right 15:08
well, casting
[Coke] hurls www.smbc-comics.com/index.php?db=co...mp;id=2613 15:10
tadzik decomutees 15:13
dalek p: aee8809 | pmichaud++ | src/Q (2 files):
Fix bug with subcaptures receiving empty hash entries from outer match quantified captures (RT #111286).
15:35
pmichaud re-spectesting rakudo now. 15:36
jnthn peers curiously at the patch 15:39
masak peers curiously at the RT ticket
pmichaud captures normally keep track of $!regexsub, which is the sub that created the capture 15:40
then the CAPHASH uses information from the $!regexsub to populate empty arrays
thus: regex abc { <a>* } will end up with an entry in the 'a' hash slot 15:41
even if no <a>'s actually match
pmichaud but in the case of 15:41
regex abc { <a>* $<b>=b }
the $<b> match object really shouldn't be tied to the 'abc' regex
it's a "subcapture", which is only just the text of the capture 15:42
what was happening was that the match object for $<b> kept the reference to the outer $!regexsub
which meant that when someone asked for hash entries, it would construct an empty list to represent the quantified <a> captures
jnthn oh! 15:43
pmichaud somewhat telling is something like:
r: grammar XYZ { rule TOP { [ $<a>=x ]? $<b>=y [ $<c>=z ]? } }; XYZ.parse('xyz').<b>.keys.say 15:44
p6eval rakudo d43876: OUTPUT«0␤»
pmichaud ummm.
r: grammar XYZ { regex TOP { [ $<a>=x ]? $<b>=y [ $<c>=z ]? } }; XYZ.parse('xyz').<b>.keys.say
p6eval rakudo d43876: OUTPUT«a c␤»
pmichaud there.
the $<b> match object was tied to the TOP regex, and thus it thought it needed empty lists for $<a> and $<c>. 15:45
dalek ast: 343a61d | (Solomon Foster)++ | S (2 files):
Fudge for niecza.
pmichaud anyway, the patch eliminates that, as well as makes the subcapture case much more optimal than before.
jnthn Nice 15:46
It's a very nice short patch too :)
pmichaud Aye.
masak pmichaud++
pmichaud all of today's patches have been (1) short and (2) cleaner than what was before.
so I'm happy. :-)
jnthn pmichaud++
This is all very nice to have. :) 15:47
pmichaud oh, and looks like we pass a TODO 15:47
jnthn And great that we have them just in time for the release. :)
\o/
pmichaud oh, maybe not. That's weird. 15:48
anwyay, bumping NQP_REVISION
moritz JITforrelease hacking :-) 15:49
dalek kudo/nom: 0ed00f0 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get fix for RT #111286.
pmichaud ...and with that I'm afk for a while... should be back again tomorrow
phenny: tell tadzik I'm done with my patches... release when ready 15:50
phenny pmichaud: I'll pass that on when tadzik is around.
[Coke] I actually don't like "just before release hacking", as he fears not-enough-testing. (but that's when /i/ am the one writing the code. ;) 15:55
PerlJam [Coke]: I feel the same way. But then I think, "the next release is only a month away" 15:56
(Now, for an R* release it would worry me more)
moritz [Coke]: I agree. Which is why I asked masak++ to do the Match.gist change in a branch
moritz and I did some stuff in branches too 15:57
I mean, branching *is* easy in git. The hardest part is not to forget the branches :-)
skids r: role A [::T = Int] { method a (:$myt = T) { T.WHAT.say; } }; class B does A[Rat] { }; my B $a .= new; $a.a(:myt(Str)) 16:09
p6eval rakudo d43876: OUTPUT«(timeout)»
skids huh. well, that doesn't spin locally.
masak should be OK, though. 16:10
but the :myt argument is completely unnecessary, of course.
skids locally the above gives "Rat()" when I expected "Str()"
masak r: role A [::T = Int] { method a { T.WHAT.say; } }; class B does A[Rat] { }; my B $a .= new; $a.a 16:11
p6eval rakudo d43876: OUTPUT«Rat()␤»
moritz skids: then mzabe zou should say $myt.WHAT.say
masak zes. :)
moritz *maybe
instead of T.WHAT.say
skids Ah.
masak doesn't explaing why it gets a timeout, though. 16:12
moritz maybe high load on the server 16:13
skids Anyway that's beside the point of what I was going to type next: if you invoke .a() you get an "Cannot type check against type variable T" error.
skids (and aside from that, line numbers on multidispatch error messages don't seem to always end up at the offending candidate) 16:18
masak r: .say for (1, 2, 3) xx 4
p6eval rakudo d43876: OUTPUT«1␤2␤3␤1␤2␤3␤1␤2␤3␤1␤2␤3␤» 16:19
masak that... was slow.
tadzik pmichaud: roger that 16:20
phenny tadzik: 15:50Z <pmichaud> tell tadzik I'm done with my patches... release when ready
tadzik release name? 16:21
skids
.oO(Today is the 110th anniversary of the archeological discovery of the Antikythera mechanism)
16:23
[Coke] tadzik: there's a list of options, no? or did it get exhausted? 16:24
tadzik there are two I think
if anyone wants to decide, go ahead :)
moritz skids: well, they can't come from the offending candidate, but multi dispatch error means there isn't exactly one best candidate 16:27
so there's also not one offending candidate 16:28
the error should come from the calling location
skids Well, OK, s/multidispatch errors/type check errors/ then, which occur during multidispatch(?). 16:29
Because said above error message gives a line number of a candidate that doesn't have the :myt parameter. 16:30
sorear good * #perl6 16:31
colomon o/ 16:32
masak sorear! \o/ 16:32
moritz skids: example?
\o sorear
skids well, at the risk of another timeout:
colomon sorear: I've added substr-rw to my copy of niecza, waiting on my getting the spectest running a bit cleaner before pushing. 16:33
skids r: role A [::T = Int] { method a (:$myt = T) { $myt.WHAT.say; } }; class B does A[Rat] { }; my B $a .= new; $a.a()
p6eval rakudo 0ed00f: OUTPUT«Cannot type check against type variable T␤ in any type_check at src/gen/Metamodel.pm:271␤ in method a at /tmp/hZvTT9L7TH:1␤ in block <anon> at /tmp/hZvTT9L7TH:1␤␤»
skids That error will appear with a line number of a different candidate (if you provide more candidates in a file with line numbers)
sorear colomon: cool. are you also going to remove rw functionality from substr/ 16:34
colomon sorear: oh. didn't realize it was there.
sorear: hmmm.
colomon may completely change his approach to this.... 16:35
moritz skids: that error seems to be bogus to me; I don't see where a type-check against T happens anyway
skids yes that's what I initially sought to show, but also the error line number is wrong as well. 16:36
If I was smart enough, I'd know how to generate a legitimate error so as to separate the issues :-) 16:38
TimToady er, why use q[] when there's ''? 16:39
(backlogging)
masak: I'm referring to your Match.gist patch 16:41
PerlJam '' are so boring ;)
TimToady q[] just seem like it'll clutter both alphabetic and non-alphabetic strings by interfering with both parts of your brain 16:42
or use some nice Unicode brackets 16:43
「foo」 16:44
skids wonders what alphabet TimToady would use during a field sobriety test 16:45
dalek p: dfb6d5a | tadzik++ | VERSION:
bump VERSION to 2012.05
TimToady 何だ?
[Coke] slows gets used to the control key being back in the "right" spot. 16:47
*slowly
sorear colomon: eep, were you trying to implement substr-rw using Proxy? 16:48
colomon sorear: yes
sorear: I'm sure the substr version that existed is better
(at least, massively more efficient)
TimToady Perl 6, a referentially translucent language... 16:49
fsdo translucent...
tadzik jnthn, pmichaud: are we still lacking some autoviv bits? 16:50
jnthn tadzik: I thought Pm did all the auto-viv in the last release 16:51
We have green for it in features too
tadzik I thought so 16:52
so, are we still regressing anywhere compared to 2011.07? 16:53
TimToady is tempted to define 「foo」 as equivalent to Q[foo]
[Coke] module! 16:55
jnthn tadzik: Not as far as I know.
tadzik fine :) 16:56
jnthn tadzik: Oh, wait, one place...
capture ~~ signature case of smartmatch
tadzik ah, that one
TimToady [Coke]: no, I mean that Q[] is too useful not to have a shortcut like q[] or qq[]
it's not just for being cute 16:57
jnthn Not sure it's worth calling out that we're still missing that tough.
[Coke] TimToady: ok. as long as it's not JUST ute.
TimToady *c
[Coke] ... these 2 utes. 17:00
dalek kudo/nom: 3866972 | tadzik++ | tools/build/NQP_REVISION:
Bump NQP revision
17:05
kudo/nom: 8004748 | tadzik++ | docs/release_guide.pod:
Update release guide
kudo/nom: 64dc550 | tadzik++ | docs/announce/2012.05:
Add a release announcement for 2012.05
tadzik patches to the release announcement are welcome
jnthn and is able import by tag name 17:06
able *to* import...
moritz "is now functional" might be ambiguous 17:07
jnthn tadzik: Probably worth a note taht there's been some regex engine improvements too
tadzik true 17:08
jnthn There's been the pmichaud++ fixes, but also that /<$x>/ catching improvement, <( and )>, <~~>...
*caching
Also should mention more prominently that . is no longer in the default library path 17:09
tadzik right
moritz lib
. was already removed in 2010.04.1
dalek kudo/nom: 4f48183 | moritz++ | docs/announce/2012.05:
[announce] mention regex improvements; wording
17:10
sisar tadzik: "ff have been improved" <--- s/have/has (?)
moritz hm, maybe both should be mentioned
jnthn moritz: ah, yeah, it was that way around :)
moritz sisar: you're too slow :-)
jnthn yes, has
tadzik whoa, slow down :)
jnthn +On behalf of the development team, I encourage you to try the new release.
+have fun, and let us know about your experience.
That wants a comma, or a capital H
:)
sisar moritz: dang :/
sisar maybe split the changes into "What's new?" and "What's been fixed/improved?" #bikeshedding :) 17:12
moritz sisar: each fix is something new #bikeshedding 17:13
tadzik dalek, wake up
tadzik I've pushed some new changes to the release annoucement. Anything else to fix? 17:13
sisar moritz: aye
PerlJam wants to see the list of things that have been unimproved ;) 17:14
sisar moritz: aye-ish
dalek kudo/nom: b6d1c8e | tadzik++ | docs/announce/2012.05:
Some more fixes to the release announcement
dalek ecs: cb82d5a | larry++ | S02-bits.pod:
Spec halfwidth corner brackets for Q[] equivalent

This is primarily to improve output of strings that mostly want to be complete quoted, to avoid cluttering such output with Q[]. But to allow it for .perl output, we have to allow it on input too.
17:18
masak as long as things have an ASCII equivalent (possible longer), it's all good... 17:19
jnthn masak: Q[...] :)
icwiener In the announcement, "-I and -M command-line options" stands a bit lonely there, no? I mean, another half-sentence explaining what those options do, might be nice.
masak right.
but this is the first thing in the spec that isn't latin-1, no? correct me if I'm wrong.
jnthn Hmm. Good point. 17:20
icwiener "Rakudo now also includes the lib.pm module." is also very lonely. :)
moritz well, in the end the announcement is a list of changes, not a narrative 17:22
icwiener moritz: True. Just while reading, I asked myself what that change actually does. 17:23
TimToady masak: no, we've got set operators already
and I've decided the Latin-1 restriction is becoming largely unnecessary in the modern world 17:24
colomon has finally taken some steps to figure out how to make UTF 8 work portably in his C++ code. 17:25
TimToady the world has largely settled on UTF-8 for interchange now, at least for languages without legacy 16-bit character sets 17:26
and they're at least Unicode aware
tadzik icwiener: good motivation to find out, eh?
:)
adu TimToady: any by "world" you mean everywhere except China 17:27
icwiener tadzik: hehe, good point. :D
TimToady adu: um, I just said that 17:28
"legacy 16-bit" 17:29
colomon well, and Windows
TimToady that's the part of the world that isn't "largely" settled on UTF-8 17:30
adu TimToady: GB 18030 is neither legacy nor 16-bit
TimToady yes, but those languages have legacy 16-bit, even if they have others 17:31
icwiener Typo in changelog: "arguemnts"
tadzik refresh? 17:32
sorear TimToady: so India is all on board the UTF-8 train?
tadzik I don't see it
adu TimToady: also, technically GB 18030 is 12-bit, not 16-bit
icwiener tadzik: Hmm, I am looking at github.com/rakudo/rakudo/blob/b6d1.../ChangeLog 17:33
tadzik: And it's still there.
adu GB 18030 was designed to replace UTF-8, and hence it isn't "legacy" 17:34
TimToady sorear: India is getting there
tadzik because you're looking at this specific revision which had it :)
oh, wait
that's Changlog
TimToady adu: I fail to see how this contradicts what I said :)
icwiener tadzik: I saw that hash, so I navigated there again te be sure to have the newest version. :) 17:35
tadzik okay :)
you're right
dalek kudo/nom: c4fd56d | tadzik++ | docs/ChangeLog:
[Changelog] Fix a tyop
tadzik so, anything else we want about the release announcement?
icwiener I am done being pedantic. ;) 17:36
tadzik icwiener++
okay :)
adu TimToady: I just don't want you to assume that China will someday use UTF-8, it's never going to happen
dalek kudo/nom: 1a5a46f | tadzik++ | VERSION:
Bump VERSION
17:37
TimToady I don't assume it
tadzik karmacoaster
TimToady which is why I said what I said
TimToady and GB 18030 looks like kind of a botch to me that companies will support because they have to, but will end up preferring some other encoding for interchange when they can get away with it 17:45
TimToady GB 18030 can be seen as a lousy attempt at a compression encoding of Unicode 17:47
TimToady using legacy codepoints as a proxy for needing Huffman shortness 17:48
sisar tadzik: i made an About page for Rakudo to sync with your release :). Its actually just a copy paste from the READMEs ;) rakudo.org/about/ 17:50
lucas_ Hello all 17:51
adu TimToady: I agree it's not ideal, but I don't live in China, so maybe it is 17:52
lucas_ I see that Perl 6 embraces operators that are not ASCII. This design decision is documented somewhere?
sisar comments welcome
TimToady lucas_: yes, S02 says: In the abstract, Perl is written in Unicode, and has consistent Unicode 17:53
semantics regardless of the underlying text representations.
ASCII is so, like, 2nd millenium :) 17:54
actually, I malign the 2nd millenim, which used a far richer character set than ASCII, at least until typewriters were invented 17:55
*nium
so chalk it up to 20th century madness 17:56
PerlJam 19th century even. We're still living with the legacy of Herman Hollerith
adu like crosses and double crosses and backwards Ps
TimToady is waiting for the whine about characters being hard to type now :)
adu I love unicode 17:57
Woodi hmm, I just tried my $in = open "input.txt"; 17:58
my $out = open "output.txt", :w;
for $in.lines -> $line {
}ops
...tried rosettacode.org/wiki/File_IO#Perl_6 17:59
pasted up there...
and open in that form do not work...
err is: Unable to open filehandle from path 'input.txt' 18:00
diakopter jnthn: did pmichaud tackle backtracking into a subrule?
TimToady well, is there an input.txt file in your current directory?
Woodi err, no :) 18:01
tadzik github.com/downloads/rakudo/rakudo....05.tar.gz uploaded
lucas_ I don't know how to reproduce unicode characters in text editors and text input fields. How do you people do it?
PerlJam Woodi: then it sounds like it's working perfectly to me :)
TimToady there it is!
sisar lucas_ : which OS ?
lucas_ sisar: linux
TimToady and which editor?
Woodi ok, seems to work with input... must test more 18:02
PerlJam lucas_: I use digraphs in vim or compose them "manually" (ubuntu)
lucas_ In the console and KDE env. Vim and Kate...
moritz tadzik++ # release
jnthn diakopter: No, I did that in the end.
sisar lucas_: which linux ?
oh KDE
jnthn diakopter: Well... pmichaud++ had wired up a bunch of it
TimToady in vim, say :digraphs to see a list of digraphs
jnthn diakopter: I did the final bits
Was...fiddly ;) 18:03
moritz and you can enter them with ctrl+k <first> <second>
diakopter jnthn: oh! I should go find the commits to study them 18:03
TimToady under Gnome, there's a CTRL-SHIFT u 263a sequence to enter any char you know the code of
I generally use a Compose key in the termianl to get characters like «»
tadzik and the release's done 18:04
TimToady I use an input method like anthy to get characters like 漢字.
lucas_ Oh, I must learn all these ways of entering chars...
tadzik thanks for flying with tadzikair, I wish you an enjoyable stay in #53, "MadMongers"
TimToady sometimes I use a little program that scans the Unicode database for names, and then cut and paste
often there's already an example of a charcter you can reuse from the current window
or the current file 18:05
anyway, TMTOWTDI applies
lucas_ thanks for the tips
diakopter my cow-orker doesn't like me calling my Java program with a 500-line main() method a "script". 18:06
TimToady I supsect input methods will standardize a bit more over the years
PerlJam speaking of cut-n-paste #perl6 irclogs make for some good input for strange characters ;)
moritz and a good test case for my IR clogs
TimToady you mean like 𪚥 and such?
TimToady (that's four dragon radicals crammed into one character, for those playing along at home) 18:08
PerlJam looks like a box on irclogs :) 18:09
TimToady oh, that's another thing, I have a radical database that I can look up any Unicode character in by the names of the radical
so I just said "rad 4.dragon" to find that character
TimToady PerlJam: if it looks like a box rather than a whole bunch of small lines, your fonts are not up to snuff 18:10
sisar TimToady: i remember you saying a few days back that overbars don't display correctly in the GNOME terminal. But they look fine on my en. (U+3035). What problem do you have? 18:10
sisar *end 18:10
diakopter [Coke]: lol ... these 2 utes. 18:11
TimToady sisar: huh, they look better here to, so maybe they just fixed it
*too
sisar :)
PerlJam TimToady: Do you have some recommended font package(s) for ubuntu? 18:12
sisar now we can have overbars in Perl6 for repeating decimals ? :)
TimToady but o̿ still is botched here
moritz that displays as o with two overbars here in my xterm 18:13
but firefox doesn't display it correct (it shows the double overbar on the right of the o)
sisar .u ̿
phenny U+033F COMBINING DOUBLE OVERLINE (◌̿)
sisar TimToady: it looks fine on my GNOME terminal . Strange. 18:14
i mean i get an o with two overbars, if that is what you are expecting
(my GNOME Terminal version is 3.4.1.1) 18:15
geekosaur firefox has long had a problem with combining characters 18:17
sisar ok 'f' with two overbars is botched up. The two overbars cut right through the top of it !
TimToady n: gist.github.com/2720715 18:18
p6eval niecza v17-4-ge5b869e: OUTPUT«241025348275725.3352␤0.00011̅4̅2̅8̅5̅7̅␤18446744073709551616.0103092783505154639175257731958762886597938144329896907216494845360824742260̅1̅0̅3̅0̅9̅2̅7̅8̅3̅5̅0̅5̅1̅5̅4̅6̅3̅9̅1̅7̅5̅2̅5̅7̅7̅3̅1̅9̅5̅8̅7̅6̅2̅8̅8̅6̅5̅9̅7̅9̅3̅8̅1̅4̅4̅3̅2̅9̅8̅9̅6̅9̅0̅7̅2̅1̅6̅4̅9̅4…
TimToady except the overbars still screw up by 1 column here... 18:19
PerlJam yeah, bummer
TimToady the first overbar is over the 4 rather than the 1
sisar oh
diakopter they look okay here
TimToady looks good on FF except for the cut-through-ness 18:20
hmm, looks like my algorithm doesn't like a repeat right after the . 18:21
sisar TimToady: for me the first overbar is over 1, & not 4. 18:23
geekosaur huh, and those overbars don't combine here 18:24
sisar geekosaur: gnome terminal v3.4.1.1 ? 18:25
Woodi I got pastebin.com/dCXjRdFs from .get() on socket... on file io looks ok 18:26
geekosaur xchat 2.8.8 x11 on os x
sisar i'm using xchat too. It's unicode support is not good. 18:26
geekosaur bouncing through znc although that "shouldn't" matter
Woodi ...using Rakudo Star 2012.04
geekosaur probably doesnt use pango properly (if at all), same problem firefox has 18:27
in theory a plugin could work around it; don't think I'm that interested in fixing it (although I did do a plugin to make niecza/std errors work) 18:28
sisar geekosaur: i'm interested in your niecza/std plugin. Could you share it ? 18:28
geekosaur dl.dropbox.com/u/8376576/unansi.pl 18:29
sisar thanks. i'll try it :) 18:30
geekosaur maps the ANSI escapes to mIRC colors... there's a simpler thing if you just want to strip them
TimToady n: gist.github.com/2720715
p6eval niecza v17-4-ge5b869e: OUTPUT«241025348275725.3352␤0.0001̅4̅2̅8̅5̅7̅␤18446744073709551616.0̅1̅0̅3̅0̅9̅2̅7̅8̅3̅5̅0̅5̅1̅5̅4̅6̅3̅9̅1̅7̅5̅2̅5̅7̅7̅3̅1̅9̅5̅8̅7̅6̅2̅8̅8̅6̅5̅9̅7̅9̅3̅8̅1̅4̅4̅3̅2̅9̅8̅9̅6̅9̅0̅7̅2̅1̅6̅4̅9̅4̅8̅4̅5̅3̅6̅0̅8̅2̅4̅7̅4̅2̅2̅6̅8̅0̅4̅1̅2̅3̅7̅1̅1̅3̅4̅0̅2̅0̅6̅1̅8̅5̅5̅6̅7̅␤»…
TimToady that's better
colomon votes to not put that in the setting. though dang, that's cool 18:33
TimToady yes, we'd already decided to go with rounding by default 18:34
that one is only for 1/97, so just think how long the representation of a longish prime denominator would be...
PerlJam Though a module that can be included in R* woudl be nice
colomon PerlJam: sure, it's great for a module! 18:35
sisar TimToady: apart from wrong overbats, your earlier gist also gave wrong output for 1/7000 :)
*bars 18:36
TimToady yes, same bug
was doing the substr wrong
sisar oh, right
PerlJam
.oO( what would an overbat signify? )
sisar i'm under the care of batman ?
TimToady Twinkle, twinkle, little bat! How I wonder what you're at!
TimToady Up above the world so high, like a teatray in the sky... 18:37
TimToady likes overbats better than sharks 18:38
though I'm not sure I'd like to be bitten by either
sisar p6: say +'foo'; 18:39
TimToady The prospect of imminent mastication by a member of either species fills me with dread.
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Cannot parse number: foo␤ at /home/p6eval/niecza/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3405 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3407 (NumSyntax.str2num @ 4) ␤ at /…
..pugs, rakudo 1a5a46: OUTPUT«0␤»
sisar which is correct? throwing an error like niecza or returning zero like pugs+rakudo ? 18:40
diakopter teat-ray? tea-tray? neither flying makes sense to me
sisar (it is known that the spec is unclear on that) 18:41
TimToady diakopter: one might almost label it 'nonsense'
diakopter I was at least looking for a pun, I generally assume you're making one if there is any ambiguity of interpretation 18:42
TimToady some of my puns are unintentional
in this case I just misspelled "tea tray"
TimToady en.wikipedia.org/wiki/Twinkle,_Twin...Little_Bat for those who have no idea what we're talking about 18:43
adu how many XML packages are there for perl5?
diakopter TimToady: oh; I didn't know about that parody
TimToady adu: dunno, I only wrote the first one, and then largely ignore the subject
*ignored 18:44
sisar adu: that is a vague question. Maybe this will help: metacpan.org/search?q=XML
colomon diakopter: apparently many of the poems in Carroll are parodies, but that's one of the few were most people today know the original
*still know 18:45
adu wow
TimToady prolly due to the catchy tune
TimToady and composers going nuts with Variations on a Theme involving that tune 18:45
masak still remembers learning about en.wikipedia.org/wiki/Jam_tomorrow 18:46
colomon had forgotten that one, but relatively recently read the Humpty Dumpty chapter as a bedtime story. 18:48
masak oh, that's an excellent idea! 18:49
tadzik++ # release! 18:50
masak really, this is the best Perl 6 implementation ever released! 18:51
moritz sisar: I think it's correcter to throw
sisar moritz: yeah, but... still if we had some spec backing us, it would be better. 18:52
moritz aye
then we'd probably do it in rakudo pretty soon
sisar aye
moritz and do a huge cleanup of the test suite 18:53
TimToady correcterer to fail
sisar anticipates a spec change soon :) 18:54
s/change/update
moritz anticipates a big fallout
TimToady 🍄 18:55
ooh, FF font fail! 18:56
moritz .u �
phenny U+FFFD REPLACEMENT CHARACTER (�)
TimToady 1F344MUSHROOM
dalek kudo/nom: 65f9d95 | moritz++ | src/core/Exception.pm:
avoid some boxing in print_control
kudo/nom: 8254a60 | moritz++ | src/core/Exception.pm:
typed exception for "method not found" error
kudo/nom: 47497c4 | moritz++ | src/core/Exception.pm:
fix control exception catcher
kudo/nom: 7165ff5 | moritz++ | src/core/Exception.pm:
Merge remote branch 'origin/method-not-found' into nom
benabik .u cloud
phenny U+2601 CLOUD (☁)
benabik 🍄☁
TimToady that looks more like a new fireball coming up
adu that's actually in color on my screen 19:01
adu .u PILE OF POO 19:04
phenny adu: Sorry, no results for 'PILE OF POO'.
benabik Yeah. The mushroom is in color for me too. It's kind of strange.
dalek ecs: 1b8b0ab | larry++ | S03-operators.pod:
mention that prefix:<+> returns failure on failure
[Coke] wonders what he added to this release.
sisar yay ! #spec-change 19:04
TimToady adu: phenny doesn't know characters outside the BMP, I believe
moritz [Coke]: one commit after the least release 19:05
adu benabik: I think Apple did that primarily for the Japanese market, every phone there has color emoji
sisar where is phenny
*phenny's source code ?
adu can we add characters?
sisar phenny: give me your source code
[Coke] moritz: except you did an interim release. 19:06
moritz phenny: source?
TimToady only if you can teach Python to do better with Unicode, I suspect
moritz [Coke]: yes, but the script that crawls the log of contributors doesn't know anything about that
[Coke] moritz: way to screw everything up! ;)
sisar phenny: source ?
sisar thought a space would change things 19:07
adu I think I did a good job modularizing the XML grammar
img837.imageshack.us/img837/9867/xml.png 19:08
sisar phenny: your source code is at github.com/sbp/phenny :p
[Coke] aloha: phenny 19:09
aloha: phenny?
TimToady rakudo: aloha: phenny 19:10
[Coke] phenny: remind me in 2m to say "eek"
p6eval rakudo 1a5a46: OUTPUT«(timeout)» 19:11
adu karma phenny
aloha phenny has karma of 6.
adu karma aloha
aloha aloha has karma of -69.
TimToady aloha *= 2 19:12
dalek ecs: f7e01b5 | moritz++ | S32-setting-library/Str.pod:
[S32::Str] split off substr-rw

that way you only pay for what you use
[Coke] moritz: shouldn't that commit have come before the changes to rakudo/roast?
moritz [Coke]: in the waterfall model, yes 19:13
[Coke]: in reality we often experiment and wait for feedback until we spec stuff
though maybe I should have waited with the roast commit, true 19:14
TimToady doesn't care, as long as everything converges eventually 19:14
sisar now that is a weird reason to not to work on an open source project: github.com/sbp/phenny/issues/10 ! 19:16
[Coke] www.youtube.com/watch?feature=playe...JXWOiXDFS8 - be very careful with container types.
sisar [Coke]: lol... or the camel will get scared :) 19:18
adu oh style 19:19
masak r: my @a = 1, 2, 3; say @a
p6eval rakudo 7165ff: OUTPUT«1 2 3␤»
benabik sisar: That's... strange. 19:20
sisar benabik: what ?
benabik sisar: The issue you linked to.
adu sisar: it looks like unicodedata is part of Python
sisar oh the issue I mentioned..gotcha 19:21
masak r: my @bin; @bin does role { method empty { !self } }; say "AAAARGH HALP!" if @bin.empty
p6eval rakudo 7165ff: OUTPUT«AAAARGH HALP!␤»
masak :P
moritz n: 1.foo
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method foo in class Int␤ at /tmp/ZgTU9m1vxO line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤ at /home/p6e…
adu so it might fix itself with a UTF-32 build, or one might port phenny to a different unicode database
TimToady n: say "\x[PILE OF POO]" 19:22
p6eval niecza v17-4-ge5b869e: OUTPUT«===SORRY!===␤␤Unrecognized backslash sequence: '\x' at /tmp/w4Zf3fkVjR line 1:␤------> say "\x⏏[PILE OF POO]"␤␤Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1224 (warn @…
TimToady oops
n: say "\c[PILE OF POO]"
p6eval niecza v17-4-ge5b869e: OUTPUT«💩␤»
adu :)
TimToady you could port phenny to that
adu but wouldn't that require an irc library? 19:23
TimToady just a SMOP 19:24
lichtkind oh rakudo doesnt know qx 19:26
TimToady: could you explain to me the exact p6 meaning of the term reify sir? 19:27
moritz lichtkind: my rakudo knows qx
dalek ast: dbba400 | moritz++ | S02-types/lists.t:
remove test that checks for exact error message wording
sisar who has access to our phenny ? 19:29
lichtkind moritz: but it acts like an lias of qqx :)
moritz lichtkind: that's something completely different than not knowing it 19:30
lichtkind moritz: yes but after my first tests lokked like not existing 19:31
moritz lichtkind: did you read the error messages you were getting? 19:32
dalek blets: 6e0ec21 | (Herbert Breunung)++ | docs/appendix- (2 files):
straigth out qx and qqx
ast: b585e67 | moritz++ | S32-exceptions/misc.t:
test for method not found exception
19:34
dalek ast: 2454421 | moritz++ | S05-capture/named.t:
RT #111286 (named captures) and some other small fixes
19:39
moritz r: +'foo'.Numeric(:strict) 19:42
p6eval rakudo 7165ff: OUTPUT«Cannot convert string to number: does not look like a number in '⏏foo' (indicated by ⏏)␤ in method Numeric at src/gen/CORE.setting:9019␤ in sub prefix:<+> at src/gen/CORE.setting:2232␤ in block <anon> at /tmp/LVXHpdNmpW:1␤␤»
moritz r: say ''.Numeric(:strict)
p6eval rakudo 7165ff: OUTPUT«Cannot convert string to number: does not look like a number in '⏏' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:9021␤ in sub say at src/gen/CORE.setting:6765␤ in block <anon> at /tmp/9cphSASCGc:1␤␤»
lichtkind did qx really die ?
moritz who says qx died?
TimToady lichtkind: it means to stop being lazy about the next element of a lazy list 19:43
masak I hope qx didn't die! :) 19:43
lichtkind moritz: its not mentioned as seperate op anymore in spec
masak lichtkind: that can't be right.
lichtkind wait
moritz S02:3747:(Note that C<qx//> doesn't interpolate.) 19:44
lichtkind yes but doesnt say what it actually is
masak so it's dead?
lichtkind: it works like in Perl 5.
colomon sorear: dang, your substr worked much better than moritz's substr-rw. :) 19:45
lichtkind masak: yes but whatfore we have then qqx
masak lichtkind: except it doesn't interpolate :)
lichtkind this whole thing smells liek a bug
colomon moritz++'s, I should have said.
masak lichtkind: a bit like q[] and qq[], you know.
lichtkind: it's not a bug. it's spec.
lichtkind i understand now
masak colomon: how do you mean, "worked much better"?
lichtkind but neverteless that was changes some time ago 19:46
masak lichtkind: no.
lichtkind without me noticing
masak it really wasn't.
colomon masak: all the TODOs suddenly passed when I switched
masak: that's in niecza, of course.
sorear++'s substr(-rw) is not pure Perl 6
lichtkind TimToady: thank you but wheres the difference to eager context ? 19:47
moritz eager context reifies
but reifying not only occurs in eager context
but also when accessing elements of lazy lists
or iterating them 19:48
TimToady eager reifies all the remaining elements, if it can 19:50
masak eager takes a lazy list and follows it all the way to the bottom. 19:51
if any.
masak put differently, 'eager' is the boring variant between 'lazy' and 'hyper' :P 19:52
TimToady well, hyper is boring compared to race
lichtkind TimToady: so its nothing more then compute or give me the next element? 19:53
masak lichtkind: nono, *all* the elements
TimToady it just means "make it real"
masak COMPUTE ALL THE ELEMENTS
TimToady masak: he's asking about "reify"
masak oh! 19:54
yes, that's Latin for "make real".
dalek ast: 32d960d | moritz++ | / (2 files):
remove some tests that rely on numifying non-numbers
masak or "make into a thing".
like "rez" in Tron :)
adu r: say +"1"+1;
p6eval rakudo 7165ff: OUTPUT«2␤»
TimToady reify means to actually cook the recipe and end up with a substance 19:56
hopefully edible
lichtkind like in alchemy :)
TimToady well, don't cook the recipe, cook the ingredients specified by the recipe
jnthn
.oO( reifry )
adu lead + stone = gold! 19:57
moritz cookify
TimToady lichtkind: exactly, except for the part about ending up with something real :)
lichtkind but i asked about perl 6 : reify @a gives me an element or just computes it?
i know lot of people question reality of alchemy thats ok :) 19:58
TimToady "reify" is a concept, not an officially specced API 19:59
lichtkind ah
thank you
TimToady (so far)
lichtkind its for the glossary, there are 39 terms more to go :)
TimToady this may change when pmichaud++ gets around to redoing S07
masak adu: no, no! it's lead + sulphur! :P 20:00
TimToady lead + pretty much anything + a collapsing supernova will do it for ya 20:01
masak that's what they were missing 20:02
lichtkind masak: no no no its much more complicated :) 20:03
masak TWO supernovas?
lichtkind masak: nowhere in the literature i own they speak about supernovas 20:04
masak O RLY?
moritz that's what they are missing
masak *lol*
moritz lichtkind: you own the wrong literature :-)
masak clearly.
moritz has all the witty comebacks tonight.
lichtkind i just spoke about alchemical literature i have books about physics too
masak .oO( al-physics ) 20:05
lichtkind you clearly not evolved ebough for alchemy :)
ah enough
TimToady well, I have my chemistry textbooks, and I don't recall that they mention supernovas either...
masak lichtkind: is a skeptical mind a no-go for doing alchemy?
if so, I'm probably toast as far as my alchemical career goes... 20:06
moritz lichtkind should tell the folks on lesswrong.com :-)
masak that's a discussion I'd pay to see.
moritz not 20:07
PerlJam masak: wouldn't that be "alphysy" to parallel alchemy ?
lichtkind masak: being close minded is a no go :)
moritz eeks, it seems that deduction of string sequences relies on numeric comparisons :/
masak moritz: by the way, only 15 days left to the next HPMoR update! :D 20:08
moritz masak: /o\
masak lichtkind: if you open your mind too much, your brain will fall out.
lichtkind what is HPMoR?
masak PerlJam: oh, true.
lichtkind: boy, you're in for a treat.
[Coke] masak: for some definition of treat.
masak lichtkind: take a week off and curl up in a nice sofa. 20:09
moritz lichtkind: hpmor.com/ # imagine Harry Potter as the son of a scientist
lichtkind masak: why you come up with that worn out jokes?
PerlJam lichtkind: the H and P stand for Harry and Potter ;)
masak lichtkind: it's not a joke.
PerlJam wow, I haven't looked at that site in a while. Looks a tad more "professional" these days. 20:09
lichtkind i have nothing against rationality, but once you amstered it its time to go on 20:10
moritz PerlJam: that site is quite new. The old was fanction.not
lichtkind mastered
PerlJam ah
lichtkind: and here I was wondering if that was just your accented way of saying "hamstered"
diakopter I've always been very scared of getting into fan fiction. 20:11
PerlJam (and then I was wondering about "hamster" as a verb ;)
lichtkind PerlJam: it exists in german
it means grab and keep it 20:12
TimToady oh, I thought it'd be a stir-fry of pig, but that'd be hamstir... 20:12
though I suppose that does mean you'd have grab and keep the pig
masak diakopter: why? 20:13
TimToady
.oO(his brane will fall out)
20:14
masak diakopter: also, from what little I know of fan fiction, HPMoR is quite the outlier.
diakopter masak: I've been scared I'd spend all my days on it
masak heh :)
dalek ast: b032eeb | moritz++ | S (3 files):
remove more tests that rely on numification of non-number strings
masak lichtkind: we have that meaning of "to hamster" in Swedish as well. 20:14
phenny: sv de "hamstra"?
phenny masak: "horten" (sv to de, translate.google.com)
moritz as you can probably guess, I'm preparing for strict-by-default Str.Numeric 20:15
diakopter phenny: sv en "hamstra"?
phenny diakopter: "hoard" (sv to en, translate.google.com)
masak phenny: sv de "hamster"?
phenny masak: "Hamster" (sv to de, translate.google.com)
PerlJam sorry ... I can only conjure bizarre sexual practices as possible meanings for "to hamster" ;->
moritz it's just that the range and sequence code needs some updating to use less numeric comparisons
TimToady PerlJam: TMI 20:16
masak no, tell us more :P
PerlJam It's rumored you'll have to ask Richard Gere.
masak o.O
isBEKaml phenny: de en "hamster"? 20:17
phenny isBEKaml: "hamster" (de to en, translate.google.com)
isBEKaml thankfully. :-) 20:17
moritz phenny: de en "hamstern"?
phenny moritz: "hoard" (de to en, translate.google.com)
TimToady next thing you're gonna tell us that ham'n'swiss isn't a Swiss word
isBEKaml uhh, hoarding isn't stealing...
masak who said it was? 20:18
isBEKaml lichtkind.
lichtkind isBEKaml: i never said that hamstern has only the conotation to keep more than you need
TimToady the Commons of whose Tragedy we speak says so
diakopter phenny: en de "gank"?
phenny diakopter: "Gank" (en to de, translate.google.com)
diakopter phenny: en sv "gank"?
phenny diakopter: "gank" (en to sv, translate.google.com)
TimToady are you guys trying to _wear out_ phenny? 20:19
masak .oO( phenny was totally hamstered... )
lichtkind (stanford press)++
isBEKaml lichtkind: ah, I read grab as steal 20:20
dalek ast: 942eb9e | moritz++ | S03-operators/comparison.t:
remove another wrong numification test
20:20
TimToady well, you can grab something that isn't property, but you can also grab something that is 20:21
and it might be your property, or someone else's, is all
I mean, before, not after :) 20:22
adu property grab?
masak hoarding to me has the connotations of people buying and stocking things because everyone else is doing the same.
TimToady land grab, back in the days when no one was thought to own the land
and grabbing your own hammer is certainly not stealing 20:23
adu TimToady: or when criminals infiltrate the EPA and declare a city to be a "natural habitat reserve" and kick millions of people out of their condos
TimToady adu: sounds like an interesting novel 20:24
PerlJam adu: what makes the people "criminals"? 20:25
isBEKaml TimToady: sure, "grab and keep" sounds a lot like stealing to me. :) 20:26
adu TimToady: www.washingtontimes.com/news/2012/m...land-grab/
anyways 20:27
has anyone seen whiteknight?
geekosaur thank you for today's USAn political interlude for the day 20:28
PerlJam adu: on #parrot earlier today 20:29
benabik seen whiteknight
aloha whiteknight was last seen in #parrot 2 hours 11 mins ago saying "nine: Have you had any other thoughts about the windows build? Come the weekend, I have a windows VM but no VisualStudio and no debugger".
TimToady adu: the "millions" still needs a bit of citation; also this is obviously the previous president's fault since it happened in 2007 :) 20:31
adu I'm not good with numbers 20:32
TimToady me either, that's why I use computers :)
adu s/millions/zillions/ :)
and done 20:39
github.com/andydude/p6-xml
moritz clones and tests 20:40
adu oh 20:41
the tests all take 1 argument
moritz oh, they don't produce TAP 20:42
adu TAP?
moritz Test Anything Protocol
adu I don't know what that is
moritz that's what all our test files produces
adu I'd love to do that tho
masak \o/ 20:42
moritz and what you get from use Test; plan $number_of_tests; and then calls to is(), ok() etc.
masak we'd love for you to do that.
adu masak: heh 20:43
diakopter adu+_+
er
adu so use Test; and ok()
diakopter adu++
adu diakopter: :)
masak +_+ looks like someone who has had a long day at work.
moritz adu: example: github.com/perl6/roast/blob/master...sts/tree.t
adu next step will be some kind of SAX/DOM, or I've been considering another interface 20:44
moritz adu: perlcabal.org/syn/S24.html # more thorough description
diakopter Charset.pm took a lot of typing
adu diakopter: yes 20:45
moritz adu: and when your .t files emit TAP, you can install github.com/masak/ufo/ and then simply run 'ufo && make test' to get a nice test summary and precompilation of your modules 20:47
adu moritz: cool, thanks
moritz -> sleep 20:48
adu good night
masak dream of precompiled modules all running TAP. 20:52
tadzik 'evening 20:57
masak tadziku! \o/
tadzik masaku! \o/
masak u! \o/ 21:00
tadzik that was a nice evening 21:07
masak glad to hear it.
tadzik 3/4 geocaches found :)
masak yay 21:12
adu ok 21:20
I wonder if I could use XML::Writer 21:22
adu how do I write an actions class? 21:23
like say I wanted to write an action class that wrote the output of XML::Document.parse() as an XML string? 21:24
lichtkind the distinction between array and list is stillthe same array is the container and lists are what perl handles all the time internally ?
adu masak: is that a towel on your head? 21:25
tadzik haha 21:26
isBEKaml adu: he's ford prefect
adu from don't panic? 21:27
uh, I mean whatzitcalled...
isBEKaml yeah. :D
tadzik adu: did you see perl6advent.wordpress.com/2009/12/2...-actions/?
adu I think my problem is that (1) I don't understand how to get stuff from $/, and (2) I don't know what kind of return is expected 21:28
when I tried to write parrot-nqp actions, it complained greatly that I wasn't returning PAST nodes 21:29
jnthn You don't return, but rather "make". And you take $/ as a parameter.
masak adu: it's a towel. so here's the thing.
adu: I had lost that towel the previous night. literally lost it. 21:30
turned out in the pitch darkness of the sauna, someone else had accidentally nicked it.
I got it back, and I was so happy to have it back that I put it on my head.
adu so I know $<value> is the same as $/{'value'} but whenever I try $/{'value'}{'subvalue'} I would expect it to work, but it doesn't 21:30
masak I like that picture because I'm looking suitably annoyed by having my picture taken.
adu masak: lol 21:31
masak showing a face that seems to say "you've never seen a guy with a towel on his head before?"
adu: probably $/{'value'} is a list, and you need to do [0] or something in between. 21:32
adu another thing, is when I "say $x.parse()", is it dumping the $/ corresponding to TOP? and is it a hash? or a list?
masak adu: reason for $/{'value'} being a list: you used a quantifier, like * or ?
adu: the thing that comes out of .parse is always a single Match. 21:33
adu: think of a Match as having both hash and array nature.
dalek blets: 3f0f838 | (Herbert Breunung)++ | docs/appendix- (3 files):
now qx and qqx are right and linked
blets: ec10b86 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
explain reify
masak that is, you can both .{} and .[] it
adu hmm 21:34
masak r: grammar BoxLogic { rule TOP { <box>* }; rule box { 'box'\d } }; BoxLogic.parse("box1 box2 box3"); say ~$<box>[2] 21:36
p6eval rakudo 7165ff: OUTPUT«box3␤»
adu is ~ coercing to Str? 21:37
masak aye. 21:38
r: grammar BoxLogic { rule TOP { <box>* }; rule box { 'box'\d } }; BoxLogic.parse("box1 box2 box3"); say $<box>[2]
p6eval rakudo 7165ff: OUTPUT«=> <box3>␤␤»
masak not coercing gives you the original Match object.
r: grammar BoxLogic { rule TOP { <box>* }; rule box { 'box'\d } }; BoxLogic.parse("box1 box2 box3"); say $/ 21:41
p6eval rakudo 7165ff: OUTPUT«=> <box1 box2 box3>␤ box => <box1 >␤ box => <box2 >␤ box => <box3>␤␤»
masak it looks clearer on a terminal with multiple-line output :) 21:42
adu hmm 21:45
so parse should accept 2 parameters, right?
parse($string, $actions)?
jnthn It's a named parameter 21:47
:actions(...)
adu :actions(
oh
I think I saw it called as :$actions, that explains it
masak 'night, #perl6 21:48
adu masak: night, ford prefect
[Coke] # 05/17/2012 - rakudo++ (22178); niecza (91.82%); pugs (34.92%) 22:17
down from the 16th at 22193 22:18
adu how hard would it be to write a perl6fmt tool? 22:19
jnthn [Coke]: Due to failures, or due to an overall decrease in the number of tests?
[Coke]: I know moritz++ has been removing some dubious number ones.
[Coke] "rakudo", 22178, 30, 712, 1891, 24811, 24121 22:25
"rakudo", 22193, 30, 722, 1858, 24803, 24113
.. which doesn't tell us anything if new tests were added as old were remoed. 22:26
*removed. no more failures, though.
jnthn -> sleep o/ 22:42
lichtkind jnthn: good night 22:49
dalek blets: 787dc2b | (Herbert Breunung)++ | docs/appendix- (3 files):
still fixing qx and qqx
dalek blets: ce5a64b | (Herbert Breunung)++ | docs/appendix- (2 files):
regularize qp
23:12
lichtkind TimToady: are you sure we should allow Q :regex // since its an own grammar anyway, im even tempted to rename $~Main sometimes but its so special that i fel $~MAIN is good 23:17
TimToady adu: trivial, if you don't want it to do anything :) 23:31
if you spec what you want, it might be a little harder
TimToady viv -6 used to do the trivial reproduction of the code from the parse tree, so that's not entirely a joke 23:34
might be somewhat bitrotted though
yeah, seems a bit busted
skids Today I spent a small amount of time considering whether providing a write-direction complement to Grammar.parse/:actions might be a good first step towards using grammars backwards. 23:36
skids Or at least, just give people a place to hook their emitters. 23:36