»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:02 Manifest0 left, cpan-p6 left 00:03 cpan-p6 joined, cpan-p6 left, cpan-p6 joined 00:07 Manifest0 joined 00:13 mowcat left 00:31 kst left 00:43 Manifest0 left 00:47 Manifest0 joined 00:51 netrino left 01:01 Manifest0 left 01:06 Manifest0 joined, zacts joined 01:10 Manifest0 left 01:15 Manifest0 joined 01:25 Manifest0 left 01:31 Manifest0 joined 01:39 Manifest0 left 01:45 Manifest0 joined 01:46 MidCheck joined 01:49 zacts left 01:51 Manifest0 left 01:56 Manifest0 joined 02:01 Manifest0 left 02:06 Manifest0 joined 02:07 reach_satori_ joined 02:10 reach_satori left 02:25 Manifest0 left 02:30 Manifest0 joined 02:57 Manifest0 left 03:01 gregf_ left 03:04 Manifest0 joined 03:06 choes joined 03:10 choes left 03:17 zacts joined 03:22 cono left, kaare__ left 03:23 kaare__ joined 03:34 zacts left 03:36 Manifest0 left 03:41 Manifest0 joined 03:48 Manifest0 left 03:53 Manifest0 joined 03:55 sauvin joined 03:58 MidCheck left 04:08 Manifest0 left 04:13 Manifest0 joined 04:15 veesh left 04:16 veesh joined 04:23 khisanth_ left 04:29 molaf joined 04:36 khisanth_ joined 04:40 reach_satori_ left
Geth_ doc: 3d32f6ef08 | (Tobias Boege)++ | doc/Type/Range.pod6
Document WhateverCode end point in Range

A WhateverCode end point to the Range operator creates a new WhateverCode which returns Ranges.
This is covered by roast: github.com/perl6/roast/blob/master...ever.t#L34
04:45
doc: 57641d19e4 | (Tobias Boege)++ | 2 files
Fix infinite range subscript examples

Also elaborate on WhateverCode in Range slices.
Cf. rakudo/rakudo#2872 and perl6/roast#536
doc: 1f8e0da7ca | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 3 files
Merge pull request #2775 from taboege/subscript-range-whatever

Fix infinite range subscript examples
04:49 jmerelo joined 05:03 vrurg left 05:05 molaf left 05:09 antoniogamiz joined 05:12 cpan-p6 left 05:13 cpan-p6 joined, cpan-p6 left, cpan-p6 joined 05:16 molaf joined, antoniogamiz left
Geth_ doc: 671eb50c51 | (JJ Merelo)++ | doc/Type/Any.pod6
Reflow while revising #1803
05:19
doc: 91b9f52600 | (JJ Merelo)++ | doc/Type/Any.pod6
Improves the documentation of .serial

According to @lizmat comments in
  stackoverflow.com/questions/560579...-serial-do and
  @jnthn in the #1803 issue. I've finally opted for leaving it there, on
