Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-02-11

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 jdv79 why is the usage using an abs path?  that's what which is for.
00:01 ugexe jdv79: its because a wrapper launches it
00:01 leont Seems it was 2013
00:02 leont By that time, it was kind of obvious for any insider that parrot was a dead-end, and the TPF is a better umbrella really, but I can imagine how the outside world wouldn't have known
00:02 apiw joined #perl6
00:02 sortiz While reading rakudo lib/Test.pm6 found two vars: $time_after and $time_before, both 'num', its use is clear. But in some places the assignments to $time_after' differ between '$time_after = nqp::time_n;' vs '$time_after = nqp::p6box_n(nqp::time_n);', and I don't understand the difference.
00:03 firstdayonthejob joined #perl6
00:05 timotimo sortiz: the p6box_n seems wrong; p6box_n is a bit like "Num.new(...)", but because of reasons, it's not spelled like that
00:05 sortiz Seems to me that the nqp::p6box_n is a leftover
00:06 timotimo so p6box_n and then assigning to a num variable is a needless back-and-forth
00:06 sortiz timotimo, Yes, I suppose that.
00:09 sortiz timotimo, Should I make a PR to fix that?
00:11 vendethiel joined #perl6
00:11 timotimo either that or you let me directly edit it and mention your nickname in the commit
00:11 Herby_ joined #perl6
00:13 Herby_ \o
00:13 sortiz timotimo, please, be my guest. I have some PRs waiting ;)
00:13 Hotkeys I really should start contributing to things more
00:13 Hotkeys my github is barren
00:13 timotimo sortiz: huh, does that mean i shall wait for your PR, or do it myself?
00:13 sortiz timotimo, do it yourself.
00:14 timotimo OK
00:14 timotimo i'm running tests with that change
00:16 Hotkeys linux users what distro do you use
00:16 Hotkeys I kind of want to get back into linuxy stuff
00:16 sortiz BTW, any comments on https://github.com/rakudo/rakudo/pull/693 will be much appreciated.
00:16 Hotkeys on my laptop at least
00:16 timotimo i'm on fedora
00:17 sortiz Hotkeys, I'm on Fedora 23.
00:17 Hotkeys Any reason why fedora?
00:17 timotimo a friend told me fedora's cool. and it kind of is.
00:17 Hotkeys lol
00:18 timotimo i was on gentoo a long, long, long time ago. after that it was debian sid, then fedora
00:18 sortiz Its so easy to install, and allows me to bring to production RHEL for my clients in a snap.
00:18 Hotkeys I tried gentoo once
00:18 Hotkeys it was quite exhausting
00:19 sortiz Hotkeys, Indeed, gentoo is exhausting, unless you need to compile everything.
00:20 timotimo i managed all right. it was a learning experience
00:20 Hotkeys Also the last time I ran linux I used arch + i3
00:20 Hotkeys that was interesting
00:20 timotimo yeah, i3 is great
00:20 timotimo i've met the developer personally. he's super cool.
00:21 * alpha123 quiety touts the virtues of bspwm
00:21 Hotkeys also at the same time I switched to arch and i3
00:21 Hotkeys I also tried to get into vim
00:21 Hotkeys and there was just so much to learn
00:21 Hotkeys :p
00:22 Hotkeys actually vim isn't that hard for basic editing
00:22 Hotkeys but still
00:22 sortiz Hotkeys, I use vim all day.
00:22 timotimo vim is enjoyable
00:22 sufrostico joined #perl6
00:23 Hotkeys but what I mean is
00:23 Hotkeys one day I was using windoze and like atom
00:23 Hotkeys and the next I was on arch with a tiling wm and vim
00:23 Hotkeys with my only linux experience being not much more than flirting with it
00:24 sortiz And with Fedora I stay close to the Enterprise™ world.
00:25 timotimo atom is fine, too
00:26 alpha123 lol atom
00:26 Hotkeys so do you use bspwm with fedora then sortiz?
00:26 sortiz I been playing with it, nice. But I'm too accustomed to vim
00:29 sortiz Hotkeys, no. I use the standard gnome desktop with 2 monitors, one of them really big!
00:29 Hotkeys oh wait
00:29 Hotkeys that was alpha123
00:29 Hotkeys that touted bswpm
00:29 Hotkeys bspwm
00:31 Hotkeys this is a fun bspwm gif lol https://raw.githubusercontent.com/windelicato/dotfiles/master/why_bspwm.gif
00:31 dalek rakudo/nom: d714e50 | timotimo++ | lib/Test.pm6:
00:31 dalek rakudo/nom: throw out superfluous p6box_n, sortiz++
00:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d714e50bba
00:32 nekrodesk joined #perl6
00:34 timotimo Hotkeys: i love how they implemented a shell script "move" that understands "move me into that new space over there <--" syntax! :P
00:34 * timotimo bedtime
00:35 sortiz timotimo, thanks. o/
00:35 Hotkeys timotimo: did they actually?
00:35 Hotkeys I thought he doesn't actually execute that line
00:35 Hotkeys s/he/they
00:37 jdv79 why do we need the path of the executable in the usage?
00:39 kurahaupo joined #perl6
00:45 perlawhirl joined #perl6
00:47 idiosyncrat_ joined #perl6
00:49 tardisx joined #perl6
00:50 jolts joined #perl6
00:55 timotimo Hotkeys: they didn't execute that line, hence the "! :P"
00:55 Hotkeys just checking :p
00:55 Hotkeys that would kind of be hilarious if they did
00:55 timotimo hmpf. someone bother me enough about setting up synopsebot finally. also making the "noise image" example in rosettacode faster
00:57 Hotkeys "We'll use minimal mappings for SDL2. The resulting code is embarrassingly slow, but it's better than nothing."
00:57 Hotkeys lol
01:13 TimToady joined #perl6
01:15 tardisx joined #perl6
01:16 kid511 joined #perl6
01:17 thundergnat joined #perl6
01:17 thundergnat m: say 1e308
01:17 camelia rakudo-moar d714e5: OUTPUT«1e+308␤»
01:18 thundergnat m: say 1.1e308
01:18 camelia rakudo-moar d714e5: OUTPUT«Inf␤»
01:18 thundergnat m: say 1e308 + 79769e303
01:18 camelia rakudo-moar d714e5: OUTPUT«1.79769e+308␤»
01:18 thundergnat hmmm.
01:19 thundergnat not exactly a bug but...
01:25 ugexe if the path needs to be in the usage it could also just show the relative path next to the commands, and then show the absolute path a single time at the top or bottom
01:28 ugexe i guess that doesnt solve the $?FILE/<sha1> issue of it though
01:28 AlexDaniel thundergnat: but?
01:29 cbk joined #perl6
01:30 dalek rakudo/nom: ff15fda | hoelzro++ | tools/build/Makefile-JVM.in:
01:30 dalek rakudo/nom: Install Rakudo jars in proper location
01:30 dalek rakudo/nom:
01:30 dalek rakudo/nom: Stuff written in NQP should go under $prefix/share/nqp/lib (J_LIBPATH),
01:30 dalek rakudo/nom: and stuff written in Perl 6 should go under
01:30 AlexDaniel thundergnat: perl 6 defaults to Rats unless you use 1e1 notation
01:30 dalek rakudo/nom: $prefix/share/perl6/runtime/ (PERL6_LANG_DIR), since that's where the
01:30 dalek rakudo/nom: respective module loaders look for it
01:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ff15fdad6a
01:31 AlexDaniel thundergnat: in which case it is a Num
01:38 AlexDaniel m: say 1 if
01:38 camelia rakudo-moar d714e5: OUTPUT«5===SORRY!5===␤Whitespace required after keyword 'if'␤at /tmp/zpVFACkLSG:1␤------> 3say 1 if7⏏5<EOL>␤Whitespace required after keyword 'if'␤at /tmp/zpVFACkLSG:1␤------> 3say 1 if7⏏5<EOL>␤Whitespace required after keyword 'if'…»
01:38 AlexDaniel meh, still lta
01:39 Juerd Wow, how much whitespace does it want? :)
01:39 Juerd m: say 1 if ;
01:39 camelia rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/O89yz6Bko5␤Missing semicolon␤at /tmp/O89yz6Bko5:1␤------> 3say 1 if 7⏏5;␤»
01:39 lestrrat joined #perl6
01:39 Juerd Missing semicolon... Where? Right there, where the semicolon is.
01:39 AlexDaniel camelia: IT IS RIGHT THERE!!
01:40 * Juerd thinks it's funny
01:40 geekosaur never mind LTA, that' less than sane >.>
01:40 Juerd Can we keep it? :)
01:41 AlexDaniel Juerd: this bug may celebrate its birthday pretty soon: https://rt.perl.org/Ticket/Display.html?id=125596
01:42 MadcapJake joined #perl6
01:42 AlexDaniel Juerd: you may also like this one
01:42 AlexDaniel m: repeat { } until;
01:42 camelia rakudo-moar d714e5: OUTPUT«5===SORRY!5===␤Whitespace required after keyword 'repeat { } until'␤at /tmp/i6t5gwXNWX:1␤------> 3repeat { } until7⏏5;␤Missing "while" or "until"␤at /tmp/i6t5gwXNWX:1␤------> 3repeat { } until7⏏5;␤    expecting any of:␤     …»
01:42 AlexDaniel whitespace, ok
01:42 AlexDaniel m: repeat { } until ;
01:42 camelia rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vTHOsfVRpp␤Missing "while" or "until"␤at /tmp/vTHOsfVRpp:1␤------> 3repeat { } until7⏏5 ;␤    expecting any of:␤        prefix␤        term␤»
01:42 AlexDaniel while or until? Ok
01:42 AlexDaniel m: repeat { } until until;
01:42 camelia rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MVpSFCztAO␤Undeclared routine:␤    until used at line 1␤␤»
01:42 AlexDaniel xD
01:43 sevvie joined #perl6
01:45 AlexDaniel m: if True if { };
01:45 camelia rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o55v9fkIPr␤Missing block␤at /tmp/o55v9fkIPr:1␤------> 3if True if 7⏏5{ };␤»
01:45 Juerd Haha, those are nice too
01:46 AlexDaniel Juerd: well, I'm going through my bug reports. There's a whole bunch of them which are based on “I'm treating the error message too seriously” idea
01:47 AlexDaniel surely these are LTA but honestly there are better things to fix… :)
01:48 sortiz AlexDaniel, Indeed.
01:48 Juerd Fixing stuff isn't just an ordered list of to-do's. People can cherry pick things they like, or that match their expertise.
01:48 AlexDaniel yeah, that's why I report everything
01:49 Juerd m: &()
01:49 camelia rakudo-moar d714e5: ( no output )
01:50 Juerd m: &("Weird comment operator only allows valid syntax in it ;-)")
01:50 camelia rakudo-moar d714e5: ( no output )
01:50 AlexDaniel comment operator :D
01:50 Juerd If not comment operator, then sink warning suppressing operator ;)
01:50 Juerd It's only a comment in sink context
01:50 Juerd m: say &("If you like ampersands, you may use many.")
01:50 camelia rakudo-moar d714e5: OUTPUT«If you like ampersands, you may use many.␤»
01:51 Juerd m: "foo"
01:51 camelia rakudo-moar d714e5: OUTPUT«WARNINGS for /tmp/nZ2dEFodi8:␤Useless use of constant string "foo" in sink context (line 1)␤»
01:51 Juerd m: &("foo")
01:51 camelia rakudo-moar d714e5: ( no output )
01:51 AlexDaniel m: say (2,8,15)».&(* × 2)
01:51 camelia rakudo-moar ff15fd: OUTPUT«(4 16 30)␤»
01:51 AlexDaniel perhaps that's where it comes from
01:51 Juerd Ah
01:52 AlexDaniel m: &({.say})(25)
01:52 camelia rakudo-moar ff15fd: OUTPUT«25␤»
01:52 AlexDaniel m: &(*.say)(25)
01:52 camelia rakudo-moar ff15fd: OUTPUT«25␤»
01:53 AlexDaniel sorry, that's not a comment operator :D
01:53 AlexDaniel Juerd: also notice how the result is in sink context and that's totally fine
01:53 AlexDaniel m: say &(*.say)(25) # you can use it but most likely you don't want
01:53 camelia rakudo-moar ff15fd: OUTPUT«25␤True␤»
01:54 AlexDaniel Juerd: speaking of funny bug reports: https://rt.perl.org/Ticket/Display.html?id=125682
01:54 Hotkeys m: {.say}(25)
01:54 camelia rakudo-moar ff15fd: OUTPUT«25␤»
01:55 AlexDaniel though that & is a bit redundant
01:55 AlexDaniel m: say (*.say)(25)
01:55 camelia rakudo-moar ff15fd: OUTPUT«25␤True␤»
01:55 Hotkeys heh
01:59 sortiz m: (&).WHAT.say
01:59 camelia rakudo-moar ff15fd: OUTPUT«(Callable)␤»
02:03 sortiz oO( The "identity" one, ie. returns its arguments when called )
02:07 luiz_lha joined #perl6
02:07 colomon_ joined #perl6
02:10 Actualeyes joined #perl6
02:11 a3r0_ joined #perl6
02:15 AlexDaniel how can I merge two tickets?
02:16 AlexDaniel it looks like I reported the same bug twice
02:16 AlexDaniel https://rt.perl.org/Ticket/Display.html?id=126223 and https://rt.perl.org/Ticket/Display.html?id=126855
02:16 sortiz AlexDaniel, In that case, simply close the older.
02:18 AlexDaniel ok
02:18 Sgeo joined #perl6
02:19 thundergnat AlexDaniel: you missed my (rather feeble) point earlier. 1.1e308 overflows and evaluates to Inf but 1.0e308 + 79769e303 does not.
02:19 thundergnat m: say 1e308 + 79769e303
02:19 camelia rakudo-moar ff15fd: OUTPUT«1.79769e+308␤»
02:19 thundergnat m: say 1.1e308
02:19 camelia rakudo-moar ff15fd: OUTPUT«Inf␤»
02:20 AlexDaniel thundergnat: yeah, I know. But you're playing on the edge, so… If you don't want such problems then just use Rats :)
02:20 AlexDaniel I'm not sure where does that difference come from though. Is it how any float behaves?
02:20 AlexDaniel or is it a double
02:21 thundergnat Yep. I was trying to find the edge. But it's kind of fuzzy.
02:22 thundergnat Like I said, probably not a bug, but LTAIMO
02:22 AlexDaniel thundergnat: I don't think that Perl 6 should attempt to fix how floats work
02:22 AlexDaniel it already does by defaulting to Rats :)
02:23 AlexDaniel you might also say that Inf should not appear there at all, because, you know, it is less than awesome :)
02:27 thundergnat Actually, Inf is totally awesome. It has to show up sometime if we are trying to follow IEEE 754 (and we are as far as I can tell.)
02:29 AlexDaniel thundergnat: does IEEE 754 say anything about your example?
02:32 AlexDaniel m: :::<o>
02:32 camelia rakudo-moar ff15fd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uekIhmnvIc␤No such symbol ':<o>'␤at /tmp/uekIhmnvIc:1␤------> 3:::<o>7⏏5<EOL>␤»
02:32 AlexDaniel awesome
02:36 thundergnat AlexDaniel: IEEE 754 does not seem to specifically specify where the overflow will happen, only that it needs to happen gracefully. The 1.7976E+308 value I was messing with is the common Double precision range maximum.
02:37 thundergnat I was just pointing out the oddity that you can get a sum above 1e308 to display but cant display it directly.
02:38 thundergnat It really isn't a big deal to me and I don't want anyone to think I'm complaining about it. It was just odd.
02:46 Humbedooh joined #perl6
02:46 Humbedooh joined #perl6
02:46 vendethiel joined #perl6
02:53 FROGGS_ joined #perl6
02:53 mattp__ joined #perl6
02:55 * AlexDaniel feels like he said something wrong
02:58 sortiz AlexDaniel, I don't think so, don't worry
02:58 dalek nqp/experiment-multi-line-repl: a59d662 | hoelzro++ | src/HLL/Compiler.nqp:
02:58 dalek nqp/experiment-multi-line-repl: Move continuation detection into eval
02:58 dalek nqp/experiment-multi-line-repl:
02:58 dalek nqp/experiment-multi-line-repl: With this change, eval can return the output of running the code, or
02:58 dalek nqp/experiment-multi-line-repl: a sentinel value that indicates that more input is needed to run a chunk
02:58 dalek nqp/experiment-multi-line-repl: of code.  This is so that more advanced forms of detecting when we need
02:58 dalek nqp/experiment-multi-line-repl: more input, such as if the user is entering input for a multi-line
02:58 dalek nqp/experiment-multi-line-repl: statement like a block.
02:58 dalek nqp/experiment-multi-line-repl:
02:58 dalek nqp/experiment-multi-line-repl: This is just a proof-of-concept change; I don't really like how eval
02:58 dalek nqp/experiment-multi-line-repl: indicates to its caller that it needs more input.  But at least this
02:58 dalek nqp/experiment-multi-line-repl: will get people to try and see if multi-line input could be feasible.
02:58 dalek nqp/experiment-multi-line-repl:
02:58 dalek nqp/experiment-multi-line-repl: We also add a new method to HLL::Compiler - needs-more-input, which is
02:58 dalek nqp/experiment-multi-line-repl: used in conjunction with the sentinel value returned by eval.
02:58 dalek nqp/experiment-multi-line-repl: review: https://github.com/perl6/nqp/commit/a59d66226b
02:58 dalek nqp/experiment-multi-line-repl: a789a7e | hoelzro++ | src/HLL/Compiler.nqp:
02:59 dalek nqp/experiment-multi-line-repl: Check if we need more input due to trailing backslash
02:59 dalek nqp/experiment-multi-line-repl:
02:59 dalek nqp/experiment-multi-line-repl: This is a bit of a hack, but it's good enough for this experiment
02:59 dalek nqp/experiment-multi-line-repl: review: https://github.com/perl6/nqp/commit/a789a7e9c4
03:01 sortiz hoelzro++ # your work towards a better REPL
03:03 konobi so, some comparisons to repls that could help are bpython, ipython and DreamPie (for python)
03:04 konobi all have differing features
03:04 konobi but which ones are the best to suit a core repl?
03:05 hoelzro bpython relies on curses, right?
03:07 Herby_ joined #perl6
03:08 Herby_ o/
03:08 konobi hoelzro: not sure... could be just tput
03:09 hoelzro I'm pretty set on staying with a regular CLI REPL for straight up 'perl6'
03:09 hoelzro more advanced interfaces can be provided by modules
03:10 Hotkeys Could also start the repl with an argument for curses maybe
03:10 Hotkeys Like perl6 --curses
03:10 * Hotkeys shrugs
03:10 hoelzro I don't want curses knowledge in Perl6::Compiler
03:10 hoelzro I just feel it's too much complexity to introduce
03:10 konobi hoelzro: i don't need curses to do curses like stuff
03:10 noganex_ joined #perl6
03:11 hoelzro I don't mean curses in particular; I mean the idea of managing a TUI in Perl6::Compiler
03:11 konobi then good ol readline
03:11 hoelzro readline is as far as I'll go
03:11 sortiz hoelzro, imo a good enough CLI REPL in core and hooks for extension is the best approach.
03:11 hoelzro (which is as far as we've gone =])
03:12 hoelzro what I want (which may be at odds with what others want) is a basic REPL that ships with rakudo
03:12 hoelzro I would like to provide a Perl6::REPL for other modules to use
03:12 hoelzro for more advanced stuff
03:13 sortiz I totally agree.
03:13 Hotkeys Seems reasonable
03:13 hoelzro heck, even the existing tab completion might be too advanced, but I like having it =)
03:13 hoelzro I'm going to write up my goals for the REPL, as soon as I finish reading this article
03:14 konobi yeah, i'd have thought it would be just part of Task::Rakudo
03:17 sortiz I'm using Readline, that lacks tab completion, but Linenoise has problems with unicode.
03:17 hoelzro konobi: I'm not really familiar with Task::Rakudo, but we don't include it in Star because of licensing
03:18 hoelzro sortiz: unfortunately, the ReadLine binding doesn't have a way to offer custom tab completion
03:18 hoelzro not yet, anyway
03:18 dalek rakudo-star-daily: 24a1517 | coke++ | log/ (9 files):
03:18 dalek rakudo-star-daily: today (automated commit)
03:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/24a1517b2e
03:19 Ben_Goldberg joined #perl6
03:19 sortiz And I need multiline support and persistent history.
03:21 sortiz When time permits I'll take a close look.
03:22 konobi there's always libeditline
03:23 konobi and linenoise
03:23 hoelzro sortiz: have you tried my branch?
03:23 hoelzro konobi: that's why Linenoise (now) ships with R* =)
03:24 sortiz hoelzro, not yet.
03:24 hoelzro please do! I want some feedback on how well multi-line input works for others
03:25 sortiz Will be a pleasure.
03:25 konobi hoelzro: nice!
03:26 sortiz hoelzro, expect a lot of feedback soon.
03:26 hoelzro \o/
03:28 Hotkeys m: say comb "string"
03:28 camelia rakudo-moar ff15fd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/m3D0GqVCeO␤Calling comb(Str) will never work with proto signature ($,, $?)␤at /tmp/m3D0GqVCeO:1␤------> 3say 7⏏5comb "string"␤»
03:28 Hotkeys why can't you do this?
03:29 konobi hoelzro: yeah... there's a pure JS library that does a bunch of curses stuff pretty dang well
03:29 Hotkeys I know there's the method
03:29 Hotkeys but I feel like you should be able to function comb a string
03:30 gfldex Hotkeys: please file a bug report
03:30 konobi hoelzro: npm:blessed ... it's a pretty interesting approach
03:31 hoelzro konobi: neat! maybe down the road, someone will write a curses REPL
03:31 Herby_ join #perl
03:32 Hotkeys I don't know if it's a bug
03:32 Hotkeys it's just that the matcher isn't optional in the sub
03:33 Hotkeys https://github.com/rakudo/rakudo/blob/7d4cdbcdd5fce287afc3250c52d3d2adde767c6d/src/core/Cool.pm#L340
03:33 Hotkeys why does it always do the blob thing
03:33 Hotkeys oh
03:34 Hotkeys last time it was indexed in search
03:34 sortiz Hotkeys, Yes, seems a bug, all mult subs needs $matcher.
03:36 BenGoldberg joined #perl6
03:36 sortiz m: say comb /./, "string";
03:36 camelia rakudo-moar ff15fd: OUTPUT«(s t r i n g)␤»
03:40 sortiz Hotkeys, see https://github.com/rakudo/rakudo/blob/nom/src/core/Cool.pm#L340
03:40 Hotkeys ik I just linked it :p
03:40 Hotkeys wrong commit same bit though
03:42 Hotkeys this part of github search: "You can't use the following wildcard characters as part of your search query: . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]"
03:42 Hotkeys is so infuriating
03:43 Hotkeys those are legitimate things to include in a query
03:43 Hotkeys when searching code
03:44 hoelzro ok, here are my thoughts on the future of REPL 6: https://gist.github.com/hoelzro/6bb9aa5163c7f79016ff
03:48 nekrodesk joined #perl6
03:51 colomon joined #perl6
03:52 Zero_Dogg joined #perl6
03:53 Actualeyes joined #perl6
03:53 sortiz hoelzro, I found one feature missing, some form (may be a dynamic var) to introduce the result of the last evaluation.
04:02 MadcapJake sortiz, that's a great idea!
04:04 hoelzro sortiz: ah, thanks!
04:05 hoelzro added!
04:05 sortiz Thinking about it, isn't trivial...
04:06 MadcapJake also would be nice: after a period, press tab (twice?) and it will take whatever you're calling's ^methods and print them in columns below
04:08 sortiz MadcapJake, that's in "Improve tab completions".
04:10 MadcapJake ok, yeah, wasn't explicitly stated as such, but definitely a big one, i'm still quite a novice at Perl 6 and i use ^methods all the time, would love to be able to call `fmt` on it isn't on Lists
04:10 MadcapJake s/isn't on/but it isn't on/
04:11 mr-foobar joined #perl6
04:12 sortiz hoelzro, Perfect, we have a lot work ahead. :)
04:24 hoelzro indeed =)
04:25 hoelzro I think step #1 is make the REPL into Perl 6 code
04:25 hoelzro after the multi line stuff is merged, anyway =)
04:25 hoelzro anyway, off to bed
04:25 hoelzro night #perl6
04:26 MadcapJake night!
04:28 [Coke] I think we have better things to do than worry if the PaFo gets accepted to GSOC. Like, if you're interested in TPF applying, work on that.
04:30 BenGoldberg joined #perl6
04:34 sortiz S99: PaFo?
04:35 [Coke] Parrot Foundation
04:38 Sgeo_ joined #perl6
04:39 sortiz ah, tnks [Coke]
04:46 molaf joined #perl6
04:46 telex joined #perl6
05:06 sevvie joined #perl6
05:47 FROGGS .tell timotimo I can try...
05:47 yoleaux FROGGS: I'll pass your message to timotimo.
05:48 Cabanossi joined #perl6
06:05 konobi hoelzro: is a fun package... https://www.npmjs.com/package/blessed
06:05 konobi no dependencies, JS or C libs
06:39 AiHasBeenSolved joined #perl6
06:39 AiHasBeenSolved http://ai.neocities.org/P6AI_FAQ.html
06:40 AiHasBeenSolved m Back to coding the Perl6 Killer App artificial intelligence
06:40 AiHasBeenSolved q
06:40 AiHasBeenSolved quit
06:42 masak oh good, AI has been solved. then maybe we can find some other buzzword to render completely meaningless.
06:48 nine AI has been solved? Nice...
06:49 konobi well, at least the content is actually related
06:50 konobi rather than just 'hot shingles looking for you!'
07:08 masak it's related, but somehow I get the feeling that when it says "strong AI", the text actually means something more like "hilarious Markov-chain generator"
07:09 FROGGS joined #perl6
07:10 domidumont joined #perl6
07:18 domidumont joined #perl6
07:26 nebuchadnezzar joined #perl6
07:39 firstdayonthejob joined #perl6
07:41 nakiro joined #perl6
07:42 darutoko joined #perl6
07:44 [Tux] test            22.459
07:44 [Tux] test-t          11.884
07:44 [Tux] csv-parser      50.993
07:44 _Gustaf_ joined #perl6
07:58 vike joined #perl6
07:59 abraxxa joined #perl6
08:02 hippie1 joined #perl6
08:04 CIAvash joined #perl6
08:04 moritz masak: "strong AI" is always what we can't do yet :-)
08:05 domidumont joined #perl6
08:06 tardisx joined #perl6
08:06 RabidGravy joined #perl6
08:09 virtualsue joined #perl6
08:12 sjoshi joined #perl6
08:12 RabidGravy boom!
08:15 mr-foobar joined #perl6
08:29 ely-se joined #perl6
08:42 masak moritz: I see nothing impossible *in principle* with a software agent that thwarted my every attempt to unmask it as not alive. and I'd be fine with calling that "strong AI" :)
08:43 masak having said that, I acknowledge that it's really, really, really, really, really hard.
08:44 moritz on the other hand, many great things have achieved that would have counted as AI a while ago
08:44 moritz search engines answering more questions for you than any single human ever could
08:44 moritz but that's not AI enough for us, hence the desire for "strong AI"
08:46 moritz also when I take pictures with my smartphone, it hilights and focuses on faces, and does so pretty well and in real time. Nobody seems to make a big fuss about that, but image recognition is hard
08:46 konobi well, also depends how it's applied too
08:47 cbk_ joined #perl6
08:52 Celelibi joined #perl6
08:54 zakharyas joined #perl6
08:55 dakkar_ joined #perl6
08:55 kamel joined #perl6
08:56 wamba joined #perl6
08:57 dalek rakudo/nom: 6b53ac7 | (Salvador Ortiz)++ | src/core/Failure.pm:
08:57 dalek rakudo/nom: Implement Failure.handled as documented
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b53ac7f08
08:57 dalek rakudo/nom: ebf89c5 | (Salvador Ortiz)++ | / (7 files):
08:57 dalek rakudo/nom: Merge branch 'nom' of https://github.com/rakudo/rakudo into failure.handled
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ebf89c51e1
08:57 dalek rakudo/nom: e375087 | (Salvador Ortiz)++ | src/core/Failure.pm:
08:57 dalek rakudo/nom: Follows the spec for Failure.handled
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e375087a9b
08:57 dalek rakudo/nom: 311a98b | lizmat++ | src/core/Failure.pm:
08:57 dalek rakudo/nom: Merge pull request #693 from salortiz/failure.handled
08:57 dalek rakudo/nom:
08:57 dalek rakudo/nom: Implement Failure.handled as documented
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/311a98b90d
09:01 Laurent_R joined #perl6
09:03 TEttinger joined #perl6
09:08 bowtie joined #perl6
09:16 RabidGravy I hate Perl 6 - it makes doing some things so easy and nice that I'm compelled to add features to stuff and never finish anything
09:16 domidumont joined #perl6
09:19 DrForr No good software ever gets completed.
09:19 RabidGravy It all starts with "ooOOooooh that'll be really easy, I'll just do it" and ends in a never-ending cycle of  "oOOOoooh I can do *that* - I'll just add it"
09:20 sortiz RabidGravy, I share your pain.
09:21 RabidGravy :)
09:21 stmuk most software with a sprawling scope never gets finished only some small very specific tools done
09:22 sortiz On the other side, Perl 6 is deliberately designed to never be "complete"
09:23 virtualsue joined #perl6
09:23 sortiz That's wonderful! :)
09:25 sno joined #perl6
09:27 ocbtec joined #perl6
09:27 sortiz But for now we need to make it faster ;)
09:33 fireartist joined #perl6
09:35 sortiz .oO( I'll need to confess how much I depend on Google Translate to write in English? )
09:36 bowtie_ joined #perl6
09:38 virtualsue joined #perl6
09:42 huf you can do that? use gtranslate to *produce* english?
09:43 DrForr Doesn't work for any other language, maybe English is the thing :)
09:46 sortiz Frequently need to check my grammar, my native language is Spanish, and my English is a little rusty.
09:46 DrForr Lots of native English speakers need to do the same thing. Not enough do :)
09:46 huf that's amazingly brave, that you'd trust gtranslate on grammar :)
09:47 huf though maybe it works pretty well with spanish->english, dunno
09:47 sortiz When in doubt yes. :)
09:48 DrForr I used to do localization work, and every time I heard someone say 'Well, let's just run it through Google Translate for a first cut' shortly afterward there was the sound of <headdesk/>.
09:49 sortiz :)
09:49 huf yeah, i'm more surprised when it gives me an accurate translation than when it doesnt
09:50 huf i mean, it cant deal with sentences as mindbogglingly expensive as "the bread was expensive"
09:51 huf (it gets it confused with "it was expensive bread")
09:51 sortiz Well, if what I write here is reasonably understandable, my method does not work so badly.
09:51 huf it's pretty good, hence my amazement
09:52 huf also obviously i meant "mindbogglingly complex" above
09:52 moritz German <-> English also works pretty well
09:56 huf maybe it's just my uralic underprivilege
09:56 huf i mean seriously, how hard can bread being expensive be :D
09:57 timotimo FROGGS: though given my lingering interest in games-making, how is your box2d binding coming along? is NativeCall++ far enough by now?
09:57 yoleaux 05:47Z <FROGGS> timotimo: I can try...
09:58 FROGGS timotimo: I think NativeCall is good enough, and since we hav HAS now, the bindings should be less typing nowadays
09:58 FROGGS timotimo: I'll find some time to work on it
09:58 timotimo that's cool :)
10:03 * moritz wants CAN HAS
10:04 * sortiz wants Blob/Buf support in CStructs
10:08 sortiz Or fast conversions between CArray and Blob
10:08 espadrine joined #perl6
10:10 timotimo yeah
10:13 rindolf joined #perl6
10:15 sortiz timotimo, Its REPRs should be similar, its possible a form of cast?
10:15 timotimo it'll also probably need a copy
10:17 sortiz Sure, for CArray we can get a pointer, if can be obtained from the MVMArray, a simple memcopy suffice
10:18 leont joined #perl6
10:20 sortiz For start, one way is enough.
10:27 pmurias joined #perl6
10:30 timotimo the thing is, VMArray will - on its own accord - run realloc on its pointer
10:36 sortiz timotimo, I know, that is why I'm thinking in a fast copy, move the data from CArray to a new VMArray and let the VMArray decide their fate.
10:39 sortiz From Rakudo to native, Blob can be used in native calls, but many APIs uses structs to returns data, in those cases all we have in CArray.
10:41 sortiz s/in/is/
10:42 DrForr VMArray, you've piqued my interest.
10:48 sortiz The REPR of Blob and Buf
10:50 DrForr I wanted to talk with nine about the notion of C#-style managed pointers when we were at FOSDEM but not enough time and too much beer.
10:52 sortiz Right now we can send them to native, but can't receive it, bc the size can't be guessed.
10:52 sortiz So there are unistantiables.
10:55 sortiz And ss timotimo said, its memory is MoarMV managed.
10:58 stmuk does panda work with gitlab urls in the ecosystem?
10:58 RabidGravy dunno, what's gitlab?
10:59 stmuk something like github
11:00 RabidGravy yeah just seen
11:00 sortiz stmuk, if its URLs are standar git URLs should work.
11:00 sortiz *standard
11:01 kaare_ joined #perl6
11:02 RabidGravy is there any way of creating an anonymous method (or sub) with a return type that isn't known in advance ?
11:03 jevin joined #perl6
11:03 sortiz RabidGravy, you don't need to declare its return type.
11:04 sortiz Or use Mu.
11:04 RabidGravy no but what if I wanted to?
11:04 jnthn RabidGravy: Would mixing in a role { method returns() { Int } } or so work enough?
11:04 RabidGravy or actually needed to
11:04 jnthn Or do you want it to actually do the checking? :)
11:05 RabidGravy yeah, want the actual checking, 'cause I want to create a rw method that will actually return a Proxy that will cause interaction with "something else"
11:06 jnthn .wrap it maybe
11:06 jevin joined #perl6
11:06 RabidGravy and the something else will crap out if I supply a wrong value so I'd rather crap out in perl space early
11:07 jnthn Or mix in a role that does postcircumfix:<( )> and then does callsame
11:07 RabidGravy just trying something
11:07 jnthn And then checks the result type
11:08 RabidGravy actually, this may work
11:09 RabidGravy m: my $a = (my method foo is rw { }) but Callable[Bool]; say $a.of
11:09 camelia rakudo-moar 311a98: OUTPUT«(Bool)␤»
11:09 RabidGravy :-O
11:12 jnthn :)
11:14 Perleone joined #perl6
11:18 RabidGravy Hmm it doesn't actually check it, may need an additional layer
11:24 sjoshi joined #perl6
11:27 wamba joined #perl6
11:31 lizmat m: my $h = Hash[Int,Mu].new("a",42); dd $h   # this works
11:31 camelia rakudo-moar 311a98: OUTPUT«Hash[Int,Mu] $h = (my Int %{Mu} = :a(42))␤»
11:31 lizmat m: class A is Hash[Int,Mu] { }  # this doesn't  :-(
11:31 camelia rakudo-moar 311a98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aHnt6eLu8z␤Cannot call trait_mod:<is>(A, Hash, Array); none of these signatures match:␤    (Mu:U $child, Mu:U $parent)␤    (Mu:U $child, :$DEPRECATED!)␤    (Mu:U $type, :$rw!)␤    (Mu:U $type, :$nativ…»
11:32 lizmat jnthn: suggestions?   ^^^
11:34 lizmat m: my \T := Hash[Int,Mu]; BEGIN dd T; class A is T { }   # :-(
11:34 camelia rakudo-moar 311a98: OUTPUT«Mu␤===SORRY!===␤No compile-time value for T␤»
11:36 moritz m: my \T := Hash[Int,Mu]; BEGIN dd T; my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose;
11:36 camelia rakudo-moar 311a98: OUTPUT«Mu␤»
11:36 moritz m: my \T := Hash[Int,Mu];  my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; dd A
11:36 camelia rakudo-moar 311a98: OUTPUT«Cannot look up attributes in a type object␤  in block <unit> at /tmp/mrx16OWi14 line 1␤␤»
11:37 moritz m: my \T := Hash[Int,Mu];  my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; say A.perl
11:37 camelia rakudo-moar 311a98: OUTPUT«A␤»
11:37 moritz m: my \T := Hash[Int,Mu];  my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; say A.^mro
11:37 camelia rakudo-moar 311a98: OUTPUT«((A) (Hash[Int,Mu]) (Hash) (Map) (Cool) (Any) (Mu))␤»
11:37 lizmat moritz++
11:37 jnthn You'd have to do constant to have it at compile time
11:37 jnthn m: constant \T = Hash[Int,Mu]; class A is T { }
11:37 camelia rakudo-moar 311a98: ( no output )
11:37 jnthn m: constant \T = Hash[Int,Mu]; class A is T { }; say A.^mro
11:37 camelia rakudo-moar 311a98: OUTPUT«((A) (Hash[Int,Mu]) (Hash) (Map) (Cool) (Any) (Mu))␤»
11:38 lizmat jnthn++
11:38 jnthn m: constant \T = Hash[Int,Mu]; class A is T { }; my %x is A; %x{1} = 42; say %x
11:38 camelia rakudo-moar 311a98: OUTPUT«1 => 42␤»
11:38 lizmat .oO( one step closer to subclassing Bag from object hashes)
11:38 jnthn Not quite sure why a straight "is" doesn't work there
11:38 jnthn RT-able imo
11:39 moritz iirc my %x is ..  never worked
11:39 jnthn moritz: It was implemented late November or so
11:39 moritz m: constant \T = Hash[Int,Mu]; class A is T { }; my %x := A.new; %x{1} = 42; say %x
11:39 camelia rakudo-moar 311a98: OUTPUT«1 => 42␤»
11:39 moritz oh
11:39 moritz m: constant \T = Hash[Int,Mu]; class A is T { }; my %x := A.new; %x{'str'} = 42; say %x
11:39 camelia rakudo-moar 311a98: OUTPUT«str => 42␤»
11:39 jnthn m: my %h is BagHash; %h<a>++; say %h; %h<a>--; say %h
11:39 camelia rakudo-moar 311a98: OUTPUT«BagHash.new(a)␤BagHash.new()␤»
11:43 kid51 joined #perl6
11:43 lizmat hmmm... I wonder if we have spectest coverage for that
11:43 jnthn is?
11:43 lizmat my %h is BagHash
11:43 jnthn Not sure if I used that exact example
11:44 jnthn But pretty sure I added tests
11:44 lizmat well, yes, there's tests but skipped atm
11:44 lizmat apparently ticket #124490
11:44 jnthn The mechanism is the same one shaped arrays relies on
11:44 jnthn So it went in at the same kinda time
11:45 lizmat m: my %h is BagHash = a => 1
11:45 camelia rakudo-moar 311a98: OUTPUT«Cannot modify an immutable BagHash␤  in block <unit> at /tmp/Zt7WavPC8j line 1␤␤»
11:45 lizmat :-(
11:45 jnthn Yeah, I added tests
11:45 jnthn e3df3841f7b53676b
11:45 jnthn in roast
11:46 jnthn lizmat: That'll be because BagHash has no STORE method
11:46 lizmat ah, ok, fixable then
11:46 lizmat subclass from Hash, provide own STORE_AT_KEY, done
11:49 jnthn Wait, should BagHash subclass Hash?
11:49 jnthn I think that needs a bit more thought/discussion. It's a quite visible change.
11:50 jnthn (Not saying it's wrong, and the risk of breakage is very low, but we won't be able to undo it in the future without breakage.)
11:51 jnthn At least, not if it makes it into a language release.
11:51 jnthn And given it's about objects that basically means "we won't be able to undo it"
11:52 ely-se joined #perl6
11:54 sortiz o/ #perl6
11:54 lizmat jnthn: how is it a visible change?  I mean the only thing that will change is the ^mro ?
11:54 moritz lizmat: type checks against Hash change behavior
11:55 moritz not all people use % or Associative
11:58 * lizmat scratches the idea of subclassing Bag/BagHash/Mix/MixHash
11:58 jnthn Yeah, it's the type checks
11:58 jnthn I'm not saying an outright "no", something just makes me hesitate a bit on it
11:59 lizmat consider it shelved until there're more clarity
11:59 jnthn *nod*
12:01 apiw joined #perl6
12:01 gcole joined #perl6
12:01 Skarsnik joined #perl6
12:06 timotimo could still move these things out into a role
12:06 timotimo rather than changing the class hierarchy
12:08 lizmat timotimo: don't really see how that can be done without adding a layer of indirection
12:08 timotimo oh
12:08 timotimo i didn't look thoroughly yet, sorry :S
12:08 lizmat unifying the approaches was what I was going for...   but it looks like it's going to be 6.d.a
12:08 lizmat at the earliest
12:09 timotimo well, 6.d.a is "right now", though
12:09 timotimo so at least that's good
12:10 lizmat timotimo: ???  where's 6.d.a ?
12:10 timotimo well, 6.d.a is the first alpha of 6.d, isn't it?
12:11 timotimo so that's where our new changes go right now, no?
12:11 lizmat eh, no, that's stuff that's done in the setting.d, no ?
12:12 lizmat so far, I only see a RESTRICTED.setting
12:13 timotimo ah, that's still in a/the branch
12:13 timotimo sorry, i'm totally behind the curve :|
12:13 lizmat in any case, if I read jnthn's blog post correctly, 6.d would be for new classes only, as the mess of having the same class in both settings, would be rather troublesome
12:14 timotimo i thought 6.d can just shadow things in 6.c by virtue of being the outer one
12:14 timotimo but perhaps that is problematic with regards to things in the .c setting refering to "Hash" and getting .c.Hash?
12:14 lizmat stuff like that, yeah
12:17 apiw joined #perl6
12:21 apiw joined #perl6
12:23 * stmuk books nuremberg flight on *that* Irish airline :/
12:25 moritz the one that wants to charge for toilet usage?
12:25 timotimo shouldn't they be glad you're reducing the total weight of the airplane?
12:26 moritz but you aren't, as long as they keep everything inside
12:26 timotimo oh
12:26 stmuk yes .. still they have beer in Bavaria I guess
12:28 DrForr stmuk: Don't forget to purchase your cans of Perri-Air in advance.
12:29 domidumont joined #perl6
12:31 domidumont joined #perl6
12:31 apiw joined #perl6
12:32 Skarsnik Hello
12:33 Skarsnik How I can have line return in a MAIN argument WHY?
12:34 Skarsnik I try #= line 1 #= #= Line 2 but it does not work (and \n just print a ... \n)
12:38 moznion joined #perl6
12:39 timotimo right, those are just concatenated
12:39 timotimo you can try having a second paragraph
12:39 timotimo or a "verbatim" block
12:43 sufrostico joined #perl6
12:49 vendethiel joined #perl6
12:50 Skarsnik and I finally PR my change in USAGE display x)
12:54 RabidGravy so the liquidsoap language will happily let you define an interactive variable with a hypen in the name, but won't then let you use it :(
12:54 RabidGravy silly language
12:54 moritz silly-language
12:56 kanishka joined #perl6
13:00 apiw joined #perl6
13:08 dalek rakudo/nom: 22b4ef0 | (Sylvain Colinet)++ | src/core/Main.pm:
13:08 dalek rakudo/nom: Change the orders of arguments documentation for MAIN display. Previously it was "random" (hash key order) now it the order on wich they are written
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22b4ef05b1
13:08 dalek rakudo/nom: bb2953c | lizmat++ | src/core/Main.pm:
13:08 dalek rakudo/nom: Merge pull request #709 from Skarsnik/nom
13:08 dalek rakudo/nom:
13:08 dalek rakudo/nom: Change the orders of arguments documentation for MAIN display.
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb2953c941
13:09 Skarsnik Thx x)
13:11 nekrodesk joined #perl6
13:11 domidumont joined #perl6
13:13 s_kilk joined #perl6
13:16 nekrodesk joined #perl6
13:18 nekrodesk joined #perl6
13:20 nekrodesk joined #perl6
13:22 nekrodesk joined #perl6
13:25 brrt joined #perl6
13:26 nekrodesk joined #perl6
13:30 nekrodesk joined #perl6
13:33 nekrodesk joined #perl6
13:47 vendethiel joined #perl6
13:50 xinming joined #perl6
13:51 lizmat afk for a few hours&
13:53 apiw joined #perl6
14:02 sufrostico joined #perl6
14:04 sufrosti1o joined #perl6
14:06 cdg joined #perl6
14:07 dalek ecosystem: 0847011 | okaoka++ | META.list:
14:07 dalek ecosystem: Add Algorithm-BinaryIndexedTree to ecosystem
14:07 dalek ecosystem:
14:07 dalek ecosystem: See https://github.com/okaoka/p6-Algorithm-BinaryIndexedTree
14:07 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/0847011caa
14:07 dalek ecosystem: efc40f3 | (Zoffix Znet)++ | META.list:
14:07 dalek ecosystem: Merge pull request #151 from okaoka/add-BIT
14:07 dalek ecosystem:
14:07 dalek ecosystem: Add Algorithm-BinaryIndexedTree to ecosystem
14:07 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/efc40f3a89
14:07 cognominal joined #perl6
14:14 zakharyas joined #perl6
14:15 sufrosti1o joined #perl6
14:15 vendethiel joined #perl6
14:17 robinsmidsrod joined #perl6
14:18 robinsmidsrod joined #perl6
14:19 dalek star: eb79f1b | (Steve Mynott)++ | ports/darwin_dmg/installerbg.png:
14:19 dalek star: import Camelia as a background to temp disk mount
14:19 dalek star: review: https://github.com/rakudo/star/commit/eb79f1b039
14:19 dalek star: 00fd195 | (Steve Mynott)++ | ports/darwin_dmg/ (2 files):
14:19 dalek star: move Camelia from being folder icon to being folder background since it confused the london.pm mac users in testing into thinking the folder was an app
14:19 dalek star: review: https://github.com/rakudo/star/commit/00fd195901
14:22 hoelzro o/ #perl6
14:23 hoelzro I wrote up some of my thoughts on how we could improve the REPL; let me know if you have feedback: https://gist.github.com/hoelzro/6bb9aa5163c7f79016ff
14:24 kurahaupo joined #perl6
14:24 robinsmidsrod joined #perl6
14:27 bowtie joined #perl6
14:28 apiw joined #perl6
14:29 skids joined #perl6
14:32 M-eternaleye joined #perl6
14:38 RabidGravy tum-ti-tum
14:41 M-matthew joined #perl6
14:41 M-Illandan joined #perl6
14:42 apiw joined #perl6
14:46 prammer joined #perl6
14:48 RabidGravy If anyone is mildly interested IO::Socket::Async doesn't crap out if you try to listen on a port that is already being used
14:48 jnthn That's crap...
14:49 isBEKaml joined #perl6
14:50 RabidGravy :)
14:50 flussence that's a feature! but only if you used SO_REUSEPORT or whatever it's called...
14:51 geekosaur was about to comment on that
14:51 geekosaur also present with SO_REUSEADDR on some Solaris kernel patchlevels
14:52 flussence but it's definitely not an expected default
14:52 RabidGravy but you can't pass that option
14:53 apiw joined #perl6
14:54 dalek rakudo/experiment-multi-line-repl: 5f66fcb | hoelzro++ | tools/build/NQP_REVISION:
14:54 dalek rakudo/experiment-multi-line-repl: Require experimental NQP for multi-line REPL
14:54 dalek rakudo/experiment-multi-line-repl: review: https://github.com/rakudo/rakudo/commit/5f66fcb463
14:54 dalek rakudo/experiment-multi-line-repl: 3de1463 | hoelzro++ | src/ (2 files):
14:54 dalek rakudo/experiment-multi-line-repl: Add pos attribute to X::Syntax
14:54 dalek rakudo/experiment-multi-line-repl: review: https://github.com/rakudo/rakudo/commit/3de14639ae
14:54 dalek rakudo/experiment-multi-line-repl: d726cca | hoelzro++ | src/Perl6/Compiler.nqp:
14:54 dalek rakudo/experiment-multi-line-repl: Override HLL::Compiler.eval for multi-line input
14:54 dalek rakudo/experiment-multi-line-repl:
14:54 dalek rakudo/experiment-multi-line-repl: The way this works is pretty dodgy, but it's good enough for
14:54 dalek rakudo/experiment-multi-line-repl: my experiment.  How this works is that we catch any exceptions
14:54 dalek rakudo/experiment-multi-line-repl: from evaluating the code; if there's an exception, it's an
14:54 dalek rakudo/experiment-multi-line-repl: X::Syntax::Missing, and it occurs at the end of the input string,
14:54 dalek rakudo/experiment-multi-line-repl: that means that more input is required.  Instead of just throwing
14:54 dalek rakudo/experiment-multi-line-repl: the exception at the user, we signal HLL::Compiler that we need
14:54 dalek rakudo/experiment-multi-line-repl: more input via self.needs-more-input
14:54 dalek rakudo/experiment-multi-line-repl: review: https://github.com/rakudo/rakudo/commit/d726cca85a
14:54 dalek rakudo/experiment-multi-line-repl: 6c4c7b4 | hoelzro++ | src/Perl6/Compiler.nqp:
14:54 dalek rakudo/experiment-multi-line-repl: Only turn on multi-line behavior if we're interactive
14:54 dalek rakudo/experiment-multi-line-repl:
14:54 dalek rakudo/experiment-multi-line-repl: Multi-line behavior isn't needed for one-liners or scripts
14:54 dalek rakudo/experiment-multi-line-repl: review: https://github.com/rakudo/rakudo/commit/6c4c7b430a
14:55 geekosaur RabidGravy, might check that libuv isn't "helpfully" urning on all the SO_REUSE* bits
14:57 RabidGravy well, I could do that, but my test indicates that if I start an async "echo server" on port 8000 and then telnet to that port I still get the icecast server that was there in the first place
14:57 stmuk ice ice ... gravy
14:58 RabidGravy and I've tried with both 'localhost' and '127.0.0.1' just to eliminate any v4/v6 shenanigans
14:59 mspo strace/dtruss/truss/ktruss will probably tell you exactly what syscalls are happening
15:00 vendethiel joined #perl6
15:03 wamba joined #perl6
15:07 sufrostico joined #perl6
15:07 sufrosti1o joined #perl6
15:14 skids If it does not already, it should probably set IPV6_V6ONLY by default (per https://tools.ietf.org/html/draft-itojun-v6ops-v4mapped-harmful-02)
15:19 mr-fooba_ joined #perl6
15:25 mspo hey itojun++
15:25 khw joined #perl6
15:27 M-eternaleye joined #perl6
15:30 AlexDaniel joined #perl6
15:36 M-matthew joined #perl6
15:36 M-Illandan joined #perl6
15:39 apiw joined #perl6
15:43 vendethiel joined #perl6
15:46 bowtie joined #perl6
15:53 sm0x joined #perl6
15:56 nebuchadnezzar joined #perl6
15:59 diegok joined #perl6
16:00 hahainternet joined #perl6
16:01 ilbelkyr joined #perl6
16:03 siriu5b joined #perl6
16:03 autogen joined #perl6
16:04 BooK joined #perl6
16:06 dustinm` joined #perl6
16:07 mr-foobar joined #perl6
16:11 dsp- joined #perl6
16:13 jolts joined #perl6
16:15 jferrero joined #perl6
16:18 apiw joined #perl6
16:30 dalek star: 3ff9ffb | (Steve Mynott)++ | tools/star/mac-dmg.pod:
16:30 dalek star: import mac binary installer pod
16:30 dalek star: review: https://github.com/rakudo/star/commit/3ff9ffbb52
16:34 M-eternaleye joined #perl6
16:40 mithaldu_ joined #perl6
16:40 pnu joined #perl6
16:41 olinkl joined #perl6
16:42 chansen_ joined #perl6
16:43 caasih joined #perl6
16:43 prammer joined #perl6
16:43 M-matthew joined #perl6
16:43 M-Illandan joined #perl6
16:44 Humbedooh joined #perl6
16:45 riatre joined #perl6
16:45 Humbedooh joined #perl6
16:47 prammer joined #perl6
16:49 muraiki joined #perl6
16:50 prammer joined #perl6
16:51 abaugher joined #perl6
16:52 mindos joined #perl6
16:53 SmokeMachine____ joined #perl6
16:54 sufrostico joined #perl6
16:56 nekrodesk joined #perl6
16:57 mrsolo joined #perl6
16:58 FROGGS joined #perl6
16:59 ramon joined #perl6
17:00 domidumont joined #perl6
17:00 nekrodesk joined #perl6
17:04 musiKk joined #perl6
17:12 prammer joined #perl6
17:13 apiw joined #perl6
17:15 nekrodesk joined #perl6
17:19 nekrodesk joined #perl6
17:19 buharin joined #perl6
17:23 SCHAAP137 joined #perl6
17:29 goomby joined #perl6
17:29 goomby hey
17:30 moritz ho
17:31 sjn \o
17:33 Perleone left #perl6
17:34 buharin joined #perl6
17:36 wamba joined #perl6
17:37 nekrodesk joined #perl6
17:39 RabidGravy and off to work we go
17:39 pmurias_ joined #perl6
17:51 virtualsue joined #perl6
18:07 rurban joined #perl6
18:09 firstdayonthejob joined #perl6
18:10 buharin hey
18:10 buharin I am testing atom with perl6
18:10 buharin and I got question how to build project?
18:12 apiw joined #perl6
18:13 leont joined #perl6
18:17 timotimo buharin: just press f9?
18:18 buharin it works only for tests
18:18 timotimo that is correct
18:18 timotimo that is all it can do at the moment
18:18 buharin for no test should I write some makefile
18:18 buharin ?
18:18 buharin :D
18:19 buharin timotimo, anyway I read about you
18:19 buharin in article
18:19 timotimo you should always wrote tests :)
18:19 timotimo uh oh. only good things i hope?
18:19 buharin sure :)
18:20 timotimo what is that article? i don't remember doing anything noteworthy in the last months
18:24 buharin timotimo, wait need to find it
18:24 buharin timotimo, https://p6weekly.wordpress.com/2016/02/08/2016-56-rakudo-starring/
18:24 timotimo i want to read something good about me, too
18:24 timotimo ah, well, that is more or less my blog
18:25 buharin :D
18:25 buharin can I also write my blog?
18:28 addison_ joined #perl6
18:32 rje_ joined #perl6
18:32 lizmat jnthn: there are many places in the core setting where we put in an empty nqp::hash so that we have something to iterate over / look for keys
18:32 dsp- joined #perl6
18:33 timotimo everyone can write their own blog
18:33 lizmat jnthn: would it make sense to make a single nqp::hash somewhere that could be shared between all of these places, so that we don't need to allocate one over and over again?
18:34 M-eternaleye joined #perl6
18:34 lizmat buharin: are you saying you also want to write the Perl 6 Weekly?
18:35 rje_ Newbie question... are pack and unpack the best way to work with binary data in Perl6? (https://doc.perl6.org/routine/unpack)
18:36 kipd joined #perl6
18:37 Juerd rje_: Currently, yes. But note that they're experimental and they will still change
18:37 perlpilot rje_: That's actually a really good question because ... what Juerd just said :)
18:37 Juerd rje_: This part of Perl 6 is mostly unimplemented :(
18:37 RabidGravy or you can do your own thing with subbuff and so forth and release it on the ecosystem
18:38 Juerd rje_: I've suggested a replacement but haven't followed through... https://gist.github.com/Juerd/ae574b87d40a66649692/
18:38 perlpilot rje_: see also http://doc.perl6.org/type/Buf
18:38 RabidGravy I've got an idea for when I restart working on the MIDI and XBase things
18:41 RabidGravy but they're so far down the todo stack I may not get back to them this year now
18:41 rje_ Thanks gentlemen.  What is subbuff?  (Is it related to Buf?)
18:41 sortiz joined #perl6
18:41 sortiz \o #perl6
18:41 kipd joined #perl6
18:42 RabidGravy subbuf is a method on a Buf which allows you to pick ranges of bytes out of the Buf
18:42 perlpilot rje_: it's like substr, but for Buf instead of Str
18:42 RabidGravy used a lot by things manipulating that sort of data
18:42 rje_ Aaahhhh ok.
18:43 rje_ My use case is nerdy.  I'm reading old 8-bit diskette image files.  I liberally used unpack with Perl5.
18:43 vendethiel joined #perl6
18:44 buharin lizmat, yeah
18:44 mr-foobar joined #perl6
18:45 perlpilot rje_: if you looked at the state-of-the-art in Perl 6 and can come up with something better, that would be nice too  :)
18:45 rje_ perlpilot: If something comes to mind, I'll pipe up.  I'm still playing catch-up though.
18:46 lizmat buharin: I must admit I haven't seen you (much) before on the channel, is that correct ?
18:46 Foxcool_ joined #perl6
18:46 perlpilot rje_: you've picked an area where almost everyone is playing catch-up  :)
18:46 buharin lizmat, yes
18:46 buharin lizmat, I start learn perl last week ;D
18:47 lizmat buharin: do you have a blog that we can look at to get an idea of your blogging capabilities ?
18:47 buharin lizmat, no I never blog
18:47 lizmat ah, well, maybe you should start by blogging a bit for yourself, to get some practice  ?
18:47 rje_ perlpilot: well, I reckon I should be able to open an IO Handle in binary mode and slurp it into a Buf, right?
18:48 buharin lizmat, I am not good in english :D
18:48 buharin and have no any blog did
18:48 lizmat still you want to write the Perl 6 Weekly ?  :-)
18:48 rje_ In a way, it seems as though unpack is not as sophisticated as the good old scanf().  But I could be mistaken.
18:48 buharin lizmat, why not
18:49 yqt joined #perl6
18:49 perlpilot buharin: maybe apprentice for a while :)
18:49 lizmat buharin: what perlpilot said  :-)
18:49 lucasb joined #perl6
18:50 maybekoo5 joined #perl6
18:51 buharin perlpilot, what do you mean?
18:52 buharin by writing posts?
18:53 MadcapJake buharin, blogger.com, wordpress.com, medium.com
18:53 DrForr Never stopped me :)
18:54 timotimo cinema time now
18:54 MadcapJake Has anyone submitted an application to GSoC to be a mentoring organization?
18:54 buharin MadcapJake, ye ok but I want to write posts about perl
18:54 idiosyncrat_ joined #perl6
18:55 MadcapJake you can do that on those sites! or another great solution is jekyll for github, it has pygments in the backend which has a perl 6 lexer
18:55 DrForr buharin: Then get an account and start writing :)
18:55 buharin DrForr, how to get perl acc?
18:55 mspo MadcapJake: you need to be able to "legally able to represent this org" to sign up
18:55 DrForr There's no special Perl silo, just get an account somewhere and start writig.
18:56 DrForr blogs.perl.org comes to mind if ou wnat branding :)
18:56 DrForr *you want
18:56 MadcapJake mspo, what's that mean?
18:56 buharin oh ok
18:56 mspo MadcapJake: it's just part of the gsoc rules
18:56 rje_ Woo hoo, I can read a binary file!!
18:56 MadcapJake but what's it mean? :)
18:56 rje_ my $fh = open( "CHOPLIFTER.D64", :r, :bin ); my Buf $buf = $fh.slurp-rest(:bin); say $buf.elems;
18:56 mspo MadcapJake: for netbsd we're a legal entity so it's pretty clear who has authority as it is explicitly granted
18:57 mspo MadcapJake: who's name is on perl6 source files?
18:57 mspo The Perl Foundation?
18:57 MadcapJake yep
18:57 MadcapJake maybe we could enter as Rakudo org?
18:58 mspo then they would probably be the owner
18:58 mspo although just being the github project admin is probably good enough ;)
18:58 mspo assuming TPF didn't *object*
18:58 musiKk joined #perl6
18:58 perlpilot mspo: From the GSoC FAQ: To be eligible to participate as a mentoring organization, you must be a group running an active free/open source software project, e.g. BRL-CAD. The project does not need to be a legally incorporated entity.
18:59 MadcapJake So one of these people: https://github.com/orgs/perl6/people?utf8=%E2%9C%93&amp;query=role%3Aowner+
18:59 mspo perlpilot: but if perl6 is "owned" by the perl foundation then...
18:59 Relsak joined #perl6
18:59 mspo perlpilot: do you understand what I'm saying?
18:59 timotimo 70mm version of the movie
18:59 timotimo i hope i can appreciate whatever that entails
18:59 RabidGravy that's short
18:59 timotimo it's rather a bit expensive
19:00 MadcapJake but perl6 isn't "owned" by TPF though, is it? that seems the wrong way to put it
19:00 mspo if there is clearly an "owner" of a project then it should be sanctioned by that owner
19:00 perlpilot mspo: I do, but I don't think it's quite right.
19:00 buharin hey I got an idea :D
19:00 mspo I think "perl" and "perl6" are owned by larry wall
19:00 MadcapJake trademarks are, but that's different
19:00 mspo I'm guessing anyone on https://github.com/orgs/perl6/people?utf8=%E2%9C%93&amp;query=role%3Aowner+ is good enough for gsoc
19:00 buharin could you review my post after I write it
19:00 buharin timotimo, ??
19:01 mspo so you don't assign copyright of your code?
19:01 MadcapJake mspo, agreed, will the real perl6 owners please stand up
19:02 MadcapJake mspo, but how does that work being open source?
19:02 lizmat buharin: I will certainly review your post  :-)
19:02 mspo https://summerofcode.withgoogle.com/rules/
19:03 timotimo buharin, perhaps i can. do you know what it will be about?
19:04 timotimo buharin, usually blogging software like wordpress will allow you to give a review or preview link to others
19:04 buharin I got an idea but it is a secret ;-)
19:04 MadcapJake mspo, this is the only line that makes me think TPF has to do it: «An Organization Administrator who has the full legal authority to bind the Organization must register the Organization for the Program and accept the terms of the Organization Participant Agreement on behalf of the Organization.»
19:05 mspo and https://summerofcode.withgoogle.com/terms/org
19:05 timotimo and on Google docs and such you can even let others write together with you and then you can copy that into WordPress
19:05 mspo MadcapJake: that's the line I was thinkig of too
19:05 mspo MadcapJake: I just went through all of it monday
19:05 timotimo the movie will start soon and people will kill me if i don't turn off my phone :)
19:06 MadcapJake timotimo, turn the brightness up to 11!
19:06 perlpilot buharin: We're all about "open source", not "secret source"  :)
19:06 MadcapJake mspo, so is TPF doing GSoC? Who do we contact about this? :S
19:07 mspo I don't know
19:08 mspo MadcapJake: I think the perl6 github owners is going to be sufficient for a "perl6 project" which includes nqp, rakudo, and moar
19:08 mspo unless you wanted to split them up
19:08 buharin perlpilot, ye like me ;-)
19:09 mspo it wouldn't hurt to have an email from TPF or larry wall sanctioning it, but I don't know all of the copyright policies and stuff
19:09 mspo for perl
19:09 MadcapJake i think perhaps you're right in that TPF has legal claim, so perhaps at the least we should inform them of our decision to go in alone?
19:09 MadcapJake right that's what i was thinking too
19:09 buharin anyway I ask one question a few times here without answer
19:09 MadcapJake .seen CurtisOvidPoe
19:09 yoleaux I saw CurtisOvidPoe 31 Jan 2016 15:59Z in #perl6: <CurtisOvidPoe> p6: await (^20).map: { start { sleep rand; .print } }
19:10 mspo in netbsd we are a legal entity and all code committed is assigned copyright to the netbsd foundation
19:10 MadcapJake CurtisOvidPoe is a TPF board member
19:10 mspo so it's very clear for this kind of stuff
19:11 MadcapJake [Coke], you are a part of TPF, any idea on how to proceed with GSoC?
19:11 MadcapJake That's all I can recognize in this list: http://www.perlfoundation.org/who_s_who
19:12 buharin I was asking about wsgi
19:13 buharin why perl got his own implementation psgi and how it is better than wsgi
19:14 lizmat .tell jnthn shouldn't the sink-all methods all have the --> Nil return sig ??
19:14 yoleaux lizmat: I'll pass your message to jnthn.
19:14 MadcapJake buharin, are you asking about Perl 5 PSGI?
19:15 mspo buharin: they're different protocols
19:15 mspo buharin: there's also uwsgi, ajp, cgi
19:15 buharin Perl 6 PSGI implementation
19:15 MadcapJake buharin, it's just a specification for how to communicate, PSGI was inspired by WSGI (which is Python's)
19:15 buharin ye I know
19:15 MadcapJake the perl6 implementation is just a port of Perl 5's
19:15 buharin I read a bit about it
19:15 buharin and also about P6SGI
19:16 buharin but I don't understand why Perl guys implement smh new
19:16 buharin WSGI is quite similar and fine
19:16 mspo fcgi is another
19:16 MadcapJake buharin, because it's not written in Perl, perhaps ;)
19:16 buharin sure but
19:16 buharin interface was good
19:17 jnthn lizmat: (nqp::hash) Can you point me at some examples?
19:17 yoleaux 19:14Z <lizmat> jnthn: shouldn't the sink-all methods all have the --> Nil return sig ??
19:17 DrForr Kind of hard to use Python code inside Perl 5.
19:17 jnthn lizmat: Yeah, they can
19:17 MadcapJake Why does Ruby have Rack? Why does language A have Web Server Spec X?
19:17 lizmat jnthn: but sink-all is always returning IterationEnd now...
19:17 buharin I mean to use interface 1 to 1
19:17 lizmat wouldn't that be an API change ?
19:18 buharin not talking about ABI
19:18 MadcapJake buharin, I'm not following what you mean by interface 1-to-1
19:18 buharin oh nvm
19:18 jnthn lizmat: Oh wait
19:18 lizmat jnthn: Rakudo::Internals, line 15
19:18 jnthn lizmat: No, sink-all is part of the iterator API
19:18 jnthn Those deal in IterationEnd
19:18 jnthn So it's fine
19:19 jnthn I was thinkigg of .sink methods, which should return Nil
19:19 MadcapJake buharin, wasn't trying to sound confrontational, genuinely curious what you meant by that!
19:19 perigrin buharin: because Perl offers different affordances than Python wen you get down to that low a level. PSGI was written to match the expectations of Perl programmers not Python programmers.
19:19 jnthn *thinking
19:21 buharin perigrin, I read PSGI code but it looks a bit messy
19:21 lizmat jnthn: Rakudo::Internals, line 15 has an example of using a nqp::hash just to have something to iterate over
19:21 perigrin buharin: sure but Perl5 has no `yield` so the example from the WSGI page on wikipedia fails immediately to translate.
19:21 lizmat jnthn: are you saying there's a better way to create an empty iterator ?
19:22 buharin perigrin, do perl6 got yield?
19:22 buharin courutines?
19:22 perigrin I believe it does. PSGI though was originally written for Perl5
19:23 DrForr It has Promises, a similar system.
19:23 buharin DrForr yeah I read about it
19:23 buharin promise it is not couroutines
19:23 jnthn And supplies
19:23 buharin but Python got also
19:23 buharin promise system
19:23 buharin python events
19:23 jnthn gather/take is closer to what people usually mean by coroutines
19:24 jnthn Non-blocking await coming in 6.d will also count
19:24 DrForr buharin: The point is that Python's coprocessing and Perl 6's coprocessing primitives don't match so while you can do roughly the same thing, it has to be done in a different way.
19:24 perigrin buharin: this isn't an argument about how awesome $x language is, I was simply trying to explain why miyagawa coulnd't just take the API from WSGI and port it 1:1 across
19:25 jnthn lizmat: In that Rakudo::Internals case, a shared nqp::hash would be safe
19:25 jnthn lizmat: It's probably the easiest path also
19:26 lizmat ok, I'll see if there's other cases
19:26 lizmat it would mean one less nqp::hash for each .values / .keys / etc. that are empty
19:28 jnthn I'd hope that's relatively rare, but yes :)
19:29 lizmat jnthn: if it is relatively rare, why are we going through all the rigamarole of checking for $!storage all the time, and allocate it when we create a Hash / Map always ???
19:29 jnthn lizmat: Because of the way Hash/Array are created
19:30 lizmat jnthn: at the nqp level you mean ?
19:30 jnthn Yeah, at present they work the same way as Scalar does
19:30 jnthn That is, created on first touch of the lexical by an nqp::clone
19:30 jnthn Which is shallow
19:30 jnthn For Scalar that optimization is incredibly worth it
19:31 jnthn For Array/Hash it's more questionable
19:31 buharin perigrin, sorry I don't trust you
19:31 perlpilot huh
19:31 lizmat perlpilot: please note that buharin command of english is not very good
19:32 lizmat 's
19:32 jnthn lol
19:32 lizmat :-)
19:33 jnthn Anyway, it would be interesting to see if we do better to always create a Hash or Array with storage via the normal path
19:33 jnthn And remove the checks
19:34 lizmat adapting Hash/Map.new would be trivial
19:34 lizmat anything special I should look for in src/Perl6 ?
19:34 jnthn Well, there's a bit more of a problem.
19:35 jnthn There's at least one thing that does not end too well with, for example, my %h is BagHaash
19:35 jnthn (state vars)
19:35 jnthn And possibly a second, which is BEGIN time reference.
19:35 jnthn Well, it's state %h is BagHash that's problematic
19:36 jnthn So, those will be less trivial :(
19:36 lizmat ok, let's shelve that line of thought then
19:36 jnthn Yeah.
19:36 jnthn state handling does need some improvements down at the VM level
19:37 jnthn Because 1) no native state vars, 2) weird issues around state vars and binding
19:37 jnthn It's actually #2 that will bite us here
19:38 jnthn But #1 would be a nice rough edge to round off along the way
19:38 jnthn One of the thing things that's going to be changing a decent bit in MoarVM in the next months is call frame handling, so I'll take it on as part of that work.
19:39 jnthn Once that's done, it should be pretty viable to change things to measure the performance difference.
19:39 molaf joined #perl6
19:39 lizmat okidoki...  :-)
19:39 lizmat sounds like a plan
19:40 perigrin buharin: the beauty of open source is you're welcome to make your own 1:1 port and prove me wrong :)
19:40 buharin perigrin, ye I know
19:40 buharin :)
19:42 jnthn (The larger frame changes coming in Moar are for performance reasons: invocation is more costly than it needs to be, and our GC throughput suffers in programs that keep lots of closures in memory for a long time.)
19:43 leont joined #perl6
19:45 sortiz Btw lizmat, I really don't understand yet why the changes in Map caused the required change in CallFrame (Map -> Stash).
19:45 MadcapJake ok anyone curious about GSoC I have sent an email to Karne Pauley.  I don't think I'm the best person to organize this as I'm not one of the core team or anything, but I really hope that whether TPF or at the developer team level, someone takes this up to make it happen.  Would be really great exposure for Perl 6 and students will take their Perl 6 fu and spread it around at their schools!
19:46 MadcapJake Karen*
19:46 lizmat sortiz: because nqp::atkey on some REPRs fails if the key doesn't exist
19:46 nekrodesk joined #perl6
19:46 lizmat sortiz: so that would mean nqp::ifnull could not be used
19:47 lizmat Stash has its own AT-KEY implementation taking care of that
19:47 lizmat Map doesn't
19:47 sortiz lizmat, Ok, but is Stash the best option?
19:48 MadcapJake I'd also like to add: it wouldn't hurt for others to shoot an email off to her at karen@perlfoundation.org to show that I'm not the only one interested!
19:48 apiw joined #perl6
19:49 lizmat sortiz: it should probably be PseudoStash, but that had its own set of issues
19:51 sortiz I worry that, via my, cause some surprises down the road.
19:55 sortiz lizmat, Maybe a new empty Stash subclass can be used as a guard.
19:55 nekrodesk joined #perl6
19:56 lizmat sortiz: with the frame changes coming up, as jnthn just described, we will revisit that area of the code, I would think
19:57 sortiz lizmat, yes.
19:57 sortiz lizmat, Thank you again.
19:57 lizmat sortiz: yw
19:58 mspo MadcapJake: there's also the ask forgiveness method; you can assign like five additional admins after doing the application :)
20:00 apiw joined #perl6
20:05 apiw joined #perl6
20:07 yqt joined #perl6
20:08 musiKk joined #perl6
20:15 pmqs joined #perl6
20:23 spider-mario joined #perl6
20:26 b2gills lizmat: PR 693 should not have been merged
20:26 b2gills m: my $f = Failure.new('What?'); $f.handled = 5; say $f.mess;
20:26 camelia rakudo-moar bb2953: OUTPUT«(HANDLED) (HANDLED) (HANDLED) (HANDLED) (HANDLED) What?␤␤»
20:26 b2gills Either Failure $.handled should be Bool, or Failure.handled() should return a Proxy that outputs a Bool and restricts the input to a Bool.
20:27 lizmat b2gills: could you please write a test for that?  as roast was clean after I pulled
20:28 b2gills lizmat: If I get input on which way to go I would do all the work, except for pushing to rakudo/nom and roast/master
20:29 zakharyas joined #perl6
20:29 lizmat jnthn: I'm getting really confused now about this Failure.handled thing, opinions ?
20:29 yqt joined #perl6
20:30 b2gills It was implemented as int so that it would be fast presumably
20:30 lizmat that was intended as a fast bool really
20:30 lizmat but that didn't work on the JVM, afaicr
20:32 lucasb just to confirm my understand, should I be able to toogle the handled state of a failure by assigning $f.handled = True/False ?
20:32 b2gills I think for now if we need the speed inside of the object, a rw .handled() method is the way to go.
20:32 lizmat lucasb: I think that was the intent, yes
20:33 lucasb hm, ok. thanks lizmat
20:33 lucasb and saying something like 'has Bool $.handled is rw' would not work?
20:34 b2gills It would work but be slower
20:34 lizmat that's the whole thing: a lot of constructs use Failures  :-(
20:35 lucasb oh, right. there's no native 'bool' type :)
20:35 b2gills I think having a slower Proxied method is going to be better in the short term
20:35 b2gills then
20:38 lizmat b2gills: well, that's really a "has Bool $.handled is rw" ?
20:39 TEttinger joined #perl6
20:39 b2gills No I mean leave $!handled as int, and have a separate .handled() returning a Boolified Proxy
20:40 b2gills Since most of the time Failures get automatically "handled" by calling other methods on them
20:42 b2gills I think the main use of a .handled() method would be to reset a Failure object anyway, so having it be a bit slower by being a Proxy will be fine
20:45 * lizmat tries something
20:50 apiw joined #perl6
20:50 lucasb lol, "(HANDLED) " x $!handled; that's the numification of booleans trick to output a single string or an empty one
20:52 b2gills If it didn't need to be fast I would have used  「"(HANDLED) " x? $!handled」 instead
20:57 rje_ joined #perl6
20:59 sevvie joined #perl6
21:00 rje_ Shouldn't a Buf also have the Iterable role?
21:01 rje_ Or does that cause a kind of sigil collision problem?
21:02 rje_ Perhaps a method for extracting the Buf's elements into a List?
21:04 rje_ Using a range just seems kinda primitive :)
21:04 lizmat b2gills: spectesting this change now: https://gist.github.com/lizmat/95a2cb7df2e3088f6f0f
21:04 cdg joined #perl6
21:04 * sortiz I'm sorry for the problem of Failure.handled
21:04 lizmat sortiz: don't worry :-)
21:05 b2gills does the JVM implementation not have nqp::p6bool ?
21:06 lizmat in JVM it's not a native int
21:06 timotimo rje, .list works on Buf
21:07 timotimo and .list is what prefix @ does
21:07 lizmat b2gills: it has, but there is not point, as $!handled on the JVM is not a native
21:07 sortiz lizmat, The Proxy approach occurred to me, but though it was overkill.
21:07 timotimo movie will continue soon i think
21:07 lizmat timotimo: which one ?
21:09 b2gills How about 「nqp::p6bool($!handled = value ?? 1 !! 0)}」 on the Moar side and 「$!handled = nqp::p6bool(value)」 on the JVM side
21:09 dalek rakudo/nom: c9eae68 | lizmat++ | src/core/Failure.pm:
21:09 dalek rakudo/nom: Make sure Failure.handled looks like a Bool
21:09 dalek rakudo/nom:
21:09 dalek rakudo/nom: Even though it's a native int internally on MoarVM.  b2gills++, sortiz++
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c9eae68e09
21:09 ely-se joined #perl6
21:10 lizmat b2gills: nqp::p6bool takes natives
21:10 lizmat value isn't necessarily a native
21:10 b2gills so it just happens to currently work on Moar but may not on other backends
21:11 lizmat hmmm....
21:11 lizmat .oO( I hate backend differences )
21:11 b2gills I tested my version, and it works is what I mean
21:12 lizmat b2gills: but on the JVM version, $!handled can the still be 1 or True or False
21:13 b2gills I think it will be fine until a native bool type is implemented, or someone goes messing with the internals again
21:14 b2gills lizmat: do you still want me to work on a ROAST test?
21:14 lizmat yes please
21:15 sortiz The original PR shows some tests that can be unfudged.
21:16 sortiz b2gills, thanks for reviewing the case.
21:18 b2gills sortiz: I review all of the commits to nom that I see.
21:19 llfourn so we can $failire.handled = True now?
21:20 sortiz llfourn, yes.
21:20 llfourn \o/ # always thought it was missing that
21:20 apiw joined #perl6
21:20 llfourn sortiz++
21:20 jnthn rje_: It's deliberate that a Buf is an item, like a Str. If you're looking for a compact way to store a bunch of integers, native arrays are more likely the thing.
21:21 jnthn lizmat: I'll need to review the history of the handled thing...
21:21 lizmat jnthn: I think we've figured it out
21:22 b2gills llfourn: You could always have called .defined() on it to set it as handled
21:22 jnthn lizmat: I'm not sure why the change isn't to make it has Bool $.handled if we really want to fix that
21:22 dalek rakudo/nom: 355fc3a | lizmat++ | src/core/Failure.pm:
21:22 dalek rakudo/nom: Failure.handled is also an Int on JVM internally
21:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/355fc3ace8
21:22 jnthn Uh, with "is rw"
21:22 sortiz llfourn, or to "handle" it a simple ?$failure
21:23 llfourn b2gills: yep or .Bool but I think it's clearer if I want to return a pre-handled failure to have .handled = True
21:23 lizmat jnthn: I think it was timotimo who found that we lost quite a bit of performance with that approach
21:23 jnthn lizmat: Oh? That surprised me quite a bit, given True/False are constants, not allocated each time
21:23 rje_ timotimo: ah.  Well I didn't see that in https://doc.perl6.org/type/Buf
21:24 jnthn But if so then yeah, a Proxy that boolifies will do it
21:24 jnthn At a cost
21:24 b2gills Since it isn't native on JVM, it could be changed to that there and comment out the whole method in that case. I would assume.
21:25 jnthn (the cost being if you call .handled, but I guess the Failure internals won't be doing that anyway, and it's probably a code smell to want .handled
21:25 jnthn )
21:25 lizmat yes, that was the idea  :-)
21:26 b2gills Like I said, I think .handled() will be used to reset a Failure as not handled
21:26 b2gills most of the time
21:26 lizmat eh, but .handled won't do that ?
21:26 lizmat .handled = False
21:26 lizmat that *will* reset it
21:26 b2gills That's what I meant
21:26 lizmat ok  :-)
21:27 sortiz :-)
21:27 * lizmat goes back to a puzzling issue about passing a native hash as a parameter
21:27 jnthn lizmat: It'll get wrapped :)
21:27 lucasb m: Exception.new.fail; say 'hi'
21:28 camelia rakudo-moar bb2953: ( no output )
21:28 lizmat jnthn: so a decont should fix that, no ?
21:28 lucasb jnthn: ^^ you fixed a bug similar to this a few months ago. that one remained.
21:28 jnthn lizmat: No, 'cus we hllize at routine boundaries
21:29 jnthn lucasb: grmbl, did we really need a method form of that...
21:29 jnthn lucasb: Please RT it
21:29 llfourn m: fail "weee"; say 'Hi';
21:29 camelia rakudo-moar bb2953: OUTPUT«weee␤  in block <unit> at /tmp/O3gz0PU1qU line 1␤␤»
21:29 lucasb ok :)
21:29 lizmat m: use nqp; class A { method a(Mu \s) { say nqp::iterator(nqp::defined(s) ?? s !! nqp::hash).^name } }; my %h; A.a(nqp::getattr(%h,Map,q/$!storage/))   # jnthn, this seems to work
21:29 camelia rakudo-moar bb2953: OUTPUT«BOOTIter␤»
21:30 b2gills 「Exception.new.fail; say 'hi'」 currently works on my computer on the command line and in the REPL
21:30 jnthn Yes, we don't have a hll mapping for iterators
21:30 lizmat m: use nqp; class A { method a(Mu \s) { say nqp::iterator(nqp::defined(s) ?? s !! nqp::hash).^name } }; my %h = a => 42; A.a(nqp::getattr(%h,Map,q/$!storage/))   # but this doesn't  :-(
21:30 camelia rakudo-moar bb2953: OUTPUT«Cannot iterate object with P6opaque representation␤  in method a at /tmp/t24cFJXQHe line 1␤  in block <unit> at /tmp/t24cFJXQHe line 1␤␤»
21:31 lucasb b2gills: by 'works', do you mean it outputs a useful 'Failed' message?
21:31 jnthn lizmat: Right, that's by design, so NQP code passing hashses into Perl 6 code will end up seeing a Perl 6 Map
21:31 b2gills 「Exception.new.fail; say 'hi'」 but it doesn't if ran as a file
21:31 lizmat jnthn: aah!
21:32 jnthn If it's going to be kept internal though, `my class LowLevelHash is repr('VMHash') { }` will give you something that you can use like an nqp::hash, but that is considered a Perl 6 type
21:32 b2gills lucasb: Right. It only appears to be broken if it is in a file. It may have something to do with printing out what file the error comes from.
21:32 lizmat no, that basically means I can feed MappyIterator an nqp::hash and have it auto-wrapped
21:33 lizmat which was what I was going for anyway
21:33 jnthn Should be very portable, 'cus it's the same strategy IterationBuffer, Buf, and array (native) take to use light REPRs directly
21:33 jnthn Oh, you want it auto-wrapped...
21:33 jnthn I...think you grok what's going on now, anyway? :)
21:34 lizmat yup, I think so
21:34 jnthn ok, cool
21:35 lucasb b2gills: yeah, I dunno why the behavior is different in the two cases.
21:35 lucasb the commit that fixed it was https://github.com/rakudo/rakudo/commit/3128db83ae62e9fee2c108f18bda9eff9d239cd8
21:35 lucasb it just need to be ported to Exception.fail
21:36 jnthn Should be a fairly easy port
21:36 b2gills lizmat: I'll go and write a ROAST test for Failure.handled()
21:38 sortiz Porting...
21:38 jnthn sortiz++
21:43 noganex joined #perl6
21:46 sortiz Done in PR#710, running checks.
21:48 sno joined #perl6
21:49 lucasb cool, thank you, sortiz
21:49 addison joined #perl6
21:50 apiw joined #perl6
21:53 sortiz lucasb, >  Exception.new.fail; say 'hi'
21:53 sortiz Exception exception produced no message
21:53 sortiz in block <unit> at <unknown file> line 1
21:54 dolmen joined #perl6
21:58 apiw joined #perl6
22:00 nekrodesk joined #perl6
22:02 jnthn Exception exception...nah, that won't catch on like badger badger...
22:04 lizmat .oO( snaaaaake! )
22:06 dalek rakudo/nom: cdaa1f6 | lizmat++ | src/core/ (4 files):
22:06 dalek rakudo/nom: Remove hash- prefix from MappyIterator attributes
22:06 dalek rakudo/nom:
22:06 dalek rakudo/nom: For no other reason I got sick of them  :-)
22:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cdaa1f6847
22:07 sortiz jnthn, some recommendation? Is in line 62
22:07 jnthn sortiz: No, it makes sense for every other typed exception :)
22:07 jnthn I don't mind it, it just looked a little funny at first :)
22:08 lizmat jnthn: in the future, will private methods be even better optimized than normal methods ?
22:09 nekrodesk joined #perl6
22:09 sortiz I can test for the main class ;)
22:09 lizmat jnthn: I'm asking because I'm thinking about renaming BUILD methods that are not called by BUILDALL, to SET-SELF
22:09 lizmat (and make them private on the fly if there's a future benefit)
22:09 b2gills lizmat: I think I have discovered a problem or two with S04-exceptions/pending.t while looking into testing Exception.handled()
22:10 b2gills At least one test was completely pointless and skipped
22:10 sortiz b2gills, the .pending case, no?
22:10 jnthn lizmat: I think they already *are* better optimized...
22:10 lizmat jnthn: nothing I could see in a simple benchmark
22:11 lizmat but if they aren't now, they will be  :-)
22:11 b2gills sortiz: Yes, but I am looking into it to find more problems that I believe are there
22:11 jnthn m: class A { method m() { self!p }; method !p() { } }; for ^1000000 { A.m }; say now - INIT now
22:11 camelia rakudo-moar cdaa1f: OUTPUT«0.8324139␤»
22:11 jnthn m: class A { method m() { self.np }; method np() { } }; for ^1000000 { A.m }; say now - INIT now
22:11 camelia rakudo-moar cdaa1f: OUTPUT«0.75446429␤»
22:12 jnthn Hm, oddness
22:12 jnthn m: class A { method m() { self!p }; method !p() { } }; for ^1000000 { A.m }; say now - INIT now
22:12 camelia rakudo-moar cdaa1f: OUTPUT«0.7575794␤»
22:12 jnthn m: class A { method m() { self!p }; method !p() { } }; for ^1000000 { A.m }; say now - INIT now
22:12 camelia rakudo-moar cdaa1f: OUTPUT«0.8217081␤»
22:12 jnthn heh, OK, it's noise
22:12 jnthn So they're about identical
22:12 lizmat yeah...
22:12 sortiz b2gills, Yes, that annoys me too
22:13 jnthn I suspect if you didn't have spesh, privates would come out better
22:13 jnthn When you do, they probably come out near identical on Moar
22:13 jnthn privates probably come out ahead on JVM
22:13 jnthn At a guess ;)
22:13 b2gills sortiz: Actually I just mean the one test
22:14 lizmat jnthn: ok, don't see much difference with MVM_SPESH_DISABLE=1
22:14 lizmat apart from both being 2.5x slower
22:15 jnthn *nod*
22:15 rurban joined #perl6
22:15 jnthn Well, you're mostly measuring the cost of an extra hash lookup on a very short string
22:16 jnthn (Because all the Perl6::Optimizer does is devirtualize the private method call)
22:16 lizmat correction: more like 4x slower
22:16 jnthn :)
22:16 jnthn inlining + osr + jit FTW, I guess :)
22:16 * lizmat wants more!  :-)
22:17 jnthn You'll get it :)
22:18 jnthn For simple things like that, we can certainly inline better.
22:19 jnthn Just needs more analysis and...hopefully not touching deopt.c, which is the second scariest source file in MoarVM :)
22:22 arnsholt Which is the scariest one? =)
22:22 jnthn gc/orchestrate.c
22:23 sortiz b2gills, I found no docs nor specs about .pending
22:23 dalek rakudo/nom: 72dbb32 | lizmat++ | src/core/Rakudo/Internals.pm:
22:23 dalek rakudo/nom: Re-use the same empty hash if we don't have any
22:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/72dbb323a8
22:23 ramon joined #perl6
22:24 arnsholt jnthn: So something to do with the GC. But what does orchestration mean in that context? Is it the actual GCing, or something else?
22:24 b2gills sortiz: That's not even what I'm talking about, one of the tests was testing $! when it made no sense because it was obviously going to be empty.
22:25 buharin you know how to invoke perl6 from c?
22:26 SquireOfGothos joined #perl6
22:27 buharin http://www.devx.com/assets/devx/3724.pdf
22:28 jnthn arnsholt: Getting various threads to agree it's time to GC, coping with those that are blocked awaiting I/O or locks/condvars/sleep, assigning work to those threads that are avaialable to do in parallel, and making sure no thread goes back to allocating too soon, but still allowing concurrent sweep.
22:28 jnthn (And ensuring threads get to GC their own nursery whenever they can)
22:29 jnthn (For locality reasons)
22:30 jnthn And handling the various permutations of things that can go wrong (two threads trigger GC "at the same time" but we must elect only one coordinator, threads that were sleeping waking up in the middle of GC running, etc.)
22:30 buharin I need something like perl6.h
22:30 buharin ;d
22:31 jnthn buharin: The Perl 5 module Inline::Perl6 manages to do it
22:31 sortiz b2gills, are you talking about the test in line 29?
22:32 jnthn You won't get a perl6.h 'cus the Perl 6 compiler ain't written in C
22:33 buharin ?
22:33 buharin what?
22:33 buharin in C++?
22:33 sortiz buharin, Nop, in NQP and Perl 6
22:33 b2gills sortiz: That one makes sense, the fudged one right after does not. It should be looking at @fails instead. I have a bunch of tests that I'm adding or fixing in that area of the test file.
22:34 buharin whoa
22:35 buharin inlining perl6 to perl5
22:35 buharin and then invoke it from C
22:35 buharin ?
22:37 wamba joined #perl6
22:37 sortiz b2gills, Originally I interpret that test as that $! should be something different (not Exception), but defined with a .pending method. Thats the origin of my confusion.
22:38 dalek rakudo-star-daily: e093a4c | coke++ | log/ (8 files):
22:38 dalek rakudo-star-daily: today (automated commit)
22:38 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/e093a4c086
22:38 b2gills sortiz: $! should have no failures at that point, so asking it about pending failures is pointless
22:39 b2gills sortiz: I agree that .pending should be fixed
22:40 [Coke] MadcapJake: I'm on the GC, which is as far from doing anything with the "real" TPF you can be and still be in the TPF. :)
22:40 [Coke] Speaking with one of the board members is the way to go. Sorry
22:42 [Coke] ... and you already did that while I was working. excellent!
22:46 perlpilot joined #perl6
22:46 RabidGravy I've come to the conclusion today that however prettily a language allows you to write code that it's almost inevitable that once you start dealing with real world data some utter filth will creep in
22:46 sortiz b2gills, As I go by the "spec", I'll wait to see the new file.
22:47 perlpilot RabidGravy: Physicists agree with you  (see entropy :)
22:47 arnsholt jnthn: Yeah... that sounds complicated enough =D
22:47 [particle] joined #perl6
22:52 alpha123 RabidGravy: That's why APL is such a nice language. It looks awful to begin with, so you don't feel guilty about how ugly your code is.
22:52 RabidGravy :)
22:52 alpha123 That was nice about Perl 5 too, though unfortunately it was possible to write pretty P5 code
22:53 timotimo i'm back
22:54 apiw joined #perl6
22:57 * sortiz Was waiting, mistakenly, a more magic $!
23:05 llfourn so given that the Failure.handled = ... thing didn't exist before how is the versioning of that change handled?
23:08 sortiz llfourn, was specified and tested (but fudged as NYI), I suppose that is formally in v6.c
23:09 jnthn If it was fudged, it wasn't in 6.c
23:09 llfourn my reading of the situation was that versioning was to stop stuff breaking
23:09 llfourn right ^
23:10 lizmat so the onus is on the developer saying "use v6.c" and depending on Failure.handled = 1 to work, right?
23:13 sortiz jnthn, it was moar fudged, So if I understand what you write, v6.c is the language, not one implementation. no?
23:13 llfourn that answer works for me. ofc we need a way of specifying that we *are* going to use Failure.handled = (not sure if that's implemented yet)
23:14 jnthn lizmat: Well, if anyone *did* rely on Failure.handled = 1 working, we'll have broke them. But since it wasn't in the spectests we're "allowed". Of course, in such cases - of which there will be *many* until the spectest suite has doubled or quadroupled or so in size - we'll have to think carefully about such things.
23:14 jnthn lizmat: oh, and
23:14 jnthn We haven't borken that at all
23:14 jnthn Because we coerce
23:15 jnthn So you'd have to have something really contrived to hit problems.
23:15 jnthn sortiz: Yes, language version = set of tests that should pass
23:15 lizmat jnthn: before the PR of sortiz, you couldn't even assign to Failure.handled
23:15 jnthn Oh?
23:16 * jnthn looks at the history more closely
23:16 jnthn Aha
23:16 jnthn OK, then it's even more clear cut, I think
23:16 llfourn but it would fail if you try to assign no?
23:17 lizmat llfourn: afaik, yes
23:17 llfourn so if someone has an old p6 $failure.handled = True is going to die on them
23:17 lizmat star: Failure.new.handled = 1
23:17 camelia star-m 2015.09: OUTPUT«Failed␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/_7rGOdct8a:1␤␤»
23:17 lizmat star: Failure.new("foo").handled = 1
23:17 camelia star-m 2015.09: OUTPUT«foo␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/PoRLcxBA4D:1␤␤»
23:17 lizmat star: Failure.new("foo").handled
23:17 camelia star-m 2015.09: OUTPUT«foo␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/3lkmIpchD0:1␤␤»
23:18 lizmat hmmm... messing with Failures is intriguing  :-)
23:18 jnthn llfourn: Correct. Thus at the moment, being able to assign to it isn't in any version of Perl 6.
23:18 lizmat yup, so technically a 6.d.a feature ?
23:18 jnthn llfourn: It's in our current working draft (that is, master branch of roast) towards the next version now, though.
23:18 llfourn kk gotcha thanks
23:19 jnthn lizmat: Yes, though I reckon we'll have a 6.c.1, because the path to 6.d will be at least until the end of the year, and we should probably provide a way to within that time depend on more "minor" improvements.
23:20 llfourn would this be a candidate for 6.c.1?
23:20 jnthn llfourn: Very much so.
23:20 jnthn It's major things we'll be holding back on.
23:20 lizmat m: use nqp; my %h = a => 42; say nqp::existskey(%h,"a")  # jnthn, surprised this works
23:20 camelia rakudo-moar 72dbb3: OUTPUT«1␤»
23:21 llfourn cool.
23:21 lizmat so rakudo also downgrades automatically ?
23:21 jnthn lizmat: You and me both...
23:21 jnthn m: use nqp; my %h = a => 42; say nqp::existskey(%h,"b")
23:21 camelia rakudo-moar 72dbb3: OUTPUT«0␤»
23:21 jnthn o.O
23:22 sortiz :)
23:22 lizmat seems to work at least since 2015.03
23:22 jnthn m: my %h; say %h.^attributes[0]
23:22 camelia rakudo-moar 72dbb3: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤  in block <unit> at /tmp/YcB_SEPnNX line 1␤␤»
23:22 jnthn m: my %h; say %h.^attributes[0].associative_delegate
23:22 camelia rakudo-moar 72dbb3: OUTPUT«0␤»
23:22 jnthn m: my %h; say %h.^attributes[1].associative_delegate
23:22 camelia rakudo-moar 72dbb3: OUTPUT«1␤»
23:22 jnthn Aha!
23:22 jnthn That's why :)
23:22 jnthn I didn't know that flag had been set.
23:23 lizmat so that's a good thing ?
23:23 jnthn I'm half-inclined to gently discourage you from relying on this behavior, though.
23:23 jnthn Well, it exists primarily to help NQP
23:24 lizmat would it be faster than nqp::existskey(nqp::getattr(%h,Map,'$!storage'),"a") ?
23:24 jnthn And it's one of those things that was a big short-term performance win, but is a complex enough mechanism it may turn out to be really hard to optimize.
23:25 lizmat ok, so don't do that  :-)
23:25 jnthn lizmat: Not with something like spesh, no
23:25 jnthn It may save an op dispatch, but those go away with the JIT
23:26 lizmat should I find places in the core setting that do that and fix them?  I just found one in Setty
23:26 Hotkeys can 6.c.1 get ≥ and ≤ (and possibly ≠)
23:26 Hotkeys :p
23:26 jnthn Hotkeys: That one's not my call (thankfully :P). Depends what TimToady thinks. :)
23:26 Hotkeys Alrighty
23:27 jnthn lizmat: Up to you; it won't be hard for me to locate them if I do decide it's going away.
23:28 jnthn In general though, minor lang versions are about incremental bits, and major lang versions are stuff we'll want to shout about and highlight.
23:28 lizmat good night, #perl6!
23:28 Hotkeys night
23:28 llfourn night
23:28 jnthn 'night, lizmat
23:28 b2gills lizmat: If we in the future want to be able to have 「has bool $.handled is rw;」 then the Proxy for Exception.handled should probably enforce that it only receives a Bool for a value.
23:28 sortiz night
23:29 b2gills ... and good night
23:29 molaf joined #perl6
23:34 Hotkeys Are there any interesting uses for hyperwhatever?
23:35 AlexDaniel Hotkeys: … good question
23:35 Hotkeys m: (--**)(1,2,3,4,5)
23:35 camelia rakudo-moar 72dbb3: ( no output )
23:35 Hotkeys m: say (--**)(1,2,3,4,5)
23:35 camelia rakudo-moar 72dbb3: OUTPUT«(0 1 2 3 4)␤»
23:35 Hotkeys there's basic stuff like that
23:35 Hotkeys but
23:35 AlexDaniel let me rephrase it – “are there any uses at all?”
23:35 Hotkeys lol
23:35 jnthn m: say (1,2,3,4) ~~ (*,3,*)
23:35 camelia rakudo-moar 72dbb3: OUTPUT«False␤»
23:36 jnthn m: say (1,2,3,4) ~~ (**,3,**)
23:36 camelia rakudo-moar 72dbb3: OUTPUT«True␤»
23:36 Hotkeys crazy
23:36 AlexDaniel now that's something
23:36 jnthn :)
23:36 jnthn 'night, #perl6
23:36 Hotkeys night
23:36 llfourn night
23:37 AlexDaniel jnthn: I'm not sure what it means though
23:37 AlexDaniel m: say (1,3) ~~ (**,3,**)
23:37 camelia rakudo-moar 72dbb3: OUTPUT«True␤»
23:38 AlexDaniel m: say (3) ~~ (**,3,**)
23:38 camelia rakudo-moar 72dbb3: OUTPUT«False␤»
23:38 AlexDaniel m: say (3,5) ~~ (**,3,**)
23:38 camelia rakudo-moar 72dbb3: OUTPUT«True␤»
23:38 kid51 joined #perl6
23:39 AlexDaniel aaaah
23:39 AlexDaniel okay now I see it
23:39 AlexDaniel m: say [3] ~~ (**,3,**)
23:39 camelia rakudo-moar 72dbb3: OUTPUT«True␤»
23:39 AlexDaniel right.
23:40 AlexDaniel Hotkeys: well, if you created a list of possible use-cases for ** that'd be awesome
23:40 AlexDaniel Hotkeys: most people don't even know that it exists
23:41 Hotkeys I only just learning it existed
23:41 Hotkeys because I looked at your unicode gist again
23:44 wamba joined #perl6
23:45 cpage_ joined #perl6
23:46 wamba joined #perl6
23:51 sortiz AlexDaniel, most people don't even know that Perl 6 exists!
23:54 wamba joined #perl6
23:55 apiw joined #perl6
23:56 wamba joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo