Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-26

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:08 adu joined #perl6
00:18 flussence m: https://gist.github.com/flussence/4c53a9cf9a37083b4d1f
00:18 camelia rakudo-moar 3607d7: OUTPUT«gist not found»
00:18 flussence argh
00:19 flussence for some reason, that grammar there *only* works if I have a «use Grammar::Tracer;» at the top...
00:20 masak flussence: https://github.com/jnthn/grammar-debugger/issues/13
00:22 flussence hm... guess I'll just have to resort to mid-regex debug print statements for now
00:25 flussence oh for f-... that did the same thing!
00:26 timotimo you know you can --optimize=off if you suspect the optimizer is doing something wrong?
00:26 flussence I do now!
00:26 flussence hm, same thing there
00:27 flussence it works if I stick an empty {} in the middle of that ipv4 regex...
00:28 danstoner I want to exit my program cleanly from inside an "if" statement.
00:28 danstoner die spits out "ugly" info to the user if I use it.
00:28 laouji joined #perl6
00:29 danstoner Better way to "exit" a perl6 program from inside of a block?
00:30 jnthn exit;
00:30 jnthn Or exit 1; if you want to flag an error
00:30 jnthn (or whatever exit code you prefer)
00:30 danstoner ah yes.  I tried:
00:30 danstoner exit "friendly message";
00:31 danstoner plain exit works great, thanks!
00:31 jnthn If you want friendly message on stderr, then use note
00:31 jnthn note "friendly message";
00:31 danstoner Should I be able to find that info here: http://doc.perl6.org/language/
00:31 jnthn exit 1;
00:32 jnthn http://doc.perl6.org/routine/note is documented there
00:32 chemich joined #perl6
00:32 jnthn And apparently exit is missing.
00:33 dalek doc: 70ed8e8 | jnthn++ | WANTED:
00:33 dalek doc: Add exit to list of things needing documenting.
00:33 dalek doc: review: https://github.com/perl6/doc/commit/70ed8e8872
00:33 flussence aha, the regex works if I remove the «| <ipv6>» above it... maybe it gets confused trying to LTM against two double-nested quantifiers like that.
00:33 jnthn Now it's on the todo list :)
00:34 danstoner jnthn: neat! thanks
00:36 jnthn Time for some sleep... &
00:47 dalek evalbot: e683ad0 | thundergnat++ | lib/EvalbotExecuter.pm:
00:47 dalek evalbot: Unbusticate evalbot execution of gists
00:47 dalek evalbot:
00:47 dalek evalbot: Chase the ever changing URL extraction scheme to access the raw gist.
00:47 dalek evalbot: review: https://github.com/perl6/evalbot/commit/e683ad0b2e
00:54 flussence m: https://gist.github.com/flussence/ba4f546121d3fd278142
00:54 camelia rakudo-moar 3607d7: OUTPUT«gist not found»
00:54 * flussence shakes fist angrily at the sky
00:54 laouji joined #perl6
00:54 flussence (I golfed the grammar down)
00:55 flussence (and found a workaround! So I'm happy, I guess.)
00:59 fernando_ how can I know if a rw method is being used as a lvalue?
01:01 kaare__ joined #perl6
01:01 * Mouq would like to point out there's an API from which we could potentially get the raw value… https://developer.github.com/v3/gists/
01:03 Mouq https://api.github.com/gists/ba4f546121d3fd278142
01:03 masak 'night, #perl6
01:03 Mouq (for flussence's gist above)
01:03 Mouq 'night masak!
01:05 Mouq Or, in fact, the API just has the "content" section… :P
01:05 dalek evalbot: 620d8ef | thundergnat++ | lib/EvalbotExecuter.pm:
01:05 dalek evalbot: Fix evalbot execution of gists.
01:05 dalek evalbot:
01:05 dalek evalbot: Helps to use the correct domain name
01:05 dalek evalbot: review: https://github.com/perl6/evalbot/commit/620d8ef319
01:08 Mouq Aaand! we could support multiple files, only executing the ones that have "Language": "Perl6" set…
01:13 thundergnat joined #perl6
01:13 colomon joined #perl6
01:16 timotimo it could even make other files available under their names
01:16 timotimo as local files
01:17 Mouq timotimo: Except safe mode means that that should be useless
01:18 Mouq *RESTRICTED.SETTING
01:19 timotimo oh
01:19 timotimo well, it could pipe something in through stdin or something
01:19 Mouq true :)
01:19 camelia joined #perl6
01:19 Mouq But for now:
01:19 Mouq m: https://gist.github.com/flussence/ba4f546121d3fd278142
01:20 Mouq *ahem*
01:20 camelia rakudo-moar 3607d7: OUTPUT«gist not found»
01:22 thundergnat Hmmm. github must be doing some ...interesting url rewriting behind the scenes.
01:23 Mouq thundergnat++ for trying to manage this anyway :)
01:27 Mouq thundergnat: Err, in case you didn't see, http://irclog.perlgeek.de/perl6/2015-02-26#i_10181202
01:28 Mouq I'm not sure if thundergnat == flussence
01:28 Mouq I… don't think so
01:29 thundergnat No, I'm someone else. :-)
01:29 Mouq Haha, okay, sorry :)
01:29 thundergnat Actually, I hadn't seen that link. Thanks
01:30 fernando_ is it possible to know if a rw method is being used as a lvalue?
01:31 Mouq fernando_: You may want to look into Proxy
01:31 Mouq ...it looks like something broke doc's search bar
01:31 Mouq Oh, nvm
01:31 Mouq Something with my browser
01:34 fernando_ the function want() should exists?
01:35 Mouq m: sub aproxy() { my $p; Proxy.new( FETCH => { $p //= rand }, STORE => { $p = $^a.rand } ) }; my $proxy = aproxy; say $proxy; $proxy = 15; say $proxy
01:35 camelia rakudo-moar 3607d7: OUTPUT«0.526778118027559␤15␤»
01:35 dg joined #perl6
01:36 Mouq fernando_: I've never heard of it?
01:37 Mouq (At least not in Perl6. There is http://design.perl6.org/S06.html#The_want_function however)
01:37 fernando_ https://gist.github.com/anonymous/f2051640b4e470f33232
01:37 fernando_ http://perl6.org/archive/rfc/118.html
01:38 skids m: 1 +> -1; # This is not specced behavior, and in C undefined, and perl 5 undefined unless "use bigint".  Should I spec it?
01:38 camelia rakudo-moar 3607d7: ( no output )
01:38 skids erm
01:38 skids m: say 1 +> -1
01:38 camelia rakudo-moar 3607d7: OUTPUT«2␤»
01:38 fernando_ I wanted something like this: https://gist.github.com/anonymous/07ace64ffae13156cc05
01:39 Mouq fernando_: "Status: Retired"
01:39 Mouq on the RFC
01:39 fernando_ I dont know how to do that with Proxy
01:39 fernando_ Mouq: touche
01:40 echowuhao joined #perl6
01:41 Mouq Proxy.new(FETCH => { callsame }, STORE => -> \arg { $!chaged = True; callsame = arg }) perhaps?
01:41 Mouq I haven't done much with Proxy
01:42 fernando_ Mouq: ok, now I think I understood the proxy!
01:42 Mouq I also don't know if the blocks interfere with callsame…
01:42 telex joined #perl6
01:43 Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; do-something = 12
01:43 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lXh_OID0c2␤Preceding context expects a term, but found infix = instead␤at /tmp/lXh_OID0c2:1␤------> 3k = { callsame }; block}; do-something =7⏏5 12␤»
01:43 salv0 joined #perl6
01:44 Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; do-something() = 12
01:44 camelia rakudo-moar 3607d7: ( no output )
01:44 Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; say do-something = 12
01:44 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VtzvdqVQfI␤Preceding context expects a term, but found infix = instead␤at /tmp/VtzvdqVQfI:1␤------> 3{ callsame }; block}; say do-something =7⏏5 12␤»
01:44 Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; say (do-something() = 12)
01:44 camelia rakudo-moar 3607d7: OUTPUT«12␤»
01:44 Mouq Cool :)
01:49 fernando_ I got a "Segmentation fault: 11"
01:50 fernando_ with if:
01:50 fernando_ https://gist.github.com/anonymous/f6aa5b03a68a5a89a746
01:53 salv0 joined #perl6
01:55 Mouq A Segfault is always a problem with Rakudo. But I don't think you want "STORE => method", just a block or anonymous sub
01:59 fernando_ if I dont use method I'll cannot change the attribute $!changed, or will I?
02:01 Mouq It should curry the variable…
02:01 Mouq "curry" is indubitably the wrong word
02:01 camelia joined #perl6
02:02 chenryn joined #perl6
02:03 fernando_ i think now I got a infinite loop...
02:03 fernando_ https://gist.github.com/anonymous/19e247c86a65b34cfddb
02:03 thundergnat m: https://gist.github.com/thundergnat/4ef049ea74fefedd4820
02:03 camelia rakudo-moar 3607d7: OUTPUT«Yay! Camelia can execute gists again!␤»
02:03 Mouq m: my $c = my class { has $.bar = 15; method foo is rw { -> { $!bar } } }.new; my $foo := $c.foo.(); $foo = 3; say $c;
02:03 camelia rakudo-moar 3607d7: OUTPUT«<anon>.new(bar => 3)␤»
02:04 Mouq thundergnat++
02:04 thundergnat Sigh. It helps if you actually pull the changes _before_ you restart the bot...
02:18 fernando_ is it a infinite loop? https://gist.github.com/anonymous/6d3cb3ee4ddc0678db90
02:19 fernando_ Mouq: but I am not doing that inside a method...
02:21 pochi_ joined #perl6
02:27 thundergnat left #perl6
02:33 afoote joined #perl6
02:34 afoote how do i uninstall a module with panda?
02:35 colomon afoote: I don’t think panda has an uninstall command yet
02:38 colomon I think the files are installed to rakudo’s install/languages/perl6/site/lib/
02:39 afoote joined #perl6
02:51 fernando_ m: sub a () is rw {our $b}; &a.wrap(sub () is rw {Proxy.new: STORE => sub ($val) {callsame() = $val}, FETCH => sub {callsame}}); a() = 42
02:51 camelia rakudo-moar 3607d7: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in sub  at /tmp/pMPmWCaxvh:1␤  in block <unit> at /tmp/pMPmWCaxvh:1␤␤»
02:55 adu joined #perl6
02:55 fernando_ m:class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42
02:56 fernando_ I think camelia is on a infinit loop... :(
02:56 fernando_ sorry...
02:57 fernando_ no, not a loop...
02:57 fernando_ m: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42
02:57 camelia rakudo-moar 3607d7: OUTPUT«Memory allocation failed; could not allocate 89360 bytes␤»
02:57 fernando_ or yes, a loop
02:58 fernando_ should it run a infinite loop?
02:59 fernando_ p: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42
03:06 noganex_ joined #perl6
03:37 dolmen joined #perl6
03:47 adu joined #perl6
03:49 Ovid joined #perl6
03:56 broquaint Is "sink context" defined somewhere?
04:11 colomon joined #perl6
04:13 Mouq fernando_: But you are in a method, the one you're wrapping with…
04:15 Mouq m: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => -> $val, |c {callsame() = $val}, FETCH => {callsame}})}; A.new.a = 42 #hmm
04:15 camelia rakudo-moar 3607d7: OUTPUT«callsame is not in the dynamic scope of a dispatcher␤  in block  at src/gen/m-CORE.setting:742␤  in block <unit> at /tmp/y535_6fbCo:1␤␤»
04:16 echowuhao joined #perl6
04:22 Mouq m: sub foo { $ = 1 }; &foo.wrap:{ new Proxy: FETCH => { callsame } }; foo()
04:22 camelia rakudo-moar 3607d7: OUTPUT«Unhandled exception: callsame is not in the dynamic scope of a dispatcher␤   at <unknown>:1  (/home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:14885  (/home/camelia/rakudo-inst-2/lan…»
04:22 Mouq ^ Golf
04:32 laouji joined #perl6
04:54 pierrot_ joined #perl6
05:04 afoote joined #perl6
05:08 laouji joined #perl6
05:12 laouji_ joined #perl6
05:27 diana_olhovik_ joined #perl6
06:01 [Sno] joined #perl6
06:03 mephinet joined #perl6
06:06 laouji joined #perl6
06:16 laouji joined #perl6
06:30 jack_rabbit joined #perl6
06:34 bjz joined #perl6
06:41 xfix joined #perl6
06:52 dalek doc: 8be9545 | paultcochrane++ | README.md:
06:52 dalek doc: Correct typo and simple paragraph wrap
06:52 dalek doc: review: https://github.com/perl6/doc/commit/8be954532f
06:57 jack_rabbit joined #perl6
06:59 hypolin joined #perl6
07:01 Rounin joined #perl6
07:08 diana_olhovik joined #perl6
07:23 jack_rabbit joined #perl6
07:23 wicope joined #perl6
07:33 darutoko joined #perl6
07:36 abraxxa joined #perl6
07:38 anaeem1 joined #perl6
07:46 jack_rabbit joined #perl6
07:49 FROGGS joined #perl6
07:50 abraxxa joined #perl6
07:55 dalek doc: bb20897 | paultcochrane++ | CONTRIBUTING.md:
07:55 dalek doc: Document how to build the documentation
07:55 dalek doc:
07:55 dalek doc: This includes a dependency installation guide.
07:55 dalek doc: review: https://github.com/perl6/doc/commit/bb2089786c
07:56 _mg_ joined #perl6
07:56 Vlavv joined #perl6
08:01 raydiak grr kwin keeps crashing with compositing turned on, but I feel like I'm working blind without a transparent terminal to read docs/sources and code at the same time
08:02 zakharyas joined #perl6
08:05 geekosaur so turn off kwin compositing and install compton
08:05 jack_rabbit joined #perl6
08:06 raydiak huh...good idea, thanks...guess it was kinda blind not to think of the other compositors :)
08:06 laouji_ joined #perl6
08:08 geekosaur well, there are disadvantages; it's actually kinda hard to do compositing right without access to window manager internals, it turns out
08:08 raydiak seems to be working a charm so far, albeit without the compiz glitz I don't really care about
08:08 geekosaur (X11's compositing interface is kinda messed up)
08:09 beastd joined #perl6
08:09 prime joined #perl6
08:09 raydiak ooh --backend glx even
08:10 espadrine joined #perl6
08:10 bjz joined #perl6
08:13 Ven joined #perl6
08:14 raydiak I'm likely to replace my DE or maybe distro soon anyway, it's been flaky for a while now; and I gave kde a good shot for like 8 months, but it's just too heavy for my taste
08:14 raydiak but in the mean time, here's hoping compton will help me procrastinate some more :)
08:17 * raydiak wonders if a kernel downgrade might help some of his issues...was sure this thing used to run cooler and more stably at some indeterminant point in the past
08:19 virtualsue joined #perl6
08:19 raydiak it idles at like 60 degrees, used to be more like 45, and it's not like there's a bunch of abberant cpu usage (except chrome as always :P)
08:20 Ven o/, #perl6
08:21 raydiak hello Ven
08:22 sqirrel_ joined #perl6
08:28 FROGGS raydiak: you may need to clean the cpu fan
08:28 FROGGS you can easily increase your cpu temperature with a dirty fan and cooler
08:29 rindolf joined #perl6
08:29 raydiak FROGGS: yeah you're probably right, I just didn't want it to be that...it's like 40 screws and basically complete disassembly
08:30 raydiak have to take *all* the layers apart...keyboard, motherboard, everything just to get at it :P
08:30 FROGGS raydiak: well, you can be glad it is not a mac :o)
08:30 raydiak I have one, wish I could still use it, but the cord on the power supply went bad
08:31 FROGGS my dell laptop got up to 105°C with a dirty fan... after cleaning it got back to 65°C or so, when compiling rakudo on all three backends at once
08:31 FROGGS well, ebay offers cheap power supplies, no?
08:31 nwc10 FROGGS: the apple magsafe connector is patented (or something) - no-one else makes them
08:32 raydiak and there isn't knock-off magsafe adapters, so it's like $80, which is about what I could sell the whole thing for once it works again
08:32 nwc10 and it seems to be a design fault
08:32 [Sno] joined #perl6
08:32 FROGGS ahh, I see
08:32 nwc10 my second one gave up, despite me being very careful with it
08:32 nwc10 I now have one blagged from work
08:32 nwc10 but the laptop is 7
08:32 nwc10 so I'm waiting for something else to fail
08:32 nwc10 (battery is held in with genuine Gaffer tape, keyboard space bar is starting to give up)
08:33 raydiak well there are some knockoffs, but all the reviews I check say they fry out the power port and stuff like that
08:33 nwc10 and, curiously, I think it's running hotter than it used to
08:33 nwc10 so that comment about fans is curious
08:33 nwc10 oh, and on second battery, which may give up in a year
08:33 FROGGS :o)
08:33 FROGGS I do like my dell
08:33 nwc10 at which point I'm hoping that ARM v8 chromebooks look interesting
08:34 FROGGS I get cheap (used) replacement parts and it is very easy to disassemble... I like things that I can fix by myself
08:34 nwc10 because that gets me ARM v8 to play with, and a new portable device
08:34 raydiak I was thinking about seeing if I could solder the power cord straight on to the little power adapter board inside, but fear it's probably tiny contacts beyond my crude soldering skills
08:34 FROGGS nwc10: hmmm, nice option
08:34 nwc10 FROGGS: I haven't worked out yet if it's possible
08:35 nwc10 I'm hoping it gets easier the longer I can delay
08:35 FROGGS that's often true
08:37 raydiak .oO( omg I wonder if this started after that one time I fell asleep with the laptop on the carpet )
08:39 FROGGS coincidence! :P
08:42 raydiak maybe while I have the thing apart I can cut out an access panel to get to the only serious maintinence part without major surgery next time
08:47 * raydiak wishes things like modern cars and laptops weren't designed in ways which actively discourage fixing them
08:47 jack_rabbit joined #perl6
08:53 bjz joined #perl6
08:58 tadzik yes
08:59 tadzik you have to pick them very carefully to be able to do anything with them
09:01 rurban joined #perl6
09:02 abraxxa joined #perl6
09:04 raydiak I'm actually pretty satisfied for $120 at a pawn shop, but it does have it's annoyances and limitations
09:04 raydiak what does "method sink () { self }" accomplish?
09:07 jnthn Not much... :)
09:07 jnthn "If this object is in sink (void) context...evaluate to itself"...except the value is of course thrown away
09:10 raydiak it's PythonObject from Inline::Python, which represents a function as far as I can tell
09:10 jnthn Ah...maybe it's to suppress the call getting delegated to Python?
09:11 masak good antenoon, #perl6
09:11 raydiak does it make a difference if it has a postcircumfix:<( )> ?  could it be helping making the object callable?
09:11 raydiak \o masak
09:11 * FROGGS .oO( gut pull - what a typo )
09:12 raydiak oh yeah I get it...so when rakudo calls .sink...yeah got it :)
09:12 lizmat .oO( better than gut push )
09:13 FROGGS wow, URI::Encode::uri_encode is veeeery sloooow
09:13 FROGGS (if you call it often enough)
09:14 jnthn .oO( not sure a gut show is much better... )
09:14 raydiak jnthn: wait wouldn't you potentially have to do the same thing for lots of other methods? eg .list or .flat if it's used in a flattening context?
09:15 jnthn raydiak: I suspect those are inherited, but there's no default sink method
09:15 raydiak jnthn: ah, cool then...the only leak is in the sink
09:16 [ptc] FROGGS: got commit?
09:17 FROGGS [ptc]: no, I didnt gat a commit, I made one by myself :o)
09:17 [ptc] :-D
09:19 dalek doc: 629a420 | moritz++ | / (2 files):
09:19 dalek doc: Document sub exit
09:19 dalek doc: review: https://github.com/perl6/doc/commit/629a420dfd
09:19 dalek doc: 0aa46b0 | moritz++ | lib/Type/List.pod:
09:19 dalek doc: Sub form of eager
09:19 dalek doc: review: https://github.com/perl6/doc/commit/0aa46b0e3d
09:19 dakkar joined #perl6
09:19 Alina-malina joined #perl6
09:20 sjn #perl6 stuff happening in Oslo next week \o/ http://blogs.perl.org/users/damian_conway/2015/02/a-big-week-in-oslo.html
09:22 nine_ the sink() is just for fixing Rakudo failing with an unknown method sink message
09:22 raydiak huh
09:23 nine_ raydiak: why are you asking?
09:23 raydiak nine_: I hope you don't mind, I'm blatantly ripping off some of your work for Inline::Lua but will credit you in the README :)
09:25 larion joined #perl6
09:25 jnthn moritz++ # tireless doc work
09:25 nine_ raydiak: not at all...I'm glad I created something useful :)
09:25 fhelmberger joined #perl6
09:26 * moritz doesn't feel tireless at all *yawn*
09:27 FROGGS :o)
09:27 jnthn ;)
09:28 raydiak nine_: I even improved the native() technique to not have to write it at all for each sub in Lua::Raw, in EXPORT I just run over all the subs and match the name against /^luaL?_/ ...this lets people write "use Lua::Raw <JIT>", "use Lua::Raw <5.1>" and so forth too
09:29 dalek rakudo/newio: 2eee799 | lizmat++ | src/core/IO.pm:
09:29 dalek rakudo/newio: Fix case of broken symlink
09:29 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/2eee7996c4
09:30 kjs_ joined #perl6
09:31 bayprogrammer joined #perl6
09:32 espadrine joined #perl6
09:32 nine_ raydiak: oh that sounds like a good idea
09:32 raydiak though I actually want to make the version a property of the Inline::Lua instance instead...different versions are not composable as-is
09:34 raydiak e.g. the first module that you load determines the version that everything subsequent gets...maybe need Lua::Raw['JIT'] or so to fix that, but I haven't tried yet
09:37 raydiak but first I'm working on tables which in lua provide objects and classes and hashes and arrays, so my crude suppor there kinda limits its iterop usefulness atm
09:38 raydiak *support
09:38 ab5tract unfortunately, i don't have time to backlog properly, but i wanted to make sure you folks saw this http://www.techworld.com/careers/perl-developers-dispel-doubts-about-codes-longevity-3599357/
09:41 osfameron ab5tract: yeah, that was a pretty good article
09:49 raydiak nine_: what happens if someone wants to call e.g. a method named 'list' on a PythonObject? is that what .invoke is for?
09:51 nine_ raydiak: yes
09:51 nine_ raydiak: err...no!
09:52 nine_ That is handled by the add_fallback code further down
09:52 nine_ invoke() handles callable objects
09:53 * TimToady home before 2am
09:53 raydiak I mean if you try to call a method which is named something that is already inherited from Any or Mu, you get the Perl method not the Python one, right?
09:54 nine_ Itvdepends on which invoke you mean. There's Inline::Python::invoke and Inline::Python::Object::invoke
09:54 raydiak TimToady: welcome home :)
09:54 nine_ raydiak: yes that's still a problem
09:54 jnthn TimToady: Sounds like long journey was long...
09:55 nine_ raydiak: see my FOSDEM talk for a workaround (HTML::Parser example)
09:55 nine_ typing on phones sucks....
09:56 raydiak nine_: cool thanks, I'll check it out
09:56 raydiak typing on laggy ssh connections isn't all that great either :)
09:59 raydiak the table implementation is going to be fun...basically one class which supports method calls, positional, *and* assosciative
10:00 moritz like Match
10:01 raydiak usually that ambiguity is a problem for translating from lua, b/c no way to know if lua empty table is a hash, array, object, class, etc...but it's p6 so I can just have one object do all the things and respond according to how it's accessed instead of what was returned from lua
10:01 raydiak yeah...or like Capture, but that turned out to be a different complicated story
10:03 nine_ It's really nice that Perl 6 seems to be a superset of other languages' features.
10:03 raydiak moritz: btw the docs say "class Capture does Positional does Associative { }", but it actually doesn't do either one in the code...but that description is functionally very useful as far as understanding the intent goes
10:03 nine_ No mstter how complicated the foreign API, we can map it to Perl6
10:04 raydiak so true
10:04 raydiak afk for a few
10:04 FROGGS nine_: I feel the same with C/C++ interop :o)
10:06 moritz m: say Capture ~~ $_ for Positional, Associative
10:06 camelia rakudo-moar 3607d7: OUTPUT«True␤True␤»
10:06 moritz raydiak: ^^
10:06 moritz it does both
10:06 nine_ in p5's Inline::Python it was a real problem that p5 has no real named arguments
10:08 FROGGS a proper type model also helps a lot
10:08 FROGGS for the C++ name mangling you would have to pass strings around instead of types to make it work
10:09 nine_ oh yes Types++
10:10 raydiak m: say Capture ~~ Positional
10:10 camelia rakudo-moar 3607d7: OUTPUT«False␤»
10:10 raydiak m: say Capture ~~ Associative
10:10 camelia rakudo-moar 3607d7: OUTPUT«False␤»
10:11 moritz huh.
10:11 moritz m: say Catpure.^roles
10:11 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zWzPHM1vu5␤Undeclared name:␤    Catpure used at line 1. Did you mean 'Capture'?␤␤»
10:11 moritz m: say Capture.^roles
10:11 camelia rakudo-moar 3607d7: OUTPUT«␤»
10:11 moritz m: say Capture.^mro
10:11 camelia rakudo-moar 3607d7: OUTPUT«(Capture) (Any) (Mu)␤»
10:12 raydiak and not in the code that I could find, either by declaration or by metamodel
10:12 raydiak afk again
10:15 jnthn moritz: Beware ~~ with $_ :)
10:15 moritz also I wonder why Iterable is a class, not a role
10:15 moritz jnthn: oh right :/
10:15 virtualsue joined #perl6
10:19 sqirrel_ joined #perl6
10:20 noganex joined #perl6
10:23 spider-mario joined #perl6
10:23 pecastro joined #perl6
10:32 telex joined #perl6
10:45 raydiak back
10:50 rindolf joined #perl6
10:53 dalek doc: c2ded1a | (Matthias Krull)++ | CONTRIBUTING.md:
10:53 dalek doc: added some more introductory information to CONTRIBUTING
10:53 dalek doc: review: https://github.com/perl6/doc/commit/c2ded1a038
11:05 thilp joined #perl6
11:10 dalek doc: 83ec926 | paultcochrane++ | htmlify.p6:
11:10 dalek doc: s/hilight/highlight/
11:10 dalek doc: review: https://github.com/perl6/doc/commit/83ec926e47
11:10 dalek doc: ee49c3c | paultcochrane++ | htmlify.p6:
11:10 dalek doc: Expand single char variable names for clarity
11:10 dalek doc: review: https://github.com/perl6/doc/commit/ee49c3ce13
11:10 dalek doc: 3b6d55b | paultcochrane++ | lib/Language/traps.pod:
11:10 dalek doc: Mention how to reference last element of an array
11:10 dalek doc: review: https://github.com/perl6/doc/commit/3b6d55bbac
11:10 dalek doc: 114c308 | paultcochrane++ | lib/Language/traps.pod:
11:10 dalek doc: Mention how to capitalize strings
11:10 dalek doc: review: https://github.com/perl6/doc/commit/114c308b12
11:10 dalek doc: 49f6df8 | paultcochrane++ | CONTRIBUTING.md:
11:10 dalek doc: Merge branch 'master' of github.com:perl6/doc
11:10 dalek doc: review: https://github.com/perl6/doc/commit/49f6df8707
11:10 dalek doc: 1160afc | paultcochrane++ | CONTRIBUTING.md:
11:10 dalek doc: Correct pygementize package name for Debian
11:10 dalek doc: review: https://github.com/perl6/doc/commit/1160afc3a0
11:10 dalek doc: 5b89eac | paultcochrane++ | htmlify.p6:
11:10 dalek doc: Append doc source reference link to Type and Language pages
11:10 dalek doc: review: https://github.com/perl6/doc/commit/5b89eac347
11:10 sergot hi #perl6
11:12 raydiak hello sergot
11:13 virtualsue joined #perl6
11:17 chenryn joined #perl6
11:17 moritz [ptc]++
11:20 moritz http://arewewebyet.com/ Perl 6 doesn't do too bad in comparison, I'd say :-)
11:20 Ven joined #perl6
11:22 sqirrel_ joined #perl6
11:25 laouji_ joined #perl6
11:30 * masak wishes he had more tuits for his 'isperl6readyforproduction' idea :/
11:31 masak I like the color coding and categories.
11:31 nwc10 masak: is there a webserver in perl 6 on which to run it?
11:31 nwc10 how is the mini-masak?
11:34 * masak answers that in privmsg :)
11:35 masak nwc10: yes, there is a webserver. yes, we could totally dogfood it.
11:35 masak nwc10: but if I wanted to be practical in that case, I would statically generate it. no good reason not to.
11:36 * Ven looks at the smalltalk videos from fosdem..
11:36 moritz and the pages would load a lot faster :-)
11:36 * raydiak goes to bed o/
11:44 masak nwc10: nothing to prevent us from dogfooding an excellent static generator, though.
11:44 coffee` joined #perl6
11:46 _mg_ joined #perl6
12:02 chenryn joined #perl6
12:13 AndChat-458964 joined #perl6
12:19 rurban joined #perl6
12:21 Akagi201 joined #perl6
12:26 chenryn joined #perl6
12:31 literal how do I require a minimum version of a module when loading it with Inline::Perl5?
12:44 moritz use Inline::Prel5:ver<0.1+> or something like that
12:44 moritz but I doubt it actually works
12:48 kjs_ joined #perl6
12:50 Akagi201 joined #perl6
12:51 psch \o
12:52 psch doesn't the p5 side of Inline::Perl5 handle that?
12:52 psch oh, i suppose not with our «use»
12:57 moritz oh, I misunderstood literal
12:58 literal I would settle for checking $object.VERSION after instantiating the class, but that doesn't work either
13:06 leont joined #perl6
13:07 pmurias joined #perl6
13:08 pmurias does a php to Perl 6 translator sound like a sane idea?
13:08 Ven sane? no. amazing? Sure :D
13:08 literal sounds saner than a Perl 6 to PHP translator
13:09 sqirrel_ joined #perl6
13:09 psch literal: VERSION is usually a package sub, not a method i think?
13:09 psch although i'll readily admit i don't know much about p5 OO
13:09 literal yeah, but in Perl 5, methods are package subs
13:10 * psch remembers something about bless
13:10 literal they just do something special with their first argument ($self)
13:10 psch checking the version in a perl5 program is with $Module::Name::VERSION, not with my $obj = Module::Name->new(); $obj->VERSION;, right? does that make a difference?
13:11 pmurias Ven: seems the best way of learning PHP as writing something in it doesn't seem like a good option ;)
13:12 laouji_ joined #perl6
13:14 literal psch: yeah, the former is the conventio, but both work
13:16 psch literal: i see.  if VERSION isn't reachable through Inline::Perl5 i suspect nine_++ would want to know
13:17 literal actually, you can ignore me, the issue was that the Perl 5 package I was loading was lacking a "our $VERSION = ..."
13:17 literal so $object.VERSION actually does give me the version now
13:19 literal "use Perl5Module:ver<0.1>" doesn't work though, and would be Nice To Have
13:19 literal forgot the :from<Perl5> there
13:22 pmurias literal: a Perl 6 to PHP translator doesn't seem possible, it would have to be a compiler as Perl 6 is much more powerful
13:22 literal exactly
13:26 moritz nqp-php, I hear you coming
13:32 kaleem joined #perl6
13:48 grondilu joined #perl6
13:56 Ven .oO( nqphp )
13:57 tadzik that was phpish :)
13:57 nine_ literal: can you please open a github issue for Perl 5 module version requirement? Sounds somewhat simple to implement.
13:58 nine_ After my flight instructor's exam tomorrow I should have a lot more spare time :)
14:00 Ven tho, really, code generation backends would be interesting if not so difficult considering p6's ßemantics :)..
14:01 mjreed joined #perl6
14:01 nine_ Writing compilers in Perl 6 is a piece of cake.
14:01 mjreed Does %*ENV not work in rakudo-star?  Or did the spec change?
14:02 moritz star-m: say %*ENV.perl
14:02 camelia star-m 2015.01: OUTPUT«("LANG" => "POSIX", "SHELL" => "/bin/bash", "MANPATH" => "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/man:/usr/local/man:/usr/share/man", "LC_CTYPE" => "en_US.UTF-8", "PERLBREW_BASHRC_VERSION" => "0.71", "LOGNAME" => "camelia", "PERLBREW_MANPATH" => "/home/…»
14:02 mjreed ok.  something weird with my local build then
14:03 mjreed should have just tried that, but not sure what’s supposed to be in the env of the bot, which might have been cleansed for security purposes etc.
14:03 mjreed Thanks.
14:12 laouji joined #perl6
14:16 Ven smalltalk's surprising. Why does reversing a symbol give a string?
14:16 Ven .oO( we're not the only one with a "bad" reverse *g* )
14:19 ab5tract m: my $x; $x *= 5; say $x
14:19 camelia rakudo-moar 3607d7: OUTPUT«5␤»
14:19 literal nine_: sure
14:19 ab5tract i was a bit surprised by that
14:21 ab5tract not sure if i was only surprised because ++$x autovivs $x as 0, or what
14:23 ab5tract especially in the context of
14:23 ab5tract m: my $x; $x /= 5; say $x
14:23 camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤  in method Numeric at src/gen/m-CORE.setting:14974␤  in sub infix:</> at src/gen/m-CORE.setting:5144␤  in block <unit> at /tmp/s2djlLmYE8:1␤␤»
14:24 ab5tract (unless i am misreading what zero-arg means there, which i took to mean "can't have a 0 as an operand for infix:</>"
14:25 ab5tract which, yes, i am misreading
14:27 colomon does seem a bit odd that *= works but /= doesn’t.
14:28 colomon might have something to do with Rats?
14:28 btyler this was in the context of the sharp ends of perl 5's "sometimes autoviv without warning, sometimes warn" behavior with my $foo; $foo (op)= (value)
14:29 * colomon has to admit he’s not really convinced that the *= example makes sense
14:29 btyler ie in perl5: my $foo; $foo += 1; does not warn, you get 1. my $foo; $foo *= 3; warns, you get 0.
14:30 ab5tract colomon: indeed, it seems to me that the case of autoviving to a number should have a consistent rule
14:31 colomon I’m pretty sure these ideas got added to the language for handling [+] and [*]
14:31 colomon In both cases, using the additive / multiplicitive identity makes great sense
14:32 colomon but I don’t know if I’d expect it to autoviv the same way
14:32 ab5tract hmmm. yes i can see it in that context.
14:33 btyler m: say [/] 1 .. 5;
14:33 camelia rakudo-moar 3607d7: OUTPUT«0.008333␤»
14:33 btyler seems to not use the zero-arg multi
14:33 btyler at any point
14:34 btyler but yeah, the identity makes sense there, also agree
14:36 colomon m: say [/]
14:36 camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤  in method gist at src/gen/m-CORE.setting:14976␤  in sub say at src/gen/m-CORE.setting:17740␤  in block <unit> at /tmp/jQZOLKWC09:1␤␤»
14:36 colomon m: say [*]
14:36 camelia rakudo-moar 3607d7: OUTPUT«1␤»
14:36 colomon that’s the difference there
14:37 colomon it does seem to me that both should return q
14:37 colomon errr, 1
14:37 colomon :)
14:37 colomon hmmm
14:37 colomon m: say [-]
14:37 camelia rakudo-moar 3607d7: OUTPUT«0␤»
14:37 colomon yeah, definitely 1
14:40 moritz huh, what's the problem?
14:40 colomon moritz: looks like no one ever defined the zero-arg version of infix:</>
14:41 colomon or possibly it’s getting muddled up in Rat handling somewhere
14:41 FROGGS does it make sense to have a "zero arg version"
14:41 FROGGS ?
14:42 ab5tract well, i don't get why '$x /= 5' could be considered zero arg in the first place
14:42 moritz m: say [/]
14:42 camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤  in method gist at src/gen/m-CORE.setting:14976␤  in sub say at src/gen/m-CORE.setting:17740␤  in block <unit> at /tmp/aALq4KDilL:1␤␤»
14:42 FROGGS I mean, for * it does not matter what is LHS or what is RHS..., but for / it matters
14:42 ab5tract FROGGS: same can be said about -
14:43 FROGGS probably...
14:43 fernando_ joined #perl6
14:43 ab5tract only difference is that pesky divide by zero ;)
14:44 fernando_ joined #perl6
14:44 * grondilu thinks binary operators should have a zero arg version only when there is a clearly identified neutral element.
14:45 colomon grondilu: which there is for both subtraction and division
14:45 colomon FROGGS: I don’t see how LHS vs RHS enters in at all
14:45 colomon ?
14:45 grondilu not sure about division, 1 is a right-neutral element, but not a left-one.
14:46 grondilu (same for substraction)
14:46 colomon grondilu: good point
14:49 FROGGS colomon: I understand it that way: zero-arg meaning for + is 0 because 0 + n = 0... and 1 * n = n... but there is no such thing for division or subtraction
14:49 * colomon does think we should be considering this as two different issues: what happens with meta-op reduct and what happens with auto-viv
14:49 FROGGS err, 0 + n = n
14:50 colomon but (as grondilu points out), if you write it the other way it makes perfect sense: n - 0 = n and n / 1 = n
14:50 * [Coke] wonders who the christoph is that replies to all the perl6 questions on StackO.
14:50 FROGGS m: my $x; $x *= 5; say $x # I'd think this should be 0 and that means $x has to autoviv to 0 first, and that it does not do that is a bug
14:50 camelia rakudo-moar 3607d7: OUTPUT«5␤»
14:50 moritz FROGGS: it's a design decision that it's not 0
14:51 rmgk_ joined #perl6
14:51 FROGGS ahh, hmmm
14:51 FROGGS interesting :o)
14:51 colomon moritz: but I’m certainly willing to question that design decision
14:52 FROGGS [Coke]: probably usev6 / bartolin
14:52 moritz colomon: questioning that is best done by collecting use cases
14:52 [Coke] ah. the only matching name in my head was cotto, and I was pretty sure that was wrong. Danke.
14:52 FROGGS [Coke]: kein Thema
14:53 nine_ moritz: do you know the rationale for this design decision? Looks quite surprising to me.
14:55 Ven joined #perl6
14:57 fernando_ joined #perl6
14:57 grondilu degenerate cases are tricky anyway.  I've suggested once that someone writes a synopsis about them.
15:00 moritz nine_: not sure, but maybe the idea was to view a non-existing element like a zero-element list
15:01 fernand__ joined #perl6
15:01 moritz my %weights; %weights{$name} *= 1.05;
15:05 ab5tract moritz: it's fair to say "we autoviv to 1 for * because we want [*] to be sane"
15:05 ab5tract but then what's going on here?
15:05 colomon but reduction very explicitly does NOT work that way
15:06 colomon (autoviv-like, I think)
15:06 fernando_ joined #perl6
15:06 ab5tract where here is $x /= 5
15:07 colomon actually, maybe I’m not understanding what ab5tract is trying to get at here
15:08 ab5tract colomon: well, i can vibe with the argument that for * we autoviv to 1
15:08 ab5tract it's kind of surprising, but in the context of [*] it makes sense
15:08 colomon Ah, I see those as almost completely separate issues
15:09 ab5tract but isn't the idea so that [*] 5, 6, undef, 7 will DWIM
15:09 ab5tract ?
15:09 ab5tract that seems exactly like autoviv to me
15:09 colomon m: say [*] 3, 4, Int, 5
15:09 camelia rakudo-moar 3607d7: OUTPUT«Invocant requires an instance, but a type object was passed␤  in method Bridge at src/gen/m-CORE.setting:5458␤  in sub infix:<*> at src/gen/m-CORE.setting:5369␤  in sub  at src/gen/m-CORE.setting:21008␤  in block <unit> at /tmp/OHhUe5xM96:1␤␤»
15:09 PerlJam colomon: you'd have to use Nil instead
15:09 ab5tract m: [*] 1,2,$x,3
15:09 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SCT6Syfhko␤Variable '$x' is not declared␤at /tmp/SCT6Syfhko:1␤------> 3[*] 1,2,$x7⏏5,3␤    expecting any of:␤        postfix␤»
15:10 ab5tract m: my $x; [*] 1,2,$x,3
15:10 camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/czu8iVYtsf:1␤␤»
15:10 FROGGS m: my $x; say [*] 1,2,$x,3
15:10 camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/rk4QVI7CAg:1␤␤0␤»
15:10 colomon yeah, it’s not supposed to autoviv there
15:10 ab5tract okay, i stand corrected. they are very different issues
15:10 ab5tract all that is very confusing in my opinion
15:10 colomon :)
15:10 PerlJam ab5tract: sometimes autoviv to 0 and other times autoviv to 1 would be *highly* surprising
15:11 ab5tract PerlJam: yet that is exactly the behavior we currently have
15:11 colomon issue one: what happens when you do a reduct on the empty list?  That’s where the 0 and 1 thing makes sense for sure with [+] and [*]
15:11 PerlJam ab5tract: show me?
15:12 colomon issue two: what happens when you need to autoviv a number into a [math-op]= expression?
15:12 ab5tract m: my $x; $x *= 5; say "$x autovivs to 1 for *"; my $y; $y += 5; say "$y autovivs to 0 for +";
15:12 camelia rakudo-moar 3607d7: OUTPUT«5 autovivs to 1 for *␤5 autovivs to 0 for +␤»
15:13 PerlJam ab5tract: ah.
15:13 PerlJam I'd call that at least one bug.
15:13 ab5tract m: my $x; $x /= 5; say "$x doesn't autoviv for /"; my $y; $y -= 5; say "$y autovivs to 0 for -";
15:13 camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤  in method Numeric at src/gen/m-CORE.setting:14974␤  in sub infix:</> at src/gen/m-CORE.setting:5144␤  in block <unit> at /tmp/Hp5Hs3Co__:1␤␤»
15:14 colomon BTW, that’s a very LTA error message
15:14 ab5tract so yeah, i would claim WAT/YAPAE, if not bug
15:16 ab5tract i also don't get why reduct should ever be else than 0 for an empty list
15:17 colomon ab5tract: http://en.wikipedia.org/wiki/Product_%28mathematics%29#Product_of_sequences
15:17 PerlJam Does the behavior of my $x; $x *= 5;  fall out of the reductio ad nihilo of [*]?   What I mean is, was this an accidental by product?
15:18 colomon PerlJam: don’t think so
15:18 colomon it was explicitly done
15:18 PerlJam Hmm.
15:20 [Coke] m: say [*] Nil
15:20 camelia rakudo-moar 3607d7: OUTPUT«1␤»
15:20 xinming joined #perl6
15:22 ab5tract colomon: damnit, math wins again ;(
15:23 njmurphy joined #perl6
15:24 colomon ab5tract: where it gets tricky is with subtraction and division.  As far as I know, niether one has a standard math eqivalent like [+] and [/] do
15:24 xfix joined #perl6
15:25 colomon like with subtraction, you’d always just say (using p6 instead of standard math notation) n - [+] rather than [-]
15:25 PerlJam Still seems to me like  my $x;  $x *= $blah;  # just hides an error that would otherwise be caught.
15:26 colomon PerlJam: yes, as I said above I think autoviv is a separate issue from reduct on empty lists
15:26 colomon or at least, it’s conceptually different
15:26 PerlJam aye.  I'm just agreeing after engaging what little brain power I have this morning  :)
15:26 * PerlJam prepares the caffiene
15:31 * colomon wonders
15:31 colomon m: my $x; say $x * 4
15:31 camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/Pi1MeECq1T:1␤␤0␤»
15:32 * colomon thinks it is a very bad idea to have $x = $x * 4 and $x *= 4 return different answers
15:32 laouji joined #perl6
15:32 colomon m: my $x; $x = $x * 4; say $x
15:32 camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/mHXag8h89M:1␤␤0␤»
15:32 * colomon wants to rephrase that Very Bad Idea
15:35 rurban joined #perl6
15:39 chenryn joined #perl6
15:42 tadzik d'oh, http://github-awards.com/users/search?login=tadzik lists me as #1 in the world in Perl 6
15:42 tadzik I guess it means "number of repos" :)
15:42 colomon tadzik++
15:43 colomon though I’m pretty sure I have more than 7 perl 6 repos
15:43 colomon Woo-hoo, I’m Midland Michigan’s #1 perl 6 programmer!
15:44 moritz http://github-awards.com/users?language=perl6&amp;type=world show that it's by stars
15:44 moritz and panda simply has the most stars of all the perl6 github repos
15:45 kjs_ joined #perl6
15:45 * colomon is pretty sure it is misidentifying my p6 repos as p5 repos
15:45 * Ven now wonders if "Pair" has any kind of.. association with smalltalk's association class :)
15:46 * Ven should probably ask TimToady about that...
15:46 njm joined #perl6
15:47 njm left #perl6
15:48 njmurphy joined #perl6
15:54 chenryn joined #perl6
15:54 FROGGS tadzik: it thinks that my repos are almost all about P5 :o(
15:55 tadzik yeah, same here
15:55 FROGGS ahh, yeah
15:55 PerlJam well ... Perl is Perl is Perl  ;)
15:58 fernando_ joined #perl6
15:59 Ulti so my bioinformatics code (unchanged) has gone from 35 seconds 61.8% JIT on 22nd August to 8 seconds 80.3% JIT just now http://mattoates.co.uk/files/perl6/
15:59 Ulti those are some quite big differences in numbers
15:59 pyrimidine Ulti: \o/
16:00 colomon \o/
16:00 PerlJam Ulti: nice.
16:00 Ulti in half a year of work
16:00 Ulti and I didnt have to do anything :)
16:00 ab5tract colomon: FWIW, perl 5 warns in the case of '$x = $x + 5' but not in the case of '$x += 5'
16:00 ab5tract though it _does_ warn in the case of '$x *= 5'
16:07 sqirrel_ joined #perl6
16:11 hoelzro o/ #perl6
16:11 FROGGS o/
16:11 PerlJam hoelzro: o/
16:21 chenryn joined #perl6
16:22 Ven joined #perl6
16:24 _mg_ joined #perl6
16:31 Ulti http://mattoates.co.uk/files/perl6/rakudo_runtime.svg http://mattoates.co.uk/files/perl6/rakudo_optimizations.svg
16:32 chenryn joined #perl6
16:33 Ulti I suspect the reasons for things not being faster are increasingly algorithmic implementation rather than VM apart from maybe all the list changes coming up
16:34 Ulti the last 10% extra JIT hasn't had much effect on runtime
16:35 * Ulti goes back to his day job ;3
16:36 gjeih joined #perl6
16:36 * sjn has been naughty and blogged about Perl 6 stuff: http://code.foo.no/2015/02/13/on-bandwagonbuilders-and-bandwagoneers
16:38 gjeih will one-liners in the form of perl6 -ne 'stuff' still be allowed in Perl 6 ?
16:39 ab5tract moritz: can you elaborate on why $x *= 5 autovivs for 1 on puprpose?
16:40 japhb gjeih: Yes, with the exception of needing to separate out the options: perl6 -n -e 'stuff'
16:40 anaeem1_ joined #perl6
16:40 japhb gjeih: Do 'perl6 -?' for a quick summary of what's supported now.
16:40 gjeih japhb ah that sucks a bit but not really a stopper
16:40 ab5tract japhb: i haven't ever had to separate the options...
16:41 japhb ab5tract: Really?  I thought that was one of the limitations still; maybe someone "fixed" it
16:42 japhb Helps for the equivalent of 'perl -nale' but can't do much to fix the equivalent of 'perl -pi.bak -e', because that already required breaking up the option group
16:43 cschwenz joined #perl6
16:43 cschwenz left #perl6
16:44 cschwenz joined #perl6
16:44 anaeem1 joined #perl6
16:46 psch i might be misremembering, but i think my PR allows -pi=.bak
16:46 psch but it'd have to be cleaned up and there's some discourse required regarding the implementation
16:47 psch but yeah, multiple shortopts with value can't be grouped ever
16:48 psch also, we already allow -ne i think :l
16:48 Ulti japhb do you remember -nale as sounding like 'nail'? because I write -lane :)
16:52 echowuhao joined #perl6
16:55 dalek perl6-roast-data: 6385541 | coke++ | / (9 files):
16:55 dalek perl6-roast-data: today (automated commit)
16:55 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/63855417a0
16:58 laouji joined #perl6
17:01 fernando_ joined #perl6
17:03 diana_olhovik joined #perl6
17:04 japhb Ulti: It depends on my mood.  I switch back and forth.  And yeah, -nale sounded like 'nail' to me.  :-)
17:04 timotimo yes, -ne works already
17:05 japhb Very happy to hear that
17:05 japhb The problem with being around here for years is that sometimes you remember the stuff that didn't work back then better than the stuff that does work now.  :-)
17:05 ashleydev I was just watching this video about writing a type-safe printf function in Idris https://www.youtube.com/watch?v=fVBck2Zngjo and it mentioned at the end that being able to reference values in the type system allowed the language to not need a macro system -- is this kind of thing possible in perl6?
17:06 anaeem1 joined #perl6
17:06 nine_ ashleydev: maybe subsets? http://blogs.perl.org/users/tyler_curtis/2010/08/age-discrimination-in-perl-6-using-subsets-and-multiple-dispatch.html
17:06 ashleydev for those who don't know, Idris is like Haskell but with a stronger type system
17:08 ashleydev nine_: will these be checkable at compile time?
17:08 mst Idris strikes me as "what happens if you put haskell and CoQ in a bag with some good acid and shake"
17:09 mst (I mean this as a compliment)
17:09 ashleydev I think the technical term is "dependant type system"
17:10 ashleydev mst: yes being able to specify more succint function prototypes allows them to express more "theorems"
17:11 hoelzro sjn++ # blogging
17:11 pyrimidine Ulti: Re: performance, biggest bottleneck I've seen so far is IO.
17:11 ashleydev mst: if one is thinking in terms of the curry-howard correspondance --> see this: https://codewords.hackerschool.com/issues/one/type-systems-and-logic
17:11 pyrimidine Ulti: I have a GFF3 grammar that parses FlyBase (w/o FASTA): https://github.com/cjfields/bioperl6/blob/master/lib/Bio/Grammar/GFF.pm6
17:12 pyrimidine Ulti: took ~20 minutes
17:12 timotimo ashleydev: we'd need something that runs "early" that processes the printf format string, so we'd need something macro-like in perl6 at least ...
17:12 pyrimidine so usable (better than 20 hours) but not fast
17:13 Ulti yeah
17:14 Ulti my examples ignore IO but I'm aware its the main problem :'(
17:14 Ulti pyrimidine one thing I was trying to do to get around it is have the grammar parse chunks of the IO stream in parallel to it being read
17:15 Ulti since Perl6 has lots of nice constructs for expressing that now
17:15 Ulti the issue is you need to kind of already split the format before you do the Grammar.parse so I ended up having classes which held action, grammar and some sort of record separator
17:16 pyrimidine Ulti: re: IO, I think this is something that can be fixed.
17:16 Ulti pyrimidine: have you tried the newio branch?
17:16 pyrimidine Ulti: not yet but I've planned on doing it
17:17 Ulti yeah I haven't either
17:17 timotimo Ulti: froggs has done some nice work on record separators (replacements for \n and such) during and shortly after the APW. i *think* it's been merged already
17:18 timotimo it'd allow you to get splitting (to be used with .lines and friends) at the lowest (fastest!) level with more complicated record separators
17:18 pyrimidine Ulti: re: 'chunking' the data, yep I do that too.  But I think the proposal for Cat would allow a sort of 'lazy' grammar parsing.  But that's post 6.0.0...
17:18 Ulti yeah
17:18 Ulti really you could have grammars be parallel too as they sort of go down the tree
17:19 pyrimidine timotimo: not merged as of yet.  A two char record sep doesn't work with MoarVM (does with JVM though, last I checked)
17:19 Ulti so if the top level token is a record one thread is breaking stuff up into that and then another thread deals with the next level
17:19 anaeem1 joined #perl6
17:19 anaeem___ joined #perl6
17:20 Ulti timotimo: cool that has been a longtime feature request by nearly everyone :) FROGGS++
17:20 Ulti I looked at it when I found it wasn't implemented but stopped at when it dived into nqp needing to be changed because I'm a scaredy cat
17:21 Kristien joined #perl6
17:21 psch Cats also need moreinput i think?
17:21 kjs_ joined #perl6
17:21 psch or is that just Perl6/Grammar.nqp to emulate what Cats do for the REPL?
17:22 ashleydev nine_: read more of your post, yes subset types seem pretty close, what happens when you call the multi with a value outside of any subset covered by the multis?
17:22 Ulti pyrimidine I should really take a look at what you've been upto because it sounds like you've been busy recently :)
17:22 psch eh, "just *for* Perl6/Grammar.nqp to emulate for the REPL what Cats do for the user"
17:22 timotimo damn. thanks, pyrimidine
17:22 nine_ ashleydev: then no candidate could be found and you get an error saying that.
17:23 pyrimidine Ulti: feel free to jump in.  I do what I can, $job keeps me busy most of the time though :P
17:24 nine_ m: subset Foo of Int where * > 2; subset Bar of Int where * < -2; multi sub foo(Foo) { say "yes"; }; multi sub foo(Bar) { say "yes"; }; foo(3);
17:24 camelia rakudo-moar 3607d7: OUTPUT«yes␤»
17:24 nine_ m: subset Foo of Int where * > 2; subset Bar of Int where * < -2; multi sub foo(Foo) { say "yes"; }; multi sub foo(Bar) { say "yes"; }; foo(1);
17:24 camelia rakudo-moar 3607d7: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(Int $ where { ... })␤:(Int $ where { ... })␤  in sub foo at /tmp/_I7o6OmegR:1␤  in block <unit> at /tmp/_I7o6OmegR:1␤␤»
17:24 ashleydev nine_: subsets seem pretty specific to run-time checks
17:25 ashleydev I wonder if how Idris eleveates values into the type system
17:25 nine_ ashleydev: I use them extensively in real world code here: https://github.com/niner/Apache-To-Nginx/blob/master/lib/Apache/Config/Converter/Nginx.pm
17:26 mohij joined #perl6
17:29 MadcapJake joined #perl6
17:33 mr-foobar joined #perl6
17:36 ninedragon joined #perl6
17:37 gfldex joined #perl6
17:37 cschwenz left #perl6
17:38 * TimToady comes vaguely back to life
17:43 molaf joined #perl6
17:47 [Coke] ho, ZimZomby
18:02 * TimToady doesn't think .invert should coerce to hash
18:02 fernando_ joined #perl6
18:07 mohij Hey! I'm in search of a way to set and track state during parsing that reverts when backtracked over.
18:08 PerlJam mohij: sounds like let to me
18:08 mohij I have a gist that rather convincingly fails doing that.
18:08 mohij https://gist.github.com/patzim/5fd2380e8bbe140b22f3
18:09 Kristien joined #perl6
18:09 mohij PerlJam: http://doc.perl6.org/routine/let <- looks not that bad at all...
18:09 PerlJam mohij: or maybe temp  (I'm not sure that "reverts" happens with let0
18:09 PerlJam ah, apparently it does :)
18:10 pyrimidine timotimo, Ulti: regarding the record separator issues there is a ticket: RT #122971
18:10 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122971
18:10 PerlJam caveat lector: I've yet to actually use "let"
18:12 mohij assuming a grammar rule sets a value using let, matches, and later on a rule fails causing a backtrack including the first rule. Let wouldn't do anything about that, right?
18:14 _mg_ joined #perl6
18:16 telex joined #perl6
18:16 * TimToady sees .invert as primarily an operation on lists of pairs to prepare for pushing into a hash
18:16 TimToady for one thing, coercing to hash throws away information, and we can't have that
18:17 moritz huh?
18:17 moritz we have lots of coercions that throw away information
18:17 moritz why is this coercion special?
18:17 TimToady invert is about preserving information
18:18 moritz lizmat++, I guess
18:18 TimToady what I'd like to see is something that nobody was arguing for
18:19 TimToady I think .invert on a list should require all the elements to be pairs
18:19 PerlJam TimToady: oh, I like that.
18:19 TimToady so @foo.pairs.invert explicitly maps @foo to 0, 1, 2
18:20 TimToady and we also don't waste time converting things to hashes just to tear them apart again, quite apart from the info loss
18:21 TimToady so it would be illegal to invert a kv list, basically
18:21 * [Coke] is so done with $dayjob, and needs to carve out more p6 time.
18:21 TimToady not without running it through a pairup or whatever we call that operation
18:23 dalek doc: 89f2ac4 | moritz++ | / (4 files):
18:23 dalek doc: Document Scheduler, ThreadPoolScheduler and CurrentThreadScheduler
18:23 dalek doc: review: https://github.com/perl6/doc/commit/89f2ac440d
18:23 TimToady m: say pair(1,2,:c(3))
18:23 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_tES6C3Rz4␤Undeclared routine:␤    pair used at line 1. Did you mean 'pairs'?␤␤»
18:23 TimToady no, I meant the specced pair function
18:24 PerlJam TimToady: when you say "require all the elements to be pairs", do you mean that .invert should explicitly check this?   like my @a = a => 1, b => 2, "boo",  c => 57;   # would fail ??  or that it would be checked implicitly through the type system or something?
18:25 TimToady well, I see the definition of sub pair is a bit wrongish
18:25 moritz TimToady: the specced pair function is mis-named, if it should indeed return a list of pairs
18:25 * moritz too slow
18:27 TimToady there's the internal op that hash assignment uses to decide whether the next thing is a pair or we should take the next 2 things as a kv
18:27 TimToady that operation needs a name, if it doesn't have one already
18:27 moritz it's currently just Hash.STORE
18:27 TimToady I think we called it .pairwise once
18:27 TimToady if people have mixed kv and pairs they want @list.pairwise.invert
18:28 TimToady without actually building a hash
18:28 TimToady because pairwise doesn't throw away key collisions
18:28 TimToady it just makes a list of pairs
18:28 TimToady that's where I'd like to see invert go, for efficiency as well as maximum flexibility
18:29 TimToady and @list.invert would blow up on a non-pair
18:29 TimToady or would pair with Nil or something
18:30 moritz are there actually many uses cases where people have mixed lists of kv and pairs?
18:30 PerlJam possibly not on purpose.  But how are they to know? :-)
18:30 TimToady I dunno, but that's a primitive operation to my mind that we should expose and take advantage of
18:31 skids It's happened to me, don't rememeber why, but not by design.
18:31 TimToady I agree that pair() is a bad name for it
18:32 TimToady .pairup maybe
18:33 fernando_ joined #perl6
18:33 laouji joined #perl6
18:33 PerlJam TimToady: marry  :)
18:34 nine_ PerlJam: that's too strong. After all the operation is easily reversible :)
18:34 TimToady well, mass marriages are something you usually only see in cults, but you often pairup for a dance
18:34 TimToady and existing pairs tend to stick together :)
18:34 PerlJam nine_: I don't see the problem  ;)
18:35 PerlJam TimToady: fwiw, I like pairup.
18:37 skids pairup makes sense.  "partner" maybe but I think pairup is probably better.
18:37 sqirrel_ joined #perl6
18:38 TimToady let's just not use 'hookup'  :)
18:40 bartolin [Coke], FROGGS: it's not me who answers perl6 questions on SO
18:41 Kristien joined #perl6
18:42 TimToady the final message in .pairup would have to change to: Odd number of elements found where key/value pairs expected
18:43 TimToady since it's not a hash initializer
18:44 TimToady and if we use it for hash STORE, the message is probably adequate, if not completely awesome
18:44 TimToady or maybe we can keep them separate
18:45 TimToady anyway, I hope I'm being persuasive, and not just invoking Rule #1 here... :)
18:45 grettir joined #perl6
18:47 TimToady the same principle (don't waste hash builds) worked out in the other direction with .classify, where we used to return a list of pairs, but then we said, "Duh, we made a hash, just return it, or we'll force people to rebuild the hash."
18:48 TimToady m: say (1...100).classify(* % 7).WHAT
18:48 camelia rakudo-moar 3607d7: OUTPUT«(Hash[Any,Any])␤»
18:48 TimToady okay, nobody's broken that yet, good :)
18:49 Kristien can you make generic methods?
18:50 Kristien like sub f[T](Hash[A, T] $x, T $y) { … }
18:50 Kristien it's dangerous to do so
18:51 TimToady we try to restrict full generics to roles
18:52 TimToady we allow a bit of leeway in signatures with ::T though
18:52 ashleydev how does one read that `sub f[T](...`  what are the square brackets signifying there?
18:53 TimToady so if you had: sub f'proto(::T, Hash[A,T] $x, T $y) {...} you could then do my $f = $f'proto.assuming(MyType) or so
18:53 Kristien this is dangerous:
18:53 TimToady (mebbe)
18:53 fhelmberger joined #perl6
18:54 Kristien generic methods only work with static typing or lack of deduction
18:54 skids ashleydev: Not actual syntax, but Kristien was parameterizing the sub, e.g. defining a family of subs that vary with T.
18:54 TimToady ashleydev: that is not legal P6
18:55 ashleydev ah
18:55 Kristien or without subtyping
18:55 ashleydev So there's no way to say .assuming(SomeType)...?
18:56 TimToady I just said you probably can, just not using []
18:56 Kristien How about allowing later parameter types to refer to values of former parameters and using partial application?
18:56 * ashleydev wasn't sure what the "(mebbe)" was referring to -- as in the possibility of...
18:57 diana_olhovik joined #perl6
18:57 Kristien deduction breaks in dynamically typed languages, though. you can't do it well
18:58 Kristien I don't know why anymore, but I thought about it and found a problem with it a few months back.
18:59 skids m: sub foo(::T $f, T  $g) { "ok".say }; foo(1,2); foo("a","b"); foo(1,"b");
18:59 camelia rakudo-moar 3607d7: OUTPUT«ok␤ok␤Type check failed in binding $g; expected 'Int' but got 'Str'␤  in sub foo at /tmp/nnevRaxfpJ:1␤  in block <unit> at /tmp/nnevRaxfpJ:1␤␤»
19:00 TimToady m: sub same'proto(::T, T $a, T $b) { say $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int 43
19:00 camelia rakudo-moar 3607d7: OUTPUT«True␤True␤»
19:00 TimToady m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int 43 but True
19:00 camelia rakudo-moar 3607d7: OUTPUT«True␤»
19:00 TimToady m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int (43 but True)
19:00 camelia rakudo-moar 3607d7: OUTPUT«False␤»
19:01 TimToady m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int "42"
19:01 camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding $b; expected 'Int' but got 'Str'␤  in sub same'proto at /tmp/hHGw6Gs9QV:1␤  in sub CURRIED at src/gen/m-CORE.setting:4136␤  in block <unit> at /tmp/hHGw6Gs9QV:1␤␤»
19:01 TimToady kaboom \o/
19:01 TimToady so there's your generic method
19:01 TimToady well, function
19:01 ashleydev o/  high 5!
19:01 PerlJam Is someone writing this stuff down in a Perl 6 Cookbook yet?  :)
19:01 Kristien m: class A { }; class B is A { }; sub foo(::T $f, T $g) {  }; foo(A.new, B.new)
19:01 camelia rakudo-moar 3607d7: ( no output )
19:02 Kristien m: class A { }; class B is A { }; sub foo(::T $f, T $g) {  }; foo(B.new, A.new)
19:02 camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding $g; expected 'B' but got 'A'␤  in sub foo at /tmp/Fl5mN4ONgX:1␤  in block <unit> at /tmp/Fl5mN4ONgX:1␤␤»
19:02 Kristien m: sub foo(::T $f, T $g) { say T }; foo(1, 2)
19:02 camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
19:02 Kristien interesting
19:03 fernando_ joined #perl6
19:03 FROGGS joined #perl6
19:03 ashleydev is the error message correct to say "CURRIED" vs "partially applied"?
19:03 TimToady no
19:03 FROGGS o/
19:04 ashleydev \o  (high-5)
19:04 TimToady though many people misuse "curry" to mean partial application
19:04 ashleydev should it be changed?
19:05 ashleydev mabye I can submit my first bug??
19:05 TimToady the spec (cough) called it 'priming' because 'partial application' is such a mouthful
19:05 pierrot joined #perl6
19:05 ashleydev that's clever
19:05 TimToady ashleydev: yes, you may
19:05 ashleydev where's the interface to submit bugs?
19:06 FROGGS mailto:rakudobug@perl.org
19:06 psch i suppose changing the name of the sub created by assuming could fall out of fixing #77744
19:06 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=77744
19:06 TimToady http://irclog.perlgeek.de/perl6/2015-02-25#i_10180697
19:07 psch seeing as the cause for that bug and the cause for "sub CURRIED" are somewhat related
19:14 ashleydev \o/ Yay, I bugged: #
19:14 ashleydev #123938
19:14 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123938
19:15 bartolin speaking of rakudobugs: I wonder what we should do with tickets which are specific for Parrot
19:15 rurban joined #perl6
19:15 bartolin maybe we could change the status to 'stalled'?
19:15 ashleydev m: sub foo(::T $f, T $g) { say T }; foo(1, 2)
19:15 camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
19:16 psch ashleydev: the type check fail is correct though, isn't it?
19:16 psch in your bug, that is
19:16 ashleydev TimToady: is the initial '::' required?
19:16 TimToady yes
19:16 ashleydev why not subsequent ones?
19:16 TimToady in a signature, that captures the type of the incoming argument 'en passant'
19:16 TimToady you don't want to capture the type later, but use it
19:17 * bartolin would like to hear other opinions (about tickets specific for rakudo.parrot)
19:17 TimToady m: sub foo(::T $f, ::T $g) { say T }; foo(1,2)
19:17 camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
19:17 ashleydev psch: done
19:17 TimToady m: sub foo(::T $f, ::T $g) { say T }; foo(1,"foo")
19:17 camelia rakudo-moar 3607d7: OUTPUT«(Str)␤»
19:18 TimToady that should probably parsefail as a redeclaration of T
19:18 psch ashleydev++
19:18 ashleydev hey maybe I can submit another bug?
19:19 TimToady shoot first, ask questions after
19:19 colomon m: sub foo(::T $f, T $g) { say T }; foo(1,2)
19:19 camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
19:19 colomon m: sub foo(::T $f, T $g) { say T }; foo(1,”hello")
19:19 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3JDx4skrAB␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/3JDx4skrAB:1␤------> 3sub foo(::T $f, T $g) { say T }; foo(1,7⏏5”hello")␤    expecting any of:␤        …»
19:19 TimToady or apologize, if you're Han Solo
19:19 colomon m: sub foo(::T $f, T $g) { say T }; foo(1, { a=> 2})
19:19 camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding $g; expected 'Int' but got 'Hash'␤  in sub foo at /tmp/74OcctU_gw:1␤  in block <unit> at /tmp/74OcctU_gw:1␤␤»
19:19 colomon sweet
19:20 ashleydev m: sub foo(::T $f, ::T $g) { say T }; foo(1,”hello")
19:20 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ovPQFoIxPr␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/ovPQFoIxPr:1␤------> 3ub foo(::T $f, ::T $g) { say T }; foo(1,7⏏5”hello")␤    expecting any of:␤       …»
19:20 ashleydev m: sub foo(::T $f, ::T $g) { say T }; foo(1,"hello")
19:20 camelia rakudo-moar 3607d7: OUTPUT«(Str)␤»
19:20 ashleydev oh
19:20 ashleydev is that useful?
19:21 ashleydev or wrong...
19:21 TimToady it's wrong
19:21 ashleydev shoot!
19:22 TimToady m: class T {}; class T {}
19:22 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DEfyKO4a8P␤Redeclaration of symbol T␤at /tmp/DEfyKO4a8P:1␤------> 3class T {}; class T 7⏏5{}␤    expecting any of:␤        generic role␤»
19:22 TimToady and should produce something like that
19:23 TimToady m: sub foo($f, $f) { say $f }; foo(1,"foo")
19:23 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cmb3n16F9T␤Redeclaration of symbol $f␤at /tmp/cmb3n16F9T:1␤------> 3sub foo($f, $f7⏏5) { say $f }; foo(1,"foo")␤    expecting any of:␤        shape declaration␤»
19:23 TimToady so it catches that one anyway
19:23 * TimToady wonders if there's a test for it
19:24 TimToady m: sub foo(\f, \f) { say f }; foo(1,"foo")
19:24 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jOb9K83ZHq␤Redeclaration of symbol f␤at /tmp/jOb9K83ZHq:1␤------> 3sub foo(\f, \f7⏏5) { say f }; foo(1,"foo")␤    expecting any of:␤        constraint␤»
19:24 vendethiel shouldn't ::T, ::T error out anyways?
19:25 vendethiel or should some kind of... "unification"(???) be applied here?
19:25 moritz noooo
19:25 [Coke] bartolin - tickets that are parrot specific already havea an attribute marking them as such (if not, add the parrot VM tag). no need to use stalled also.
19:26 timotimo you'd spell that ::T $foo, T $bar, wouldn't you?
19:26 * moritz would close parrot-only tickets
19:26 vendethiel timotimo: yes
19:26 FROGGS +1 to close parrot only's
19:26 bartolin [Coke]: but I really would like to clean the queue a bit further.
19:27 ashleydev #123939
19:27 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123939
19:27 moritz especially if there are tests
19:28 bartolin [Coke]: for me it's tedious to adjust every search to exclude those "parrot only" tickets
19:28 moritz nobody is fixing them, and nobody can use them for reference to consulting if a behavior they observe is a known bug
19:29 moritz so, what's the value in keeping them open?
19:29 FROGGS and you can't even fix them while there is no parrot support
19:32 ab5tract i think the less ambigious the position of parrot is in relation to rakudo, the better
19:32 ab5tract it sounds (and even feels) kind of harsh, but it's got to go
19:32 bartolin from me it's +1 to close "parrot only" tickets as well. in case we get parrot support back later on, it would be possible to re-open the tickets easily.
19:34 psch \o/
19:34 psch array marshalling work for interop MMD
19:34 psch that's for up to three dimensions!
19:34 psch (i didn't test more, but it's not hard coded :P)
19:34 moritz moritz@pat:~/p6/rakudo/t/spec>git grep '#\?rakudo\.parrot'|wc -l
19:34 moritz 102
19:34 FROGGS \o/
19:34 FROGGS psch++
19:35 moritz moar has 59, jvm 160
19:35 moritz psch++
19:35 psch now i gotta backport that to NQP, because nqp has to know it too for cases where we have a p6 object that nqp::islist()
19:35 psch like utf8 iirc
19:35 psch which is grr, because that's 100+ lines of code duplication
19:35 FROGGS VMArray
19:36 kjs_ joined #perl6
19:36 psch i was thinking if some kind of ishlllist op could help, but i don't think it could
19:37 psch because i still need p6listitems in p6-land
19:37 psch FROGGS: yeah, p6listitems gives a VMArray, but i need to check istype(Array) or istype(List) or it borks
19:38 FROGGS I just meant to say that utf8 is of VMArray repr
19:38 psch oh, right
19:38 Rounin joined #perl6
19:39 dalek roast: 9c17759 | TimToady++ | S06-signature/positional.t:
19:39 dalek roast: add tests for dup parameter names including ::T
19:39 dalek roast: review: https://github.com/perl6/roast/commit/9c177595c2
19:42 ashleydev nine_: are there multi functions that are final at compile time vs multi methods that dispatch at runtime such that subset types get some compile time typechecking if possible?
19:43 * psch remembers people smarter than him saying "halting problem" around that question occassionally
19:44 ashleydev is multi allows on non methods?
19:44 Kristien I want a Br*infuck slang.
19:44 ashleydev not a Brainf*ck one?
19:44 Kristien no
19:45 ashleydev :)
19:46 [Coke] bartolin: for me, it's tedious to adjust every search to exclude stalled tickets.
19:47 [Coke] no, it would not be possible to reopen the tickets easily. What is the distinguishing mark about these closed tickets as opposed to the ones closed previously?
19:47 moritz so close them
19:47 moritz put a list of the ticket numbers into a file in perl6/mu
19:48 moritz so that if/when parrot comes back, they can be re-opened easily
19:48 bartolin moritz++
19:48 [Coke] someone is still going to have to review every ticket closed in this manner to insure that it really is parrot only, and not something that was opened for parrot and now silently impacts other backends.
19:49 bartolin [Coke]: I would do that work.
19:51 [Coke] Ok. Please include a message on tickets closed in this way that somehow references the sunset of parrot support.
19:52 * [Coke] is having difficult winning any technical arguments today, and at this point assumes it's just him. :)
19:55 bartolin [Coke]: maybe my use of rt.perl.org is inefficient, but my feeling is that a single queue with 700+ tickets is hard to handle. I'd be fine to move the 'parrot only' tickets to another queue instead of closing them -- but we only have one queue.
19:57 timotimo ashleydev: multi works on methods as well as subs
19:57 moritz bartolin: with the exception of now-dead backends, I don't see how more queues would help us organize the tickets better
19:58 moritz bartolin: though if you have some ideas, do let me know
19:58 [Coke] bartolin: yes, RT sucks.
19:58 [Coke] I've been saying that for years. :)
19:58 FROGGS [Coke]: but you failed to convince masak :o)
19:59 nine_ So why not just crate a new queue for rakudo-parrot?
19:59 [Coke] I try to manage it by creating several prebuilt searches, things like "tickets for my os", or "tickets for jvm" or "tickets that haven't been touched in 2+ years".
19:59 [Coke] a queue == a project. perl5 vs. perl6
20:00 pippo joined #perl6
20:00 nine_ [Coke]: that's only a convention. And one could consider the rakudo-parrot backend it's own inactive project
20:00 [Coke] 1) we all disagree about what tickets are important to see or work on. this pretty much makes a global better view impossible, because we'd all but one, hate it.
20:00 bartolin moritz: I'll speak up if I get a good idea :-)
20:00 [Coke] nine_: I'd rather close the tickets than create a new queue.
20:00 timotimo So why not just create a new ticketing system for rakudo?
20:00 [Coke] ... I don't have a 2 there, apparently.
20:01 Sqirrel joined #perl6
20:01 [Coke] timotimo: like from scratch!?
20:01 moritz timotimo: second system syndrome done wrong? :-)
20:01 [Coke] or like "move to github" ?
20:01 dalek specs: 86d7dd5 | TimToady++ | S32-setting-library/Containers.pod:
20:01 dalek specs: document .pairup and List.invert
20:01 dalek specs: review: https://github.com/perl6/specs/commit/86d7dd52fd
20:02 FROGGS timotimo: we could call it PT (speak: pity)
20:02 FROGGS :P
20:03 nine_ bartolin: if you close the tickets using Bulk Update, one can easily identify them by their common reject date
20:03 timotimo that sounds like a good name, FROGGS
20:03 TimToady X::Hash::STORE::OddNumber is perhaps a bit over-specific as an exception
20:03 timotimo we should write it in rubyish (speak: rubbish)
20:04 [Coke] if this were a $work project, where we had specific marked out tickets that we needed to get for the next release, and the release after that. but since the only release we have is the 2015 xmas release, having those tied to the ticket is "ok".
20:04 fernando_ joined #perl6
20:04 TimToady it could probably just hijack X::Pairup::OddNumber
20:04 [Coke] nine_: good luck identifying all the tickets in a way to make bulk update work. :)
20:05 * [Coke] feels like he's just being negative at this point. sorry, folks.
20:06 TimToady as long as it's negative fun, that's okay :)
20:07 [Coke] s/where we had/we'd have/
20:08 bartolin hugme: hug [Coke]
20:08 * hugme hugs [Coke]
20:13 nine_ [Coke]: I thought they are already tagged?
20:20 PerlJam nine_: There's a custom field for the VM, though I'm not sure it has been used consistently or how to search with it.
20:21 dalek specs: ddcd709 | TimToady++ | S99-glossary.pod:
20:21 dalek specs: mention sink means void elsewhere
20:21 dalek specs: review: https://github.com/perl6/specs/commit/ddcd709220
20:21 PerlJam when I search for "parrot", I only get back 17 results.  Not sure how to do that better
20:22 PerlJam (I'nmm not sure how to search using the custom fields at all actually)
20:24 TimToady broquaint: did anyone ever point you toward S99:sink_context?
20:26 TimToady raydiak: you can often clean out a laptop fan by blowing an air duster into the intake
20:27 TimToady or sometimes into the output vent, if it's not running
20:28 Kristien can you alias types
20:29 TimToady m: constant Mouse = Rat;  say Mouse.new(1/3).perl
20:29 camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding nu; expected 'Int' but got 'Rat'␤  in method new at src/gen/m-CORE.setting:12305␤  in block <unit> at /tmp/iavwjykkrH:1␤␤»
20:29 Kristien m: constant UNIVERSAL = Mu; my UNIVERSAL $x = 0; say $x;
20:29 camelia rakudo-moar 3607d7: OUTPUT«0␤»
20:29 moritz m: constant Mouse = Rat;  say Mouse.new(1, 3).perl
20:29 camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
20:29 Kristien nice
20:30 TimToady m: constant Mouse = Rat;  say Mouse.new(1,3).WHAT
20:30 camelia rakudo-moar 3607d7: OUTPUT«(Rat)␤»
20:31 TimToady we'll actually rely heavily on type aliasing when we get versioned type definitions
20:31 virtualsue joined #perl6
20:32 TimToady so Int might actually be Int:ver<6.0>:auth<jnthn> or so :)
20:33 TimToady except constant defaults to "our", and these might well default to "my"
20:33 TimToady m: my constant Mouse = Rat;  say Mouse.new(1,3).perl
20:33 camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
20:34 TimToady m: { constant Mouse = Rat };  say Mouse.new(1,3).perl
20:34 camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
20:34 TimToady m: { my constant Mouse = Rat };  say Mouse.new(1,3).perl
20:34 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VKLmGAhjco␤Undeclared name:␤    Mouse used at line 1␤␤»
20:35 TimToady or maybe 'our' is okay, if people wanna say things like 'constant MyMouse = ThatModule::Mouse;'
20:35 TimToady that won't work if ThatModule makes it 'my'
20:36 TimToady m: { constant Mouse = Rat }; constant Mouse = Rat; say Mouse.new(1,3).perl
20:36 camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
20:36 TimToady hmm, that should probably collide in the package
20:36 TimToady std: { constant Mouse = Rat }; constant Mouse = Rat; say Mouse.new(1,3).perl
20:36 camelia std 28329a7: OUTPUT«ok 00:01 140m␤»
20:36 dalek mu: c2bdf44 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
20:36 dalek mu: Create stub for list of closed 'parrot only' tickets at rt.perl.org
20:36 dalek mu: review: https://github.com/perl6/mu/commit/c2bdf443c0
20:36 TimToady I guess STD likes it
20:37 TimToady std: constant Mouse = Rat; constant Mouse = Rat; say Mouse.new(1,3).perl
20:37 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Illegal redeclaration of symbol 'Mouse' (see line 1) at /tmp/YiviE9tkhB line 1:␤------> 3constant Mouse = Rat; constant Mouse7⏏5 = Rat; say Mouse.new(1,3).perl␤Check failed␤FAILED 00:00 139m␤»
20:37 TimToady m: constant Mouse = Rat; constant Mouse = Rat; say Mouse.new(1,3).perl
20:37 camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
20:37 TimToady ooh, bug
20:37 TimToady m: our $x = 42; our $x = 43; say $x
20:37 camelia rakudo-moar 3607d7: OUTPUT«Potential difficulties:␤    Redeclaration of symbol $x␤    at /tmp/Rqh2phmy0c:1␤    ------> 3our $x = 42; our $x 7⏏5= 43; say $x␤43␤»
20:38 TimToady masakbot: ^^^
20:38 moritz is that really a bug?
20:39 moritz 'our' creates a lexical alias, and binds it to the symbol table
20:39 TimToady which collides
20:39 moritz the lexical alias is a redeclaration
20:39 TimToady if they're at the same level
20:39 moritz m: my $x = 42; my $x = 43; say $x
20:39 camelia rakudo-moar 3607d7: OUTPUT«Potential difficulties:␤    Redeclaration of symbol $x␤    at /tmp/FE7R_0f8Al:1␤    ------> 3my $x = 42; my $x 7⏏5= 43; say $x␤43␤»
20:40 TimToady it's the Mouse redecl that's the bug
20:40 TimToady std catches it, rakudo doesn't
20:40 moritz oh, I see it now
20:41 TimToady and if we're using aliasing for multiple versions, we really want to know if we've tried to alias two different versions of Int into the lexical scope
20:41 moritz aye
20:41 TimToady m: my constant Mouse = Rat; my constant Mouse = Rat; say Mouse.new(1,3).perl
20:41 camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
20:42 dalek roast: b92460c | moritz++ | S06-signature/positional.t:
20:42 dalek roast: todo-fudge new test
20:42 dalek roast: review: https://github.com/perl6/roast/commit/b92460c9de
20:43 TimToady thanks, I shoulda done that
20:43 moritz np
20:43 moritz TimToady: do you know where type captures are parsed?
20:43 pippo joined #perl6
20:44 pierrot joined #perl6
20:44 pippo_ joined #perl6
20:45 pippo joined #perl6
20:45 TimToady src/Perl6/Grammar.nqp line 3377 looks like
20:45 FROGGS rakudo/src/Perl6/Grammar.nqp:3377
20:45 FROGGS found it too :o)
20:46 moritz on a totally unrelated matter, I'd like a shorter way to mark an invocant as :D
20:46 PerlJam shorter?
20:46 moritz method(Repeating::The::Class::Name:D:) kinda sucks
20:46 FROGGS ::?CLASS:D ?
20:46 moritz and method(::?CLASS:D:) is also not quite nice, IMHO
20:47 moritz it's a lot of shouting and punctation for a pretty common thing
20:47 PerlJam moritz: you want method(*:D: ...) ?
20:47 TimToady Mu:D: probably works
20:47 moritz PerlJam: for example
20:47 moritz TimToady: but that's misleading
20:47 moritz TimToady: I want it not just for code, but also for documentation
20:47 moritz TimToady: and if I document stuff to have a Mu:D invocant, people will invariably be confused
20:47 TimToady we could probably make :D: work
20:48 TimToady :D would beat : on LTM
20:48 alpha- the lol operator ?
20:48 moritz doesn't that collide with colonpairs as literals?
20:49 TimToady well, :D: would certainly be unique, if we needed to go that far
20:50 moritz well, if we allow :D:, we should allow :U: too
20:50 moritz but ISWYM
20:52 alpha- :^)
20:53 TimToady :v)  # contrarian
20:53 vendethiel ...
20:53 moritz anyway, I like both *:D and :D
20:53 TimToady we could probably force :D and :U to work in any argument position
20:54 moritz and mean Any:D or Mu:D?
20:55 TimToady probably Any, since that's longer :)
20:55 TimToady and the usual default
20:55 moritz right
20:56 jnthn evening, #perl6
20:57 dalek rakudo/nom: a15a916 | PerlJam++ | src/Perl6/Actions.nqp:
20:57 dalek rakudo/nom: Disallow redeclaring constants in the same scope
20:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a15a9164a1
20:58 jnthn Note that Mu:D is a bad idea if you put it on a multi :)
20:58 TimToady well, more of a problem for autothreading junctions, but yeah
20:59 TimToady I mean, Mu:D is just (almost) a don't care argument
20:59 TimToady but you can't rely on it to distinguish anything except Mu:U
20:59 jnthn Sure, but if you put Mu:D on the invocant in a subclass but not on that in a parent class, you'll get a mis-sort or a tie :)
21:00 TimToady sure, why we're defaulting the invocant to current class, not Any or Mu
21:00 TimToady moritz++ already argued me out of that
21:00 timotimo jnthn: i'm about to run benchmarks of lastest nom/master/master and native-ref/native-ref/master
21:00 Akagi201_ joined #perl6
21:01 * vendethiel would really, really like to have :D as the default, :_ for the current one, and keep :U as it is)
21:01 moritz vendethiel: iirc :D as default was even specced once, but never implemented, because we didn't have a good solution for constructors and other :_ methods
21:02 vendethiel "good solution"?
21:02 moritz vendethiel: a way to specify non-definite invocants
21:02 vendethiel what's wrong with :U and :_ ?
21:02 moritz iirc that was before we had type smilies
21:02 vendethiel :_ is the current default, right?
21:02 vendethiel oh, alright, noted
21:02 timotimo are we going to suggest giving "new" methods a "must be called on a type object" restriction?
21:02 * TimToady isn't
21:03 PerlJam timotimo: only if they're declared that way :)
21:03 moritz vendethiel: also, :_ is pretty new (like, not even documented or implemented)
21:03 timotimo good
21:03 vendethiel oh!
21:03 TimToady also kinda ugly
21:03 moritz before it was either ThatWholeType:_ or or ::?CLASS:_
21:03 echowuhao joined #perl6
21:03 vendethiel I kind-of expected everything I've came to know "since first day" to have been well-established but :P
21:04 TimToady :P for...parameter's preference?
21:04 timotimo hehehe
21:04 kjs_ joined #perl6
21:04 TimToady m: sub foo (::T:D $x) { say T }; foo 42
21:04 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8R6vnmGfJU␤Undeclared name:␤    T used at line 1␤␤»
21:04 TimToady aww :)
21:05 jnthn timotimo: Yay; results will be useful.
21:05 timotimo good :)
21:05 fernando_ joined #perl6
21:05 TimToady m: sub foo (::T:D $x) { say T:D }; foo 42
21:05 camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oJIgUNfvkR␤Variable '&T' is not declared␤at /tmp/oJIgUNfvkR:1␤------> 3sub foo (::T:D $x) { say 7⏏5T:D }; foo 42␤»
21:06 jnthn timotimo: I'm not even sure what that means...
21:06 jnthn uh, TimToady
21:06 * TimToady either, but I was just hanging out with a two-year-old
21:06 timotimo i'd like to advocate giving rakudo's and nqp's --gen-moar a higher -j by default ...
21:07 dalek roast: 1cd6489 | usev6++ | S02-names/strict.t:
21:07 dalek roast: Add test for RT #123696
21:07 dalek roast: review: https://github.com/perl6/roast/commit/1cd6489a07
21:07 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123696
21:09 timotimo oh gosh
21:09 timotimo git log --oneline --all --graph   looks pretty amazing due to newio
21:10 dolmen joined #perl6
21:10 moritz RT#111734 seems to have argued that re-declaring constants is fine
21:10 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=111734
21:10 moritz erm no, just the tests being over-eager :-)
21:11 jnthn timotimo: Heh, I thought the "oh gosh" was gonna be "you really hosed performance with native-ref" :P
21:11 TimToady moritz: different scope
21:11 dalek roast: 951c24e | moritz++ | S04-declarations/constant.t:
21:11 dalek roast: Test that re-declaring constants dies
21:11 dalek roast: review: https://github.com/perl6/roast/commit/951c24ecf1
21:11 TimToady CORE::True and UNIT::True can be different
21:12 moritz TimToady: the test for the ticket had two different redefinitions for True in the same scope
21:12 moritz see the first hunk of https://github.com/perl6/roast/commit/951c24ecf1
21:12 bartolin moritz++ # fixing faulty test written by me
21:12 TimToady well, the masakbot hasn't filed the actual bug yet
21:13 moritz bartolin++ # writing tests at all
21:13 TimToady but putting it near the other one in the tests seems reasonable
21:14 moritz bartolin: I guess a good percentage of the tests I wrote in my first one or two years later turned out to be bogus :-)
21:15 TimToady a correct but misnamed or misplaced test is better than no test at all
21:15 timotimo benchmarks starting now
21:15 * TimToady stops typing and holds his breath
21:16 bartolin moritz: *g*
21:16 pecastro joined #perl6
21:17 jnthn timotimo: \o/
21:17 timotimo except i forgot to run "make install"
21:17 jnthn Or maybe /o\
21:17 timotimo so it ended up not working :P
21:18 moritz I started to contribute in earnest to roast (back then part of the pugs repo) to be able to mentor a GSoC student
21:19 timotimo now actually running
21:21 * [Coke] thanks timtoady for not making a language where "yes" eq "true"
21:21 [Coke] m: say "yes" eq "true"
21:21 camelia rakudo-moar a15a91: OUTPUT«False␤»
21:21 [Coke] woohoo!
21:22 TimToady ,"sau
21:22 [Coke] (in coldfusion, that's True)
21:23 sqirrel_ joined #perl6
21:24 TimToady m: say "yes" !?^ "true"
21:24 camelia rakudo-moar a15a91: OUTPUT«True␤»
21:24 TimToady there you go
21:24 TimToady ;)
21:25 virtualsue_ joined #perl6
21:25 moritz TimToady: wow, you had to go quite obscure to get a True :-)
21:25 TimToady there's no ?= to go with ?^
21:25 TimToady course I'm sure the semantics different from CF
21:26 TimToady s/ent//
21:27 ashleydev what is ?^
21:27 masak ashleydev: convert both operants to Bool, then check if different
21:28 ashleydev is ^ like != then?
21:28 geekosaur != is xor on Bool, yes
21:29 [Coke] coldfusion goes out of it's way to coerce helpful string values to their respective booleans.
21:29 [Coke] even if you didn't want that.
21:29 [Coke] gah, its
21:29 [Coke] I'm so mad I can't even grammar.
21:32 TimToady m: say [?^] Bool.roll(10) for ^10
21:32 camelia rakudo-moar a15a91: OUTPUT«False␤False␤False␤True␤True␤True␤True␤False␤True␤True␤»
21:32 espadrine joined #perl6
21:32 [Sno] joined #perl6
21:32 timotimo that can't be random
21:32 TimToady there's your parity operator
21:32 TimToady m: say [?^] Bool.roll(10) for ^10
21:32 camelia rakudo-moar a15a91: OUTPUT«True␤True␤True␤True␤True␤False␤False␤False␤False␤True␤»
21:32 timotimo look, it's three times False then three times True!
21:32 TimToady m: say [?^] Bool.roll(10) for ^10
21:32 camelia rakudo-moar a15a91: OUTPUT«True␤True␤False␤True␤False␤False␤False␤True␤False␤False␤»
21:33 TimToady I think it's probably random
21:33 geekosaur random can randomly look nonrandome for periods...
21:33 geekosaur *nonrandom
21:33 timotimo i was being facetious :)
21:33 * TimToady is the guy who flipped 10 heads in a row in biology class
21:34 TimToady fortunately didn't know about R&G are Dead
21:36 TimToady come to think of it, that's about when I figured out I was gonna do something special...
21:36 dalek nqp/native-ref: 4f2e74a | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
21:36 dalek nqp/native-ref: Basic mappings for native ref ops on JVM.
21:36 dalek nqp/native-ref:
21:36 dalek nqp/native-ref: None implemented yet; this just maps them.
21:36 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/4f2e74ad86
21:37 TimToady well, maybe that took another year or two
21:47 * flussence throws his feed reader out and goes looking for one that isn't broken... was starting to wonder where the p6weekly went :(
21:49 TimToady psch: moreinput was aimed more at a sane REPL
21:50 geekosaur are you reading the right feed? the old one went away
21:51 TimToady the Cat business was more meant to make something not a string look like a string transparently, and moreinput isn't transparent
21:51 flussence geekosaur: yep. http://pl6anet.org/atom.xml looks fine in my browser, showing last week's stuff in my reader no matter how much I try to refresh it
21:51 timotimo jnthn: at benchmark 50 of 70 for the second version
21:52 hoelzro flussence: what were you using?
21:52 psch TimToady: right, that makes sense.  moreinput as i understood it happens explicitly as a reaction to a parse failure, doesn't it
21:52 flussence hoelzro: RSSyl plugin in claws-mail 3.11
21:52 TimToady mohij: to save state in a parse, you should attach the state to the cursor using 'make', and it will automatically be discarded if the cursor is thrown away
21:53 hoelzro ah, I ask because I was thinking about writing a web-based RSS aggregator in Perl 6
21:53 TimToady 'let' is not suitable for parse backtracking because it's scoped to the block, and blocks can get re-entered under backtracking
21:55 dalek nqp/native-ref: 57c6dce | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (2 files):
21:55 dalek nqp/native-ref: Stub in NativeRef REPR.
21:55 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/57c6dcee5a
21:55 dalek nqp/native-ref: 59de265 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
21:55 dalek nqp/native-ref: Extend container API to support natives.
21:55 dalek nqp/native-ref:
21:55 dalek nqp/native-ref: Includes updating the code_pair container spec for the API change.
21:55 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/59de2656d1
21:57 timotimo jnthn: http://t.h8.lv/p6bench/2015-02-26-native_ref.html
21:58 timotimo looks kinda bad
21:58 jnthn timotimo++
21:59 jnthn while_int2str_native is the first real regression
21:59 timotimo i'd like UNDO phasers to fire when backtracking over blocks
21:59 timotimo postwhile_nil_native looks painful, too
22:01 TimToady no, that's not what UNDO is for
22:01 jnthn Yeah, I've got a list now of 5 I should look at
22:01 TimToady that's what make is for
22:02 jnthn (e.g. where it's factor of 2 difference or worse)
22:02 TimToady but if we ever get actually backtracking controls, maybe an UNMAKE phaser would be in order
22:03 TimToady s/ly//
22:03 jnthn timotimo: I suspect everything a factor of 2 or worse are because we're not eliding reference taking somewhere we should be.
22:03 timotimo OK
22:03 jnthn timotimo: I'd like to try and deal with those at code-gen time first, and look at a spesh solution only if that fails.
22:04 jnthn The smaller differences are likely because I've still got lexical -> local lowering partly busted.
22:05 jnthn Anyway, 5 things really needing attention is quite tolerable.
22:05 jnthn So, there's those and JVM porting.
22:06 * jnthn is hopeful of having it landed by the time the weekend is out
22:06 jnthn Then next week I can dig into native arrays. :)
22:06 moritz timotimo++ # benchmark
22:07 jnthn Indeed; thanks timotimo++
22:08 fernando_ joined #perl6
22:10 laouji joined #perl6
22:11 FROGGS I fear IO::Socket::INET is somewhat broken :S
22:11 Kristien I/O is always broken.
22:12 timotimo YW
22:12 FROGGS well, it appears to send a POST request, but it does not
22:12 jnthn FROGGS: As in, regression?
22:12 FROGGS and it also does not fail
22:12 FROGGS jnthn: dunno yet
22:13 pyrimidine TimToady: re: Cat I recall someone mentioning (I think on the perl6 mail list) this could be implemented using mmap or similar
22:13 pyrimidine TimToady: but talk here was that Cat was to be post-6.0.0
22:13 pyrimidine (which I agree with)
22:14 dalek rakudo/native-ref: ba2beff | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java:
22:14 dalek rakudo/native-ref: Update Rakudo scalar to handle native cont API.
22:14 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/ba2beffc95
22:14 TimToady http://www.latimes.com/business/la-fi-women-tech-20150222-story.html#page=1
22:20 kaare_ joined #perl6
22:22 TimToady tl;dr basically we male geeks tend as a culture to put women into an untenable position: if they choose to compete by being as aggressive as men, we punish them for it, and if they choose to compete by being less aggressive than men, we punish them for that too.
22:22 geekosaur yep
22:23 geekosaur there are places and groups trying to change that, but "brogrammer" attitudes are disgustingly widespread (not to mention just plain disgusting)
22:24 TimToady we can't fix all of male geek culture, but we can fix some of it here, but as the article says, it's gotta be the guys giving the gals a hand up too, not just the gals fighting their way up
22:24 TimToady 'cuz we don't fight fair
22:25 pyrimidine geekosaur, TimToady: same thing in science unfortunately. And the general consensus on a solution is the same (guys need to help even the playing field)
22:26 FROGGS ohh! testers.p6c.org seems to work! /o/
22:26 TimToady so ++ to all those who swear to keep from crying, and ++ to all those who cry to keep from swearing, regardless of gender
22:27 FROGGS a new report should appear here in four minutes: http://testers.p6c.org/dist/I/Inline/FROGGS.html
22:27 FROGGS tomorrow I'll panda to send the reports properly to the new address
22:28 geekosaur not just giving a hand up, either. the environment is toxic in general. even to those who appear to thrive in it, really
22:28 pyrimidine FROGGS: that's very cool!
22:28 FROGGS pyrimidine: and fast this time :o)
22:28 FROGGS static pages ftw!
22:28 geekosaur and a large part of the fix is to get the toxins out of the environment for everyone
22:28 dolmen joined #perl6
22:29 TimToady geekosaur: and the either/or approach is also damaging even to the feminist communities, when we should allow them a both/and on the aggression knob
22:30 geekosaur yep
22:30 * TimToady always hates to see the women fighting over how to make up for what's really men's problems... :/
22:30 geekosaur although really I would prefer the aggression dialed down period
22:30 TimToady nodnod
22:31 geekosaur I know an increasing number of people --- regardless of gender --- who won't contribute to any open source project any more because the ones they tried require that "everyone have thick skins" aka "aggression is the only way to do anything"
22:31 jnthn FROGGS: Why are authors missing on some modules, ooc?
22:32 jnthn (Such as mine ;))
22:32 TimToady yer our sekrit weapon!
22:32 FROGGS jnthn: because you don't know how to META.info? :o)
22:32 jnthn :P
22:32 jnthn Probably :)
22:32 FROGGS *g*
22:33 jnthn I'm better at guts than modules :)
22:33 FROGGS hehe
22:33 FROGGS I try to do everything equally bad :P
22:33 jnthn After sleeping sub-optimially the last couple of nights I'm not feeling good at anything right now...
22:34 FROGGS :/
22:34 hoelzro jnthn: btw, did you have any ideas on ways to get rid of that dummy parameter bit that I used for S26?
22:34 jnthn hoelzro: No, 'cus I still don't understand why it's needed ;)
22:34 FROGGS I am feeling okayish... just lacking slee^Wcoffee every now and then
22:35 hoelzro jnthn: are you sticking around for a bit, or are you leaving the channel soon?'
22:35 jnthn hoelzro: I'll be around a bit longer
22:35 hoelzro ok, then I'll explain now =)
22:35 pmurias joined #perl6
22:35 jnthn Plodding through the mechanism bits of the native-ref JVM port. :)
22:35 jnthn uh, mechanical
22:36 hoelzro so, basically, when we parse trailing docs, we need to know what the most recent declarand was, right?
22:36 jnthn *nod*
22:36 hoelzro but when we parse a parameter, we don't have all of the information we need to make the parameter
22:36 hoelzro (that assumption may be false)
22:37 hoelzro (I may not know any better)
22:37 jnthn Well, it's certainly the case that we gather info on the sig as a whole and then make them at the moment
22:37 jnthn We used to make the sig object after parsing the whole routine
22:37 hoelzro so I set up a dummy parameter that I can attach trailing docs to, and I transfer the attached docs at signature (and parameter) creation time
22:38 hoelzro jnthn: that's the change you made for native-ref, right?
22:38 jnthn But that approach already popped up and was like "hey, I suck!", thus my refactor...
22:38 hoelzro ah ha
22:38 hoelzro from what I understood of your change, the signature isn't always created earlier, right?
22:38 hoelzro or perhaps I misread?
22:38 jnthn It should consistently be now when it can be
22:38 jnthn As in, when there actually *is* a signature
22:39 jnthn Placeholders still mean we do it later on.
22:39 hoelzro what's one example where it would still be done later?
22:39 jnthn But I guess trailing docs don't apply to those.
22:39 jnthn { $^b <=> $^a }
22:40 hoelzro but it's always early for a sub/multi/submethod?
22:40 jnthn Yes.
22:40 hoelzro ok
22:40 jnthn Oh, I didn't fix it for regex_def yet
22:40 hoelzro then we may be able to kill the dummy >:)
22:40 jnthn But that's just "not gotten around to it"
22:40 hoelzro hmm
22:41 hoelzro I don't know if parameters to regexen work with decl docs
22:41 jnthn :)
22:41 jnthn my regex foo(int $a) { <?> { $a = 42 } } # fails to fail, so yeah, I need to do that one.
22:42 hoelzro joined #perl6
22:42 hoelzro irssi just had a panic attach =/
22:42 hoelzro attack, even
22:42 * hoelzro adds another case to test
22:44 jnthn Looked mor elike a panic detach :P
22:45 hoelzro hehe
22:45 dalek nqp/native-ref: ea18ce6 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
22:45 dalek nqp/native-ref: Implement assign_[ins].
22:45 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/ea18ce67c3
22:46 jnthn I think in the end we probably do want to make parameters "as we go" and then fix the real Parameter objects up at a higher level
22:46 jnthn A lot of the code dealing with this stuff dates back to when we didn't actually have nice things like bounded serialization.
22:47 hoelzro ah ha
22:47 hoelzro now, I don't even remember why param_var couldn't set things up there
22:48 hoelzro in the action method for param_var, you have everything you need, right?
22:48 pmurias hoelzro: should I try to readd make -j support to nqp-js or do you have something partially done?
22:48 hoelzro pmurias: you can go ahead
22:48 hoelzro I haven't had a lot of nqp-js time lately =/
22:48 hoelzro Coursera + playing with Elm
22:48 jnthn hoelzro: Well, probably we want to create a Parameter object in the paramter rule
22:48 hoelzro the latter is driving a lot of enthusiasm for helping with nqp-js, though =)
22:49 hoelzro jnthn: oh, right
22:49 jnthn And kill of %*PARAM_INFO
22:49 hoelzro I think that may have been the rule I mean
22:49 jnthn *off
22:49 hoelzro *meant
22:49 hoelzro oh, that sounds awesome
22:49 jnthn Now we can deal with the real meta-object as compile, there's little desire to keep another data structure to represent it around.
22:50 jnthn It's been possible to tweak this for a while, just never really got to the top of the todo list...
22:50 hoelzro sounds good to me
22:53 hoelzro jnthn: so instead of PARAM_INFO, we could just create the parameter as-is?
22:53 hoelzro sounds like a fairly simple change; is it? =)
22:54 jnthn hoelzro: In theory ;)
22:54 hoelzro hehe
22:54 skids joined #perl6
22:54 jnthn Though probably it'd be good to base the work off the refactors so far in native-ref, if you're interseted in working on it.
22:54 hoelzro I would say "I'll take a stab at that", but I've been overcommitting myself to too many things =)
22:55 hoelzro jnthn: if I do, I'll keep that in mind!
22:55 jnthn otoh, if you're interested but not until next week or so, then native-ref will already be merged :)
22:55 hoelzro I would love to remove that crazy from the S26 code
22:56 jnthn Removing crazy ftw :)
22:56 * psch feels like he's piling on some crazy currently
22:57 psch otoh, i also did remove a bit, so maybe that balances out
22:57 jnthn .oO( Principle of conservation of crazy )
22:58 TimToady geekosaur: and even my "give a hand up" summary sounds quite patronizing; it's more like just valuing everyone for the strengths they bring
22:59 geekosaur yes, that was part of why I reacted the way I did
22:59 psch downside of the current jvm-interop-array-stuff state is mostly 1) it's reflecting quite a bit and 2) it's implemented in a weird spread between BootJavaInterop and RakudoJavaInterop
22:59 geekosaur not sure a hand up in how to asshole is a good thing for anyone
22:59 geekosaur :/
22:59 psch which is mostly because islist doesn't know about p6-listy-types
23:00 TimToady I hope I didn't scare Kristien++ away with that summary of what the article was saying
23:00 psch which i'm still slightly dissatisifed with, albeit less than a few hours back
23:01 TimToady and I also know that some people get PTSD merely when the discussion comes up, so it's hard to balance everything
23:01 hoelzro FROGGS: when did that test site pop up?
23:05 pippo_ joined #perl6
23:05 pippo_ left #perl6
23:06 pippo left #perl6
23:09 fernando_ joined #perl6
23:09 Cyrus1 joined #perl6
23:10 jnthn Time to try and get some rest, methinks... &
23:11 psch 'night jnthn
23:15 psch same here o/
23:16 BenGoldberg joined #perl6
23:28 skids joined #perl6
23:33 agentzh joined #perl6
23:33 agentzh joined #perl6
23:44 timotimo http://testers.p6c.org/reports/9803.html my module NPE's :(
23:48 fernando_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo