»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:00 labster left, labster joined 00:25 perturbation left
ssqq p6: say PairMap.new('a' => 'b') 00:26
camelia rakudo-moar 7bef4a: OUTPUT«a => b␤»
ssqq p6: say PairMap.new('a' => 'b').WHAT
camelia rakudo-moar 7bef4a: OUTPUT«(PairMap)␤»
00:28 raiph joined 00:31 vendethiel left 00:41 dolmen joined 00:44 grettis left 00:48 aborazmeh joined, aborazmeh left, aborazmeh joined 00:51 aborazmeh left 00:55 laouji joined
dalek ast: 575e61a | TimToady++ | S05-interpolation/regex-in-variable.t:
skip test failing for wrong reason

Also, add a (skipped) test to show inline pwnage is just a bad.
00:59
kudo/nom: 1fb4820 | TimToady++ | src/core/Cursor.pm:
do submatch with cursors, not substr and ~~

Not only is this more efficient, it also doesn't break anchors or introduce spurious scanning.
00:59 Ben_Goldberg joined
TimToady that probably fixes an RT or tw 01:00
*o
raydiak TimToady++ 01:01
(though I'll be better off when that mess is factored out as per FROGGS++ implied suggestion) 01:07
01:13 yqt left, laouji left, laouji joined
skids .tell jnthn gist.github.com/skids/fd9fc80c545e76da7d29 01:16
yoleaux skids: I'll pass your message to jnthn.
01:17 yeahnoob joined
TimToady m: say "foo" ~~ /<{"<at(1)> o ** 2 ";}>/ 01:20
camelia rakudo-moar 1fb482: OUTPUT«「oo」␤»
TimToady m: say "foo" ~~ /<{"^ o ** 2 ";}>/
camelia rakudo-moar 1fb482: OUTPUT«Nil␤»
TimToady all better (except it's still using EVAL for the moment) 01:21
and not using EVAL will only stop the Bobby-Tables-style pwnage, not the inline executable code pwnage 01:22
that needs to be handled by a restricted subset of regex lanauge 01:23
*guage
01:24 dayangkun joined 01:25 ssqq left
raydiak and now it catches a mistake I made that it didn't report before, very nice...ended my present bughunt 01:29
01:31 vendethiel joined, ssqq joined
dalek kudo/tab-completion: 83fd4f4 | hoelzro++ | src/Perl6/Compiler.nqp:
Don't add to completions set unless linenoise is active

It doesn't make sense unless we have a tab completion facility
01:32
kudo/tab-completion: 86f277b | hoelzro++ | src/Perl6/Compiler.nqp:
use nqp; when loading Linenoise for tab completion

Otherwise we get a warning
01:34 spider-mario left
TimToady guesses it found a null regex 01:34
due to the removal of the bogus ^ assertions that anchored the match to the start of the substr previously 01:36
raydiak escaped a space into an unspace instead of quoting it; no idea why it didn't trigger before 01:37
01:37 hahainternet left 01:39 hahainternet joined
raydiak ah that must have been due to your earlier fix when it still interpolated escaped escapes instead of spaces 01:39
TimToady likely 01:40
we'll need to figure out what to do with the failure in S17-procasync/basic.t before release, since it comes from misinterpreting an uninitialized Proc::Status as an initialized one 01:44
(we now initialize the exitcode to -1 instead of Any, to catch this sort of thinko)
but the test is now wrongish 01:45
TimToady has to wander off, so someone else can look at that if they like
raydiak .tell tadzik github.com/tadzik/panda/pull/154 01:58
yoleaux raydiak: I'll pass your message to tadzik.
02:02 noganex joined
raydiak is now looking at the aforementioned test 02:03
02:05 noganex_ left 02:18 vendethiel left 02:24 cognominal left
raydiak is it normal to deprecate attributes using a method under the old name? it makes for silent failure when using the old name as a constructor arg 02:27
02:32 cschwenz joined 02:34 cschwenz left 02:49 ssqq left 03:00 noganex_ joined 03:02 adu joined, vendethiel joined 03:03 noganex left
raydiak .tell TimToady there isn't actually anything wrong with those Proc::Async tests themselves, is there? github.com/rakudo/rakudo/pull/412 fixes it for me 03:06
yoleaux raydiak: I'll pass your message to TimToady.
03:22 Sysaxed left 03:25 alini joined 04:17 vendethiel left 04:28 Zoffix joined 04:32 vendethiel joined 04:53 Ben_Goldberg left 04:56 vendethiel left 05:01 vendethiel joined 05:02 diana_olhovik_ joined 05:04 raiph left, laouji left 05:05 laouji joined 05:06 skids left 05:08 kaare_ joined 05:09 laouji left 05:12 dalek left 05:13 dalek joined, ChanServ sets mode: +v dalek 05:15 xfix joined, inokenty left 05:21 kst left 05:22 colomon joined 05:23 vendethiel left 05:24 diana_olhovik_ left 05:26 vendethiel joined 05:31 inokenty joined 05:33 laouji joined
raydiak m: sub trait_mod:<is> (Attribute $a, :$foo!) { say $a.^attributes.first(*.name eq '$!build_closure').get_value($a) }; class Foo { has $.foo is foo = 'foo' } 05:36
camelia rakudo-moar 1fb482: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kuZ6yDGLZW␤Method 'get_value' not found for invocant of class 'BOOTSTRAPATTR'␤at /tmp/kuZ6yDGLZW:1␤»
raydiak ^ how can I get at that?
05:51 vendethiel left 06:00 GHAAA0QH joined 06:02 rindolf joined 06:06 adu left 06:07 mr-foobar left
tadzik raydiak: merged, thanks :) 06:07
yoleaux 01:58Z <raydiak> tadzik: github.com/tadzik/panda/pull/154
raydiak yw :) 06:10
jnthn morning, #perl6 06:24
yoleaux 01:16Z <skids> jnthn: gist.github.com/skids/fd9fc80c545e76da7d29
06:25 vendethiel joined
nwc10 morning, jnthn 06:26
jnthn .tell skids Sounds worth wiring up 06:27
yoleaux jnthn: I'll pass your message to skids.
06:39 RabidGravy joined 06:46 telex left 06:48 telex joined, vendethiel left 06:51 domidumont joined 06:53 dolmen left 06:56 domidumont left, domidumont joined
masak morning, #perl6 06:59
moritz \o masak 07:04
07:04 _mg_ joined
tadzik hello hello 07:05
did you do your backups today?
dalek kudo/nom: 2b6ae81 | raydiak++ | src/core/ (3 files):
More Proc::Status.exit -> .exitcode conversions
kudo/nom: c8371ec | FROGGS++ | src/core/ (3 files):
Merge pull request #412 from raydiak/nom

