»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 May 2018.
Xliff jnthn++ - I'll check that out, thanks. 00:05
Geth ecosystem: 8ffebcf685 | (Jonathan Scott Duff)++ | META.list
Use sake from the perl6 org
00:23
timotimo .tell moritz how do you feel about agreeing on an API for objects that want to have a method to dictate how it json-ifies that would work on both JSON::Fast and JSON::Tiny? and should it require a "marker" role to be composed, or just use .? for the call? and should a Str returned from such an object be checked if it generates a valid json result? 00:30
yoleaux timotimo: I'll pass your message to moritz.
timotimo AlexDaniel: is "code execution code" actually correct? %) 00:34
AlexDaniel timotimo: :) any other issues? 00:35
timotimo don't think so 00:38
hm, maybe
"premature .perl chopping" sounds a bit strange
"Fix long class names being cut off in X::TypeCheck message" or something maybe?
i wonder if we have to put &lt; and &gt; instead of < and > to render it correctly everywhere 00:39
AlexDaniel El_Che: ⚠⚠⚠ IT HAPPENED! ⚠⚠⚠ WOOP-WOOP-WOOP 02:59
:)
caphook simple way to swap first and last column in matrix @m = [1..4], [5..8], [9..12], [13..16]; # ???
AlexDaniel m: my @m = [1..4], [5..8], [9..12], [13..16]; @m[0, *-1] = @m[*-1, 0]; say @m 03:00
camelia [[13 14 15 16] [5 6 7 8] [9 10 11 12] [1 2 3 4]]
AlexDaniel caphook: like this? ↑ 03:01
ah sorry
column, not row
m: my @m = [1..4], [5..8], [9..12], [13..16]; @m .= map: *.rotate; say @m 03:02
camelia [[2 3 4 1] [6 7 8 5] [10 11 12 9] [14 15 16 13]]
AlexDaniel caphook: ↑ this?
no, not that… 03:03
:)
AlexDaniel m: my @m = [1..4], [5..8], [9..12], [13..16]; .[0, *-1] = .[*-1, 0] for @m; say @m 03:05
camelia [[4 2 3 1] [8 6 7 5] [12 10 11 9] [16 14 15 13]]
AlexDaniel caphook: what about this? :)
maybe this module is also worth a try: github.com/pierre-vigier/Perl6-Math-Matrix 03:06
caphook AlexDaniel: yes, .[0, *-1] = .[*-1, 0] for @m # it works; Thanks! 03:09
AlexDaniel caphook: even though it's really short, I think Math::Matrix should have even cleaner way of doing that
perlawhirl you could also do .[0, *-1] .= reverse for @m
it's only one char shorter, but prevents you having to repeat the indices again 03:11
though my suspicion is that it would probably be marginally slower (depending on the size of your matrix) 03:13
Zoffix AlexDaniel++ samcv++ # release 04:03
yoleaux 21 Jun 2018 20:25Z <drforr> Zoffix: I'll give it some thought tonight.
21 Jun 2018 20:28Z <drforr> Zoffix: I know of no other version of
21 Jun 2018 20:29Z <drforr> Zoffix: ... of the talk.
samcv :) 04:26
moritz timotimo: something like an as-json() method? 05:17
yoleaux 00:30Z <timotimo> moritz: how do you feel about agreeing on an API for objects that want to have a method to dictate how it json-ifies that would work on both JSON::Fast and JSON::Tiny? and should it require a "marker" role to be composed, or just use .? for the call? and should a Str returned from such an object be checked if it generates a valid json result?
RandalSchwartz so I might be here asking some p6 questions over the next month or so 05:17
first question: what is the difference between "say" and "put". 05:18
RandalSchwartz Ahh, say for humans, put for machines? 05:19
El_Che AlexDaniel: will release when I am out of the train! 05:30
thx!
caphook How to use class Macro ? 05:41
moritz RandalSchwartz: exactly 05:43
RandalSchwartz thanks 05:44
moritz RandalSchwartz: what this means under the hood is that say() calls .gist, and put() calls .Str 05:51
which makes quite the difference for match objects with captures, for example
RandalSchwartz ok 05:58
Geth doc: d7538b6cec | (JJ Merelo)++ | doc/Language/traps.pod6
Removes contradictory statement in traps refs #2113
07:00
doc: 5afa31cf56 | (JJ Merelo)++ | writing-docs/STYLEGUIDE.md
Adds exception for empty hash in writing style docs closes #2113
synopsebot_ Link: doc.perl6.org/language/traps
jmerelo Morning from Orly airport 07:01
lookatme morning 07:02
jmerelo Today, I guess, is the day of the TPCiSLC hangover... 07:06
fou m: my %h .= new; %h.push: ('+' => &+) 09:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3my %h .= new; %h.push: ('+' => &+7⏏5)
expecting any of:
prefix
term
fou why doesn't it work? I have to use lambdas :( 09:05
moritz there is not syntax &+ 09:07
you can use &infix:<+>
or maybe &[+]
m: my &c = &[+]; say &c.^name
camelia Sub+{is-pure}+{Precedence}
pmurias I have a difficult naming problem. How should the AST that QAST is turned before being passed to java land to be turned into Truffle-compatible AST (and run) 09:08
It's basically the AST that Truffle will run but in array form ['stmts', ['say', ['sval', 'Hello World']]] 09:09
fou moritz: thanks!
moritz pmurias: TTAST? Truffle Transfer AST? 09:11
or just TAST 09:12
for moarvm we have MAST
pmurias moritz: I was thinking of calling it TAST too 09:17
stmuk still waiting for Larry's and Liz's talks on youtube .. I suppose they might appear today (?) 09:42
El_Che same here 09:47
El_Che [Coke]'s talk are already up 09:47
and DrForr's as well
and an other one from someone I don't know 09:48
(if in the channel, wave :) )
phdphil p6:'༊ᖮᙄᕼᒂᕼᐞـᗠઌٲ'.ords.map(* div 50).chrs.say 10:47
yoleaux 20 Apr 2018 19:09Z <MasterDuke> phdphil: you could also look at the last section of docs.perl6.org/language/operators#...Operators. e.g., `say [\<] 1,2,3,0` almost does what you want
evalable6 Morning p6!
phdphil I have a question regarding .combinations 10:48
p6:(2..*).combinations(2).grep({[+] $_ > 10}).first 10:49
evalable6 (exit code 1) Cannot .elems a lazy list
in block <unit> at /tmp/4pXoQABZbZ line 1
phdphil Does anyone know of any discussion about why the combinations method requires a non-lazy sequence? 10:50
phdphil The design and the docs say that it is 'erroneous' to ask for combinations of a lazy list 10:53
E.g. design.perl6.org/S32/Containers.html
But unless the order of the combinations is prescribed (which I can't see anywhere), I don't see why it couldn't work on a lazy list 10:54
Zoffix phdphil: what would an implementation for a lazy list look like? 11:13
Zoffix fwiw, here's the current one: github.com/rakudo/rakudo/blob/mast...#L738-L783 11:14
phdphil Zoffix: The result would just work on an incrementally expanding list; it would need to keep a history of the original list as-expanded 11:15
so (2..*).combinations(2) could emit (2 3) (2 4) (3 4) (2 5) (3 5) (4 5) etc 11:16
Zoffix phdphil: history is all the previous elements?
"lazy" is basically synomous with "infinite" or "bad things will happen (e.g. out of RAM)" if you reify everything at once, so if you have to keep around a copy of all the reified elements, I'd assume that's why lazy stuff isn't allowed. 11:17
phdphil Zoffix: of the lazy list, yes
But you do this with any ... statement 11:18
1,1,*+*...*
p6:say (1,1,*+*...*).head(10) 11:19
evalable6 (1 1 2 3 5 8 13 21 34 55)
Zoffix no, it's a Seq. It doesn't keep stuff around unless you ask it to cache stuff (well, other than N elems it needs to give as args) 11:19
phdphil p6:say (1,1,{@_.sum}...*).head(10)
evalable6 (1 1 2 4 8 16 32 64 128 256)
Zoffix hehe 11:20
right and keeps nomming all the RAM 11:23
m: say +(1,1,{@_.sum}...*)
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1
phdphil p6:{(.pull-one,.pull-one,{say @_.combinations(2);.pull-one}...*).head(10)}((2..*).iterator)
evalable6 ((2 3))
((2 3) (2 4) (3 4))
((2 3) (2 4) (2 5) (3 4) (3 5) (4 5))
((2 3) (2 4) (2 5) (2 6)…
phdphil, Full output: gist.github.com/090b653940d451e7c7...71caabd433
phdphil It's just like any other lazy list or ... comprehension using @_ 11:24
It only noms all the ram if you let it
I can imagine it being disabled by default, perhaps, and enabled with a :zigzag or something
Zoffix I filed this as R#1948 11:27
synopsebot_ R#1948 [open]: github.com/rakudo/rakudo/issues/1948 .combinations unnecessarily requires non-lazy list
phdphil p6: {(.pull-one,.pull-one,{my$a=.pull-one;say @_.map({$_,$a});$a}...*).head(5)}((2..*).iterator) 11:28
camelia ((2 4) (3 4))
((2 5) (3 5) (4 5))
((2 6) (3 6) (4 6) (5 6))
phdphil Thanks
Was expecting to find some documentation somewhere
Zoffix phdphil: BTW, do you have a usecase for partial list of combinations like that? Would you comment it on the issue? 11:35
phdphil Does code golf count? 11:36
Zoffix I imagine a lazy-list variant would be less performant and some things are lazy-but-not-infinite (e.g. lines from a file), so we'd be making stuff like that less performant and if there's no good usecase for the partial list of combinations, then maybe it's not a good idea. 11:37
phdphil: I don't count code golf as a usecase, but I don't know if others do :P
phdphil :D 11:38
I can invent one
Zoffix ok :) 11:39
Zoffix &
Geth p6-sake: ff5a68841e | (Aleks-Daniel Jakimenko-Aleksejev)++ | LICENSE
Added LICENSE file
12:43
buggable New CPAN upload: IP-Random-0.0.5.tar.gz by JMASLAK modules.perl6.org/dist/IP::Random:cpan:JMASLAK 13:05
perlpilot wonders what IP::Random would look like with sets rather than the grep logic 13:12
Geth p6-sake: 009f1c746c | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md
README → README.md
13:30
p6-sake: c32f51924d | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md
Added more info to the README
p6-sake: 19025ead61 | (Aleks-Daniel Jakimenko-Aleksejev)++ | README
Delete README (there's README.md now)

Oops in 009f1c746cf85a7a8c35531fbe061e719c2d4567.
13:32
El_Che AlexDaniel: packages are being built as we speak 13:41
Geth p6-sake: cb9bd42c5b | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Trailing whitespace
13:44
p6-sake: 79250c0198 | (Aleks-Daniel Jakimenko-Aleksejev)++ | bin/sake
Print the list of available tasks if none given

Maybe it should run something like ‘all’ by default, but for now this is more useful than the previous behavior.
p6-sake: a2d4574c57 | (Aleks-Daniel Jakimenko-Aleksejev)++ | .gitignore
Basic .gitignore file
13:45
timotimo moritz: how do you think "i want to return a string to be included verbatim into the json output" should be handled? 13:48
Geth p6-sake: 58c632ff2d | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Sake.pm6
Don't use shell when not needed

See issue #13.
13:50
moritz timotimo: not at all 13:51
timotimo OK, so returning a string from to-json will result in the same thing as actually being a string, i.e. quotes around, escaping inside 13:52
moritz because the library would need to re-parse it to make sure it's actually valid JSON
timotimo do we define any semantics to returning an object from to-json that has its own to-json method? 13:55
like, the possibility of infinite recursion?
moritz no, it should return a data structure that is already json-serializable
AlexDaniel timotimo: I don't know if you have notifications on github enabled, so ping: github.com/perl6/doc/pull/2100 13:56
moritz also, please don't name it "to-json". "to" implies you're doing something to the object, changing it
timotimo ok, as-json?
moritz I'd prefer that
though I'm not totally happy with that name either 13:57
because it's supposed to return a json-compatible data structure, not JSON
timotimo .for-json
moritz sounds sensible 13:58
timotimo i have many more prepositions!
moritz though let us not decide right away
timotimo .with-json, .under-json, ... 13:58
.json-compatible
timotimo AlexDaniel: chrome doesn't have something like firefox's reader mode built-in? 13:59
AlexDaniel timotimo: I think it doesn't, but you can install “Chrome Reader View” extension 14:00
which claims to do the same
timotimo i wonder if the PR would be less troublesome if the button to disable colors went in the header or footer instead of each text box 14:01
AlexDaniel the PR would be less troublesome if it was justified :) 14:02
Geth p6-sake: 87c7acd5d0 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Sake.pm6
Sink task results

Otherwise Procs can fail silently. See issue #12.
14:05
Geth p6-sake: 8102fcb173 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Sake.pm6
Pass the task object into the block

As mentioned in issue #7, this can be useful sometimes. This change should be backward compatible for most users, unless someone explicitly restricted the signature (e.g. -> {…} instead of just {…}).
By the way, the default .gist of Sake-Task seems to be good enough.
14:17
jdv79 are {} chars really called brackets? 14:25
Kaiepi i thought [] were brackets 14:26
timotimo i call them braces
jdv79 "Brackets are used to declare blocks."
first i've seen it described as such
timotimo that sounds like it wants to be changed
cono curly braces, square braces?
jdv79 maybe curly brackets would be better? 14:27
yeah "brackets" makes me thing of []
cono +1
AlexDaniel github.com/perl6/doc/issues/2114 14:30
geekosaur there's a graphic somewhere ppointing out that definitions of "brackets" v "braces" etc. vary wildly 14:31
define terms up front and use examples
AlexDaniel I think it should always be “curly braces” and “square brackets” 14:32
jdv79 why not disambiguate like that - yeah. 14:33
AlexDaniel also: github.com/perl6/doc/issues/2115 14:36
I remember there was another issue similar to this one
i.e. a word was omitted for no good reason 14:37
ah, it was this: github.com/perl6/doc/commit/eb8f7f...2696b98966 14:39
Juerd re github.com/perl6/doc/blob/master/w...LEGUIDE.md # why is there a difference between the recommended style for empty hashes and non-empty hashes? 14:43
Geth doc: fdcdff8725 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 3 files
“right-hand side” is more natural

See the comments on
  github.com/perl6/doc/commit/eb8f7f...2696b98966
14:44
AlexDaniel Juerd: because { } can mean a block or a hash, depending on what's inside. So it's easier to recommend %() for hashes because it clearly results in a hash. However, %() is not an empty hash :( 14:49
Juerd: see this for more info: github.com/rakudo/rakudo/issues/1946 14:50
tyil the docs on POD show how to access the current file's POD document (docs.perl6.org/language/pod#Accessing_Pod), but is it possible to access another file's POD documentation, preferably without altering the current program's $=pod 14:55
tyil if anyone has any idea and would like to get some Stack Overflow rep for it, I also asked it on SO stackoverflow.com/questions/509907...erl-6-file 14:59
geekosaur afaik it's not, you have to load the file to process its POD which will incorporate it into your program 15:01
timotimo are you sure evaling another file will change the current program's $=pod?
geekosaur I thought that had come up before? although maybe it was in the opposite direction 15:02
timotimo i haven't touched this part of the code in ages, but it'd be very surprising to me if that happened 15:03
Zoffix tyil: are you able to modify the file whose pod you want? 15:07
Pretty sure I did it before without modifications and it's probably in the logs somewhere
Juerd AlexDaniel: Oh my
AlexDaniel: What a mess 15:08
tyil I think I can
Zoffix tyil: but with modification, just stick `$=pod` as last statement, and then use EVALFILE to grab it
tyil timotimo: if I EVALFILE another file with POD it seems to overwrite the POD I have in the running file 15:09
Zoffix tyil: gist.github.com/zoffixznet/20eef4a...7dd2a4828d
tyil Zoffix: what if the file has a MAIN sub
Zoffix tyil: what are you trying to do? 15:10
Juerd AlexDaniel: But if hash() and hash(...) do unambiguously create hashes, why aren't those recommended over %(...) and {} ?
tyil extract a file's POD data so I can parse it, and filter out all the declarator POD sections
Zoffix tyil: also, commenters are asking questions about your grant proposal: news.perlfoundation.org/2018/06/gra...l#comments 15:11
tyil basically p6doc but without declarator sections
Juerd AlexDaniel: Or even parenless: my $foo = hash;
Zoffix tyil: and the file could have arbitrary code?
tyil yes
also I'll respond to said comments
timotimo fascinating 15:12
Juerd Also, there appears to be a type array (not Array). What's that? 15:13
timotimo native arrays
AlexDaniel tyil: why not `hash`? That's a good question
timotimo like arrays of int32 or so
Juerd timotimo: Thanks
AlexDaniel and why `hash` is {} and `array` is a native array is also a good question
Juerd m: my $foo = hash; say $foo;
camelia {}
timotimo hash is a sub, but array is a type? 15:14
AlexDaniel sure-sure, but that kinda sucks?
tyil AlexDaniel: ? 15:15
Juerd m: .say for list, array, hash
camelia ()
(array)
{}
AlexDaniel tyil: oh sorry, that was for Juerd
tyil ah, ok 15:15
AlexDaniel Juerd: can you ticket that? Who knows, maybe in v6.d, or v6.e, or at least maybe v6.z…
Juerd AlexDaniel: I will ticket it for the documentation style page 15:16
Zoffix m: .say for list, array, hash, pair, set(), bag(), mix()
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling pair() will never work with signature of the proto (Mu, Mu, *%)
at <tmp>:1
------> 3.say for list, array, hash, 7⏏5pair, set(), bag(), mix()
Zoffix m: .say for list, array, hash, pair(), set(), bag(), mix()
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling pair() will never work with signature of the proto (Mu, Mu, *%)
at <tmp>:1
------> 3.say for list, array, hash, 7⏏5pair(), set(), bag(), mix()
Zoffix m: .say for list, array, hash, pair(1,1), set(), bag(), mix()
camelia ()
(array)
{}
1 => 1
set()
Bag()
Mix()
Zoffix s: &EVALFILE 15:18
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/c441...de.pm6#L89
AlexDaniel Juerd: list/array/hash can be a rakudo ticket
Zoffix can EVAL affect outer code? 15:20
m: my $x; '$x = 42'.EVAL; say $x
camelia 42
Zoffix oh
El_Che github.com/nxadm/rakudo-pkg/releas...2018.06-01 15:23
new packages
AlexDaniel El_Che++ 15:24
Zoffix El_Che++
tyil Zoffix: I've posted replies, but they need to be approved by the site admin
on the most common topic, time estimation, I have no clue how long it would take to write an actual book. I'm going for 200 - 300 pages, and was hoping I could do that in 4 months, spending about 3 or 4 full-time days per week 15:25
Zoffix tyil: here's a really hacky solution: gist.github.com/zoffixznet/5eecfa5...c1eb4d9fc8
tyil: but even with it, compile time stuff would still be executed. This is kinda of a problem with Pod6 in that there's no way to extract the Pod without running annything. I think tbrowder_ was working on making that better. 15:26
compile time + INIT stuff too. Using BEGIN phaser instead of INIT to .keep the $=pod gives the wrong file's pod
tyil is there a grammar available in the core language that I could use to extract only the POD data I'm interested in, put that in a different file and then run that file? 15:27
japhb timotimo, moritz: In a personal proof of concept project I needed to serialize one of several classes across a channel, and my solution was something like: role Serializeable { method as-struct(--> Map:D) { ... }; method from-struct(Map:D $struct) { ... }; method as-json(--> Str:D) { to-json self.as-struct }; method from-json(Str:D $json --> $?CLASS:D) { self.from-struct(from-json $json) } } 15:28
Or something like that; I'm typing it from memory.
Zoffix tyil: that's precisely the problem is that the answer is "not really". Pod can contain arbitrary code in it, like in configuration values and stuff.
tyil that's sad :( 15:29
my main issue is seeing declarator blocks in p6doc, which feel very out of place coming before the actual POD document 15:30
and I couldn't see an easy way to "fix" that
Juerd AlexDaniel: Tickets created (github.com/perl6/doc/issues/2117 and github.com/rakudo/rakudo/issues/1949)
japhb timotimo, moritz: Anyways, I just added that role to each class I wanted to have auto-serialization of, and defined as-struct and from-struct methods for that class, producing/taking a json-friendly Map structure
tyil I could attempt to just open a file, scan all lines until I find a =begin pod, write the lines to another file until I find the =end pod, and *then* parse that other file 15:31
Zoffix tyil: and worse still, language can be mutated as it's being executed, so if you elimitate Perl 6 code runs, you can potentially be parsing as pod stuff that isn't meant to be pod, but is rather part of some slang 15:32
Zoffix (I tried making `sub circumfix:<=begin pod> { say @_ }; sub circumfix:<=end pod> { say @_ }` thinking it'd work, but it still parses it as Pod it seems) 15:32
tbrowder_ tylil: have you looked at drforr’s grammar modules? might be some help there
tyil tbrowder_: I have not 15:33
Zoffix eco: author:drforr
buggable Zoffix, Found 5 results: ANTLR4::Grammar, Perl6::Parser, Inline::Scheme::Guile, Readline, Format::Lisp. See modules.perl6.org/s/author%3Adrforr
tyil I can take a peek after dinner, on which I have to start about a couple minutes ago
tbrowder_ for the record, i am not working on anything to extract pod. 15:35
tyil also, if I'm not mistaken, jnthn is part of the team behind CommaIDE, right? 15:36
AlexDaniel ye
Juerd: thanks
tyil alright, I'll try to poke him later tonight 15:37
Geth p6-sake: 95ab244a6d | (Aleks-Daniel Jakimenko-Aleksejev)++ | META6.json
New version + other META6.json tweaks
15:39
AlexDaniel greppable6: array 15:44
?? 15:45
greppable6 AlexDaniel, 7157 lines, 355 modules: gist.github.com/5a096fac1d8030c2df...4ff15dea80
jmerelo That's not fair. 5 issues while I was flying... 15:52
AlexDaniel :P 15:53
jmerelo And on a Friday afternoon. Never deploy on a Friday afternoon, never create more than 1 issue on a Friday afternoon. Those are the rules, I didn't make them up. 15:54
El_Che whyt, there are less people at the office on friday
it's calm
noone will notice!
:) 15:55
lizmat it's Friday ?
El_Che ah, you survived :)
jmerelo double checks that if it's Iceland playing against Nigeria, it's Friday
lizmat: welcome back!
lizmat hi, not back yet 15:56
last day of course / hackathon at SLC
*in
jmerelo lizmat: have fun :-)
lizmat jmerelo: thanks
jmerelo releasable6: status 15:57
releasable6 jmerelo, Next release in ≈29 days and ≈3 hours. 0 blockers. 0 out of 24 commits logged
jmerelo, Details: gist.github.com/728c956cf28008358d...a22930274f
jmerelo AlexDaniel: so you did your release and now you're making everyone else work :-) 15:58
AlexDaniel jmerelo: yes. 15:59
jmerelo jmerelo: I'll try and do the official unofficial release Twitter thread :-)
AlexDaniel :) 16:00
AlexDaniel jmerelo: now that I work a bit on sake ( github.com/perl6/p6-sake ), I wonder if maybe we should at least consider using it for the doc repo 16:11
jmerelo: what do you think? is is a bad idea? 16:14
looking at the Makefile, most targets are really simple, so it shouldn't matter 16:15
I like dogfooding though 16:16
japhb AlexDaniel: Is sake just "Simplified mAKE"?
Or is it an incompatible language?
AlexDaniel japhb: it's pure perl 6 16:17
geekosaur I don't think that was the questioj
japhb Right, I'm asking whether it is a pure Makefile subset
Or a different (possibly related) language 16:18
AlexDaniel it's not a subset because a Sakefile is just a perl 6 program
japhb OH!
timotimo so kind of like scons
japhb That's the part that was unclear (though I suppose I could have gone and looked at the repo, sigh)
AlexDaniel here's an example of a more complex one: github.com/perl6/whateverable/blob...r/Sakefile
japhb Laziness bites me again. 16:19
TimToady: I thought Laziness was supposed to be a virtue ....
(Yes, I know that wasn't the meaning intended.)
jmerelo AlexDaniel: it's never a bad idea.
AlexDaniel: it's probably much better than the exiting Makefile. 16:20
AlexDaniel: Just create an issue, and let's see what can be done (probably everything) :-)
Zoffix AlexDaniel: is `sake` something that you invented? 16:20
AlexDaniel Zoffix: it was done by perlpilot++ a long time ago
Zoffix: it sort of mimics rake (ruby make), but at the current state it's not as advanced 16:21
Zoffix Ah, cool.
jmerelo clickbaits the thread introducing the new Perl 6 release twitter.com/jjmerelo/status/1010195489302695942
Zoffix deliberately don't spread it around to avoid confusion between compiler and star :) 16:22
timotimo huh, how was calling private or qualified methods made faster by nine? nothing against nine's contributions, of course 16:23
jmerelo Zoffix: I would have to do another thread to explain the difference between rakudo and perl6 proper. Rakudo is the public-facing part of #perl6, I think that's enough
tyil Zoffix: I made a small proof of concept to my issue p.tyil.nl/vxte
AlexDaniel greppable6: Sakefile 16:24
greppable6 AlexDaniel, 1 line, 1 module: gist.github.com/571e12f37bc1bbc04a...d75fc02675
jmerelo timotimo: do you mean it wasn't niner? Or that it wasn't made faster?
timotimo it wasn't niner
Zoffix jmerelo: no, I meant that tweet makes star using people think a new star release happened, but it's not the release month for it.
AlexDaniel Zoffix: though I'm the only heavy user of it :)
(probably)
jmerelo timotimo: sorry, I tried to look up the commits and the authors, but it's kind of exhausting. Answer in the tweet itself, or tell me and I'll issue a fix. 16:25
AlexDaniel jmerelo: ye it was jnthn
timotimo it's probably not so important? if people read the blog post about the spesh plugins, they'll notice themselves
japhb timotimo: Did you see my comment about JSON serialization from earlier this morning?
timotimo yeah
your implementation has to-json return a string that is the object as json, that's not quite what we were hoping for 16:26
AlexDaniel jmerelo: did I mess something up in the changelog?
jmerelo Zoffix: it's a release, it's not a star release. I haven't said anything about star. Or maybe I shouldn't call it a release? We query releasable to know what's happening, sooo
japhb OK, just wanted to make sure it wasn't lost (Warnock and all).
timotimo mhm
jmerelo AlexDaniel: no, it was absolutely perfect. Only in some cases there were several commits and I might have mixed them up...
AlexDaniel jmerelo: it's a release, but generally not something we recommend to end users
it's still usable and all, so no problem making big news about it :) 16:27
jmerelo AlexDaniel: I mean, it would have been even more perfect if there were links to the commits; maybe move it to markdown, even if that's not usual for ChangeLogs
japhb timotimo: That wasn't the intent. The intent was that I separated out the concept of as/from-struct (which classes that did the role needed to provide) and as/from-json (which the role provided, via JSON::Fast or JSON::Tiny)
AlexDaniel but maybe it should just note that users should look for the upcoming Rakudo Star 16:27
Zoffix jmerelo: I was referring to step 19 in the compiler release guide: github.com/rakudo/rakudo/blob/mast..._guide.pod 16:28
AlexDaniel jmerelo: it is markdown: github.com/rakudo/rakudo/blob/mast...2018.06.md
jmerelo: still no links, I know :(
timotimo japhb: right, i was hoping for objects in any hierarchy to be able to tell the json serializer how they want to be represented, so that they can be put into a containing object
jmerelo AlexDaniel: then definitely some links would help :-) 16:28
japhb timotimo: Uh, I think we're saying the same thing, just talking past each other. 16:29
timotimo maybe
i find to-struct a bit strange, though, as that evokes C Struct in my head
japhb Except that you were talking from the point of view of enhancing JSON::Fast, and I was talking from the point of view of wrapping it.
Zoffix AlexDaniel: I'm thinking of doing something like Sake for $work, except I kinda need namespaced stuff, I think. Like uploading new product pics to sites would be run as `zake web prod meows .`, updating pricing would be `zake web prices mews pricing.xls`, setting up brochure dir would be `zake design init Meows`, etc., etc. And the code form of that would be separate Foo.pm6 files, I guess
jmerelo Zoffix: other announcements are not forbidden, right? It's the extra-officcial official release...
Zoffix And it'd be one master program to Rule Them On 16:30
jmerelo ^cc^c
japhb OK, so maybe "as-map"? Or heck, even a Map method.
timotimo Capture would be the most natural, except that doesn't map to json
Zoffix jmerelo: no, not forbidden :)
japhb timotimo: Right, I was trying to go lowest-common-denominator. Something that could be serialized no matter what wire format I chose (JSON was just "free" thanks to you and moritz) 16:31
(The whole thing being part of a PoC, after all) 16:32
AlexDaniel Zoffix: I think in the long run it would be better if something like this was supported within Sake, or maybe if Zake was based on Sake :)
Zoffix: just so that there's no wasted effort
Zoffix I'll look over Sake, when I start writing it.
AlexDaniel cool
AlexDaniel Zoffix: I'd guess that something like `sake web/prod/meows` can work pretty much right now, maybe with a helper sub or two. A task “name” can be anything (a junction or a regex), so dispatching should be relatively easy. I think there's a problem with dependency trees being built a bit too early with too many assumptions, but we can fix that. 16:38
actually, now that I said it, I'm no longer sure if it can be a regex :) 16:39
but yeah, should be fixable
Zoffix $ git log --oneline --author zoffix 2018.05...2018.06
e4ecf5e [NQP Bump] Brings 4 commits 16:40
a79de42 Fix premature .perl chopping in X::TypeCheck
jmerelo: I think you're giving me too much credits in your release comments :P
Zoffix jmerelo: in fact, I'm surprised I'm higher than you in the release announcement… makes me think the release generator commit counter script is broken. I don't remember doing much of anything in master branches. 16:43
oh shit, it is broken 16:48
oh wait maybe not 16:49
jmerelo Zoffix: I didn't know I was in the release announcement... But you have done stuff almost in every file I've looked up.
Zoffix: come to think of it, I haven't seen the release announcement, just the Changelog
AlexDaniel Zoffix: it's not 16:50
Zoffix: what happened was that jmerelo was there twice
once as JJ and one more time with a proper name, or something like that
I removed the duplicate but other way around, without fixing the order
so it's my bad
Zoffix ah
AlexDaniel I'll do better next time :) 16:51
Zoffix I think listing the full name in credits file will make the script figure out that it's the same person: github.com/perl6/doc/blob/master/CREDITS#L141
jmerelo Zoffix:
Zoffix: Ok 16:52
Zoffix like here: github.com/perl6/doc/blob/master/C...#L206-L209
AlexDaniel there's also this ticket: github.com/rakudo/rakudo/issues/1443
Geth doc: 53e5c55bb3 | (JJ Merelo)++ | CREDITS
Adds name and variants
16:55
jmerelo Zoffix: shouldn a local .mailcap be enough? Mapping all emails in commits to a single file... 16:55
Zoffix ¯\_(ツ)_/¯ 16:56
jmerelo Zoffix, AlexDaniel : Anyway, it's added now...
AlexDaniel jmerelo: the reason it happens is actually: 16:57
Zoffix &
AlexDaniel 5afa31cf Fri Jun 22 09:00:32 2018 +0200 (10 hours ago) JJ Merelo: Adds exception for empty hash in writing style docs closes #2113 16:57
a3753c01 Thu Jun 21 21:46:39 2018 +0200 (21 hours ago) Juan Julián Merelo Guervós: Merge pull request #2112 from ronaldxs/reverse-suppress-capture
so you're committing with different names :)
and maybe you want to fix that
geekosaur or add an extra entry to mailcap since it should be using that
jmerelo AlexDaniel: right; I have a different git config in different places... I have put both names now in CREDITS.
Kaypie m: my grammar Foo { token TOP { <a> }; token a { 'a' <TOP>* } }; say Foo.parse('aaaaaa', :rule<a>) 17:15
camelia 「aaaaaa」
TOP => 「aaaaa」
a => 「aaaaa」
TOP => 「aaaa」
a => 「aaaa」
TOP => 「aaa」
a => 「aaa」
TOP => 「aa」
a => 「aa」
TOP => 「a」
a => 「a」
Kaypie there must be some use for :rule
geekosaur there is. that test won't show it because TOP already matches a 17:18
Kaypie what kind of cases would you use it?
geekosaur :rule tells the parser to use something other than TOP as the top level production. this could let you combine related languages, or languages with common sublanguages, etc. in the same Grammar 17:19
Geth doc: 877c78d345 | (Will "Coke" Coleda)++ | t/02-tests-valid.t
test files should be executable
17:20
doc: 7613ca2c7f | (Will "Coke" Coleda)++ | htmlify.p6
Remove unused routine
geekosaur so, for example, there's some files on my system that allow embedded lua in multiple forms. if I wanted to parse those from perl 6, I might have a Grammar for embedded lua, with two entry points: one for {{ }} blocks, one for :-prefixed lines 17:22
the blocks allow the full language, the : form only allows a subset
Kaypie i'm not sure i get how that'd be used 17:25
geekosaur while reading the map file, if I encounter {{ I invoke the Lua grammar with the normal top level, if I encounter a line starting with ":" I invoke the grammar with :rule(oneline) and have a token oneline { ... } 17:27
but both share things like the tokens and rules for expressions
Geth Pod-To-HTML/master: 18 commits pushed by (JJ Merelo)++
review: github.com/perl6/Pod-To-HTML/compa...8356e15cc2
17:46
Kaypie ohh
jmerelo Um 17:48
Not sure I didn't break anything there...
jmerelo Apparently not. Maybe some formatting... 17:50
Geth doc: 009af0b9e8 | (JJ Merelo)++ | META6.json
Bumps up version to fix #2037
17:56
[Coke] Thanks to liz, moved one of my modules into cpan, whee. 18:57
App::Uni, once it hits modules
lizmat whee! 19:00
buggable New CPAN upload: App-Uni-1.0.1.tar.gz by COKE cpan.metacpan.org/authors/id/C/CO/...0.1.tar.gz 19:05
[Coke] OHHAI there it is. whee. 19:14
perlpilot [Coke]: What did you have to do to make it so? 19:16
[Coke] I basically kept running 'mi6 release' and doing what it told me.' had to add a CHANGES file, a ~/.pause, and a dist.ini to tell it to not to generate the README file, since I already had one. 19:19
I also changed something from a 'unit package' to a 'unit class'
and some minor edits suggested by mi6
Kaypie lol finally figuring out how arguments are meant to be used with tokens in grammars cut this down by 100 lines pastebin.com/w0jdtRT9 20:21
skids Kaypie: just beware RT#130910 20:49
synopsebot_ RT#130910 [open]: rt.perl.org/Ticket/Display.html?id=130910 [REGEX] Backtracking into a parameterized subrule like `<meh(42)>` tries to call it without arguments.
skids Kaiepi: ^^ 20:50
Kaiepi ah 20:58
good to know
ingy (and tinita++) just updated github.com/acmeism/RosettaCodeData 21:00
El_Che tpc is uploading video 21:14
sawyer's is online
wating for liz and TimToady
are there other perl6 speakers on the upload queueu
?
I see a nativacall lihtning talk was uploaded 21:16
b2gills [Coke]: (from Promise vid) `done` ends the `react` block. To stop a single `whenever` I think you have to do something like: 21:36
m: react { my $p = do whenever Supply.interval(0.1) { .say; if $_ == 4 { $p.close }}; whenever Promise.in(1) { say 'one second'; done }}
camelia 0
1
2
3
4
one second
b2gills Note that the react block doesn't currently exit if all of the `whenever`s have been closed in this way 21:37
lizmat it doesn't? doesn't the "done" exit the react block ? 21:41
m: react { my $p = do whenever Supply.interval(0.1) { .say; if $_ == 4 { $p.close }}; whenever Promise.in(1) { say "one second"; done }}; say "outside" 21:42
camelia 0
1
2
3
4
one second
outside
b2gills lizmat: This is what I meant: Note that all whenevers are closed, but the react block never finishes 21:46
m: react { my $p = do whenever Supply.interval(0.1) { .say; if $_ == 4 { $p.close }}}; say "outside"
camelia (timeout)0
b2gills m: react { my $p = do whenever Supply.interval(0.1) { .say; if $_ == 4 { $p.close; done }}}; say "outside"
camelia 0
1
2
3
4
outside
lizmat ah, closing the tap you mean... ok 21:53
Kaiepi where are the talks? 22:02
b2gills www.youtube.com/channel/UC7y4qaRSb...8cCHOsKZDw 22:03
buggable New CPAN upload: App-Unicode-Mangle-1.0.0.tar.gz by COKE cpan.metacpan.org/authors/id/C/CO/...0.0.tar.gz 22:05
[Coke] m: my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"}) 22:14
camelia A worker in a parallel iteration (hyper or race) initiated here:
in block <unit> at <tmp> line 1

Died at:
Cannot find method 'Any' on object of type Match
in block at <tmp> line 1
[Coke] ^^ What's wrong with that?
(can someone bisectable that?)
Util: the mangler was uploaded ^^ 22:15
buggable New CPAN upload: Acme-_-0.0.1.tar.gz by ELIZABETH modules.perl6.org/dist/Acme::Don't:...:ELIZABETH 22:15
lizmat This is actually Acme::ಠ_ಠ 22:16
AlexDaniel -_- close enough :) 22:17
[Coke] bisectable6: old=2017.06 new=HEAD my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"})
bisectable6 [Coke], Bisecting by exit signal (old=2017.06 new=c441d8d). Old exit signal: 1 (SIGHUP) 22:18
AlexDaniel that doesn't look right… it was timed out on 2017.06 22:18
bisectable6 [Coke], bisect log: gist.github.com/21ec8ca312e73fae57...ba2a6f2d2e
[Coke], (2017-10-16) github.com/rakudo/rakudo/commit/23...06bf507c55
[Coke] It was slow, but I swear it used to work at some point. lizmat points out that the threaded regex is currently problematic. 22:19
AlexDaniel c: 2352efe51^,2352efe51 my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"})
committable6 AlexDaniel, ¦2352efe51^: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» ¦2352efe: «NYI␤ in block <unit> at /tmp/OEf3LwMmm4 line 1␤␤ «exit code = 1»»
AlexDaniel c: 2017.06,2017.10,2018.02,2018.05,HEAD my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"}) 22:20
committable6 AlexDaniel, gist.github.com/026bd7bae7567f958a...e17a52df61
AlexDaniel c: 2017.06,2017.07,2017.08,2017.09 my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"})
committable6 AlexDaniel, ¦2017.06,2017.07,2017.08,2017.09: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» 22:21
AlexDaniel ah right, it stopped sighup-ing in 2017.10 according to the bisect
c: 2017.10,2017.11,2017.12,2018.01 my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"})
committable6 AlexDaniel, gist.github.com/e36801d2be951dbea1...891016e83a 22:22
AlexDaniel alright I only know a noisy way of figuring it out
bisect: old=2352efe my $word=True;my $search='cat';my $regex=$word ?? "<< '$search' >>" !! $search; (0..0x10FFFF).race.map(*.chr).grep({$_.uninames ~~ m:i/<$regex>/}).map({say "$_ : U+{$_.ord} {$_.uninames}"}) 22:23
bisectable6 AlexDaniel, Bisecting by output (old=2352efe new=c441d8d) because on both starting points the exit code is 1
AlexDaniel [Coke]: I mean, at this point it looks like the old implementation was half-working 22:24
and after the rework it doesn't
bisectable6 AlexDaniel, bisect log: gist.github.com/833ca3f566e2fa29d0...94b6aca6c5
AlexDaniel, (2017-10-12) github.com/rakudo/rakudo/commit/37...b4ca11c9e0
[Coke] is there a rakudo ticket open for this issue? 22:26
AlexDaniel I know about R#1912 but I don't know if that's an issue here 22:28
synopsebot_ R#1912 [open]: github.com/rakudo/rakudo/issues/1912 [hyper/race] hyper and race should do `my $/`
[Coke] opening new issue. 22:30
AlexDaniel I think that's the golf: 22:33
m: my $foo = ‘a’; say (^9999).race.grep({‘a’ ~~ m:g/<$foo>/})
camelia (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86…
AlexDaniel m: my $foo = ‘a’; say (^9999).race.grep({‘a’ ~~ m:g/<$foo>/})
camelia (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 …
AlexDaniel ah come on
m: my $foo = ‘a’; say (^999999).race.grep({‘a’ ~~ m:g/<$foo>/})
camelia (64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 13…
AlexDaniel m: my $foo = ‘a’; say (^999999).race.grep({‘a’ ~~ m:g/<$foo>/})
camelia A worker in a parallel iteration (hyper or race) initiated here:
in block <unit> at <tmp> line 1

Died at:
Cannot find method 'Any' on object of type Match
in block at <tmp> line 1
AlexDaniel there
buggable New CPAN upload: App-Unicode-Mangle-1.0.1.tar.gz by COKE modules.perl6.org/dist/App::Unicode...:cpan:COKE 22:35
AlexDaniel [Coke]: can't find a ticket, but the issue is probably using EVAL from multiple workers 22:36
[Coke]: o, found something: rt.perl.org/Ticket/Display.html?id...xn-1365512 22:37
[Coke] AlexDaniel: opened github.com/rakudo/rakudo/issues/1950 22:43