the premises that it might benefit no one if it disappears. I've added all the necessary caveats. This closes #1803
doc: 5a05e66398 | (JJ Merelo)++ | doc/Type/Any.pod6
Adapts definitions
05:27 molaf left 05:29 Manifest0 left 05:36 Manifest0 joined 05:39 adu joined 05:51 Manifest0 left 05:52 abraxxa joined 05:53 abraxxa left, abraxxa joined 05:55 kjk left 05:58 abraxxa left, abraxxa joined 05:59 Manifest0 joined 06:12 reach_satori_ joined, domidumont joined 06:37 Manifest0 left 06:43 Manifest0 joined 06:47 Manifest0 left 06:49 robertle joined, jmerelo left 06:53 ayerhart left 06:54 Manifest0 joined 06:58 kurahaupo left, Manifest0 left 06:59 kurahaupo joined
holyghost Apparently he does not want to take me on as a postdoc 07:05
07:05 Manifest0 joined
holyghost I sent the prof a mail that I'd like to sollicitate for a postdoc position at campus Jette VUB 07:05
He cannot do it himself however, I misread yesterday 07:06
so I'm not yet in
bummer 07:07
07:10 ayerhart joined, patrickb joined 07:13 ayerhart left 07:14 MidCheck joined, ayerhart joined
moritz bummy indeed. Which topic(s) do you want to research? 07:21
07:25 cosimo joined 07:37 rindolf joined
holyghost AI 07:51
08:16 aindilis left 08:18 aindilis joined, holyghost left 08:19 holyghost joined, zakharyas joined 08:37 Manifest0 left 08:42 Manifest0 joined 08:59 Manifest0 left 09:05 Manifest0 joined 09:10 espadrine joined 09:14 rindolf left 09:22 rindolf joined 09:23 clarkema joined, MidCheck left, _jrjsmrtn joined 09:24 Manifest0 left 09:25 __jrjsmrtn__ left 09:31 Manifest0 joined 09:35 mowcat joined 09:41 scimon joined 09:46 kini left
masak ahoj #perl6 09:48
I have a question about box plots. does anyone have a nice-to-look-at bit of Perl 6 code for how to compute the values for the median, the quartiles (the boxes), and one standard deviation above-and-below the mean (the whiskers, or one choice for them, at least) 09:51
and, as usual, how should I think about the standard deviation -- do I subtract one or not? I always forget :( 09:52
holyghost masak : I've written Mathx::Stat, which was followed up by others with Stats
There's no median and quartiles code but may proceed with it 09:53
s/may/you may
masak ok, good to know
09:54 aindilis left
masak I'm in a NIH mood, so I'll probably write something short myself which does it. but always good to look at prior art. 09:54
hm, why does a module called Stats not compute median and quartiles...? :)
clarkema Is anyone else having trouble updating zef? I'm not getting any kind of response from ecosystem-api.p6c.org/projects1.json
masak oh, "Bessel's correction" it's called. "curse you, Bessel!" :P 09:55
09:55 aindilis joined 09:56 domidumont left
masak statistics feels to me like a particularly deep black magic. sure, you can make it work, but it's very non-obvious why it works. 09:56
"remember to subtract 1 here!" -- "ok, why?" -- "<mumble> <mumble> degrees of freedom <mumble>"
"sorry, didn't quite catch that" -- *starts crying* "I don't know, OK?" 09:57
holyghost I'm just reading up on hidden markov models to use with Mathx::Stat
in Game::Markov
the statistics aren't that difficult, but I wouldn't know how you proved it thoroughly 09:58
Deep magic as you said :-) 09:59
masak oh wow, this explanation is *great*: en.wikipedia.org/wiki/Bessel%27s_c...ce_of_bias
timotimo masak: i usually use this piece of code: @times .= sort; my @timings = (@times[* div 50], @times[* div 4], @times[* div 2], @times[* * 3 div 4], @times[* - * div 100]);
masak timotimo: neat :)
yes, that looks like a rough version of what I want to do. kudos ;)
10:02 kini joined
masak ok, looks like I ought to subtract 1 10:02
...whenever I have a "sample mean", which I do with these data points 10:03
(by the way, I'm running my test suite over a series of commits to see if there's a progressive slowdown as a result of my refactor)
10:05 aindilis left
clarkema nm, I manually brutalized the zef config to make it play ball 10:05
10:07 kini left
holyghost .tell Xliff the server seems down 10:10
yoleaux holyghost: I'll pass your message to Xliff.
10:11 aindilis joined
holyghost ok, I understand the HMMs again 10:12
I'll code it into Game::Markov ASAP 10:13
It's easy compared to chaos theory 10:14
I'm going to eat something, then read up for the rest of the statistics packages, the stat chaos package 10:15
10:19 kini joined 10:20 espadrine_ joined 10:21 espadrine left
holyghost I need to read, "chaos : a statistical perspective" -- Chan, Tong first 10:23
Then I'll try to do some magic by making it useful for games :-)
or the other way round 10:24
food time ! 10:28
10:41 kini left 10:49 kurahaupo left 10:50 jhill left 10:51 jhill joined 10:53 kini joined 10:58 lumin left, kini left, jhill left 10:59 jhill joined, lumin joined 11:05 kini joined 11:06 netrino joined 11:12 Manifest0 left
masak how do people write something like `assert @values.elems > 0;` in Perl 6? 11:17
11:17 Manifest0 joined
masak anyone actually use the PRE {} block? 11:17
(which I guess is the idiomatic way to do it)
holyghost m: @values.Empty
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@values' is not declared. Did you mean '&values'?
at <tmp>:1
------> 3<BOL>7⏏5@values.Empty
holyghost m: @values == Empty 11:18
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@values' is not declared. Did you mean '&values'?
at <tmp>:1
------> 3<BOL>7⏏5@values == Empty
masak holyghost: I didn't mean the `@values.elems > 0` part. I'm pretty comfortable with that one, and I know there are alternatives :)
I meant the `assert` part (which is Python, not Perl 6)
holyghost no idea
masak m: sub mean(@values) { PRE { @values.elems > 0 }; ([+] @values) / @values.elems }; say mean(1, 2, 3) 11:19
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling mean(Int, Int, Int) will never work with declared signature (@values)
at <tmp>:1
------> 3}; ([+] @values) / @values.elems }; say 7⏏5mean(1, 2, 3)
masak oh, right :)
m: sub mean(@values) { PRE { @values.elems > 0 }; ([+] @values) / @values.elems }; say mean([1, 2, 3])
camelia 2
masak m: sub mean(@values) { PRE { @values.elems > 0 }; ([+] @values) / @values.elems }; say mean([])
camelia Precondition '{ @values.elems > 0 }' failed
in sub mean at <tmp> line 1
in block <unit> at <tmp> line 1
masak goodenuf for me
holyghost in scheme it's (null? list) 11:20
In perl6 AFAIK it's not fool-proof to check a list for emptyness 11:21
11:21 Guest55475 left
holyghost As it is in other languages 11:22
like your say mean([]) above
lizmat Empty would also have worked
masak holyghost: what in the world are you on about? "not fool-proof"? why not? :)
lizmat m: sub mean(@values) { PRE { @values.elems > 0 }; ([+] @values) / @values.elems }; say mean(Empty)
camelia Precondition '{ @values.elems > 0 }' failed
in sub mean at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat afk& 11:23
masak holyghost: I can't remember having trouble checking a list for emptiness in Perl 6, ever. (and it's not what I asked about.)
holyghost nm, I meant a language feature (not perl6) which checks automatically for Empty list 11:24
masak oh, I don't feel I need anything more implicit than `PRE { @values.elems > 0 }`... 11:25
holyghost It already does probably, I mix up laguages sometimes
masak but if you're into that kind of thing, this works: 11:26
m: sub foo([$v, *@values]) { say [$v, |@values] }; foo([1]); foo([1, 2]); foo([])
camelia [1]
Too few positionals passed to 'foo'; expected at least 1 argument but got only 0 in sub-signature
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1