More Proc::Status.exit -> .exitcode conversions
masak tadzik: oh, today is International Backup Day? 07:06
moritz can't do his backup, hard disk broken
07:08 MARTIMM joined
tadzik masak: kinda 07:08
masak: I lost my data, and in a pretty ironic way too
ubuntu's encryption system screwed up, won't accept my password anymore 07:09
I have it all there, it's just... unreadable
moritz
.oO( CAPS LOCK )
07:10 zakharyas joined 07:11 xfix left
masak .oO( dvorak ) 07:11
by the way, people, Perl 3.5 type hints: lwn.net/Articles/640359/ 07:12
but, kind of like Dart, they "are designed to be ignored by the interpreter" :/
moritz wonders if there's a meme that involves the word "Mojibake" written on a dvorak keyboard as if it were a querty keyboard
masak: s/Perl/Python/
07:13 pecastro left
moritz and WTBH are types worth if they aren't enforced? 07:13
masak moritz: indeed, Python.
moritz my experience with Perl 6 is that their worth is negative 07:14
masak moritz: I'm drinking the coffee, but it hasn't reached my brain yet ;)
moritz you write type hints because you think it's a good thing
masak moritz: yes, excatly.
moritz but of course you screw up, because you're an imperfect human being
masak moritz: it grates against my sense of "you should get that feedback ASAP"
moritz and year later, somebody does write a type checker, and program blows up all in your face
and until then, they worth exactly as much as outdated comments 07:15
except that everybody *knows* that comments may be outdated
masak moritz: OTOH, if you integrate it into your IDE, then it could be quite OK. like TypeScript.
moritz masak: if the language is tied to The One True IDE, then yes 07:16
masak well, type hints are optional.
if you're not in the One True IDE, then you can just skip them.
07:16 alini left
moritz well, they are optional in Perl 6 too, and still people wrote (wrong) type annotations 07:17
masak *nod*
because they liked it, I guess.
yes, I see what you mean is the danger. and I agree.
07:18 bjz joined
moritz because they thought it'd make their code safer, once the types were enforced 07:18
masak it falls under "never write a line of code and then not run it" 07:21
moritz and just to be clear, it wasn't just "them" who fell into the trap; I'm sure I did too 07:22
masak from henrikwarne.com/2015/04/16/lessons-...velopment/
moritz agreed
07:27 Rounin joined, FROGGS joined 07:28 vendethiel joined 07:41 rindolf left 07:47 bjz left 08:04 rurban joined 08:07 darutoko joined 08:09 bjz joined 08:16 OODavo joined
OODavo Is there a convention for invoking "normal" subs on the topic variable? .thesub is recommended by Rakudo if you try to write just thesub, but .thesub doesn't actually work since there isn't a method by that name defined. 08:18
moritz thesub($_) 08:20
maybe .&thesub works
m: given 42 { .&say }
camelia rakudo-moar c8371e: OUTPUT«42␤»
moritz but it's a bit more obscure than say($_), so I wouldn't use it 08:21
OODavo .say actually just works since there *is* a .say method.
08:23 yqt joined
moritz yes, but .&say invokes the say subroutine 08:23
m: sub f($x) { say 2 * $x }; given 21 { .&f }
camelia rakudo-moar c8371e: OUTPUT«42␤»
08:24 bjz left
OODavo Neat. thesub($_) is certainly more obvious though, yeah. 08:25
Thanks.
08:26 bjz joined
OODavo Hmm. Approaching from the opposite direction, is it idiomatic to add methods to core types, after which .thesub *will* work? 08:28
08:31 zeleiadi joined
moritz OODavo: the idiomatic way is not to do it 08:32
08:32 vendethiel left
moritz OODavo: instead you can use multi subs, where it's easy to add candidates for both new and existing types 08:32
OODavo: adding methods to core classes modifies global state, which is a really bad idea
nwc10 The only idiomatic way is www.imdb.com/title/tt0086567/quotes...=qt0453844 ? 08:33
08:34 vendethiel joined 08:35 bjz left 08:38 domidumont1 joined, domidumont left 08:47 raiph joined
zeleiadi Hello. I think I found a bug in Str::chop. It accepts a number of chars to chop. When called with the length of the string + 1, it returns the original string. For example 'abc'.chop(4) returns 'abc'. 08:47
moritz m: say 'abc'.chop(4) 08:48
camelia rakudo-moar c8371e: OUTPUT«abc␤»
moritz m: say 'abc'.chop(2)
camelia rakudo-moar c8371e: OUTPUT«a␤»
moritz m: say 'abc'.chop(3)
camelia rakudo-moar c8371e: OUTPUT«␤»
moritz m: say 'abc'.chop(5)
camelia rakudo-moar c8371e: OUTPUT«Substring length (-2) cannot be negative␤ in method chop at src/gen/m-CORE.setting:7259␤ in block <unit> at /tmp/5xy_BHdCJT:1␤␤»
08:48 Ven joined
jnthn m: say 'a'.chop; say ''.chop; 08:49
camelia rakudo-moar c8371e: OUTPUT«␤␤»
08:49 andreoss joined, andreoss left
jnthn m: say ''.chop(2); 08:49
camelia rakudo-moar c8371e: OUTPUT«Substring length (-2) cannot be negative␤ in method chop at src/gen/m-CORE.setting:7259␤ in block <unit> at /tmp/mbxGx9sMbn:1␤␤»
moritz zeleiadi: yes, bug
08:49 andreoss joined
jnthn agrees 08:49
moritz zeleiadi: please submit it by email to [email@hidden.address] 08:50
FROGGS zeleiadi++ # good catch 08:52
zeleiadi thanks
I think I can patch it, but I am new here, so I don't know the procedure 08:53
08:54 dakkar joined
OODavo moritz: Ah, yeah, I figured that might be the deal. Monkey-patching does lead to an awful mess in Ruby. 08:54
08:54 Ven left
nwc10 zeleiadi: one viable procedure is a pull request on github 08:55
jnthn Pull requests work, as does emailing the patches
Also it's very helpful if there's a test. You can get a commit bit on the tests repository very easily just by asking here for it. 08:56
moritz jnthn: asking is not enough; we also need to know the github username :-)
jnthn Uh, true :-) 08:57
zeleiadi ok, thank you, i will try to do a pull request soon 08:58
there is two way to fix the code, one is to remove the chop count parameter, the other is to fail with an exception if number of chops > length of the string, i am not sure which one is better 09:00
moritz and the third is to return the empty string 09:01
jnthn The third is to just produce the empty string. I'd check exactly what substr does in such cases.
moritz but removing the count param seems to be correct
jnthn I'm not so sure...
moritz S32/Str doesn't talk about that param
jnthn I think the count parameter is reasonable.
Ah...
But it might be being used "in the wild" 09:02
moritz and roast doesn't use it either
jnthn *nod*
Wonder how we got it.
moritz commit 831b1d458c98d003c1125ca3c76ff85e68ffeb32 09:03
Author: Elizabeth Mattijsen [email@hidden.address]
Date: Thu May 15 20:08:37 2014 +0200
Str.chop accepts count of number of chars to chop
but it wasn't mentioned in the changelog
so, I'd deprecated it 09:04
(add a multi where $chars is mandatory, and deprecate that)
09:04 Ven joined
zeleiadi Ok 09:05
09:15 yqt left
lizmat fwiw, I have no recollection on why I did that ~ 1 year ago 09:17
09:17 Ven left
lizmat perhaps the irclog will tell 09:17
meanwhile, afk again&
09:24 RabidGravy left 09:34 espadrine joined 09:41 vendethiel left
nine lizmat: 07:58 lizmat otoh I wouldn't mind having .chop(3) : 09:44
irclog.perlgeek.de/perl6/2014-05-15#i_8726574
09:45 yeahnoob left
nine Don't you love written and automatically logged communications? 09:45
09:49 andreoss` joined
moritz does 09:50
09:51 dolmen joined 09:54 andreoss left 09:58 vendethiel joined 10:00 xfix joined, xfix left, xfix joined 10:09 rindolf joined, raiph left
lizmat
.oO( I guess moritz does mind having .chop(3) )
10:15
10:17 domidumont1 left 10:18 domidumont joined
jnthn
.oO( I wouldn't mind having .chop($suey) )
10:19
10:20 vendethiel left, laouji left
jnthn I don't especially mind us having it, in so far as it saves doing a little mental arithmetic to write out substr instead. 10:20
I do mind it not being tested and being buggy though. ;)
10:22 dolmen left
moritz and not being documented, for that matter 10:26
10:27 pecastro joined
lizmat m: use nqp; my int $elems = 20; say nqp::rand_I(nqp::decont($elems),Int) # jnthn: why the decont ? 10:27
camelia rakudo-moar c8371e: OUTPUT«1␤»
lizmat m: use nqp; my int $elems = 20; say nqp::rand_I($elems,Int) # jnthn: why the decont ?
camelia rakudo-moar c8371e: OUTPUT«This representation (NativeRef) cannot unbox to other types␤ in block <unit> at /tmp/A036NrvwF9:1␤␤»
jnthn lizmat: Use nqp::decont_i 10:28
lizmat but why would I need a decont on a native int ??
jnthn lizmat: And because nqp::rand_I doesn't do one I guess.
lizmat: Evidently because it's taking a lexref there
What's the signature of rand_I?
lizmat rand_I(Int $i, Mu:T $type) 10:29
according to documentation
jnthn Upper-case Int?
lizmat that's what it says
jnthn In which case it is taking a big integer
And so feeding it a native integer is just making us do more work.
lizmat m: use nqp; my Int $elems = 20; say nqp::rand_I($elems,Int) 10:30
camelia rakudo-moar c8371e: OUTPUT«P6opaque: get_boxed_ref could not unbox for the representation '20'␤ in block <unit> at /tmp/MGhhZf44H0:1␤␤»
lizmat ??
but using an Int doesn't work ?
jnthn Still needs the decont, apparently :)
Though that's consistent
See the infix:<+>(Int, Int) candidate for example. 10:31
nqp::ops only auto-decontainerize if we mark them up as doing so
For the big integer ones, we consistently haven't so far.
lizmat I guess I see the consistency now, but not yet understanding it yet :-) 10:32
jnthn There's no deep reason, as I remember; it's just "how we've done it". 10:34
lizmat hysterical raisins
:-) 10:35
jnthn Pretty much. It's only a minor pain to change.
But an equally minor one not to change too I guess. :)
lizmat apart from dropping the number of nqp::decont() needed to be typed, would there be a runtime advantage ?
jnthn No, 'cus the alternative is just having the QAST -> MAST thingy insert them. 10:36
Except it can't know when it needs to so always does.
lizmat so a runtime disadvantage 10:37
jnthn Potentially. Except spesh is quite good at removing unrequired decont ops too :)
lizmat well, then maybe it can wait until rakudo itself is self-hosting :-) 10:38
jnthn That punts it a good long way down the road. :)
lizmat I think it's only a WAT for core setting maintainers 10:40
jnthn Indeed.
And only occasinally then. :)
nwc10 WAT?
(where's my S99infobot?)
jnthn S99:WAT 10:41
synbot6 Link: design.perl6.org/S99.html#WAT
nwc10 dear synbot99, could you be fetching that for me and putting it in channel?
10:43 dayangkun left
zeleiadi I've submitted a pull request on github with the patch to Str::chop 10:45
FROGGS zeleiadi: it should be deprecated since 2015.04 me thinks 10:46
zeleiadi thanks, i'll change it 10:47
FROGGS you can just commit that change to your deprecate_chop_param branch and it will be put into that PR
lizmat zeleiadi: afiacs, that patch doesn't address the behaviour if count exceeds string length
FROGGS how does the deprecation message look like btw? 10:49
I hope it does not just tell "chop is deprecated please you chop instead"
zeleiadi it does, sorry 10:50
10:51 RabidGravy joined
FROGGS np 10:51
lizmat
.oO( maybe it would make more sense to document and write tests )
10:52
FROGGS :P
nine Well it exists because there clearly was some use-case where it made sense. What was the use-case exactly? 10:53
lizmat lib/Test.pm 10:54
262: $indents .= chop(4);
FROGGS so it should be along the lines of "DEPRECATED('chop without arguments', |<2015.04 2015.09>);" instead, despite the missing check for the empty string case
lizmat I remember now
it's part of the subtest support in Test.pm
FROGGS hmmm
lizmat
.oO( one could argue it *is* being tested :-)
10:55
FROGGS or useful
lizmat I remember writing $indents.chop.chop.chop.chop :-) 10:56
FROGGS why do we want a .chop() that chops a single char anyway? 10:57
nine And I'm with jnthn that this looks just cute :) But chop(4) is easier to type and makes sense when reading it.
10:58 cognominal joined
nine And 4 can be $chars 10:58
dalek kudo/nom: b0e7a59 | lizmat++ | src/core/List.pm:
Make List.pick(*) about 10% faster
FROGGS how often does one chop a single char?
lizmat FROGGS: if one wants to get rid of a trailing / in a path, e.g. ? 10:59
FROGGS I either remove trailing newlines characters or not
ahh
I guess I use regexes for that
so I don't have to care if there is a trailing slash or not
nine Sounds like chomp 11:00
FROGGS so I'd vote for: either .chop will let you specify the number of chars to chop, or the implicit .chop(1) can go away
dalek Heuristic branch merge: pushed 18 commits to perl6-examples by paultcochrane 11:01
lizmat FROGGS: so .pick should become .pick(1) as well ?
FROGGS no, the optional arg is okay 11:02
just limiting to always be 1 isnt
lizmat ok, then we're on the same page :-)
FROGGS lizmat: that's like we only allow .pick() which would meant .pick(1)
lizmat agree, 11:03
I got the impression you meant the opposite :-)
FROGGS no no :o)
jnthn away for a bit 11:05
FROGGS so we shall put .chop(N) (and &chop(N)) in the design docs and add tests
FROGGS was just away for a byte 11:06
nine I'd argue that if chop has an N argument, chomp should have one, too
lizmat nine: but that doesn't make much sense?
I mean, only if you have multiple newlines at the end ??
FROGGS m: say "foo\n\n\n".chomp
camelia rakudo-moar c8371e: OUTPUT«foo␤␤␤»
FROGGS m: say "foo\n\n\n".chomp(*) 11:07
camelia rakudo-moar c8371e: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in method chomp at src/gen/m-CORE.setting:7235␤ in block <unit> at /tmp/sSqpdotAdi:1␤␤»
lizmat m: say "foo\n\n\n\n".chomp(*)
camelia rakudo-moar c8371e: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in method chomp at src/gen/m-CORE.setting:7235␤ in block <unit> at /tmp/a4Takex0An:1␤␤»
FROGGS I'd like to see that
lizmat wow :-)
FROGGS well, see that working :o)
lizmat FROGGS: before or after the release :-)
FROGGS I don't mind as this does not break anything 11:08
but, masak++'s opinion is the one that counts
nine That looks like chomp already removing all newlines and not just one? 11:09
FROGGS nine: no, it removes one
nine FROGGS: ah, then I misinterpreted camelia's output
moritz m: say "foo\n\n\n".chomp.perl
camelia rakudo-moar c8371e: OUTPUT«"foo\n\n"␤»
FROGGS m: my $foo = "foo\n\n\n\n\n\n"; say $foo.chars; say "foo\n\n\n".chomp.chars
camelia rakudo-moar c8371e: OUTPUT«9␤5␤»
FROGGS eww
errm 11:10
11:10 vendethiel joined
FROGGS wth does it do? 11:10
removing two because windows newlines tend to be two chars long?
torbjorn I asked last night about grammars and actions. I tried something out, but instead of $key => $value , I get 0 => $key, 1 => $value , when I have make ~$0 => ~$1 in my action method 11:11
FROGGS m: my $foo = "foo\n\n\n\n\n\n"; say $foo.chars; say $foo.chomp.chars # me being stupid
camelia rakudo-moar c8371e: OUTPUT«9␤8␤»
FROGGS okay, sanity restored
torbjorn: can you show us the code? in a gist or so? 11:12
11:12 yqt joined
FROGGS ahh, but I guess there is a positional capture in $0 and $1 each 11:13
[ptc] hrm, should $*PROGRAM_NAME be kebab-cased?
torbjorn FROGGS: fpaste.org/214693/42978763/ 11:14
nwc10 mmm,
kebabs++ # tastier than camels
lizmat [ptc] probably should
but that's my opinion
FROGGS torbjorn: replace the ( ) by [ ] at line 28
torbjorn: to have a non capturing group 11:15
torbjorn ah yes, that was my switching from numbered to named captures
[ptc] lizmat: just ran across it in some code and made me wonder
lizmat irclog.perlgeek.de/perl6/2015-04-22#i_10484556
I guess $*PROGRAM_NAME is not internal 11:16
torbjorn but i still get the same, that is i get key => "cost", value => 1 (as an example), instead of cost => 1
11:17 pecastro left, pecastro joined 11:19 ssqq joined
dalek kudo/nom: 0c0eb13 | lizmat++ | src/core/ (2 files):
Make chop/.chop first class citizens
11:21
FROGGS torbjorn: that's because you don't use what rule pair has made 11:23
torbjorn: you need a method weapondef that does something like: make $<pair>.made, though, you need to take the other capture into account too 11:24
dalek ecs: 0f49a85 | lizmat++ | S32-setting-library/Str.pod:
.chop accepting number of chars to remove
11:24 Zoffix left
torbjorn i see.. it needs to "bubble" up the tree, sort of? 11:24
FROGGS yes 11:25
you are just printing the captures, not what the actions produced
so you also have to: say Dart.parse(...).made 11:26
or even: say Dart.parse(...).?made # in case it failed to parse
torbjorn ah yes, perhaps i also need a weapon and a TOP method?
FROGGS yes
all methods that are in that chain actually
torbjorn: now you can write a compiler too :o) 11:29
torbjorn icanwhatnow 11:30
FROGGS when you look at Perl6::Grammar and Perl6::Action you'll see something very close to what you did
moritz or github.com/moritz/json/ for a less scary example :-) 11:31
though iirc it still uses .ast instead of .made
FROGGS our grammar and actions arn't scary... they are just huge 11:32
torbjorn i hear you say that
where does it say what "make" and made do?
FROGGS but I see that the size can matter... when looking at spiders for example
torbjorn perfect example
FROGGS doc.perl6.org/type/Match#method_made 11:33
though, that's not much here
torbjorn so far i follow
11:33 vendethiel left
torbjorn there docs on that page are somewhat circular 11:33
FROGGS "make foo" is like: $/.made = foo 11:34
torbjorn i guessed that much from looking at examples. so thats all there is to it?
FROGGS and then you access $<bar>.made, becaude te $<bar> is what $/ was in method bar
ye
yes
torbjorn its an object variable that has a nice setter and getter?
FROGGS an attribute, but yes, exactly 11:35
torbjorn not that theres anyhting wrong with that, but im just used to being blown away by stuff i learn in perl 6, and this is so .. simple. the name "make" had so much promise to it :)
as in "make something great"!
which i suppose in the right hands, this is 11:36
FROGGS github.com/rakudo/rakudo/blob/nom/...tch.pm#L84
torbjorn does the .made attribute play any parcitular role rather than being a box to stuff data in?
FROGGS no, you can shovel anything in there, and use it from the outer action method 11:37
torbjorn ok, thanks
cognominal in the Setting, some classes are introduced with "my", some not, like Pod::*, VM, Uni. What is the rationale? 11:38
11:38 _mg_ left
FROGGS for json parsing we just put datastructures in there for what we have parsed, and for rakudo we put QAST stuff in there (parts of our AST that tells what we have to execute later) 11:38
lizmat cognominal: hysterical raisins, afaik
11:39 RabidGravy left
cognominal I probably need to understand the diff between an outrmost my in a module and our, btw. 11:39
FROGGS cognominal: I just know that package declarations default to our... but I have no idea what different it makes here
nine I think the docs should be quite explict that make/made are really that simple. Just a little convenience magic, much not more. I remember having a hard time getting to that conclusion.
11:39 zeleiadi left
FROGGS ++nine # github.com/perl6/doc/blob/master/l.../Match.pod 11:40
11:42 vendethiel joined 11:45 _mg_ joined
dalek ast: c4328db | lizmat++ | S32-str/chop.t:
Add some chop tests
11:45
c: 8020e4d | (Stefan Seifert)++ | lib/Type/Match.pod:
Try to answer FAQ about make/made
11:46
nine Jay, I got a commit bit :)
lizmat ++nine 11:47
11:50 zeleiadi joined 11:52 skids joined
moritz nine++ 11:53
skids jnthn: so just send PRs for the windows-1252 glue? 11:54
yoleaux 06:27Z <jnthn> skids: Sounds worth wiring up
FROGGS .tell hoelzro seems the tab-completion branch passed some sanity tests right now... 11:55
yoleaux FROGGS: I'll pass your message to hoelzro.
11:56 zeleiadi left 11:58 yqt left 12:00 zeleiadi joined
zeleiadi \leave 12:03
12:03 zeleiadi left 12:04 vendethiel left
[ptc] domidumont: is there anything I can do to help with package building? 12:04
FROGGS .tell hoelzro the three branches look good, so we can merge it right after release 12:07
yoleaux FROGGS: I'll pass your message to hoelzro.
domidumont [ptc]: yes. I've justed pushed nqp package on debian repo with a todo list in debian/changelog
FROGGS domidumont: can one (sombody with zero packaging skills) track the packaging status somehow?
I remember there are build stats for various platforms 12:08
domidumont FROGGS: you can track what was uploaded with Debian qa page for rakudo maintainer: qa.debian.org/developer.php?login=...debian.org 12:10
12:11 dalek left
hoelzro FROGGS: thanks for looking! 12:11
yoleaux 11:55Z <FROGGS> hoelzro: seems the tab-completion branch passed some sanity tests right now...
12:07Z <FROGGS> hoelzro: the three branches look good, so we can merge it right after release
FROGGS hoelzro++
domidumont FROGGS: work in progress is harder to track: some team (like debian-perl) annotate debian changelog to communicate status. I reuse this practice for rakudo team
12:11 dalek joined, ChanServ sets mode: +v dalek
FROGGS k 12:12
[ptc] domidumont: ok, thanks 12:13
domidumont besides, I have a problem with the jar files provided in nqp tarball: these are not source files. Per debian policy, I'll have to remove these files because they can't be rebuilt
FROGGS what jar files? in stage0? 12:14
domidumont yes
FROGGS these can be rebuild
domidumont and in 3rd party
FROGGS in 3rd party perhaps not so
domidumont I expect 3rd party files to be available through another package (like libtommath for moar)
FROGGS to rebuild stage0: configure && make && make m-bootstrap-files 12:15
dalek kudo/nom: 587d309 | lizmat++ | docs/ChangeLog:
Add some ChangeLog entries
FROGGS yeah
lizmat this is mostly for stuff I understand ^^
FROGGS lizmat++ # I also have to check for stuff to add 12:16
lizmat please help the release manager by checking it and mentioning any omissions / errors / clarifications
afk for a bit&
FROGGS domidumont: for jna there is a package, but we don't use it (yet): packages.debian.org/de/sid/all/lib...a/filelist
12:18 noganex_ left 12:19 dalek left
domidumont [ptc]: do you know libtommath upstream maintainers ? 12:19
12:19 dalek joined, ChanServ sets mode: +v dalek
FROGGS domidumont: I made an issue: github.com/perl6/nqp/issues/235 12:20
moritz domidumont: I've had some pull requests accepted by them, but we're still waiting for a release
domidumont FROGGS: good to know, we can tweak nqp packaging to use libjna package
FROGGS domidumont: I also tried to speak to them without luck
12:20 noganex joined 12:21 dalek left
[ptc] domidumont: unfortunately not... 12:21
domidumont moritz: okay, I'll create an issue there explaining the problem from a distro point of view. 12:22
arnsholt moritz: That's a good point. We have custom stuff in both tommath and dyncall, don't we?
FROGGS domidumont: I fixed the issue as it mised up asm and jna
arnsholt: everything is reported upstream
12:22 baest_ joined
FROGGS arnsholt: it is in their developement branch in case of libtommath, and in master (or whatever hg calls it) for dyncall 12:23
and I have good connection to the dyncall guys
arnsholt That's good at least
But what versions are in Debian?
domidumont arnsholt: you might say that nqp has custom stuff compared to latest libtommath release...
12:23 dalek joined, ChanServ sets mode: +v dalek
arnsholt Yeah, basically 12:23
12:23 baest left, baest_ is now known as baest
domidumont Usually, only "officially" released versions 12:23
FROGGS huh, there is no dyncall debian package?
domidumont FROGGS: no 12:24
FROGGS okay
was just surprised
domidumont dyncall is rebuilt with moar package
[ and dyncall makes the most of debian/copyright file for moar ... oh well ] ftp-master.debian.org/new/moarvm_2...-copyright 12:26
[ptc]: can you fix some issues mentioned in debian/changelog ? 12:31
12:32 skids left
[ptc] domidumont: I'm looking at that stuff now 12:33
domidumont: I don't have push access to the pkg-nqp repo, right? I have to make my own branch and submit patches? 12:34
domidumont no, you can push directly
no problem, it's git, we can fix everything afterwards ;-) 12:35
[ptc] tries git push again
12:35 BinGOs left
[ptc] domidumont: :-) 12:35
domidumont cool :-)
12:35 BinGOs joined
dalek pan style="color: #395be5">perl6-examples: f329e29 | paultcochrane++ | categories/euler/prob036-xenu.pl:
Make output verbosity optional
12:40
pan style="color: #395be5">perl6-examples: a461d85 | paultcochrane++ | categories/euler/prob081-moritz.pl:
Remove superfluous output
pan style="color: #395be5">perl6-examples: 81d99c8 | paultcochrane++ | categories/euler/prob063-moritz.pl:
Make progress output optional
pan style="color: #395be5">perl6-examples: 08df7a7 | paultcochrane++ | categories/euler/prob063-polettix.pl:
Make verbose progress information optional
pan style="color: #395be5">perl6-examples: 8a59b65 | paultcochrane++ | categories/euler/prob188-shlomif.pl:
Simplify output
pan style="color: #395be5">perl6-examples: 3ce582d | paultcochrane++ | categories/euler/prob168-shlomif.pl:
Make verbose progress output optional
pan style="color: #395be5">perl6-examples: e9b9c90 | paultcochrane++ | t/categories/euler.t:
[euler] add tests for remaining problem solutions
pan style="color: #395be5">perl6-examples: 3c0db4b | paultcochrane++ | .gitignore:
Ignore generated object files
p: 1706ef5 | paultcochrane++ | README.pod:
Wrap paragraphs consistently

This gives a tidier impression when reading the text
12:43
12:43 bjz joined
[ptc] domidumont: the libtommath problem is resolved, isn't it? 12:45
12:48 vendethiel joined
domidumont [ptc]: technically yes. But the problem is to have this fix in Debian libtommath package (which I don't maintain). 12:48
12:49 Ven joined
dalek kudo/nom: 7c849ec | lizmat++ | docs/ChangeLog:
Mention chop (let't not forget it again :-)
12:51
Ven \o, #perl6
domidumont [ptc]: having a new upstream release of libtommath would make this problem much easier
Ven moritz: I think the one thing that made me chuckle the most were the dartvm guys saying "meh, types wouldn't give us performance boost anyways" 12:53
(because types are only about performance, not about correctness, and because checks are free ...)
[ptc] domidumont: ok. I'd noticed the comment in the changelog and after having noticed the conversation on GitHub about it, that it might be able to be removed 12:54
domidumont: you build and install the moarvm package before building the nqp package, right? 12:55
domidumont [ptc]: yes
dalek kudo/nom: 4f54891 | lizmat++ | t/spectest.data:
uniname is NYI on JVM
12:58
ast: ef3335e | lizmat++ | S32-str/chop.t:
Message differs per backend, so just check type
13:02
ast: 0168355 | lizmat++ | S32-str/length.t:
Fudge failing test on JVM
13:06
ecs: 7068bfb | (Stéphane Payrard)++ | S99-glossary.pod:
Unsatisfied by the def of function. need to get serious on unicode
13:07
ab5tract m: my @bars = 1, 2, 3, * * * ... *; 13:09
camelia ( no output )
dalek ast: 589032b | lizmat++ | packages/Test/Compile.pm:
Prevent warning about using nqp::ops
ab5tract m: my @bars = 1, 2, 3, * * * ... *; say @bars[3,6,7];
camelia rakudo-moar 587d30: OUTPUT«6 1944 209952␤»
ab5tract interesting.. that hangs locally
13:09 vendethiel left
moritz are you doing it in the REPL? 13:10
lizmat fwiw, t/spec/integration/precompiled.t is *very* unhappy on JVM 13:11
jnthn: feels like this is related to the "use fatal" changes in a try block 13:12
ab5tract moritz: yeah
moritz ab5tract: did you press return after the first statement? 13:13
lizmat jnthn: then again, this could be another bug that happens when something else goes wrong :-(
ab5tract moritz: in the REPL I was just creating the array
so yeah 13:14
13:14 vendethiel joined
psch lizmat: i was surprised to see you demote &uniname to NYI on jvm 13:14
FROGGS holy cow... it seems I finally make progress on ripping out json for CURLI \o/
moritz ab5tract: well, that hangs, because @bars is infinte, and it tries to print it all
lizmat psch: $ perl6-j t/spec/S15-unicode-information/uniname.t 13:15
1..27
uniname NYI on jvm backend
ab5tract Ah, I see. A display layer issue.
13:15 coffee` left
moritz though one could argue that .gist shouldn't try to print the whole thing 13:15
FROGGS I am going to install most of the ecosystem now to get a feeling of the performance penalty
lizmat psch: merely trying to make life easier for the release manager 13:16
13:16 ssqq left
psch lizmat: yeah, that's from your commit, a2448871869c311457c1389d7aa552188e1076cf 13:16
lizmat FROGGS++
psch lizmat: i implement getuniname in NQP commit e45d8de
lizmat tries 13:17
psch lizmat: i suspect the build bustage you saw to make a244887 was for uniprop-{bool,str,num}?
lizmat psch: building JVM now with uniname activated 13:18
13:20 coffee` joined
psch hopes there isn't some OSX weirdness in JVM getuniname 13:21
dalek kudo/nom: 45c479a | lizmat++ | / (2 files):
uniname(s) *is* implemented on JVM, psch++
13:23
psch lizmat++ thanks :)
lizmat psch: all unfudged tests passed :-) 13:24
13:26 Ven left 13:34 RabidGravy joined 13:36 vendethiel left 13:42 FROGGS left 13:43 vendethiel joined
masak release night tonight, people. 14:03
get ready to par-tay 14:04
masak does some tentative disco moves
lizmat has been par-taying quite a bit already
masak \o/
14:06 vendethiel left 14:08 telex left 14:09 vendethiel joined 14:10 telex joined 14:18 Ven joined 14:19 grondilu joined
grondilu the release you're talking about it the monthly rakudo star realease or something more awesome? 14:20
PerlJam grondilu: the monthly *rakudo* release (not rakudo star) 14:21
colomon forgets the :global in subst nearly 100% of the time. :\ 14:24
PerlJam colomon: I do that only slightly less than 100% of the time too. Maybe we should have a gsub like awk. 14:25
colomon nine: using p5’s JSON::XS almost works perfectly for me, except for some reason it seems to translate False into some sort of p5 object. 14:28
JSON::Tiny: "Needs expansion" => Bool::False
hoelzro does this month have an accompanying star release? 14:29
hoelzro forgot how the star release cycle works
colomon JSON::XS:from<Perl5>: "Needs expansion" => Perl5Object.new(ptr => Pointer.new(83752256), perl5 => Inline::Perl5.new),
sjn \o 14:30
14:30 vendethiel left
sjn has found something interesting.. exercism.io/ 14:31
They're apparently working on getting in Perl6 support
lizmat stops committing code patches for today 14:32
afk for a few hours&
14:33 raiph joined 14:36 mr-foobar joined 14:40 _mg_ left 14:43 Rounin left
RabidGravy I was going to do some tests to see if things were snappy enough to make an icecast client without using libshout but spent the time debugging why silan fails to correctly detect the end of mp3s 14:47
14:49 bjz left, FROGGS joined 14:50 bjz joined
colomon nine: (or anyone who understands Inline::Perl5) so, JSON::XS returns Types::Serialiser::true and Types::Serialiser::false. These do not the proper thing in p6. 14:53
andreoss` m: my @x = 1 ... 10; ([Z] @x, @x[1..*], @x[2..*]).perl.say
camelia rakudo-moar 45c479: OUTPUT«((1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9), (8, 9, 10))␤»
andreoss` m: sub part-array(\N, @arr) { [Z] map { @arr[$_ .. *] }, ^N ; }; my @x = 1...10; part-array(3, @x).perl.say; 14:54
camelia rakudo-moar 45c479: OUTPUT«((1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,), (10,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,), (10,), (3,), (4,), (5,), (6,), (7,), (8,), (9,), (10,))␤»
andreoss` m: sub part-array(\N, @arr) { [Z] map { my $x = @arr[$_ .. *]; $x }, ^N ; }; my @x = 1...10; part-array(3, @x).perl.say; 14:59
camelia rakudo-moar 45c479: OUTPUT«(($(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),), ($(2, 3, 4, 5, 6, 7, 8, 9, 10),), ($(3, 4, 5, 6, 7, 8, 9, 10),))␤»
14:59 vendethiel joined 15:01 davido_ left 15:04 skids joined
andreoss` m: sub part-array(\N, @arr) { 15:07
EVAL "[Z] " ~ join ", " , map { '@arr' ~ "[$_ .. *]" }, ^N ;
} ; my @x = 1...10; part-array(3, @x).perl.say
camelia rakudo-moar 45c479: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4LPVYuTtjM␤Missing block␤at /tmp/4LPVYuTtjM:1␤------> 3sub part-array(\N, @arr) {7⏏5<EOL>␤»
andreoss` m: sub part-array(\N, @arr) { EVAL "[Z] " ~ join ", " , map { '@arr' ~ "[$_ .. *]" }, ^N ; } ; my @x = 1...10; say (part-array 3, @x).perl;
camelia rakudo-moar 45c479: OUTPUT«((1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9), (8, 9, 10))␤»
15:11 TimToady left, khisanth_ is now known as Khisanth
andreoss` how to do this without eval? map and [Z] together perform some strange flattenings 15:11
PerlJam m: my @a = 1..10; say @a.rotor(3,2); 15:12
camelia rakudo-moar 45c479: OUTPUT«1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 8 9 10␤»
PerlJam m: my @a = 1..10; say @a.rotor(3,2).perl;
camelia rakudo-moar 45c479: OUTPUT«($(1, 2, 3), $(2, 3, 4), $(3, 4, 5), $(4, 5, 6), $(5, 6, 7), $(6, 7, 8), $(7, 8, 9), $(8, 9, 10))␤»
15:13 TimToady joined
andreoss` damn 15:13
what does 2 stand for? 15:14
PerlJam overlap 2 elements
andreoss` doc.perl6.org/type/List is missing this method 15:15
moritz andreoss`: yes; I've added it to the WANTED list yesterday
andreoss`: feel free to do it :-) 15:16
andreoss` still can it be done with [Z] over map ? 15:18
skids What do --gen-moar= and --gen-nqp= expect as an argument? i.e. how do you get it to use your own github forks? 15:19
15:20 gfldex joined
PerlJam skids: I think they just accept commitish things (branch name, tag, SHA1, etc.) 15:20
skids So you can only use the main repo, then?
PerlJam AFAIK. I'd have to look at the source to be sure though. 15:21
15:22 vendethiel left
andreoss` [Z] .... and my @x = .... ; [Z] @x; give different results. 15:29
why?
skids
.oO(There's --git-reference but it does not seem to prevent cloning from the official repos.)
15:31
15:33 vendethiel joined 15:37 zakharyas left
PerlJam skids: it looks like it should do what you want if the directory isn't already there. i.e. if there's no nqp dir, specifying --git-reference=github.com/skids will cause a clone of github.com/skids/nqp to be used to build nqp 15:44
(assuming you've also specificed --gen-nqp)
skids Hrm is there syntax to put a fork/commit in a github url? 15:45
erm s/fork/branch/
masak m: say ([Z] 1, 2, 3).perl; my @x = 1, 2, 3; say ([Z] @x).perl 15:46
camelia rakudo-moar 45c479: OUTPUT«((1, 2, 3),)␤((1,), (2,), (3,))␤»
masak andreoss`: good question. I don't know.
masak finds he has basically no intuition for those things 15:47
maybe the GLR will magically unicorn everything to make sense
PerlJam m: say ([Z] (1, 2, 3)).perl; my @x = 1, 2, 3; say ([Z] @x).perl; # now they are equivalent 15:48
camelia rakudo-moar 45c479: OUTPUT«((1,), (2,), (3,))␤((1,), (2,), (3,))␤»
PerlJam You could also flatten @x I suppose if you really wanted the other thing
RabidGravy mmmm magical unicorns 15:49
jnthn .tell skids Yes, send along PRs, I'm 6-ing all day tomorrow so will take care of 'em then.
yoleaux jnthn: I'll pass your message to skids.
PerlJam masak: it's NFG that gets us unicorns ;)
skids jnthn: working on that now :-) 15:50
yoleaux 15:49Z <jnthn> skids: Yes, send along PRs, I'm 6-ing all day tomorrow so will take care of 'em then.
15:50 brrt joined
masak PerlJam: maybe GLR can give us rainbows, then. 15:50
masak hopes there won't be a nyan cat at the end of the rainbow
brrt thanks everybody for all the nice comments on the grant app :-) 15:51
also..
.tell moritz: see here , if you can stomach at&t syntax: gist.github.com/bdw/fef76ca07b7203e49fc2
yoleaux brrt: What kind of a name is "moritz:"?!
colomon anyone have a clue how to get a scalar value from a p5 variable using Inline::Perl5 ?
PerlJam yoleaux: you need to be a smarter bot!
brrt .tell moritz see here if you can stomach at&t syntax gist.github.com/bdw/fef76ca07b7203e49fc2
yoleaux brrt: I'll pass your message to moritz.
brrt .botsnack 15:52
yoleaux :D
synbot6 om nom nom
15:55 vendethiel left 15:57 rindolf left, vendethiel joined
jnthn lizmat: Do you have anything stronger than "feels like" on the precomp thing? I'm not saying it's impossible it's that, but I'm struggling on an explanation. 15:59
16:00 lichtkind joined, liztormato joined
jnthn (And would like any "evidence"/"hunches" so I don't repeat re-discovering what you already figured ;)) 16:01
liztormato jnthn: the error I saw actually happened in generating the backtrace of another error 16:02
16:02 rindolf joined
jnthn liztormato: Oh, hm. 16:03
liztormato Am enjoying a sunny afternoon at the Berghoes ;-) 16:04
jnthn liztormato: That could be related, though then of course raises the question "what code path is differnet on JVM" :)
16:04 F1AAT7SG joined
brrt is there a way to get inline help in the REPL? 16:04
jnthn refrains from making a pun about hoes.. 16:05
liztormato The top of the stack trace was the 2nd line in Backtrace.new
jnthn
.oO( it'd only make me look a tool... )
liztormato: OK, I'll fire off a build tomororw (or maybe later tonight) and see what I can see. Thanks.
masak Result: PASS
(on stresstest)
good work, everyone!
16:06 liztormato_ joined
jnthn masak: And how many tests did it pass? :#d 16:06
masak 116362
o.O
I... did I miss anything?
jnthn Thank you, Unicode consortium :P
masak I thought we had ~35000... oh.
jnthn masak: Yeah, I dragged in the official Unicode normalization test suite.
masak heh.
how many tests do the Perl 5 test suite have?
does* 16:07
jnthn masak: And just sampled a bit of it for sanity test, but figured if we want to claim we do it right we might as well just run the official thing.
But only for stress test. :)
liztormato_ jnthn: I wonder if the jvm fails could explain reports of panda not working on the jvm
jnthn liztormato_: Possibly.
16:08 mr-foobar left 16:10 liztormato left, liztormato_ is now known as liztormato, eli-se joined 16:13 espadrine left 16:16 domidumont left
masak m: say Uni 16:16
camelia rakudo-moar 45c479: OUTPUT«(Uni)␤»
masak m: say Uni ~~ Str
camelia rakudo-moar 45c479: OUTPUT«False␤»
masak m: say Str ~~ Uni
camelia rakudo-moar 45c479: OUTPUT«False␤»
masak m: say "abc".WHAT
camelia rakudo-moar 45c479: OUTPUT«(Str)␤»
16:16 pecastro left
moritz .botsnack 16:17
synbot6 om nom nom
yoleaux :D
15:51Z <brrt> moritz: see here if you can stomach at&t syntax gist.github.com/bdw/fef76ca07b7203e49fc2
masak m: say "😹".WHAT
camelia rakudo-moar 45c479: OUTPUT«(Str)␤»
masak m: say "😹".Uni
camelia rakudo-moar 45c479: OUTPUT«Method 'Uni' not found for invocant of class 'Str'␤ in block <unit> at /tmp/VPSQcGXVSm:1␤␤»
masak oh, so code point : grapheme :: Uni : Str 16:18
16:18 vendethiel left
jnthn masak: Right. 16:19
masak: You can't coerce to Uni
masak: Only to once of it's subclasses. 16:20
masak: I guess we could make .Uni and alias for .NFC...
16:20 brrt left
jnthn m: say "�".Uni.list 16:20
camelia rakudo-moar 45c479: OUTPUT«Method 'Uni' not found for invocant of class 'Str'␤ in block <unit> at /tmp/2P_a3xaB_I:1␤␤»
jnthn darn!
m: say "�".NFC.list
camelia rakudo-moar 45c479: OUTPUT«65533␤»
jnthn m: say "�".NFC.list>>.uniname 16:21
camelia rakudo-moar 45c479: OUTPUT«REPLACEMENT CHARACTER␤»
jnthn bah, I bet that ain't what masak typed :P
16:21 jantore left
PerlJam m: Uni.new(0x1f639).Str.say; # :) 16:21
camelia rakudo-moar 45c479: OUTPUT«😹␤»
jnthn But yeah, Uni is Buf-ish in nature.
But codepoint level
masak aha.
arnsholt Sort of a buf32, I guess? 16:22
jnthn A buf32 isn't necesarily Unicode codepoints in it though.
And can't be coerced to a Str without saying how to decode
Buf = byte level, Uni = code point level, Str = grapheme level 16:23
arnsholt Yeah, sure
Bufs need to be decoded is the most important difference, I guess
But only actual codepoints is pretty important too
jnthn Also the subtypes of Uni promise a normalization. 16:24
arnsholt Yeah, that's pretty convenient
masak so, Str --normalize--> Uni (subtype) --encode--> Buf/Blob ? 16:25
jnthn Yes 16:26
TimToady well, one usually thinks about normalization as going the other direction
yoleaux 03:06Z <raydiak> TimToady: there isn't actually anything wrong with those Proc::Async tests themselves, is there? github.com/rakudo/rakudo/pull/412 fixes it for me
jnthn Though you don't normally normalize on output :)
masak TimToady: but it feels weird to call that step "denormalize" :)
jnthn You'll get NFC "for free" thanks to Str being NFG.
masak *nod*
jnthn++ # github.com/MoarVM/MoarVM/blob/mast...ormalize.c -- OMG, it's full of comments!
arnsholt Str is normalized too, so I guess it's more "select normalization form"
masak arnsholt: yeah, that's a better way to put it 16:27
jnthn masak: Yes, and Unicode spec refs for those wanting more gore. :)
16:27 vendethiel joined
TimToady I suppose it's "normalizing" in the sense that it's turning an internal form into what the "normal" world is expecting 16:30
jnthn *nod*
16:30 liztormato left
masak .oO( ♩ hell and gore! ♫ ) 16:30
PerlJam That sounds more like "humanizing" than normalizing
TimToady nah, it's dehumanizing 16:31
masak Rudolf Steinerizing.
TimToady
.oO(NerFing)
16:32
--Unicoding--> 16:33
goes well with --Encoding-->
16:34 eli-se left
TimToady 'course, then the latter should be called UTFcoding... 16:34
masak .oO( WTF8 ) 16:35
PerlJam masak: that sounds like something vaguely regexish 16:36
16:37 estrabd joined
dalek kudo/nom: 0b5f646 | jnthn++ | docs/ChangeLog:
ChangeLog tweaks.
16:39
16:41 rurban left
moritz why is the default overlap of List.rotor 1? 16:42
sounds like 0 would be the more obvious choice to me
PerlJam ah ... maybe that's why I was thinking yesterday that overlap of 0 was broken ... it's not the default.
TimToady people solve the non-overlap case most of the time with -> $a, $b, $c, $d {...} 16:43
but I don't feel strongly about it
one could argue it should be n-1 :) 16:44
masak if the default is debatable, why is there a default?
16:45 jantore joined
moritz TimToady: the signature unpacking trick only works if the number is fixed 16:45
TimToady good question, I suppose there's a huffmanish principle that uncommon shouldn't have defaults
but 0 is probably a reasonable default
16:46 raiph left
moritz I'll document it without the default(s) until the question is resolved 16:46
TimToady I don't recollect ever deciding that 1 was the right default
moritz (and has percolated into roast and rakudo)
16:46 brrt joined
moritz also, should we allow negative overlaps? 16:47
TimToady well, why not?
masak that makes more sense to me. 16:48
the interpretation is straightforward.
"underlaps"
moritz "gaps"
TimToady one could argue the sign is wrong, and we should call it "backup"
moritz m: say <a b c>.rotor(1, -1)
camelia rakudo-moar 45c479: OUTPUT«===SORRY!===␤Overlap argument to List.rotor out of range. Is: -1, should be in 0..0␤»
TimToady well, that's wrong too
moritz call it "gap"
16:49 vendethiel left
moritz and positive gaps are gaps, negative gaps are overlap 16:49
TimToady that's pretty okay
and 2, -1 reads very clearly as "two steps forward, one step back"
masak nice 16:50
dalek kudo/nom: 3cba43f | jnthn++ | docs/ChangeLog:
Some more ChangeLog entries.
PerlJam moritz++
16:51 grettis joined
moritz rotor isn't used in the ecosystem yet 16:51
TimToady wonders if there's call for larger rotors, 2, 1, 3, 1 and such
moritz so we should be able to change it without much breakage
jnthn masak: About to go for dinner and I see there's no release announcement doc yet, but can you mention these two in it:
1) A try block now enforces "use fatal"
16:52 brrt left
jnthn 2) From 2014.05, strings on MoarVM will have NFG semantics. 16:52
masak jnthn: ok
moritz TimToady: should I remove the rotor default for $elems (first arg)?
it seems pretty arbitrary to me 16:53
jnthn masak++
masak moritz: +1
16:53 eli-se joined
TimToady yes, but if we make it repeat longer sequences, then 2 will naturally default to 2,0 16:53
so to take alternating 2's and 3's we could have 2,0,3 or 2,0,3,0 16:54
PerlJam notices that Supply also has a .rotor method
TimToady now imagines an infinite rotor that takes fibonacci amounts
moritz TimToady: I still don't see the obvious generalization
TimToady well, how do you take alternating 2's and 3's currently? 16:55
PerlJam TimToady: why not .rotor([2,3], 0) ?
I don't think .rotor does that yet
TimToady what if you want different gaps
moritz by writing code that indexes the list, duh
eli-se haii!!
TimToady I think we want to put as many teeth on the rotor's gear as the user wants, and gaps wherever they want 16:56
moritz TimToady: or alternating 2's and 3's can be done with rotor(5) and subsequent munging
TimToady: well, as many teeth are possible would mean either a list or a callback
PerlJam for different teeth and different gaps: .rotor([2,3],[1,-1]) 16:57
masak overgeneralization...
moritz stops writing specs and docs
TimToady I don't think this is over
I think (5,0) is under
moritz I've had plenty of use cases for (5, 0), (5, 1) and (5, -1) 16:58
not much else, TBH
TimToady PerlJam: I dont like separating related values like that, though one could play the same trick as tr on two lines, I suppose
16:59 dakkar left
TimToady I can imagine using a (3,0,2,0) rotor for music written in 5/4 time 16:59
PerlJam TimToady: aye, you're way of interleaving them has some mnemonic value for remembering what they mean too
s/you're/your/
TimToady you just march down the list, taking every other one, and repeat when it runs out
16:59 vendethiel joined
PerlJam And add an implicit 0 when the list has an odd number of elements? 17:00
moritz but would the code that consume that list deal with it?
I mean, for a 5/4 time, why not consume in (5, 0) steps?
oh, and if the elems and gaps belong together, why not make them Pairs? 17:01
TimToady "I can't read this 7/4 notation, please rewrite using alternating 3/4 and 4/4 time like we did before..."
moritz feels the discussion has gone from an simple, obvious improvement of rotor to something much more questionable 17:02
PerlJam moritz: the simple, obviouis improvement can still happen as a stepping stone to the generalization :) 17:03
TimToady well, you're the one that brought Pairs to the bikeshed :P
dalek ecs: ea466e4 | moritz++ | S32-setting-library/Containers.pod:
List.rotor: redesign second argument from overlap to gap