[1 2]
holyghost masak : what I also meant is that it's a huge syntax for checking an empty list
masak no, not really a huge syntax
also, see the alternative I just posted
which uses signature matching 11:27
holyghost ok
I'm going to buy a beer now, I'm too tired to continue, if I may say so
masak :) 11:29
11:34 zakharyas left 11:35 Manifest0 left
masak fwiw, here's the code I ended up with: gist.github.com/masak/30d37a594964...6281535084 11:36
gonna spend some time generating that as an SVG box plot diagram later tonight
holyghost SVG is cool 11:37
fractals :-) 11:38
masak no fractals this time, though. only boxes and axes.
holyghost I have worked a few months on inkscape in 2004 11:39
it comes from sodipodi, which was made obsolete, in those times a nice gome program
*gnome 11:40
masak aye. I remember that.
11:40 Manifest0 joined
xinming m: my %x; %x.defined.say; 11:41
camelia True
masak some sodipodi attributes are still left in the modern Inkscape files, last time I looked.
xinming Anyone here would clarify this? why is an Empty hash defined?
masak xinming: there was a discussion about that one about a decade ago.
xinming: I was on the side of "it should be undefined". pmichaud argued the side that won, IIRC.
11:41 kurahaupo joined
xinming masak: Can we have conversation log for this? 11:42
If it's not the bug, I'd like to see the reason we choose this behavoir. :-)
masak I'm looking (googling RT), but no luck so far 11:44
Woodi hallo today :) 11:48
holyghost hey Woodi !
tobs m: my %x; %x.say
camelia {}
tobs I guess that's why this doesn't print "(Hash)"
holyghost ah I see, it comes from perl5 undef
11:49 Manifest0 left
timotimo masak: i'm looking forward for you to box some plots 11:52
masak I'm here to box some plots and chew gum, and I'm all out of gum. 11:53
Woodi I have some general, inter-language dizzines with assert()... it stops program. it is put when some invalid condition occurs, that realy never should happen. I gues it's like emmergency stoppin engines in launching rocket... so: a) they don't teach very much about how to use assert, usually just small paragraph in books; b) should assert() be used in writing server/daemon code ? it's like works-as-expected
masak tobs: not sure that's an explanation...?
Woodi self-asking DoS...
masak Woodi: there's no shame/harm in halting a program when a routine gets sent illegal inputs. 11:54
holyghost Woodi : assert is a last resort for a hacker, your program should be fool-proof
11:54 Manifest0 joined
Woodi masak: but why not put healing code instead ? especially in servers 11:55
masak holyghost: eh? again, what's this about "fool-proof"? someone might totally send in wrong inputs.
Woodi: of course no-one wants that to happen in production... which is why you'd have an *extensive* test suite which covers enough cases, including sad paths that trigger the `assert`
Woodi: why not "healing code"? because sometimes wrong is just wrong.
there's no recovery from trying to take the mean of []
Woodi maybe I just didn't see positive use-case :) 11:56
masak as a user of that program, I would much rather like to be made aware of the error, than for the program to "heal" and hide it
the positive use case is that your program doesn't have a bug
tobs masak: not in the way xinming asks for, but not showing me a Hash typeobject but an empty hash literal instead when I .say it is consistent with .defined being True
Woodi hide - no... heal is recovery
masak tobs: ah, got it. well yes, it's an empty-but-defined hash. 11:57
tobs: the million-dollar question is why, though :) and I still haven't found that old discussion
Woodi: how would you recover in the case of `mean([])`?
holyghost Woodi : AFAIK, exceptions give you more freedom instead of exiting your program
tobs I'd be interested in that too, so ++masak :P
Woodi masak: return error from the function ? 11:58
depends how "module" is constructed
masak ah! found it! :D
rt.perl.org/Public/Bug/Display.html?id=64928 11:59
enjoy, all of you who are interested ;)
(I haven't re-read it, and it's been years)
tadzik . o O ( masakbot submits rakudobug )
12:00 domidumont joined, kini left
Woodi masak: I asked about deamonised servers but I'm realy mean 'systemD' :) 12:01
masak tadzik: those were the days. on average one rakudobug a day o.O
Woodi, holyghost: I bring it up in Perl courses quite a bit -- robustness in programs comes from the fact that those programs have already _failed_ a lot, and those failures have been hammered out and fixed. 12:02
holyghost I understand 12:03
12:03 espadrine_ left
masak I see early Perl as committing the mistake of DWIM sometimes: "this doesn't make sense, so let's fix it" 12:03
holyghost I'm going to give you an example then, devision by zero should be errored but not asserted
masak Python has always been much more strict/uptight about things -- "you're sending me a str as a list index? it's a str full of digits -- do I look like I care?" 12:04
holyghost s/errored/catched in your program
masak holyghost: notice that in all the places in my script where there *could* be a division by zero, I already had a `PRE` block that excluded that case
holyghost ok 12:05
masak so in some sense, my script can't divide by 0 :)
holyghost lol
tadzik masak: heh, more strict where it feels like it :P There's always this one student that says "it printed each line in a file, but one character at a time" ;)
masak tadzik: oh, I know what they did :P
tadzik :D
masak tadzik: I didn't say "more strict everywhere" :) 12:06
Python is still hopelessly dynamic
tadzik every time I consider just not even telling them about readline() and readlines(), just "you can do a for loop over a file"
masak my (least) favorite is `del my_var` -- you did *WHAT* to a lexically declared variable!?
tadzik and delattr(). Ugh
masak right 12:07
guess what 007 doesn't do
tadzik "Special cases aren't special enough to break the rules."
right, Tim Peters, right
12:07 kini joined
masak haha 12:08
tobs as an aside, a friend of mine is named Tim Peters, too 12:09
imagine my eyes when I learned about Timsort and its inventor in a lecture
but it was a different Tim Peters
masak holyghost, Woodi: AFAIK the ideas behind PRE and POST come from Eiffel and its Design-by-Contract ideas. think of `sub mean` as a "component". the `PRE { @values.elems > 0 }` says "if you called me with an empty Array, there's a bug -- in _your_ (the caller's) code" 12:10
moritz Eiffel inherits these conditions. A subclass can only weaken PRE-conditions and only strengthen POST-conditions 12:11
masak we had such plans for Perl 6 too
but someone (me, unfortunately) shot them down as unimplementable in a long email to p6l
and TheDamian grudgingly agreed
it's too bad, they were nice ideas 12:12
holyghost now that I remember, Woodi there's a daemon class in the perl6 docs online, it uses CATCH
moritz yes, the concept doesn't play well with the ideas of lexical scoping and method signature freedom
masak right
you can't have the cake and eat it -- in the end, Perl 6 is a very late-bound language with not-much-strictness statically 12:13
timotimo moritz: can i get your assistance on a grammars thing? :) 12:15
12:16 kini left
timotimo or maybe you've got a minute or two, masak? 12:18
masak yeah. don't ask to ask -- what's ailing you? :)
timotimo OK, here's the short of it:
12:18 espadrine_ joined
timotimo i have a proto regex expression, and one one_expression - because the language isn't meant to be super nice to use, i say "no operator precedence parser for you!" 12:19
there's expression:<one> which is just <one_expression> and there's expression:<comparison> which is <one_expression> \s* <compop> \s* <one_expression> 12:20
and there's one_expression:<parenthesized> which is '(' \s* <expression> \s/ ')'
jnthn masak: Well, the lexical parts of Perl 6 are relatively static-friendly, it's the object dispatch that's the main source of late binding :)
timotimo the trouble is, with something like (foo) and (bar) it tries to parse expression:<one> -> one_expression:<parenthesized>, that fails when the EOF isn't where it hopes to find it, and then just fails immediately instead of trying expression:<comparison> 12:21
SmokeMachine m: sub mean(@values ($, |)) { ([+] @values) / @values.elems }; say mean([1, 2, 3])
camelia 2
moritz timotimo: "and" is a <compop>, right? 12:22
timotimo when i put a <!before '('> in expression:<one> it will parse correctly, but of course then "superstitious parenthesis" are an actual syntax error
that's right
i only use "regex" and "proto regex" everywhere, so no "rule" and non-declarative <ws> anywhere
i assume you'd want to have the code so you can have a closer look?
moritz timotimo: can you paste a grammar (or a piece thereof) anywhere?
timotimo i'll paste the whole program
well, only the parsing part, i can throw some unneeded stuff out 12:23
OK, tio.run doesn't have Grammar::Tracer
that's fine
moritz a gist works as well 12:24
12:24 kini joined
timotimo wow that's a long url 12:24
we need a perl6.org url shortener :-) :-)
masak jnthn: yes, no argument there. which (I guess) is why we ended up having PRE/POST for the blocks and routines, but not for class hierarchies... 12:25
rba timotimo: ok will add it the infra requirement list
timotimo ha! i'll paste the tio.run link into a gist. i'm a genious
moritz facepalms 12:26
timotimo gist.github.com/timo/b66d080aca39b...f36e373969 - the tio.run link is at the bottom, the code at the top. good compromise?
moritz timotimo: and what's the problem now? the grammar matches the example that's in your example code 12:29
the look-ahead in expression:<one> ? 12:30
12:30 kini left
moritz I don't understand why it refuses to match without the look-ahead, but I do know that it's not optimal to structure your proto regexes the way you do 12:34
regex expression { <one_expression> [ \s* <compop> \s* <rhs=.one_expression> ]? } 12:35
would make more sense to me
12:36 mowcat left, abraxxa left
masak moritz: now I'm interested. not optimal to structure proto regexes how, exactly? 12:37
moritz I guess the problem is that expression -> one_expression:<parenthesized> -> expression is a recursion, and thus terminates LTM
lizmat weekly: medium.com/@jcoterhals/perl-6-smal...33dcd2b45b
notable6 lizmat, Noted!
masak yes, recursion terminating LTM is indeed tricky
it makes sense though if you think of LTM's "calls" as actually being copying. any recursion, direct or indirect, would lead to an infinitely big rule. 12:38
moritz masak: proto (or in general, disjunction) paths with a large common prefix tend to be problematic IME
masak interesting. 12:39
moritz basically, you rely *very* hard on LTM, and LTM is sometimes tricky
masak I'm not disagreeing, I'm just not sure how to weigh that opinion :)
12:39 lucasb joined
moritz it is basically token a:<b> { <big> }; token a:<c> { <big> more stuff here } 12:39
masak I think I agree on principle that a declarative prefix should be as short as possible
12:40 kini joined
moritz it's simply the opinion/exerience of somebody who still struggles with grammars, after having spent significant time with them 12:40
masak for example `while` should be something like `while>> {} <xblock>`, with the `{}` terminating the declarative prefix
timotimo oh, recursion terminates LTM, i see
masak timotimo: I independently re-discovered this fact here: github.com/masak/007/issues/485#is...-475999894 12:41
moritz which you can totally see as a disqualifying statement, since I haven't reached grammar enlightenment yet
masak (since I'm in the process of re-inventing parsing)
moritz: you only wrote the book about it :P
timotimo also, sorry i was just required to pay attention to a cat-related cuddlemergency
oh, what is 001? the first prototype of 007? :) 12:42
moritz masak: I hoped that would push me over the enlightment edge. Didn't quite work out :D 12:43
masak timotimo: 001 is the smallest possible language I can think of to experiment with language extension
timotimo books were already being written before the enlightenment, and it still took a long time :)
ah, ok!
masak moritz: sorry-not-sorry ;)
moritz timotimo: lol
timotimo anyway, this language is now far enough that i can most probably start generating actual bytecode 12:44
masak I'm currently in a mood where I'm thinking about the LTM parser and the procedural parser a lot. they're... intertwined.
moritz that they certainly are
masak basically, the procedural parser handles everything "stateful", including "where are we in the rule call stack?"
interestingly the LTM parser doesn't/can't care about those things, but it's "complicit" in feeding the right info to the procedural parser 12:45
basically, the LTM parser acts as the dispatch mechanism (and, um, return mechanism) for the procedural parser
it's a weird funhouse mirror variant of MMD
moritz a branch predictor 12:46
masak heh, yes :)
lucs .
masak lucs: it's lucky we're not doing point-free programming
timotimo hm. how come "use MAST::Ops:from<NQP>" doesn't find my installprefix/share/nqp/lib/MAST/Ops.nqp? it's apparently only looking for a MAST/Ops.moarvm 12:50
lucs masak: :) 12:51
timotimo oooh, it's MASTOps that i have to "use"
12:57 Manifest0 left 13:02 Manifest0 joined
kawaii is there any way I can quickly (and recursively) check the encoding of files to make sure they're all UTF-8 without BOM in p6? :) 13:03
lizmat releasable6: status 13:04
releasable6 lizmat, Next release will happen when it's ready. 1 blocker. 132 out of 310 commits logged (⚠ 2 warnings)
lizmat, Details: gist.github.com/c45aa6cbcb26ab2d57...3a90855043
13:04 zakharyas joined
timotimo kawaii: are the files sometimes huge? 13:06
kawaii timotimo: no they're all less than 1MB each but nested in various directories
timotimo if not, you can always slurp the file to test if the utf8 is valid (otherwise it will throw an exception) and if it is valid, .IO.open.read(2) should give you 0xFE, 0xFF or 0xFF, 0xEF if there's a BOM 13:07
if i'm not mistaken
kawaii oooo I didn't know that about slurp
thanks!
timotimo there's probably a good example for recursive and multithreaded filesystem ops somewhere :) 13:08
but if single-threaded is okay, you can literally just recurse using dir, or use a queue of IO objects to not have a stack that grows potentially very big
timotimo downloads an album with 1.9 gigs worth of bad music for maximizing work productivity 13:11
clarkema The sooner you finish the work the sooner you can stop listening to the bad music? 13:12
kawaii usercontent.irccloud-cdn.com/file/...141317.jpg 13:13
usercontent.irccloud-cdn.com/file/...141321.jpg
I found this coin at home last night
any idea where this came from?
oh, maybe london perl workshop 13:14
13:15 natrys joined
lizmat kawaii: it's not a coin, it's a tyuit 13:15
*tuit
timotimo yes! a round tuit!
kawaii en.wiktionary.org/wiki/round_tuit 13:16
:D
masak those are in quite short supply, and hence valuable 13:17
I often find myself wishing I had more of them
hm, can anyone with better google-fu than me find the archived conversation (on, I'm pretty sure, perl6-language) about DbC/PRE and POST/methods with Damian Conway? 13:18
oh, nvm. found it. 13:19
timotimo thingsfittingperfectlyintothings.t...t-found-by
timotimo did important PR work there 13:20
masak DbC discussion: www.nntp.perl.org/group/perl.perl6...34803.html
timotimo clarkema: actually i like this bad music :) 13:21
13:23 domidumont1 joined 13:24 vrurg joined 13:25 domidumont left, domidumont joined
timotimo masak: i've got a bag full of round tuits, but somehow they don't seem to have an effect on my productivity :( 13:27
clearly i'm doing *something* wrong 13:28
13:28 domidumont1 left
masak maybe they've become de-magnetized. I had that happen to my tuits more than once. 13:28
timotimo oh no! 13:29
that could totally be it
masak man, Damian is one of the nicest prominent people in the Perl community. I just re-read that thread, and it turned out he replied to me privately to say that he'd read my email, but didn't find anything useful to add to it. <3
it's little things like that. 13:30
I do remember being a little bit apprehensive writing those emails, though
timotimo =?ISO-8859-1?Q?Carl_M=E4sak?= is one of my favourite people 13:33
13:35 adu left
timotimo masak: "a macro that activates inside a "actions Bloop { [...] }" block that gives any method that doesn't have an explicit one the implicit signature ($/)" is a use case for macros that i just realized i had 13:36
13:42 ravenousmoose left 13:44 Manifest0 left
masak that should be possible, yes. 13:44
over the years, I've become less and less keen on actions classes
timotimo not sure if you have a master document for use cases from the wild or something :)
oh, is that so?
masak the last couple grammars I wrote, I just inlined the behavior instead 13:45
yeah, actions classes are weird
timotimo i don't want to do that because LTM and declarative prefixes :)
masak shouldn't matter if you put them at the end
how many times have you ever used the flexibility afforded by them, and substituted another actions class for the same grammar?
timotimo but yeah, i think often the grammar and its action class are a bit too tightly intertwined to be sensibly elided or replaced
masak I'm much more likely to _forget_ to tie in the actions class, which happens at .parse call time, for some reason 13:46
timotimo <foo> <bar> <baz> will have a different LTM prefix if <bar> has a { make blah } at its end
masak I think they're being way overused for the little benefit they provide
timotimo: hm
13:48 Manifest0 joined
jnthn "Navigate to action"/"Navigate to grammar rule" is on my Comma wishlist, to ease moving between them (and maybe even stubbing the action if it's missing) :) 13:51
timotimo jnthn: doesn't intellij also have a "show the code of something else in-line in the same editor" feature? 13:52
googling intensifies 13:53
www.jetbrains.com/help/img/idea/20...Lookup.png - not exactly this 13:54
i must hvae been hallucinating it 13:56
code.visualstudio.com/docs/editor/...lved#_peek - this looks a bit more like what i mean 13:58
14:00 yuriii left 14:03 domidumont1 joined 14:07 domidumont left 14:11 Manifest0 left 14:13 pmurias joined 14:14 Actualeyes joined
pmurias masak: what will the 000 language be then? 14:17
14:17 Manifest0 joined
moritz the Perl 6 kernel language! 14:21
14:21 Manifest0 left 14:22 domidumont joined
timotimo KIR, the kernel intermediate representation. and also KIRre, the kernel internal representation regular expression engine 14:25
14:26 domidumont1 left, Manifest0 joined 14:31 Manifest0 left
nine masak: action classes let you have this: github.com/niner/Grammar-Highlighter 14:36
14:37 espadrine_ left
timotimo nine: would be great if action classes could be composed, though 14:37
14:37 Manifest0 joined
timotimo some grammars rely on the actions to set up some stuff so that further parsing can continue, like "add this variable to a list of declared variables" plus "check if this variable that's just been used was defined" 14:37
though perhaps that should be put directly into the grammar if it's so tightly coupled 14:38
nine sounds like yes
Grammar and action may also share an object where such information is gathered 14:39
timotimo like $*W :)
nine Kinda *g* Obviously someone had this problem before ;) 14:40
Wouldn't have to be a dynamic variable though was my point
timotimo true
15:02 domidumont1 joined, pmurias left 15:04 espadrine_ joined, domidumont left 15:09 domidumont1 left
holyghost I just watched "The darkest minds", good movie 15:16
I'll work tomorrow o some more code
s/o/on
I'm going to sleep in a few hours 15:18
As I didn't get the postdoc position, I can do more for perl6 15:19
15:19 dolmen joined, dolmen is now known as dolmen_
dolmen_ P6 newbie here. Trying to install Cro with zen from a fresh "brew install rakudo-star". But ecosystem-api.p6c.org/projects1.json seems to be unavailable... 15:22
s/zen/zef/
timotimo yes, we've had some trouble with our servers; you can wait for it to time out, but that will take some time 15:23
i believe you can "git clone" zef and "perl6 -I . bin/zef install ." to get an up-to-date zef that handles the situation a lot better
15:24 Manifest0 left, patrickb left
dolmen_ Even curl times out. Will an updated zef switch to another server? 15:27
timotimo yes 15:28
raw.githubusercontent.com/ugexe/Pe.../p6c1.json and raw.githubusercontent.com/ugexe/Pe...cpan1.json
15:29 Manifest0 joined 15:30 mowcat joined 15:37 Manifest0 left 15:38 zakharyas left 15:42 robertle left 15:43 Manifest0 joined 15:48 andrzejku joined
dolmen_ Looking for help with Cro::HTTP::Client... 15:55
How can I initialize a Cro::HTTP::Client::CookieJar with known values? modules.perl6.org/dist/Cro::HTTP:c...kieJar.pm6 15:56
timotimo doesn't look like you can, without going via Cro::Response (which you probably can construct manually) 16:00
Cro::HTTP::Response i mean
btw #cro exists on this server, too
jnthn Yeah, you'd need to do it by constructing a Cro::HTTP::Response for now, though there's no reason we can't provide a method that lets one do it by passing in a `Cro::HTTP::Cookie` object 16:07
Feel free to add an issue to request that
16:07 dolmen_ left 16:08 Manifest0 left
clarkema speaking of Cro, does it support digest auth? I couldn't find a dial to tweak to persuade it to make client requests using anything other than basic 16:10
16:14 Manifest0 joined 16:15 scimon left
jnthn clarkema: Not yet, no 16:15
ugexe "Note that all hyper operators are candidates for autothreading and will cause tears if the methods have side effects" 16:19
this description of hyperoperators is incorrect, yes?
16:20 Manifest0 left
ugexe unless i misunderstand it, it seems to imply "autothreading" means it might be run on multiple thrads 16:21
16:25 Manifest0 joined 16:26 netrino left
xinming m: my Code &t; &t = -> () { }; &t.perl.say; 16:26
camelia Type check failed in assignment to &t; expected Callable[Code] but got Block (-> $ () { #`(Block|77...)
in block <unit> at <tmp> line 1
xinming m: my &t; &t = -> () { }; &t.perl.say;
camelia -> $ () { #`(Block|66520744) ... }
jnthn xinming: You're there declaring that &t returns something of type Code 16:27
xinming m: my Code &t; &t = sub () { }; &t.perl.say;
camelia Type check failed in assignment to &t; expected Callable[Code] but got Sub (sub { #`(Sub|63557472...)
in block <unit> at <tmp> line 1
xinming jnthn: Thanks, I didn't even ask the question yet. ;-)
jnthn Same as `my Int @t` would mean that the elements are Int :)
xinming jnthn: What I was going to ask is, what does 'my Code &t' exactly do, And you answered that already. 16:28
jnthn ugexe: I think the description is correct; we don't yet do it, but @foo>>.bar would certainly parallelize
um, *could certainly
clarkema I'm back package building again. I'm trying to build rakudo from the current Star tarball, with moar and nqp both built and installed @2019.03 16:29
timotimo is that in the docs? perhaps it should point out that "rakudo doesn't do it yet, but if you want it now, use .hyper.map(...)
.o( Starball )
clarkema Which I try to build rakudo itself I get:
Stage parse : Cannot find method 'instructions' on object of type MAST::InstructionList at src/vm/moar/Perl6/Ops.nqp:512 (blib/Perl6/Ops.moarvm:push_ilist)
timotimo that sounds like a version mismatch
ugexe jnthn: does autothread mean parallelize? i thought it was related to junctions (which short-circuit)
xinming jnthn: Another questions is, can await $promises, and with $promises, we also do await? 16:30
timotimo an older rakudo trying to use the newer nqp that doesn't have MAST any more, or a newer rakudo using an older nqp that doesn't have the new MAST-replacement yet?
please verify that it's actually using the versions of nqp and moarvm that you're expecting it to
perhaps the --prefix=foo is either not the same for all, or has some leftovers from an earlier attempt?
xinming I think I meet a bug, which is nested await calls, and I may get error, I forgot the error. After I changed to use >>. It works fine. 16:31
clarkema I originally suspected something like that, but on my main machine I'm running a pure Star build, which has the same versions of nqp and moar
I'll double check I don't have any left-overs though
xinming So, I'd think it's a bug, But I don't have time to get where there problem is actually. But I believe it's Promise related.
because the error is some kind of, "already awaited" something
timotimo "already awaited" should be just fine. perhaps you get "this seq has already been consumed" or something? 16:32
xinming I'll later change to old code and get the error.
ugexe docs.perl6.org/language/glossary#Autothreading defines it as "This process of separating junction arguments into multiple calls to a function is called autothreading." 16:33
maybe that should be changed? 16:34
16:34 jmerelo joined
timotimo yeah, the word is overloaded in the docs unfortunately 16:35
it's more an "multiinvoking" %)
invokespreading
multi-eval?
clarkema I can't find any trace of bad versions -- this is a new VM and if i remove the nqp and moarvm RPMs it's clean 16:38
jnthn ugexe: Ah, yeah, auto-threading is probably not a good word to ue their indeed, I'd just say "candiates for parallelism"
jmerelo Can someone please raise a RFE issue?
jnthn xinming: What is $promises? In principle if you have a Promise that resolves to another Promise then you could await the nested one though; there's no automatic Promise "flattening" or anything 16:39
timotimo clarkema: that's certainly odd already; can you give the output of --version? just to be extra sure? 16:41
clarkema timotimo: actually, I think I might have a confused version of the star tarball 16:43
just a sec, let me try a refresh
timotimo where did you get it from if i may ask?
16:44 robertle joined
clarkema I've lost track now -- i tried all sorts of things last night 16:44
the version on the main website is ok though, I've just checked
bah 16:46
All that time assuming I'd built nqp and moar incorrectly, and it was actually rakduo 2018.10
Thanks timotimo
The package still isn't building correctly, but at least it's failing later, which feels like progress 16:47
Geth_ doc: f5c079db2b | (Nick Logan)++ (committed using GitHub Web editor) | doc/Language/operators.pod6
Clarify parallelism of hyper operators
timotimo phew 16:48
jmerelo Um
I would really have preferred an issue.
timotimo you wanted a discussion? 16:49
jmerelo First, because it might not be the only reference.
Second, using parallelism is, well, arguable. Concurrency would be another option. Concurrency does not assume that things are happening at the same time.
Concurrency says "this has a high level interface that, when available, will use different threads". Parallelism... Well, I don't know. 16:50
At any rate, we would still need the issue if only to unify the terminology across all the documentation, (maybe) add a test and (maybe) add something to the glossary. 16:51
ugexe it is the only incorrect reference. i checked.
16:57 Manifest0 left
jmerelo timotimo: Reading through the logs now. We don't like things like "we don't do this now", because that's hell to maintain. You simply have to check every time if we're doing it or not. 16:57
timotimo ah 16:58
jmerelo Reading through the log before I arrived, if you're not happy with an issue, a link to this discussion in the commit message would have also been a good thing.
timotimo you can still put a comment on the commit 16:59
jmerelo You can't imagine how difficult is to maintain the documentation if you don't have the context of why a change has ocurred. It's difficult enough as it is, having to dig through Rakudo and roast commit logs and issues, not to mention source.
I'll create an issue and link to the commit. 17:00
not ideal, because the right thing would have been the commit linking the issue, but what's done is done.
17:02 Manifest0 joined
xinming jnthn: I do waited the nested promises. I'll change my code to use promise to repeat it. so I can get the error. 17:04
17:07 molaf joined 17:13 [particle]1 joined 17:17 [particle] left, ufobat joined, MidCheck joined 17:28 reach_satori_ left 17:29 Manifest0 left 17:32 domidumont joined, patrickb joined 17:34 Manifest0 joined 17:37 raschipi joined 17:38 domidumont left, domidumont joined 17:39 Manifest0 left 17:43 Manifest0 joined 17:49 dolmen joined
xinming m: my @x = sub ($arg) { }, sub (($arg)) {}, -> ($arg) { }, -> $arg { }; @x.map: *.perl.say; 17:49
camelia sub ($arg) { #`(Sub|77151064) ... }
sub ($ (Any $arg)) { #`(Sub|78724208) ... }
-> $ ($arg) { #`(Block|78858056) ... }
-> $arg { #`(Block|78858128) ... }
xinming anyone here knows, what is the different between sub (($arg)) { } vs -> ($arg) { }? 17:50
sub ($ (Any $arg)) { #`(Sub|78724208) vs -> $ ($arg) { #`(Block|78858056)
I know code is different from block, But I found, that with -> ($arg) { } the signature is $ ($arg) But with sub (($arg)) { } It beceoms the Any $arg. 17:51
Is it because sub signatures are more "detailed"?
timotimo the default type for sub arguments is Any, the default for pointy blocks is Mu, but i don't think that's why 17:52
m: sub blorp(($arg)) { say $arg.perl }; blorp([Mu]) 17:53
camelia Type check failed in binding to parameter '$arg'; expected Any but got Mu (Mu)
in sub blorp at <tmp> line 1
in block <unit> at <tmp> line 1
17:53 dolmen is now known as dolmen_
timotimo so the default in subsignatures is Any, too 17:53
m: my &blorp = -> ($arg) { say $arg.perl }; blorp([Mu])
camelia Mu
17:53 cpan-p6 left
timotimo interesting, here it's Mu, too 17:53
dolmen_ jnthn, For my CookieJar request it looks like a PR already exists: github.com/croservices/cro-http/pull/39
timotimo so that could be the resaon why it looks different 17:54
17:54 dolmen_ left, cpan-p6 joined, cpan-p6 left, cpan-p6 joined 17:57 johnjohn101 joined 18:04 domidumont1 joined 18:06 domidumont left
mst query tyldis 18:09
bah
18:24 skids joined 18:25 Manifest0 left
patrickb tadzik: Can you have a look at github.com/tadzik/rakudobrew/pull/136 ? 18:27
18:28 sauvin left 18:30 Manifest0 joined
Geth_ doc: 2b770d5173 | Coke++ | xt/words.pws
learn new words
18:32
doc: c9b99f30de | Coke++ | doc/Type/Range.pod6
Avoid .WHAT where possible, use name instead

  ... But, because WhateverCode's ^name is funky, show .WHAT after
showing the funky name result.
18:37 jmerelo left 18:42 pecastro joined, mowcat left 18:43 ufobat left 18:49 sena_kun joined
masak nine: cool! 18:53
18:54 mowcat joined
masak nine: I'm happy to gripe about things and be proven that actions classes do have a use ;) 18:54
18:56 chee left 18:58 kst joined 19:06 domidumont1 left 19:08 Manifest0 left 19:09 chee joined 19:13 Manifest0 joined 19:15 johnjohn101 left 19:23 MidCheck left
timotimo oh hey tyil i just noticed synopsebot hasn't turned up yet; anything i can help you with? 19:24
tyil I havent had the time to look at it, sorry :( 19:26
I'll be on the train to Eindhoven tomorrow, which is like an hour
I should be able to get something going then
timotimo cool. don't worry about it until then :) 19:27
19:31 natrys left 19:43 raschipi left 19:58 johnjohn101 joined, reach_satori joined 20:03 Manifest0 left
Geth_ doc: 786ca5a0f9 | (Elizabeth Mattijsen)++ | doc/Type/CompUnit/Repository/FileSystem.pod6
Improve CUR::FileSystem example

Fixes #2766
20:07
20:09 Manifest0 joined 20:11 kybr left 20:15 Manifest0 left 20:21 |oLa| joined 20:23 Manifest0 joined
Xliff nine: Nice! Does Grammar::Highlighter handle the fail case? 20:33
yoleaux 10:10Z <holyghost> Xliff: the server seems down
Xliff .tell holyghost It seems to be up, now.
yoleaux Xliff: I'll pass your message to holyghost.
20:34 pmurias joined 20:48 |oLa| left
nine Xliff: err....maybe? :D 20:51
20:52 johnjohn101 left
Xliff nine: :) 21:00
nine: Have you tried it with a failing grammar? 21:01
21:12 radaikon joined 21:14 skids left, dolmen joined 21:17 radaikon left 21:24 Manifest0 left 21:29 Manifest0 joined 21:33 DrForr joined 21:38 andrzejku left 21:39 Manifest0 left 21:47 Manifest0 joined 22:03 Manifest0 left 22:08 Manifest0 joined 22:09 rindolf left 22:17 Manifest0 left 22:22 Manifest0 joined 22:24 ayerhart left 22:25 ayerhart joined 22:31 Manifest0 left 22:36 Manifest0 joined 22:41 patrickb left 22:42 Manifest0 left 22:47 Manifest0 joined, dolmen left 22:48 dolmen joined, dolmen left 22:55 mowcat left 22:57 pecastro left 23:18 pmurias left 23:25 sena_kun left 23:31 Manifest0 left 23:36 Manifest0 joined 23:39 clarkema left 23:52 Manifest0 left 23:57 Manifest0 joined