explicit allow negative gaps to mean overlap
17:04
moritz masak: should the code change for that go into the release? or rather wait (and warn in the announcement that .rotor's behavior will change?)
masak moritz: feel free to do it before. 17:05
PerlJam votes wait
masak heh :)
TimToady let's wait five minutes and then do it :)
PerlJam heh
masak my plan is to go get noms, then come back and start the releng
PerlJam if we wait until after the release, we can warn in the release and then redesign "completely" before the next one 17:06
TimToady
.oO(don't you need to leng before you releng?)
masak TimToady: you need to leng, deleng, then releng
TimToady doesn't sound normal 17:07
maybe it's just --norming-->
"achieve a norm" 17:08
moritz turns out we only have spectests for supply.rotor, not for List.rotor 17:09
TimToady so it doesn't really exist yet :)
masak had never heard "rotor" used in this sense before he saw the method being added to the spec 17:10
TimToady is actually warming to the Pairs idea
masak noms &
TimToady because then a (3,2) rotor would imply (3=>0, 2=>0) rotor 17:11
and "slipping teeth on the gear" becomes a secondary quality to specifying the takers 17:13
and taking twice as many each time just becomes (1,2,4...*) 17:14
and I can well imagine uses for that
(statistical sample doubles each time, for instance) 17:15
so unless someone can think of a big downside to using Pairs to indicate slippage, I think that's the direction we're going 17:16
moritz++ even if he doesn't like it :)
PerlJam Does rotor wrap the list? i.e. what should happen for 2 => -4 ? 17:17
moritz PerlJam: it doesn't wrap
PerlJam: and that would be a fail()ure
TimToady agree 17:18
now, if you want over the top, then the gap can be a closure, and if it's random, than 2 => { (-10..10).pick } is almost a precise picture of "gamblers ruin" 17:19
except, of course, that a casino might actually be willing to loan you a little money at a not-so-little interest rate 17:20
17:20 vendethiel left
moritz though of course you can generate that too with map { 2 => $_ }, (-10..10).pick xx * 17:20
TimToady sure, it's really on the slicing that enforces the "ruin" 17:21
moritz a closure only really makes sense if there's some new information that we pass to the closure to inform its decision
TimToady *only
I think we easily delegate that to whatever is producing list we feed to rotor
so a closure there would definitely be Too Much 17:22
I suppose if we weren't going for the mechanical metaphor, we'd call it polyslice or so
grondilu in the Changelog it is written that xx has been made 1.8 times faster. Yet [+] rand xx 100_000 (which I often try to see speeds improvements) is not faster.
TimToady rand requires a thunk 17:23
it's probably the non-thunk case that is faster
grondilu ok
TimToady generating N random numbers might be something we could optimize though 17:24
PerlJam lunch &
17:25 Rounin joined
TimToady it's a good day when I can catch up on the backlog while everyone is eating; it's a bad day when I can only catch up while they're sleeping... 17:25
17:27 cognominal left
TimToady if we really want a deprecation cycle for rotor, and if we're really going with Pairs, then we have a path forward: do the new gap semantics only with Pairs, and deprecate any non-pair 2nd arguments, then after the deprecation cycle, allow non-pair integers as pure takers 17:29
17:31 beastd joined
grondilu the idea of optimizing a the generation of N random numbers makes me wonder how one can test if a &f variable is a given function. 17:32
m: say (-> $ { rand }) === &rand; 17:33
camelia rakudo-moar 3cba43: OUTPUT«False␤»
TimToady that's only the same function after inlining :)
grondilu that's probably too much to ask, I suppose.
TimToady oh, and what are you passing to rand, which doesn't take an argument? 17:34
grondilu indeed
I'm not sure how to use the pointy syntax with no arg, though
std: -> {}
camelia std 28329a7: OUTPUT«ok 00:00 136m␤»
grondilu that looks fine
TimToady it is fine
grondilu m: say (-> { rand }) === &rand;
camelia rakudo-moar 3cba43: OUTPUT«False␤»
17:35 beastd left
TimToady what confuses people is that they then try to write -> { $^a } and such 17:35
std: -> { $^a }
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Placeholder variable $^a cannot override existing signature ( ) at /tmp/v4elZlOVdL line 1:␤------> 3-> { 7⏏5$^a }␤Check failed␤FAILED 00:00 138m␤»
moritz TimToady: given the current uncertainty about the rotor situation, I don't think we should ship a modified version with the upcoming release, just a warning that behavior will change
TimToady people might start using it this month 17:36
arnsholt grondilu: FWIW, checking if two functions are equivalent is equivalent to the halting problem =)
grondilu arnsholt: yeah I was suspecting something like that
TimToady arnsholt: you just assign each of them a Gödel number and then compare...oh wait...
17:36 beastd joined 17:37 yqt joined
moritz and then you gödel away 17:37
arnsholt grondilu: Both the halting problem and equivalence are instances of en.wikipedia.org/wiki/Rice's_theorem
TimToady the halting problem is just Waiting for Gödel... 17:38
raydiak good morning #perl6 17:44
is it normal to deprecate attributes using a method under the old name? it makes for silent failure when using the old name as a constructor arg 17:45
TimToady the silent failure is the *%_ thing, not the fault of the deprecation 17:47
raydiak yeah I guess I was just wondering if there was another mechanism we usually use for attributes isntead of methods which catches that 17:48
17:48 diana_olhovik_ joined 17:49 yqt left
raydiak has ... is DEPRECATED(...) or whatever...just a thought 17:49
17:50 Zoffix joined
dalek kudo/nom: a29614c | TimToady++ | src/core/ (2 files):
shim in .rotor(Pair) for transition to gapishness

Whether we deprecate current rotor is independent of this.
17:50
TimToady if we warn them doc-only, we can at least give them something to change it to now 17:52
17:52 yvan1 left, rindolf left
TimToady assuming "them" is not the null set, but even if they are... 17:53
17:53 rindolf joined 17:57 Ven left
raydiak should Proc::Status.signal default to 0 as designed in S29? .signal and .status give uninitialized warnings, though idk if it gets set yet if there is a signal 17:57
17:58 Zoffix left
eli-se IDENTIFICATION DIVISION. 18:03
masak .oO( you can write COBOL in any channel... ) 18:06
18:08 vendethiel joined
TimToady eli-se is channeling COBOL 18:09
eli-se I wrote hangman in COBOL.
TimToady try nroff macros next time 18:12
18:13 cognominal joined
eli-se :( 18:15
I once wrote a herding simulator in Befunge.
masak m: my $x = 1; $x ...= 5; say $x
camelia rakudo-moar 3cba43: OUTPUT«This type does not support positional operations␤ in block at src/gen/m-CORE.setting:9822␤ in method reify at src/gen/m-CORE.setting:9797␤ in block at src/gen/m-CORE.setting:9822␤ in method reify at src/gen/m-CORE.setting:9797␤ in method r…»
masak hm. 18:16
ok. 18:37
release process is now underway. do not adjust your set.
dalek ecs: 02c24b5 | TimToady++ | S32-setting-library/Containers.pod:
doc new rotor semantics
lizmat TimToady: I guess the Supply.rotor (which started all this) should have the same semantics then ? 18:38
TimToady I put a shim in Supply too
that currently only handles one Pair, and translates to the old method 18:39
but reverses the sign to get gap semantics rather than overlap
lizmat I was more referring to specs than implementation
TimToady m: say ('a'...'z').rotor(3 => -2) 18:40
camelia rakudo-moar a29614: OUTPUT«a b c b c d c d e d e f e f g f g h g h i h i j i j k j k l k l m l m n m n o n o p o p q p q r q r s r s t s t u t u v u v w v w x w x y x y z␤»
TimToady m: say ('a'...'z').rotor(3 => -2).perl
camelia rakudo-moar a29614: OUTPUT«($("a", "b", "c"), $("b", "c", "d"), $("c", "d", "e"), $("d", "e", "f"), $("e", "f", "g"), $("f", "g", "h"), $("g", "h", "i"), $("h", "i", "j"), $("i", "j", "k"), $("j", "k", "l"), $("k", "l", "m"), $("l", "m", "n"), $("m", "n", "o"), $("n", "o", "p"), $("…»
TimToady yes, feel free to change the Supply specs to match
I suppose the warning on rotor changes should go into the release notes 18:42
dalek kudo/nom: b7087d4 | (Carl Masak)++ | docs/ChangeLog:
[docs/ChangeLog] hyphen nitpickery
18:43
masak a "special casing" is different from "special-casing" :P
18:43 andreoss` left
dalek ecs: 84b405c | lizmat++ | S17-concurrency.pod:
Adapt Supply.rotor to match List.rotor
18:43
masak does anyone have any reason to believe docs/ChangeLog is not up-to-date? 18:44
TimToady is quite certain he never updated the Changelog
masak ok :) 18:45
lizmat the sequence fixes are a bit vague
masak ok, will have a look for things.
lizmat "many sequence (...) related fixes"
perhaps TimToady can elaborate ?
TimToady basically, it's no longer confused about whether its incoming arguments are itemized or not 18:46
lizmat masak: some ^\\s+ oddities maybe?
^\s+ rather
TimToady and it now figures out when an intuited iterator would bypass a final value
m: say 1,2,4 ... 100 18:47
camelia rakudo-moar a29614: OUTPUT«1 2 4 8 16 32 64␤»
TimToady instead of heading off to infinity
m: say 1,2,4 ... 3
camelia rakudo-moar a29614: OUTPUT«1 2␤»
TimToady m: say 1,2,4 ... 1.5
camelia rakudo-moar a29614: OUTPUT«1␤»
TimToady m: say 1,2,4 ... 0
camelia rakudo-moar a29614: OUTPUT«␤»
TimToady those are the two biggies wrt sequences 18:48
oh, theres a third
18:48 _mg_ joined
TimToady m: say '000' ... '077' 18:48
camelia rakudo-moar a29614: OUTPUT«000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037 040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077␤»
TimToady beginning and ending of the same length now do the specced semantics 18:49
considering each position as a separate character range
dalek kudo/nom: c1f270d | FROGGS++ | docs/ChangeLog:
mention CURLI and 'is rw'
TimToady m: say '00000000' ... '11111111' 18:50
camelia rakudo-moar a29614: OUTPUT«00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111 00010000 00010001 00010010 00010011 00010100 00010101 00010110 00010111 00011000 00011001 00011010 00011011 0001…»
dalek kudo/nom: 95a8325 | FROGGS++ | docs/ChangeLog:
fix formatting
FROGGS masak: I'm done 18:51
masak FROGGS++ 18:52
dalek kudo/nom: 0b82af4 | (Carl Masak)++ | docs/announce/2015.04.md:
[docs/announce/2015.04.md] add early draft
masak eyeballs welcome, though it's a bit early yet.
m: say 'a1x' ... 'c3z' 18:53
camelia rakudo-moar a29614: OUTPUT«a1x a1y a1z a2x a2y a2z a3x a3y a3z b1x b1y b1z b2x b2y b2z b3x b3y b3z c1x c1y c1z c2x c2y c2z c3x c3y c3z␤»
masak weird ;)
TimToady++ 18:54
dalek kudo/nom: 3b5a326 | lizmat++ | docs/ChangeLog:
Elaborate on sequence fixes, TimToady++
kudo/nom: 9432923 | lizmat++ | docs/announce/2015.04.md:
Merge branch 'nom' of github.com/rakudo/rakudo into nom
masak now has a gpg key
I don't, however, have ackles to upload stuff at the end.
TimToady masak+-+
masak either I will need to rely on someone else's kindness, or we can try to solve it by sending me a key somehow. 18:55
dalek kudo/nom: c9a6766 | lizmat++ | docs/ChangeLog:
more ChangeLog tweaks
18:57
18:58 n0vacane joined
moritz masak: /msg me an ssh pubkey 18:58
masak: oh, and there's already an ssh pubkey of yours on that host
lizmat masak: I'm done with ChangeLog now as well :-) 18:59
masak yay
going through the git log one more time Justin Case
lizmat 395 commits since last release 19:00
vendethiel
.oO( he's justin when now )
FROGGS masak: btw, dont bump PARROT_REVISION for nqp, parrot is still buggy on windows... (in case you considered it at all) 19:01
masak FROGGS: thanks, I won't. 19:02
lizmat looking at PairMap again: 19:03
moritz: I don't read in the spec that a PairMap has a predictable order of keys 19:04
(re 179d453cff1e91bba9aeeadc)
"A hash value that is mutable only in values, differing from a normal
hash insofar as the key set is frozen."
masak: maybe angle quoted Rat literals should be mentioned 19:05
masak indeed.
will add.
lizmat (561abb282224eabb63)
raydiak TimToady++'s regex interpolation fixes might be worth mentioning too
masak lizmat++
raydiak: what are those?
so improvement. much wow.
TimToady I dunno if SETTING now including CORE is worth mention 19:07
moritz lizmat: "Optimization ey is allowed. Optimization
sorry
raydiak masak: 7bef4a3 and 1fb4820 19:08
afk
moritz "Optimization
to something like an ordered hash is also allowed"
the *ordered* here implies, well, ordering
masak hah, "unless elsif" used to parse!?
moritz but yes, that's the only hint of PairMap being ordered
19:09 yqt joined
TimToady attempting to bind a Failure now tells you what was in the Failure, maybe that's worth mentioning 19:09
19:10 pullphinger joined
timotimo i think it is worth mentioning 19:10
lizmat 9210cc684c737: allow [Z] and such on indirect lols. We can now reduce with list infixes over an arbitrary number of lists
TimToady we now have Complex literals
19:11 brrt joined
masak yep, just pushed that. 19:11
or so I thought. hold on.
TimToady * autopriming on ~~ is a change 19:12
masak bleh, pull --rebase conflict.
FROGGS ===SORRY!===
masak has another go 19:13
lizmat perhaps mention various REPL fixes, not just the binding fix (e.g. d2355741a5593de8 )
El_Che moritz: we should run an apt-get -u upgrade and reboot (new kernel to be upgraded) when the activity is low
TimToady oh, reduce() now pays attention to associativity
19:14 pullphinger left
TimToady more generally, associativity now rides with the operator, no longer just implicit knowledge in the compiler 19:15
19:15 pullphinger joined
masak ooh 19:15
I didn't know about that one
TimToady++
dalek kudo/nom: 6577860 | (Carl Masak)++ | docs/ChangeLog:
add lots of new ChangeLog items
19:16
masak people++ for suggestions
let me know if I forgat something ;)
lizmat 02e1e998218af : fix R to reverse associativity ? 19:17
TimToady that too 19:18
masak m: say 3 - 2 - 1; say 1 R- 2 R- 3
camelia rakudo-moar a29614: OUTPUT«0␤0␤»
masak indeed.
masak mentions it too
lizmat 253bb585b53f : Fix various bugs in \(...) syntax
masak "various bugs"? :)
masak .oO( fix *mumble mumble* in [CLASSIFIED] ) 19:19
lizmat It didn't correctly differentiate quoted pairs (positional arg) from
identifier paris (named arg), nor did it support | for flattening into
the Capture. This patches fixes both of these issues, as well as making
it handle ;s.
masak Identifier Paris is lovely in the spring.
lizmat 8dc34c26065f8ba2 : allow :with on Z and zip
masak waitwait, what does :with do on Z and zip ? 19:20
TimToady basically \(...) is a real capture now, not an emulated one
masak m: say 1, 2, 3 Z 10, 20, 30
camelia rakudo-moar c9a676: OUTPUT«1 10 2 20 3 30␤»
masak m: say 1, 2, 3 Z 10, 20, 30 :with(&[+]) 19:21
camelia rakudo-moar c9a676: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9Uh9U2xl4T␤You can't adverb that␤at /tmp/9Uh9U2xl4T:1␤------> 3say 1, 2, 3 Z 10, 20, 30 :with(&[+])7⏏5<EOL>␤»
masak m: say 1, 2, 3 Z :with(&[+]) 10, 20, 30
camelia rakudo-moar c9a676: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HfmHP2KETE␤Two terms in a row␤at /tmp/HfmHP2KETE:1␤------> 3say 1, 2, 3 Z :with(&[+])7⏏5 10, 20, 30␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statem…»
TimToady you can't do that due to precedence
adverbs being tighter than comma
timotimo "can't adverb that" would probably be nicer if it said what exactly it thought you were applying the adverb to
TimToady the with is more for the 'reduce' variant 19:22
masak TimToady: "\(...) capture constuct handles nameds and | correctly" is already mentioned -- maybe enough?
TimToady sure
masak oki
still trying to understand "allow :with on Z and zip"
any concrete example?
lizmat 3a8ecbc92066ce : Report correct line numbers for failing tests 19:23
TimToady m: say zip(1,2,3;10,20,30):with(&[+])
camelia rakudo-moar c9a676: OUTPUT«11 22 33␤»
TimToady m: say [Z](1,2,3;10,20,30):with(&[+])
camelia rakudo-moar c9a676: OUTPUT«1 10 2 20 3 30␤»
TimToady hmm
well, it's not needed there 19:24
19:24 zakharyas joined
TimToady m: say (1, 2, 3 Z 10, 20, 30) :with(&[+]) 19:24
camelia rakudo-moar c9a676: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ylvrTXCDPO␤You can't adverb that␤at /tmp/ylvrTXCDPO:1␤------> 3say (1, 2, 3 Z 10, 20, 30) :with(&[+])7⏏5<EOL>␤»
TimToady hmm, maybe that one should work 19:25
lizmat 80afb7daa2db531 : use more [] and {} in .perl output for clarity
timotimo m: say (1, 2, 3) Z (10, 20, 30) :with(&[+])
camelia rakudo-moar c9a676: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zPM4EpWYIg␤You can't adverb that␤at /tmp/zPM4EpWYIg:1␤------> 3say (1, 2, 3) Z (10, 20, 30) :with(&[+])7⏏5<EOL>␤»
lizmat masak: not sure how to describe that one
TimToady those are just superstitious parens
doesn't change the precedence of Z 19:26
masak lizmat: "correct line numbers are reported for failing tests"? :)
sounds like a fix to me 19:27
lizmat apparently, they weren't always
worth mentioning, yes ?
dalek kudo/nom: ab6c252 | (Carl Masak)++ | docs/ChangeLog:
[ChangeLog] mention yet another fix
masak yes. lizmat++
lizmat hmmm... maybe we should remove has-substr before the release ? 19:28
it now being substr-eq
masak fine by me. 19:29
guess it doesn't need to go through a deprecation cycle if it never made it into a release...
lizmat yup :-)
dalek kudo/nom: 3d3bc76 | lizmat++ | src/core/Cool.pm:
Remove has-substr, it's called substr-eq now
19:30
lizmat there were no tests and no spec
8f5865bd576f4ac2 : Change semantics of coercion types in multis 19:31
masak just saw that one :)
masak gives it a mention
I think that goes in "Incompatible changes", actually 19:32
lizmat yes, my thought exactly
masak does that mean that a multi routine with two Int() params creates four candidates?
lizmat that would follow from the description, yes 19:33
masak exponentially the fun ;)
dalek kudo/nom: 9c2ae90 | (Carl Masak)++ | docs/ChangeLog:
[ChangeLog] mention Int() in multi semantics change
19:34
masak anyone have any idea about the .pm group to honor this month?
skids Someplace with funny character sets. 19:35
The more umlauts the better.
lizmat
.oO( some name with codepoints that don't compose )
19:36
hmm... that may be better for next months :-)
when we have NFG
masak ;)
dalek kudo/nom: c65d741 | (Carl Masak)++ | docs/announce/2015.04.md:
[announce/2015.04.md] add list of contributors
masak feel free to check this for duplicates. I did a quick scan but might've missed sump'n. 19:37
lizmat Jonathan Stowe == RabidGravy, no? 19:38
RabidGravy yep
masak ok, de-duping.
skids
.oO(only after he drinks the bubbling beaker of potion)
RabidGravy what did I break?
dalek kudo/nom: 4fa2545 | (Carl Masak)++ | docs/announce/2015.04.md:
de-dupe RabidGravy++
masak RabidGravy: just appeared twice in this month's contributor list ;) 19:39
ok, I think I'm gonna go with Vladivostok.pm
surprised we haven't had that one before :) 19:40
19:40 telex left
masak we've had all of China's .pm groups (except China.pm itself) *and* HongKong *and* Singapore :) 19:40
someone must like that part of Asia :P
RabidGravy the reason it's RabidGravy is because the last time I used IRC previously on this OS installation it was with the radio station I look after 19:41
19:41 FROGGS left
lizmat
.oO( Sarah Palin: I can see Perl 6 from here )
19:41
RabidGravy and er, that's my music thing
masak chromatic released Seoul.pm many years ago. 19:42
19:42 rindolf left, telex joined
dalek kudo/nom: 1235a27 | (Carl Masak)++ | docs/announce/2015.04.md:
[announce/2015.04.md] This. Is. VLADIVOSTOK.
19:44
19:48 pullphinger left, _mg_ left
dalek kudo/nom: 338ad26 | (Carl Masak)++ | docs/announce/2015.04.md:
[announce/2015.04.md] add a list of changes

Note that this is a subset of all the things from the ChangeLog. This month there were a lot of things, and we show the most notable ones.
19:49
masak if anyone feels I missed something notable in that list, now's the time to review :)
actually, now's the time to review the entire announement. there are no more "TBD" tags in it. 19:50
eyeballs, assemble! :D
lizmat perhaps: the RC release in September will remove *all* deprecations
?
masak I didn't understand that point. 19:51
how is that a change to this month?
that sounds like a change to September...
lizmat well, true, not specific to this month
masak ok :)
19:51 cschwenz joined
lizmat but specific for the period in which that decision was made by TimToady 19:51
masak (still don't really get why it's part of this month's ChangeLog)
sounds like a policy change, not a Rakudo change... 19:52
RabidGravy mark all existing deprecations as being doomeed for september
lizmat true
ok
dalek kudo/nom: bfe3595 | (Carl Masak)++ | docs/release_guide.pod:
[release_guide.pod] move today's release down
19:53
lizmat now at 404 commits for this release :-)
.oO( where did it go? )
masak ok, it's now time for me to cut the NQP release.
lizmat runs a jvm spectest 19:54
masak step 1: don't update PARROT_REVISION. :) 19:55
dalek p: cf2665d | (Carl Masak)++ | VERSION:
bump VERSION to 2015.04
Heuristic branch merge: pushed 25 commits to specs/newio by lizmat 19:56
masak `make realclean` does not work in nqp.
(advised by the release_guide)
dalek Heuristic branch merge: pushed 42 commits to roast/newio by lizmat
RabidGravy Proc::Async has deprecations without a date
lizmat we'll survive :-) 19:57
19:57 rvchangue joined
masak error: pathspec '2015.03-148-g8bb5da8' did not match any file(s) known to git. 19:59
got this error as Moar (in nqp) was updating submodule 3rdparty/dynasm
:(
RabidGravy bloody software 20:00
masak it's not a file, it's a `git describe` commitish.
masak nukes MoarVM/ and tries again 20:01
yep, worked better now. 20:03
phew.
I think the MoarVM/ repo had gotten wedged on an old commit somehow. 20:04
lizmat is tired and goes to bed 20:09
PerlJam g'night lizmat
RabidGravy harr
masak 'night, lizmat++ 20:12
PerlJam feels like napping right now
TimToady bunch of par-tay poopers 20:13
masak :P
TimToady just hit that bit of backlog...
masak got a couple nqp test failures: t/nqp/07-boolean.t t/nqp/59-nqpop.t 20:14
should I be worried?
TimToady: did you see my questions in the backlog a couple days back? irclog.perlgeek.de/perl6/2015-04-17#i_10455863 and irclog.perlgeek.de/perl6/2015-04-17#i_10456699 20:15
TimToady boolean passes here on both platforms
waiting for nqpop
passed on moarvm 20:16
for some reason nqp tests on jvm...take...a....while...
masak oh, I forgot to bump MOAR_REVISION. hold on. 20:17
cschwenz I noticed in design.perl6.org/S22.html#emulates that a module can say it emulates another module. Is there a way to call "use SomeModule;" in such a way that it disables searching for modules which emulate SomeModule?
TimToady I run with =master, so wouldn't notice that
dalek p: fcc93a6 | (Carl Masak)++ | tools/build/MOAR_REVISION:
bump MOAR_REVISION to 2015.04
masak rebuilding. 20:18
TimToady 59 passes here on jvm too
masak probably the missing bump. rebuilding/retesting
TimToady don't you now have to bump NQP_REVISION too?
masak only in Rakudo.
this is nqp :) 20:19
TimToady I thought that's what you were releasing :)
20:19 raiph joined
masak I'm in the nqp release sub-process right now. 20:19
haven't gotten back to the (main process) step of bumping the NQP_REVISION yet.
s/back//
TimToady gacha
20:20 espadrine joined
TimToady everything passes under =master, so you're probably good 20:21
RabidGravy cschwenz, having looked at most of the code that parses the META.info the other day I don't think that does anything yet 20:22
but I could be wrong
dalek c: 94aeb24 | cygx++ | lib/Type/Buf.pod:
typo s/rule/role/
20:23
c: f3218dc | paultcochrane++ | lib/Type/Buf.pod:
Merge pull request #76 from cygx/patch-1

fix typo s/rule/role/
cschwenz RabidGravy, that's what I expected; was mainly wondering if the feature had been thought through well enough to allow one to to say "I want this one — and no substitutes!" 20:24
20:25 espadrine_ joined
masak nope, still failing those tests. 20:25
20:25 espadrine left
masak hm. 20:25
skids cshwentz: use Foo:auth<blah>
PerlJam masak: what OS are you on ooc?
timotimo hooray! 20:26
release
masak PerlJam: Linux Mint. 20:27
looks like it's the Parrot backend nqp is running the tests on.
RabidGravy but yeah the emulates, supersedes and superseded_by in the META.info don't do much or anything right now as far as I can tell
cschwenz skids, I saw that in the documentation for the emulates key. What concerned me was: 20:28
Conversely, if one would do a: "use JSON::Fast;" then later doing a: "use JSON::XS:auth<cpan:MLEHMANN>;" in the same scope would become a no-op, just as if the compunit had already been loaded.
so the spec explicitly disables "use Foo:auth<blah> " 20:29
masak tries doing it without the parrot backend
PerlJam masak: I'm on ubuntu 14.04 and I get all tests pass for both moar and jvm (didn't try parrot)
cschwenz if i'm reading it correctly (which i may not be)
skids cschwenz: that's if you load it in the same scope.
cschwenz ah, okay. 20:30
that makes a little more sense
masak "All tests successful."
much better :)
PerlJam wonders what it means for nqp to continue to have parrot support 20:31
masak gah, "secret key not available" 20:32
I thought I configured my gpg stuff correctly -- seems I didn't :/
20:32 rarara left
masak anyone know gpg and can help? 20:32
PerlJam [Coke]++ for being slightly psychic.
20:32 rararara joined
brrt hmm 20:33
masak I've never used gpg, is all. I followed the instructions linked from the Rakudo release guide to set up a key.
I even tested it on a .tar.gz file I made before, and it worked there. 20:34
RabidGravy I have to relearn how to use it every five years or so
brrt maybe printing *everything* on the REPL isn't necessarily a good idea
masak I'm stuck. 20:35
I don't know gpg well enough. I don't know how to move on from here if signing doesn't work.
I need help to continue the nqp release process. 20:36
PerlJam masak: what's in your ~/.gnupg dir?
Are you sure you put the key on the same system you're signing with now? (or copied it there)
masak PerlJam: gist.github.com/masak/dd94439a1865b2fa6c2a 20:37
PerlJam: "same system" as in on the laptop. yes.
I'm not ssh'd into anything. I'm doing everything locally.
I saw the gpg key creation succeed.
20:37 xfix left 20:38 darutoko left
masak spends this idle time investigating why we sign our releases nowadays 20:41
PerlJam masak: I'm not well-versed in gpg either, but I just did a test signing myself and it worked fine. And my .gnupg dir looks the same as yours modulo file size differences.
20:42 spider-mario joined
masak ok. thanks for trying. 20:42
PerlJam: did you try signing with `git tag -s -a -m"tag release YYYY.MM" YYYY.MM`? because it worked for me on a .tar.gz file, but not with the git command. 20:43
PerlJam I did bot
er both
20:43 brrt left
RabidGravy what is the error? 20:43
masak RabidGravy: "secret key not available" 20:44
found the relevant backlog: irclog.perlgeek.de/perl6/2015-04-02#i_10382716
I'm sorry, but I don't feel so bad about skipping the signing step if I can't make this work.
RabidGravy oh weird
masak I feel I've done what I should in order to prepare properly, and it still doesn't work. 20:45
whoever does May can deal with this stuff.
I just want to finish the release before I fall asleep.
vendethiel fr.slideshare.net/BrendanEich/value-objects2 I guess even JS wanted crazy operators at some point
PerlJam masak: does the email you used to generate the key match your git user.email ?
masak PerlJam: yes. 20:46
proceeding without signing. 20:47
PerlJam masak: and you don't have user.SigningKey set to some other key in your .gitconfig?
masak I don't have that one set to anything.
PerlJam (and that's all I've got for an attempt at debugging this problem)
masak thanks for trying. 20:48
I'm moving on now.
PerlJam masak++
masak someone with the appropriate ssh key, please upload masak.org/carl/tmp/nqp-2015.04.tar.gz
thank you.
20:49 lichtkind left
masak continuing with the Rakudo release process. 20:49
PerlJam uploads nqp 20:50
dalek kudo/nom: 5aecace | (Carl Masak)++ | tools/build/NQP_REVISION:
[release] bump NQP revision
kudo/nom: 897e235 | (Carl Masak)++ | VERSION:
[release] bump VERSION
masak PerlJam++
PerlJam random question ... why are the nqp tarballs so much bigger than the rakudo tarballs? Is it because nqp has the unicode database that rakudo would use? 20:52
yeah ... I guess it's just the 3rdparty stuff 20:53
20:53 MARTIMM left, zakharyas left
RabidGravy isn't 3rdparty in moarvm rather than nqp? 20:54
all the uv etc ...
20:55 Rounin left
PerlJam nqp has quite a bit of 3rdparty stuff as well: asm dyncall jline jna libtommath sha1 20:55
masak .oO( 3rdpar-tay ) 20:56
21:00 dolmen joined
flussence random question, prompted by seeing a whole bunch of complaints about python3: what happens when we do «dir('.')» on a bunch of filenames that are only partially utf-8? 21:03
masak that is an interesting question. 21:08
there's only one way to find out :)
geekosaur POSIX filenames are inherently byte strings 21:09
as much as people want to believe otherwise
masak I remember reading about the py3 people learning about this, yes. 21:11
flussence I've heard there's people trying to get the next version of POSIX changed to disallow "crazy" things like control chars in them, which would be kinda nice...
masak question is, what does Rakudo do?
control chars are the least of your problems, no? at least they are valid UTF-8.
PerlJam whenever one of you guys figure it out, write a blog post about it if it's interesting or useful ;)
masak it's invalid codepoints and stuff we should be worried about.
21:16 skids left 21:18 cschwenz left
dtscode wheres a good perl 6 tutorial? 21:19
masak dtscode: learnxinyminutes.com/docs/perl6/ 21:20
dtscode thanks 21:21
PerlJam Hmm. that link mentions that Perl 6 runs on parrot. Maybe it needs an update to mention the suspension
21:22 eli-se left
masak PerlJam: please open an issue or submit a pull request as outlined at the bottom of the page. 21:23
PerlJam will do
21:25 beastd left 21:27 LonelyGM joined
dtscode im a little confused by the multiline comments. does it mean #`[] is a multiline comment or do i need #`[#`]? 21:31
21:31 LonelyGM left
masak m: say #`[ like this -- does that make it clearer? ] 42 21:32
camelia rakudo-moar 897e23: OUTPUT«42␤»
dtscode ah ok 21:33
21:35 muraiki left
RabidGravy this is so something that is going to make me want to kill someone who over-uses it 21:38
dtscode #`[ cant possibly imagine why that would annoy you RabidGravy ] 21:39
PerlJam RabidGravy: it's only a crime if you act on the impulse. 21:40
RabidGravy if #'[ it does I'll be sure to let you ] $kow
know
21:40 Peter_R left
masak no, it has to be a ` 21:41
not a '
RabidGravy I know but I can't type
21:42 Peter_R joined 21:45 Vlavv_ left
RabidGravy in a completely unrelated note is there any documentation on the "earliest $channel { ... } " construct? 21:45
I started on the concurrency doc and get a bit tied up on that
21:47 kaare_ left
RabidGravy I'll ask again tomorrow as I have to crash now 21:49
21:49 espadrine_ left 21:50 pyrimidine joined 21:53 torbjorn left 21:54 RabidGravy left 21:57 Vlavv_ joined
masak just finished Rakudo stresstest. 22:04
Moar passes just fine.
some test failures on JVM.
I can throw them up as a gist if anyone's interested.
gist.github.com/masak/68a451cdb127f6bd6557 22:05
Rakudo tarball: masak.org/carl/tmp/rakudo-2015.04.tar.gz -- PerlJam, you still there? 22:06
22:08 yqt left
masak (or someone else with the permissions to upload to rakudo.org) 22:08
in the meantime, I'll prepare the p6c emission and the Wikipedia update.
22:10 diana_olhovik_ left
PerlJam aye, I'm here 22:12
masak \o/
22:12 vendethiel left
PerlJam uploaded 22:13
and now I'm gone :)
PerlJam *poof* &
masak PerlJam++
p6c email sent. 22:14
22:15 vendethiel joined
masak en.wikipedia.org/wiki/Rakudo_Perl_6 updated. 22:16
step 18. done.
standing down the release process.
all systems power down.
thank you; you've been great.
sorry we couldn't make it work with the gpg keys -- maybe next time. 22:17
thanks for flying masak Rakudo release process.
22:17 bjz left 22:18 lucasb joined, LonelyGM joined
lucasb tarballs are 404 here :( 22:19
hoelzro masak++
lucasb They show up in the apache listing, but when I try to download them, it's 404
22:22 LonelyGM left
[ptc] masak++ 22:22
tadzik masak++
[ptc] also get 404 here
22:22 davido_ joined
[ptc] permissions, maybe? 22:23
masak rakudo.org seems a bit slow
raydiak wfm just now
masak++
[ptc] tries again
masak doesn't get a reply from rakudo.org/downloads/rakudo 22:24
raydiak at the url in the backlog that is
[ptc] nope. neither wget nor browser work
raydiak ah, yeah wasn't trying rakudo.org my bad
masak no, that was just for PerlJam. 22:25
should work, though.
22:25 Peter_R left
masak yeah, masak.org/carl/tmp/rakudo-2015.04.tar.gz works here. 22:26
(temporary URL, though. will go away soon.)
rakudo.org/downloads/rakudo doesn't resolve for me.
22:28 Peter_R joined
raydiak rakudo.org/downloads/rakudo/ does work here (though it redirects with the trailing slash if you leave it off) 22:29
masak www.downforeveryoneorjustme.com/rakudo.org agrees it's just me. 22:31
well, I am on a hotel wifi, so maybe something screwey is going on. oh well. 22:32
I think we made the release, in any case ;)
at least Wikipedia says so.
22:32 andreoss joined
raydiak still no luck at rakudo.org/downloads/rakudo/rakudo-....04.tar.gz though... 22:33
[ptc] shouldn't someone tag the MoarVM build?
the most recent tag for me is still 2015.03 22:34
although the VERSION file is up to date
TimToady notes that rakudo.org/how-to-get-rakudo/ doesn't mention the tarballs at all
22:35 ponbiki left
masak [ptc]: you are likely out of date, then. my MoarVM has a 2015.04 tag. 22:36
well, that's it for me.
time for bed.
'night, #perl6
raydiak thanks again, g'night masak
[ptc] masak: odd, I just did a fetch, merge 22:37
goodnight masak
masak: had to use git fetch --tags, now it works 22:39
TimToady maybe wordpress doesn't think the tarball is published yet? 22:43
dalek p: b9560e3 | paultcochrane++ | tools/build/Makefile-common.in:
Add RM_F makefile variable

This is required in order that `make realclean` can work correctly.
22:44 LLamaRider joined 22:47 Ben_Goldberg joined
TimToady the other interesting thing is that the tarball apparently leaped from 1.4 to 2.4 MB 22:49
according to the directory, not the file, which I still can't get
22:53 skids joined
TimToady I'm guessing the permisions/ownership are wrong on the file 22:54
22:54 ponbiki joined 22:55 ponbiki is now known as Guest66256
TimToady .tell PerlJam can you check the permissions on the tarball you uploaded? 22:56
yoleaux TimToady: I'll pass your message to PerlJam.
22:56 Guest66256 is now known as ponpon 22:58 vendethiel left 22:59 lucasb left
raydiak TimToady: S15-normalization which didn't exist in 2015.03 uncompresses to nearly 6 megs 22:59
22:59 andreoss left
raydiak erm, t/spec/S15-normalization that is 23:01
TimToady did we used to include the actual tests? I thought we just used a tag into roast
raydiak idk for how long, but they're in the 2015.03 I was checking against 23:02
flussence m: say 1381080 / 2481636; # maybe we ought to start offering .tar.xz releases too, this is quite a size difference 23:03
camelia rakudo-moar 897e23: OUTPUT«0.5565200␤»
TimToady I guess so
23:03 rmgk is now known as Guest18322, rmgk_ joined, Guest18322 left, rmgk_ is now known as rmgk
raydiak perhaps we shouldn't include roast but just the sanity tests? 23:06
flussence (to clarify: 1381080 is the size of that 2015.04 url posted by masak++ repacked with "xz -9" -- 2015.03.tar.gz is about 200KB larger than that) 23:07
dtscode say "Interpolate an array using [] : @array[]"; #could someone clarify what interpolate means in this sense? 23:11
flussence as in putting the contents into a ""-string 23:12
m: my @a = ^10; say "@a[]"
camelia rakudo-moar 897e23: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
dtscode ah
flussence m: my @a = ^10; say "@a" 23:13
camelia rakudo-moar 897e23: OUTPUT«@a␤»
23:15 vendethiel joined
TimToady so your email addresses are safe(-ish) 23:21
as long as you don't put [] after gmail.com :)
er, ()
m: say [email@hidden.address] 23:22
camelia rakudo-moar 897e23: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PTrWgiRgJJ␤Variable '@foo' is not declared␤at /tmp/PTrWgiRgJJ:1␤------> 3say [email@hidden.address] expecting any of:␤ argument list␤ postfix␤»
TimToady m: say [email@hidden.address]
camelia rakudo-moar 897e23: OUTPUT«larry@foo.com␤»
23:25 dolmen left
raydiak without t/spec, 2015.04 is 654k .tar.gz'd (vs 2.4M), and 4M uncompressed (vs 17) 23:28
23:28 gfldex left 23:31 raiph left
dtscode is there a good perl 6 irc lib yet? 23:32
preferably async?
TimToady, thanks :D makes sense 23:33
23:37 vendethiel left
timotimo fortunately irc is such a simple protocol, and so well defined 23:40
*cough* *cough* 23:41
23:41 vendethiel joined
dtscode are you saying roll my own? 23:42
timotimo it'd be cool if we had one, i don't want to make you make it
TimToady yes, you do, you know you do :) 23:43
timotimo i'm not sure i'd actually do something with it myself
dtscode ill make one
is there at least an async lib already? 23:44
23:45 cognominal left, LLamaRider left
TimToady moritz++ actually has a logger already, written in P6, so you probably don't want to reinvent what he has 23:47
psch m: say [email@hidden.address]
camelia rakudo-moar 897e23: OUTPUT«foo@example.com[]␤»
psch m: my @a = ^3; say "@a[]" 23:48
camelia rakudo-moar 897e23: OUTPUT«0 1 2␤»
psch m: my @a = ^3; say "a@a[]"
camelia rakudo-moar 897e23: OUTPUT«a0 1 2␤»
psch huh
lexical lookup?
oh, the .
psch should probably go to bed soon 23:49
dtscode: Net::IRC exists, at github.com/TiMBuS/Net--IRC 23:52
i'm not sure what kind of async library one would look for, with Promises, Supplies and start/await in core, but that might just be because i'm not particularly knowledgable 23:53
23:54 ponpon is now known as ponbiki, danaj joined
raydiak there's IO::Socket::Async in core too 23:54
23:59 n0vacane left