Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-04-05

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:03 tinyblak joined #perl6
00:17 b2gills .tell jnthn It might be worth talking to Karl Williamson <public@khwilliamson.com> about Unicode since he does most of the Unicode work on Perl 5, and may have some insight
00:17 yoleaux b2gills: I'll pass your message to jnthn.
00:35 xiaomiao joined #perl6
00:57 noganex joined #perl6
01:07 aborazmeh joined #perl6
01:07 aborazmeh joined #perl6
01:11 hobbs joined #perl6
01:14 telex joined #perl6
01:23 tinyblak joined #perl6
01:25 ugexe when i build in the wrong directory i get missing CORE.settings error, not QRegex.nqp
01:26 ugexe although i'd do a locate QRegex.nqp just to see what artifacts might be left
01:39 raydiak not when I build, but when I invoke my installed perl6 from inside the build dir of another rakudo...like this:
01:40 raydiak ~/data/projects/perl6/rakudo > perl6 -e 'say 1'
01:40 raydiak Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp'
01:41 raydiak I always thought it was weird, but if I cd .. or anywhere else it works fine, so guess it auto-detects some things in the cwd
01:41 raydiak anyway, maybe not the same problem, but obviously some similar mismatch somewhere
01:42 raydiak s/obviously/likely/
01:47 tony-o ive had that problem if make fails halfway through
01:48 ilbot3 joined #perl6
01:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
01:54 pierrot left #perl6
02:07 pierrot joined #perl6
02:13 noganex_ joined #perl6
02:22 skids joined #perl6
02:29 pierrot joined #perl6
02:46 jack_rabbit joined #perl6
02:56 mishin joined #perl6
02:57 mishin ./join #ru.pm
03:07 hoelzro literal++ really deserves all of the credit for vim-perl6, because iirc, he wrote the original perl6.vim
03:07 pierrot joined #perl6
03:07 hoelzro alester and I are merely stewards
03:25 dalek roast: 0bd84e5 | TimToady++ | S06-multi/type-based.t:
03:25 dalek roast: stretch goals for coercive multis
03:25 dalek roast: review: https://github.com/perl6/roast/commit/0bd84e5e23
03:28 TimToady .tell jnthn see the tests I added to S06-multi/type-based.t: there are 3 problems, 1) we need to set <constraint> or so on the candidate parameters that coerce (can emulate for now using 'where True'), 2) failed coercions fail hard rather than failing the bind, and 3) our current coercions are not suitable strict for pattern matching strings
03:28 yoleaux TimToady: I'll pass your message to jnthn.
03:35 fhelmberger joined #perl6
03:56 jack_rabbit joined #perl6
03:57 kurahaupo1 joined #perl6
04:03 FROGGS_ joined #perl6
04:11 kaare_ joined #perl6
04:25 KCL_ joined #perl6
04:30 mr-foobar joined #perl6
04:45 Akagi201_ joined #perl6
05:02 TimToady .tell jnthn also been thinking about MAIN subcommands, which probably need to have a command-line processor that knows how to produce a list of captures (one for each sublevel) rather than just a single capture
05:02 yoleaux TimToady: I'll pass your message to jnthn.
05:12 Sqirrel joined #perl6
05:37 rindolf joined #perl6
06:13 jnthn TimToady Hmmmm. I could probably hack something up but it'd have...consequences...
06:13 yoleaux 00:17Z <b2gills> jnthn: It might be worth talking to Karl Williamson <public@khwilliamson.com> about Unicode since he does most of the Unicode work on Perl 5, and may have some insight
06:13 yoleaux 03:28Z <TimToady> jnthn: see the tests I added to S06-multi/type-based.t: there are 3 problems, 1) we need to set <constraint> or so on the candidate parameters that coerce (can emulate for now using 'where True'), 2) failed coercions fail hard rather than failing the bind, and 3) our current coercions are not suitable strict for pattern matching strings
06:13 yoleaux 05:02Z <TimToady> jnthn: also been thinking about MAIN subcommands, which probably need to have a command-line processor that knows how to produce a list of captures (one for each sublevel) rather than just a single capture
06:16 jnthn TimToady: The "set constraint" bit is easy. The second bit is the tricky one, since 1) it's not a type-based test, so we can't cache on it, so coercing candidates will always hit the multi-dispatch slow path, 2) we can't know a coercion will work out without trying it and that means we have to catch any exceptions it throws to refuse to coerce, and swallowing exceptions is a bit icky (we don't on where clauses), and 3) we'd perform the coercion t
06:18 TimToady twice?
06:18 hobbs joined #perl6
06:18 jnthn Yes, in a try block in the multi-dispatcher for the constraint check
06:19 jnthn And then again once we pick the candidate and invoke and it does it as it binds.
06:19 dalek rakudo/nom: f5b595e | TimToady++ | src/Perl6/Actions.nqp:
06:19 dalek rakudo/nom: disallow { *+* }
06:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5b595ed20
06:19 jnthn We might be able to avoid that in the future...somehow.
06:20 jnthn For now we'd almost have to do it out-of-band though rather than in a normal bind check
06:21 jnthn Because then we could not differentiate exceptions from trying to coerce from exceptions thrown by where clauses and default value expressions.
06:21 TimToady is there any way to just trap it at the real bind and nextsame to the next candidate
06:22 jnthn Not...really...
06:22 [Tux] ===SORRY!===
06:22 [Tux] This representation (NativeRef) cannot unbox to a native int
06:23 [Tux] Inline::Perl5 on fresh checkout
06:23 jnthn You mean emit a try statement as part of the sig binding?
06:23 TimToady yeah
06:23 TimToady presumably the nextsame mechanism is already there
06:24 jnthn I'd really rather not make signature binding code behave differently in an only from a multi...
06:24 TimToady though I doubt we can get all the way to removing IntStr etc if Rat() gladly accepts integers and Num() gladly accepts rats, and so on
06:24 jnthn But the nextsame would do odd things in an only, maybe?
06:25 TimToady well, but we know it's a multi at compile time
06:26 jnthn Yes, but so far we've had the way we interpret a signature distinct from whether the thing is an only or a multi
06:26 TimToady nod
06:26 TimToady well, something to keep in the back of your head for now, anyway
06:27 jnthn Aye
06:27 jnthn It seems the non-strictness hurts at least as bad as the rest.
06:27 jnthn Constrainty things then boil down to "which order are they in your program"
06:28 jnthn In this case, humans I guess imagine Int <: Rat <: Num in some sense, and that's the order you'd want to attempt the coercions.
06:28 jnthn But our type system (for the best in general) doesn't encode that.
06:30 jnthn if $subelem ~~ QAST::WVal && $subelem.dump ~~ /WhateverCode/ # sheesh! :P
06:31 jnthn nqp::istype($subelem.value, $*W.find_symbol(['WhateverCode'])) would be more robust, fwiw :)
06:31 * jnthn can patch it
06:31 TimToady go for it
06:32 TimToady btw, we fail two arguably bogus tests because of that now
06:32 jnthn I'm in two minds about it...
06:33 TimToady it's easy enough to work around if you really need it
06:33 jnthn I guess it's restricted to { *+* } as the circumfix, so -> { *+* } is a workaround.
06:33 TimToady or { ;*+* } works too
06:33 TimToady or { do *+* }
06:33 TimToady but not { return *+* }
06:34 TimToady but we've seen that failure mode of thinking of * as $_ many times by now
06:35 TimToady so I think someone who really wants that can deal with it
06:36 TimToady people keep writing .map: { *.foo }
06:36 jnthn Yeah, it's been a common thinko.
06:37 TimToady and the last time I saw it, I added to my toto
06:37 TimToady and my little todo, too!
06:37 jnthn :D
06:38 jnthn Oh, on the multiple Capture thing, I maybe could use an example of how it'd look
06:43 dalek rakudo/nom: c0b91a2 | jnthn++ | src/Perl6/Actions.nqp:
06:43 dalek rakudo/nom: Test types, not strings, in { *+* } check.
06:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c0b91a2a76
06:44 TimToady basically a MAIN would have a sig that terminates with a 'subcommand' that can delegate to a different sub-command multi
06:44 jnthn Well, we can already do stuff like
06:44 jnthn sub foo('bar', |c) { }
06:44 jnthn And c is just the args beyond bar
06:45 TimToady but we want to prevent the initial MAIN from seeing the named args from after the subcommand, I think, hence a different capture for the subdispatch
06:46 [Tux] What would be the signature of a method that accepts a list of Pair's?
06:46 TimToady do they have to keep their order?
06:46 [Tux] nope
06:46 TimToady are there dup keys?
06:46 [Tux] nope
06:47 TimToady then *%hash will slurp them as named args
06:47 [Tux] it is like it is called with the content of a Hash instead of the Hash ref
06:47 TimToady sub foo (*%hash) { say %hash.keys }; foo %*ENV
06:48 TimToady m: sub foo (*%hash) { say %hash.keys }; foo %*ENV
06:48 camelia rakudo-moar 6e7735: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub foo at /tmp/5DEK0sfOQ1:1␤  in block <unit> at /tmp/5DEK0sfOQ1:1␤␤»
06:48 TimToady hmm, that oughta work
06:48 TimToady m: sub foo (*%hash) { say %hash.keys }; foo |%*ENV
06:48 camelia rakudo-moar 6e7735: OUTPUT«MANPATH PERLBREW_VERSION PERLBREW_PERL SHELL PERL5LIB USER PERLBREW_BASHRC_VERSION PERLBREW_ROOT PATH _ PWD LANG PERLBREW_HOME HOME SHLVL PERLBREW_MANPATH LOGNAME PERLBREW_PATH LC_CTYPE␤»
06:48 TimToady there you go
06:48 jnthn |%*ENV
06:48 jnthn ah, you got it.
06:48 [Tux] https://gist.github.com/Tux/cbaf8932d690c2bf4509
06:49 TimToady m: sub foo (*@pairs) { say %@pairs.keys }; foo %*ENV
06:49 camelia rakudo-moar 6e7735: OUTPUT«MANPATH PERLBREW_VERSION PERLBREW_PERL SHELL PERL5LIB USER PERLBREW_BASHRC_VERSION PERLBREW_ROOT PATH _ PWD LANG PERLBREW_HOME HOME SHLVL PERLBREW_MANPATH LOGNAME PERLBREW_PATH LC_CTYPE␤»
06:49 jnthn TimToady: Is the two captures thing nothing more than about the args processor that invokes MAIN somehow splitting off a first arg, or args up to some point?
06:49 TimToady there's another way
06:50 jnthn I guess the piece I'm (we're? :)) missing is what gets the second set of args.
06:51 TimToady named plus any positionals up to the last one that is something like: 'show' is subcommand(&show-MAIN)
06:52 TimToady the arg to some trait that redispatches, maybe like that
06:52 TimToady presumably at the point you say something like 'nextsame' in the body
06:52 [Tux] in that gist I had «multi method print (IO:D $io, *@fld) returns Bool» commented out, as that is what gets called instead
06:54 TimToady or maybe you end it 'show', |c   and then in the body you just call show_MAIN(|c), but I don't know how it intuits from that that it needs captures each with their own named hashes
06:55 TimToady could also Str $subcmd, |c and later &$subcmd(|c), but that's perhaps depending a bit too much on the goodwill of the PEBCAK
06:56 TimToady anyway, just random thoughts, but the important one was not combining all the switches into one hash
06:56 jnthn I guess it's figuring out the "stopper"
06:57 jnthn Anyways, $gf is back from work and has ideas about celebrating easter, so I should probably go do that. :)
06:57 TimToady Happy Eastier indeed!
06:57 TimToady *er
06:57 jnthn Thanks, you too!
06:57 jnthn o/
06:58 TimToady m: .map: { *.foo }
06:58 camelia rakudo-moar f5b595: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RiQIbINdIr␤Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *␤at /tmp/RiQIbINdIr:1␤------> 3.map: { *.foo…»
07:02 vendethiel joined #perl6
07:11 hobbs joined #perl6
07:13 * TimToady wonders if Rat[Int, 1000000] could be persuaded to yield a fixed-point type
07:17 TimToady zzz &
07:29 dolmen joined #perl6
07:31 moritz Happy Easter everybody!
07:36 diana_olhovik joined #perl6
07:47 dolmen moritz, Joyeuses Pâques !
07:51 darutoko joined #perl6
07:55 Ven joined #perl6
08:00 moritz God Påsken
08:02 Ven joined #perl6
08:02 cdc .u 卵
08:02 yoleaux No characters found
08:03 cdc m: say uniname(0x5375)
08:03 camelia rakudo-moar c0b91a: OUTPUT«<CJK Ideograph>␤»
08:04 cdc :( that was supposed to be Unicode Han Character 'egg'
08:20 espadrine_ joined #perl6
08:31 cdc m: say uniname(0xf09091a7)
08:31 camelia rakudo-moar c0b91a: OUTPUT«should eventually be unreachable␤  in block <unit> at /tmp/RTPPEaodVe:1␤␤»
08:31 cdc m: say uniname(0x10467)
08:31 camelia rakudo-moar c0b91a: OUTPUT«SHAVIAN LETTER EGG␤»
08:31 cdc \o/
08:39 FROGGS_ :o)
08:47 RabidGravy joined #perl6
08:54 hobbified joined #perl6
09:05 nbdsp joined #perl6
09:06 Ven m: say "\0\1";
09:06 camelia rakudo-moar c0b91a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/a0U736fsDT␤Unrecognized backslash sequence: '\1'␤at /tmp/a0U736fsDT:1␤------> 3say "\0\7⏏1";␤    expecting any of:␤        argument list␤        double quotes␤        term␤»
09:06 Ven how2soh
09:07 DrForr m: my %a; %a<a> = item(%a); say %a
09:07 camelia rakudo-moar c0b91a: OUTPUT«(timeout)»
09:07 DrForr While we're waiting, is there the equivalent to Scalar::weaken? :)
09:08 nbdsp Greetings! Could someone advise please if there is a vim plugin supporting Perl 6 tags? 'Taglist' plugin supports only Perl 5, unfortunately.
09:10 Akagi201 joined #perl6
09:27 diana_olhovik joined #perl6
09:34 Akagi201 joined #perl6
09:36 gfldex joined #perl6
09:41 masak good almost-noon, #perl6
09:44 Ven joined #perl6
09:44 Ven lizmat++ wendy++ # insanity, in the best possible way
09:45 masak nbdsp: not sure what you mean by "Perl 6 tags", but is https://github.com/vim-perl/vim-perl enough for your needs?
09:46 Ven TimToady: what do you mean by "MAIN subcommands"?
09:47 Ven looks like something I'd be really interested with, considering a lot of my p6 work involves creating small tools that rely heavily on MAINs (and subsets :P)
09:49 diana_olhovik_ joined #perl6
09:50 nbdsp masak: As far as can understand, vim-perl only does syntax highlighting. 'Perl 6 tags' - means source code navigation between functions, definitions etc.
09:53 eli-se joined #perl6
09:59 RabidGravy m: class Sofware::Vendor {}; Software::Vendor.new()
09:59 camelia rakudo-moar c0b91a: OUTPUT«Could not find symbol '&Vendor'␤  in method <anon> at src/gen/m-CORE.setting:15902␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2908␤  in any find_method at src/gen/m-Metamodel.nqp:1052␤  in block <unit> at /tmp/alKwrk4V2T:1␤␤»
10:01 RabidGravy I think I understand *why* it forms the message like that, but is it possible to make it so that it has the whole name that was attempted by used?
10:01 masak nbdsp: oh!
10:01 RabidGravy having made the typo already it can be difficult to spot
10:01 masak nbdsp: I'm not re of anything that does that at present.
10:02 Ven http://irclog.perlgeek.de/perl6/2015-04-04#i_10389729 -- intellij does that
10:02 masak RabidGravy: feels like something we should be able to do Levenshtein on.
10:03 masak Ven: cool. I was not aware.
10:03 Ven it does so with certain kinds of things, and you also have a button to show the source code for a routine (usually pretty on point)
10:05 RabidGravy nbdsp, I guess it would be possible to create a tag file generator for p6
10:05 * Ven has used and abused intellij, but is currently using emacs+evil-mode and hasn't found a very convincing perl hl package...
10:05 Ven (though it seems I went a bit over-the-top as it tends to freeze after 3/4 hours)
10:06 Rounin joined #perl6
10:21 prl joined #perl6
10:22 prl guys, can you tell me what does ':D' mean in the language design and function definitions?
10:22 prl like multi sub infix:<cmp>(Real:D, Real:D)
10:22 RabidGravy a "defined" instance of the type
10:23 RabidGravy vs :U "undefined" (i.e. a plain type)
10:23 prl thus the following will not match :D:
10:24 prl my Int $var;
10:24 RabidGravy yep
10:24 prl cool, thank you!
10:26 RabidGravy oh, I was just going to demonstrate
10:26 RabidGravy m: multi sub foo(Int:D) { say "defined" }; multi sub foo(Int:U) { say "undefined" }; my Int $a; foo($a); $a = 1; foo($a)
10:26 camelia rakudo-moar c0b91a: OUTPUT«undefined␤defined␤»
10:41 Ven joined #perl6
10:50 colomon joined #perl6
10:59 nbdsp I wonder hasn't there been an idea yet to add perl6 support to Exuberant ctags http://ctags.sourceforge.net/ which is extensively used in Vim plugins?
11:05 Perl6_newbee joined #perl6
11:07 kaare_ joined #perl6
11:40 Akagi201_ joined #perl6
11:45 RabidGravy nbdsp, I would think making a p6 version of https://metacpan.org/release/Perl-Tags would be the way to go in the first instance :)
11:49 espadrine_ joined #perl6
11:54 RabidGravy infact it would be way easier because you could just use the existing grammar
11:55 nbdsp RabidGravy: Strangely that such project hasn't yet been started, where one could contribute.
12:01 wtw joined #perl6
12:17 eli-se joined #perl6
12:19 Ven joined #perl6
12:35 torbjorn_ joined #perl6
12:45 rmgk_ joined #perl6
12:50 [Tux] $ p6doc use
12:50 [Tux] Cannot locate use in any of the following paths:
12:51 [Tux] masak's Text::CSV (of course) conflicts namewise with mine. In order to discriminate between the both, I need to create a test file that explicitely requires either
12:51 [Tux] I saw it pass by on IRC, but cannot find it in the docs
12:53 [Tux] use Text::CSV:auth<masak>; # would fit the lines I grepped from the log, except that masask did not have a auth entry in META.info (not provides fwiw)
12:56 Ven joined #perl6
12:57 [Tux] so when testing in my own environment, it'll still take my module instead of masak's
12:59 eli-se joined #perl6
13:00 * [Tux] out -> family. bbl
13:05 masak [Tux]: if your module's functionality is a superset of mine, then I'm willing to take my module off the ecosystem.
13:06 torbjorn joined #perl6
13:06 RabidGravy can anyone point me where in the spec that macros are discussed?
13:06 RabidGravy struggling to find it
13:06 masak RabidGravy: end of S06.
13:07 masak RabidGravy: but if you have any specific questions, this channel is the best place for them.
13:07 masak also perhaps read http://strangelyconsistent.org/blog/macros-progress-report-after-a-long-break after S06.
13:13 RabidGravy cool cheers, wasn't quite understanding what the argument to the macro definition was
13:14 masak it's an AST.
13:14 masak an AST is an object representing a piece of program.
13:14 masak m: my $ast = quasi { say "OH HAI" }; say $ast.^name
13:14 camelia rakudo-moar c0b91a: OUTPUT«AST␤»
13:14 RabidGravy yeah got it now
13:14 masak \o/
13:20 masak because of the role I have with Perl 6 macros, when anyone takes an interest in macros, I perk up too. I get a lot of useful information through feedback from interested people.
13:21 masak OpenBSD people discussing Long Term Support and compilers. http://marc.info/?l=openbsd-misc&amp;m=137530560232232 -- I get vibes of Rakudo Star and pmichaud when I read that.
13:22 masak of course, Long Term Support is not the same thing as "doesn't break the ecosystem" -- but it's close enough.
13:23 * nwc10 reads
13:24 Ven joined #perl6
13:24 * nwc10 references http://www.curiousefficiency.org/posts/2015/04/stop-supporting-python26.html -- Stop Supporting Python 2.6 (For Free)
13:25 masak not supporting Python 2.6 makes a whole lot of sense, IMO.
13:26 nwc10 yes, having got about 50% into your link, agree
13:26 raiph joined #perl6
13:27 masak Python 2.7 is from 2010. that means that if you're still on 2.6 or lower, you did not get the happy news from *5 years ago*.
13:27 Ven joined #perl6
13:30 nwc10 Oh gosh, 5.8.8 was over 9 years ago
13:32 nwc10 2.5 is newer than 5.8.8
13:32 masak they grow up so fast
13:32 nwc10 anyway, many CPAN authors seem to feel the same thing.
13:33 masak not sure I disagree -- except perhaps from a stubbornly "always make everything backwards compatible back to forever" standpoint
13:34 nwc10 I'm not totally sure what I think. It's a balancing act. It's rather like the joke
13:35 nwc10 you owe the bank £1000, you have a problem
13:35 nwc10 you owe the bank £1,000,000, the bank has a problem
13:35 masak I see what you mean.
13:35 nwc10 in that, too much "100% backwards compatibility" and you never get anywhere new
13:36 masak it's kind of in the interest of those who need that kind of backwards compatibility to make sure modules have it
13:36 nwc10 too little, and no-one upgrades, and then you might be somewhere new, but your userbase isn't your userbase any more
13:36 nwc10 anyway, it's hard
13:36 brrt joined #perl6
13:36 nwc10 the thrust of that post about Python 2.6 was that you can get (supported) packages for "newer than 2.6" so please use them
13:36 nwc10 if I read it correctly
13:40 nwc10 masak: that was a very interesting message you linked to
13:43 masak oh, cool. I wasn't 100% sure.
13:50 telex joined #perl6
13:50 sirdancealot joined #perl6
13:53 Ven joined #perl6
13:57 mohij joined #perl6
14:02 BenGoldberg joined #perl6
14:03 tinyblak joined #perl6
14:10 BenGoldberg joined #perl6
14:24 nbdsp joined #perl6
14:37 ggoebel joined #perl6
14:38 timotimo o/
14:40 brrt \\o timotimo
14:44 nbdsp Could someone advise please how to get the number of bytes in Str? ( '.chars' AFAIU returns the number of graphemes?)
14:45 timotimo that's right; if you want the number of bytes, you'll have to decide on an encoding first
14:45 timotimo so you'd do something like this:
14:45 FROGGS_ nbdsp: convert it to a buffer where bytes actually mean something
14:45 timotimo m: say "foobar".encode('ascii').perl
14:45 camelia rakudo-moar c0b91a: OUTPUT«Blob[uint8].new(102, 111, 111, 98, 97, 114)␤»
14:45 timotimo the Blob type now has an "elems" method
14:45 FROGGS_ m: say "foobar".encode('ascii').bytes
14:46 camelia rakudo-moar c0b91a: OUTPUT«6␤»
14:46 timotimo m: say "fööbär".encode('ascii').perl # while this blows up, of course
14:46 camelia rakudo-moar c0b91a: OUTPUT«Blob[uint8].new(102, 63, 63, 98, 63, 114)␤»
14:46 timotimo ... er ...
14:46 timotimo m: say "fööbär".encode('ascii').decode('ascii').perl
14:46 camelia rakudo-moar c0b91a: OUTPUT«"f??b?r"␤»
14:46 nbdsp timotimo, FROGGS, many thanks!
14:46 timotimo that's not supposed to raise an exception?
14:46 timotimo probably has a named for that
14:46 FROGGS_ m: say "fööbär".encode('ascii').decode('ascii') # there is an RT ticket about that
14:46 camelia rakudo-moar c0b91a: OUTPUT«f??b?r␤»
14:47 timotimo ah, OK
14:47 FROGGS_ timotimo: it should throw, yes
14:48 FROGGS_ m: my $b = utf16.new(65); say $b.elems; say $b.bytes
14:48 camelia rakudo-moar c0b91a: OUTPUT«1␤2␤»
14:48 timotimo ah, "bytes"
14:48 timotimo that's better, since you don't have to look at the type of buf you have
14:48 FROGGS_ aye
14:49 FROGGS_ working with .elems and utf8 would be fun :o)
14:51 brrt joined #perl6
14:51 brrt m: "foobar".encode("utf16").bytes.say
14:51 camelia rakudo-moar c0b91a: OUTPUT«12␤»
14:51 brrt nice
14:52 brrt \is it me r has cameia gotten faster
14:52 skids joined #perl6
14:54 raiph joined #perl6
14:55 FROGGS_ brrt: it feels faster, yes
14:56 timotimo well, the recent moarvm tuning that made rakudo do almost no speshing during startup enhanced startup time and memory usage
14:56 timotimo that could be a part of it
14:57 timotimo though to be honest, i seem to see a disimprovement locally instead :|
15:06 brrt hmm
15:13 hobbs joined #perl6
15:16 nbdsp Could someone advise please what is the way to specify a custom module location for using in a program? Something like PERL5LIB environment variable?
15:16 nbdsp When I try 'push @INC, "/path/to/module"' I get "variable @INC is not defined"
15:17 timotimo you can use either -I to supply one, use PERL6LIB, or use "use lib '/path/to/module'" in your code
15:18 Zoffix nbdsp, or use lib: http://doc.perl6.org/language/5to6#Perl_module_library_path
15:18 Zoffix Oh you said that.
15:19 nbdsp Zoffix, timotimo, Thanks!
15:20 timotimo you're welcome
15:27 kurahaupo1 joined #perl6
15:33 timotimo https://github.com/timo/naive_json_parser - i'm looking to build a "classical" json parser in this repository to see if it'd be much faster than JSON::Tiny
15:34 timotimo i wonder where i should start looking
15:36 timotimo for inspiration, that is ... how other parsers are built
15:40 Ven what's the best way to read a binary file in perl6? I can't seem to find "buffer" in IO, IO::File, IO::Handle, io_operators
15:41 JimmyZ Buf
15:41 moritz Ven: .read
15:41 moritz Ven: http://doc.perl6.org/routine/read
15:42 Ven m: 4 R= my $f; # :D?
15:42 camelia rakudo-moar c0b91a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jSCcoeDhe3␤Cannot reverse the args of = because list assignment operators are too fiddly␤at /tmp/jSCcoeDhe3:1␤------> 4 R=7⏏5 my $f; # :D?␤»
15:42 Ven aww.
15:43 Ven Okay, thanks moritz / JimmyZ
15:44 TimToady m: $(4) R= my $f;
15:44 camelia rakudo-moar c0b91a: ( no output )
15:44 TimToady m: $(4) R= my $f; say $f;
15:44 camelia rakudo-moar c0b91a: OUTPUT«4␤»
15:44 Ven TimToady: should that be suggested in the error message?
15:44 TimToady m: 4 ==> my $f; say $f
15:44 camelia rakudo-moar c0b91a: OUTPUT«4␤»
15:44 TimToady no, it shouldn't :)
15:44 Ven or is that just insanity
15:46 TimToady m: 4 ==> my $f; say $f.WHAT
15:46 camelia rakudo-moar c0b91a: OUTPUT«(Array)␤»
15:46 TimToady er...
15:47 raiph joined #perl6
15:48 Ven list assignment too fiddly, they said
15:48 Ven it is somewhat surprising, but it's true ==> is supposed to deal with list I guess :P
15:48 masak TimToady: bug? did you expect $f to be an Int?
15:48 TimToady not really, which is why I looked
15:48 masak oki
15:51 TimToady thing is, if we did allow list assignent to be reversed, it might do the same thing as ==>
15:51 TimToady hmm
15:51 TimToady m: 4 R|= my $f; say $f;
15:51 camelia rakudo-moar c0b91a: OUTPUT«any(any(), 4)␤»
15:52 TimToady m: 4 R||= my $f; say $f;
15:52 camelia rakudo-moar c0b91a: OUTPUT«===SORRY!===␤Cannot find method 'flat'␤»
15:52 TimToady m: 4 Ror= my $f; say $f;
15:52 camelia rakudo-moar c0b91a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zseXh3I5YM␤Cannot reverse the args of  because assignment operator operators are too fiddly␤at /tmp/zseXh3I5YM:1␤------> 4 Ror=7⏏5 my $f; say $f;␤»
15:52 masak m: say 42 R= my $x; say $x
15:52 camelia rakudo-moar c0b91a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZsrtR8HVrz␤Cannot reverse the args of = because list assignment operators are too fiddly␤at /tmp/ZsrtR8HVrz:1␤------> 3say 42 R=7⏏5 my $x; say $x␤»
15:52 masak but that's not a list assignment, once you reverse it :)
15:53 TimToady m: 4 R+|= my $f; say $f;
15:53 camelia rakudo-moar c0b91a: OUTPUT«4␤»
15:53 TimToady m: 4 R//= my $f; say $f;
15:53 camelia rakudo-moar c0b91a: OUTPUT«===SORRY!===␤Cannot find method 'flat'␤»
15:55 TimToady m: 4 R+= my $f; say $f;
15:55 camelia rakudo-moar c0b91a: OUTPUT«4␤»
15:56 TimToady (if you know it's numeric)
15:56 molaf joined #perl6
15:56 captain-adequate joined #perl6
15:56 TimToady m: 4 Rmin= my $f; say $f;
15:56 camelia rakudo-moar c0b91a: OUTPUT«4␤»
15:57 TimToady m: -4 Rmin= my $f; say $f;
15:57 camelia rakudo-moar c0b91a: OUTPUT«-4␤»
15:57 TimToady that works with anything orderable
15:58 kaare_ joined #perl6
16:08 FROGGS_ $ perl6-j t/04-nativecall/15-rw-args.t
16:08 FROGGS_ 1..10
16:08 FROGGS_ ok 1 - Perl's rw variable was set by C (char)
16:08 FROGGS_ \o/
16:08 FROGGS_ (note the j in perl6-j)
16:08 masak wow.
16:13 timotimo that's impressive
16:14 FROGGS_ hmmm, no, not quite
16:15 FROGGS_ the patch is quite small, but the difference between how nativecall works in moar and jvm is usually interesting :o)
16:18 timotimo OK :)
16:53 timotimo m: say nqp::CCLASS_WORD
16:53 camelia rakudo-moar c0b91a: OUTPUT«===SORRY!===␤No registered operation handler for 'CCLASS_WORD'␤»
16:54 timotimo is there a good place to get these constants from?
16:56 dalek Heuristic branch merge: pushed 47 commits to rakudo/newio by lizmat
16:58 FROGGS_ m: say nqp::const::CCLASS_WORD
16:58 camelia rakudo-moar c0b91a: OUTPUT«8192␤»
16:58 FROGGS_ timotimo: ^^
16:59 dalek Heuristic branch merge: pushed 47 commits to roast/newio by lizmat
17:00 dalek Heuristic branch merge: pushed 44 commits to specs/newio by lizmat
17:02 timotimo oh, neato
17:02 tony-o timotimo: https://github.com/perl6/nqp/blob/7533c6bd870167cc89a9a5eb3cb0aebc945c23ed/src/vm/moar/QAST/QASTOperationsMAST.nqp#L1843
17:02 tony-o there is a full list - i was digging around in there yesterday
17:02 timotimo i saw the list and just copy-pasted that into my p6 code %)
17:02 Ven joined #perl6
17:21 nine_ moritz: I just ordered my new server. It'll have 32 GiB of RAM. More than enough to give a camelia VM 8 GiB.
17:24 Zoffix \o/
17:28 timotimo so we'll be able to run "hello world" on rakudo-jvm now? :)
17:34 dolmen joined #perl6
17:36 Patterner joined #perl6
17:36 tony-o did the perl6 servers ever get ordered and put into use?
17:36 tadzik I think that's what p6c.org is :)
17:37 tony-o i think it was about 4 months ago :-)
17:37 tony-o awesome
17:38 timotimo yeah, many things if not all of them have been migrated
17:38 fhelmberger joined #perl6
17:38 timotimo a bunch of user's irc sessions, for example, now live on irc.p6c.org
17:38 lucasb joined #perl6
17:40 tinyblak joined #perl6
17:40 darutoko joined #perl6
17:44 tadzik synopsebot is still on feather
17:48 FROGGS_ tadzik: lol
17:49 masak we should totally have a bot called "synapsebot", too. you tell it a word you're thinking about, and it tells you a word back. people add associations by telling it "synapsebot: parameters makes me think of arguments"
17:49 masak "arguments makes me think of brawling" etc
17:50 masak the usefulness of all this for the Perl 6 community is debatable, and subject to further study. quite possibly I'm just starving for dinner. :)
17:51 masak we should also have a "synopsisbot", which accepts a gist with text and summarizes it for you.
17:52 tadzik FROGGS_: NO LOL
17:52 masak NO PROJECT EULER
17:53 tadzik NO FUN ALLOWEDT
17:53 masak THERE'S ONLY ONE OBVIOUS WAY TO HAVE FUN
17:53 masak (and it doesn't involve laughing out loud, or asking about math problems)
17:54 masak then we should get a syllogismbot, which tells you if your conclusion that Socrates is mortal follows from the propositions.
17:55 masak and a syntaxbot, that... wait, camelia's std already does that.
18:25 lucasb Hello, #perl6
18:25 Zoffix \o
18:25 lucasb Given a class, is there a way to find all the subclasses it has?
18:32 timotimo m: say Int.^methods
18:32 camelia rakudo-moar c0b91a: OUTPUT«Int Num Rat FatRat abs Bridge chr sqrt base polymod expmod is-prime floor ceiling round lsb msb narrow Range sign conj rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotan…»
18:32 timotimo m: say Int.HOW.^methods
18:32 camelia rakudo-moar c0b91a: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine'␤  in method gist at src/gen/m-CORE.setting:9076␤  in sub say at src/gen/m-CORE.setting:18721␤  in block <unit> at /tmp/hN7khobE04:1␤␤»
18:33 timotimo m: say Int.HOW.^methods>>.name
18:33 camelia rakudo-moar c0b91a: OUTPUT«archetypes new new_type add_fallback compose roles role_typecheck_list concretization is_composed can setup_junction_fallback find_method_fallback has_fallbacks set_name name WHY set_why ver auth set_ver set_auth set_stash_type add_stash add_attribute comp…»
18:33 timotimo m: say Int.HOW.^methods>>.name[^20]
18:33 camelia rakudo-moar c0b91a: OUTPUT«archetypes new new_type add_fallback compose roles role_typecheck_list concretization is_composed can setup_junction_fallback find_method_fallback has_fallbacks set_name name WHY set_why ver auth set_ver␤»
18:33 timotimo m: say Int.HOW.^methods>>.name[20..^40]
18:33 camelia rakudo-moar c0b91a: OUTPUT«set_auth set_stash_type add_stash add_attribute compose_attributes set_rw rw get_attribute_for_usage attributes add_method methods method_table submethod_table declares_method lookup cache cache_get cache_add add_private_method private_method_table␤»
18:33 timotimo m: say Int.HOW.^methods>>.name[40..^60]
18:33 camelia rakudo-moar c0b91a: OUTPUT«find_private_method set_autogen_proto add_multi_method multi_methods_to_incorporate incorporate_multi_candidates add_meta_method meta_method_table compose_meta_methods add_role roles_to_compose exclude_parent add_parent parents hides hidden set_hidden set_…»
18:33 timotimo m: say Int.HOW.^methods>>.name[50..^70]
18:33 camelia rakudo-moar c0b91a: OUTPUT«exclude_parent add_parent parents hides hidden set_hidden set_default_parent_type has_default_parent_type get_default_parent_type compute_mro c3_merge mro mro_unhidden find_method find_method_qualified publish_method_cache isa does type_check publish_type_…»
18:34 timotimo m: say Int.HOW.^methods>>.name[70..^80]
18:34 camelia rakudo-moar c0b91a: OUTPUT«add_trustee trusts is_trusted create_BUILDPLAN BUILDPLAN BUILDALLPLAN set_is_mixin is_mixin set_mixin_attribute mixin_attribute␤»
18:34 timotimo hmm
18:44 dalek nqp: 9956347 | FROGGS++ | tools/build/MOAR_REVISION:
18:44 dalek nqp: bump moar revision
18:44 dalek nqp: review: https://github.com/perl6/nqp/commit/9956347c4a
18:44 dalek nqp: 2ce7c31 | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
18:44 dalek nqp: handle 'is rw' params in native calls
18:44 dalek nqp:
18:44 dalek nqp: We pass these arguments off as pointers to their given type, and therefore
18:44 dalek nqp: allocate, let the C function write to it, fetch the written value and store
18:44 dalek nqp: it in our variable after the call was made.
18:44 dalek nqp: review: https://github.com/perl6/nqp/commit/2ce7c3182e
18:45 nwc10 # A fatal error has been detected by the Java Runtime Environment:
18:45 nwc10 #
18:45 nwc10 #  SIGSEGV (0xb) at pc=0x00007f91cad761d7, pid=17870, tid=140263983933184
18:45 nwc10 that was make test, with TEST_JOBS=24
18:46 dalek rakudo/nom: 64ac2bd | FROGGS++ | tools/build/NQP_REVISION:
18:46 dalek rakudo/nom: bump nqp/jvm revision for 'is rw' params in nativecall
18:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/64ac2bdeeb
18:46 dalek rakudo/nom: 143f621 | FROGGS++ | t/04-nativecall/15-rw-args. (2 files):
18:46 dalek rakudo/nom: add tests for 'is rw' params in nativecall
18:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/143f621716
18:47 FROGGS_ nwc10: do you know what test file segfaulted?
18:47 nwc10 not exactly. "all of them" roughly
18:47 nwc10 I either get all the tests passing
18:48 nwc10 or
18:48 FROGGS_ :S
18:48 nwc10 they all fail with parse errors
18:48 nwc10 that was the first SEGV,though
18:48 nwc10 so,I don't know if it's Rakudo on JVM concurrency bug
18:48 nwc10 or JVM bug
18:48 nwc10 but if we can get a SEGV, that suggests JVM bug
18:48 FROGGS_ or just about hitting memory limits?
18:49 nwc10 possibly, but for the JVM, probably not the machine
18:49 timotimo TEST_JOBS doesn't do concurrency, or does it run the evalserver perhaps?
18:49 nwc10 I figure it has to be the eval server, but I've not checked the code
18:50 nwc10 I was trying to work out if there's a magic number below which it always passes, and above which it always fails
18:50 nwc10 no, there isn't
18:50 nwc10 24 goes eitherway
18:52 moritz j: say 'Hello, world'
18:52 camelia rakudo-jvm c0b91a: OUTPUT«Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-inst/bin/eval-client.pl line 10.␤»
18:52 moritz eeks
18:54 moritz j: say 'Hello, world'
18:54 camelia rakudo-jvm c0b91a: OUTPUT«Hello, world␤»
18:54 moritz timotimo: ^^ we can already :-)
18:58 nwc10 it has to be the jobserver, as there's a single java process that looks like this:
18:58 nwc10 28081 nicholas  20   0 8587m 2.3g  11m S 1648.6  2.4   7:52.38 java
18:58 nwc10 that's 1648.6% of CPU, 2.4% of RAM
19:07 moritz nine_: once you have the VM, and have given me access, I can start to migrate camelia
19:12 vendethiel joined #perl6
19:15 tadzik oh joy.. http://imgur.com/BS6ufuC
19:18 masak today's autopun spotting: https://twitter.com/rabcyr/status/584779188093251584
19:19 vendethiel tadzik: that just tells how amazing you are for perl6 :p
19:19 masak tadzik++
19:19 vendethiel tadzik++ :-)
19:20 tadzik hm, that's a good way to look at it
19:20 masak lucasb: classes are "not supposed to" know which subclasses they have.
19:21 masak lucasb: if they do know that, your system has un-GC-able subclasses.
19:21 vendethiel masak: actually, that's a feature I'd love to have "in some way"
19:21 vendethiel my use case is: pattern-matching exhaustiveness checking, most probably in a macro
19:21 masak if it were up to me, that should be computable, but "the hard way", O(classes in the system)
19:22 vendethiel scala has that (with abstract class + case classes extending it, but only if the abstract base class is "sealed", meaning it can't be extended from another file)
19:22 masak *nod*
19:25 masak ooh! question: what should I use if I want the output from a shell command, like from qqx[$cmd], but I want it lazily, line-by-line. basically qqx[$cmd].lines but get the lines ASAP.
19:25 masak ...?
19:26 moritz masak: Proc::Async
19:26 masak ok, and Bring Your Own Quote Modifier?
19:26 masak my goal is `for <<something simple>> -> $line { .. }`
19:27 masak I guess I could define my own sub.
19:27 moritz you'd have to, yes
19:27 * masak checks out Proc::Async
19:27 moritz http://doc.perl6.org/type/Proc::Async it's even documented!
19:28 masak \o/
19:28 dalek doc: c84b34a | moritz++ | lib/Type/Proc/Async.pod:
19:28 dalek doc: Small fix for Proc::Async
19:28 dalek doc: review: https://github.com/perl6/doc/commit/c84b34a380
19:31 tony-o masak: you can use Proc::Async.stdout.act(-> $data { ... }) if you're looking to just capture data as it happens
19:31 lucasb masak: thanks for the note
19:31 dalek doc: a0d233f | moritz++ | lib/Perl6/TypeGraph/Viz.pm:
19:31 dalek doc: Generate links in type graphs without trailing .html
19:31 dalek doc: review: https://github.com/perl6/doc/commit/a0d233fd86
19:32 masak tony-o: cool. and then wrap that in a sub so it looks nice :)
19:32 tony-o i found it the other day when writing 'overwatch' :-)
19:32 masak overwatch?
19:32 tony-o i pipe mine to 'print' and to $*ERR.print
19:33 tony-o are you familiar with supervisor in node?
19:33 * moritz wonders if gather { $proc.stdout.act(&take) } works
19:33 masak tony-o: yes, I know what it is.
19:33 tony-o https://github.com/tony-o/perl6-overwatch
19:34 masak also inotify on Linux.
19:34 tony-o a clone of that, i plan to go a step further and develop a way to create daemon scripts for nix and services for windows
19:34 tony-o more just a 'how does it work' thing, for me
19:34 masak cool. tony-o++
19:43 tony-o m: my $p = Proc::Async.new("find", ["."]); gather { $p.stdout.act(&take); }; await $p.start;
19:43 camelia rakudo-moar 143f62: OUTPUT«Proc::Async is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:1␤  in method new at src/RESTRICTED.setting:32␤  in block <unit> at /tmp/XxvDrJttsH:1␤␤»
19:43 tony-o ah, segfaulted for me
19:45 tony-o masak: interestingly .act doesn't seem to get called without the <newline> character - if i try the .act on a process of "echo -n 'test'" then i get a ===SORRY=== message
19:46 masak sounds like a bug to me.
19:54 masak vendethiel, eli-se: I thought of you two when I found http://jozefg.bitbucket.org/posts/2015-03-24-pcf.html
19:55 vendethiel it probably doesn't look enough like c++ to el-ise ;-)
19:55 masak very clear and inspiring code/explanations.
20:02 ugexe is Test::IO::Capture a core perl6 module? i cant install http::useragent because of it
20:07 ugexe n/m, panda just isnt installing all of the dependencies it should apparently
20:19 lucasb m: 1; 2
20:19 camelia rakudo-moar 143f62: OUTPUT«WARNINGS:␤Useless use of constant integer 1 in sink context (line 1)␤»
20:19 lucasb m: 1.0; 2
20:19 camelia rakudo-moar 143f62: ( no output )
20:19 masak lucasb: 'say'
20:19 lucasb ^^ I don't know if this is intended or not, but these "constant in sink context" warnings only appear for ints, nums and strings, but not for any arbitrary object.
20:20 masak oh, interesting.
20:20 masak m: 1e0; 2
20:20 camelia rakudo-moar 143f62: OUTPUT«WARNINGS:␤Useless use of constant floating-point number 1 in sink context (line 1)␤»
20:21 masak judging from the source code, those seem to be the easy ones to catch.
20:21 masak m: say 1.WHAT; say 1e0.WHAT; say "HAI".WHAT; say 1.0.WHAT
20:21 camelia rakudo-moar 143f62: OUTPUT«(Int)␤(Num)␤(Str)␤(Rat)␤»
20:22 masak (see method visit_want in src/Perl6/Optimizer.nqp)
20:23 Sqirrel joined #perl6
20:23 lucasb masak: You are right, just SVal, IVal, NVal...
20:24 masak I don't know if that's a hard limit, or just "we did the simple stuff first".
20:24 masak I agree that it feels like Rats should be just as sink-detectable.
20:24 masak but sadly I don't have the l33t props to whip up a fix for that.
20:25 masak someone jnthn-complete might be able to.
20:25 lucasb :)
20:26 eli-se joined #perl6
20:27 masak eli-se! \o/
20:27 eli-se hi
20:27 masak eli-se: http://irclog.perlgeek.de/perl6/2015-04-05#i_10392680
20:27 btyler joined #perl6
20:27 eli-se wooot
20:27 eli-se well
20:28 eli-se I am implementing a language. :p
20:28 masak guess that's why I thought of you :)
20:28 eli-se I just went out to dinner with entire family
20:28 eli-se and I was thinking about a programming problem all the time
20:28 eli-se like, for four hours.
20:28 masak eli-se: been there, done that ;)
20:30 eli-se the spareribs were delicious though
20:30 eli-se :3
20:37 tony-o is 'start { ... }' and 'start({ ... })' handled differently behind the scenes?
20:38 Zoffix joined #perl6
20:40 tony-o if i send a connection accepted in one block to a channel and try to .recv i never receive data, if i try to .close in the same channel i get the error that the socket is not available
20:42 masak m: say &start.WHAT
20:42 camelia rakudo-moar 143f62: OUTPUT«(Sub)␤»
20:42 masak tony-o: shouldn't be handled differently.
20:42 masak all other things being equal.
20:43 tony-o masak: if i do start {...} the connection.write never happens (with no error) and with parens it does happen and close is possible, although .recv still doesn't happen as i'd expect
20:45 tony-o https://gist.github.com/tony-o/ae5c68d1b61ce97db09e
20:45 KCL joined #perl6
20:45 masak weird.
20:46 masak I don't see anything wrong or suspicious offhand.
20:46 tony-o should that .recv work cross thread?
20:47 Zoffix joined #perl6
20:53 tony-o it appears the IO::Socket::INET.accept doesn't work cross thread either
20:53 tony-o or not in a way i'd expect -
20:58 jack_rabbit joined #perl6
21:15 RabidGravy is it possible that some static storage in the c library is screwing that up?
21:17 tony-o in moar?
21:17 dolmen joined #perl6
21:17 RabidGravy in the glibc or wherever I was thinking
21:20 RabidGravy haven't look at either code so it's merely wild speculation
21:23 BenGoldberg m: say uniname('????')
21:23 camelia rakudo-moar 143f62: OUTPUT«MATHEMATICAL ITALIC SMALL M␤»
21:23 BenGoldberg m: say uniname('????')
21:23 camelia rakudo-moar 143f62: OUTPUT«MATHEMATICAL ITALIC SMALL N␤»
21:26 espadrine_ joined #perl6
21:29 noganex joined #perl6
21:41 khisanth_ joined #perl6
21:42 dj_goku joined #perl6
21:43 tinyblak joined #perl6
21:49 dalek specs: 438163b | (Stéphane Payrard)++ | S99-glossary.pod:
21:49 dalek specs: bundle, Task::Star, irc related infos
21:49 dalek specs: review: https://github.com/perl6/specs/commit/438163bfab
21:51 BenGoldberg Is there any chance that perl6 could be made to run in a web browser?  Either by compiling to java, actionscript, or perhaps chrome's NaCL?
21:53 masak BenGoldberg: I think our best shot at that is pmurias++' work on giving Rakudo a JS backend.
21:53 masak as far as I understand, nqp already has a JS backend. Rakudo not quite yet.
21:54 RabidGravy I find the idea strangely compelling and horrible at the same time
21:55 masak it's 2015. everyone compiles to JS. better get used to it. :)
21:55 Zoffix :)
21:56 virtualsue joined #perl6
21:56 virtualsue left #perl6
21:58 BenGoldberg I was hoping to hear that someone had gotten the jvm backend of rakudo working in a java applet
21:58 Zoffix Oh god! The horror!
21:59 RabidGravy no on balance I think I'd rather have javascript
22:07 eli-se .tell vendethiel I implemented sleep with Boost.Asio!
22:07 yoleaux eli-se: I'll pass your message to vendethiel.
22:08 eli-se yoleaux: thanks mate you're great
22:18 erdic joined #perl6
22:21 timotimo eli-se: yoleaux likes to get .botsnack
22:22 eli-se .botsnack
22:22 yoleaux :D
22:22 eli-se .botsnack
22:22 yoleaux :D
22:22 eli-se :D
22:26 jack_rabbit joined #perl6
22:30 dalek specs: ecda04f | (Stéphane Payrard)++ | S21-calling-foreign-code.pod:
22:30 dalek specs: S21: removing now obsolete mentions of zavolaj
22:30 dalek specs: review: https://github.com/perl6/specs/commit/ecda04f3db
22:49 dalek roast: 008b78c | TimToady++ | S0 (2 files):
22:49 dalek roast: Deal with double-closures found by new prohibition
22:49 dalek roast: review: https://github.com/perl6/roast/commit/008b78c7b2
22:50 masak new prohibition? where?
22:53 TimToady (1,2,3).map: { * + 1 }
22:53 TimToady m: (1,2,3).map: { * + 1 }
22:53 camelia rakudo-moar 143f62: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_8C9fcwl_T␤Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *␤at /tmp/_8C9fcwl_T:1␤------> 3(1,2,3).map: …»
22:54 TimToady easily worked around if that's really what you mean
22:54 TimToady m: (1,2,3).map: -> { * + 1 }
22:54 camelia rakudo-moar 143f62: OUTPUT«Unhandled exception: Too many positionals passed; expected 0 arguments but got 1␤   at /tmp/QP9KUtjyO5:1  (<ephemeral file>::2)␤ from src/gen/m-CORE.setting:9662  (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm::558)␤ from src/ge…»
22:54 TimToady m: (1,2,3).map: -> $ { * + 1 }
22:54 camelia rakudo-moar 143f62: ( no output )
22:54 masak ah; f5b595ed2
22:55 TimToady but we keep seeing that error of thinking of * as if it were $_
22:57 TimToady I just was too under the weather last night to fix the spillover in roast from that
22:57 masak got it.
22:57 masak well, I have no complaints. this seems to be a good case of limiting crazy uses.
22:58 masak I have never used {} with *, nor have I ever considered it, nor do I think I ever will.
23:05 lucasb m: say (1,1e0).map: *.isa(Int)
23:05 camelia rakudo-moar 143f62: OUTPUT«True False␤»
23:05 lucasb m: say (1,1e0).map: * ~~ Int
23:05 camelia rakudo-moar 143f62: OUTPUT«No such method 'count' for invocant of type 'Bool'␤  in method reify at src/gen/m-CORE.setting:9586␤  in block  at src/gen/m-CORE.setting:9494␤  in method reify at src/gen/m-CORE.setting:9469␤  in block  at src/gen/m-CORE.setting:9494␤  in method…»
23:06 lucasb I suppose I can't use "* ~~ SomeType" to mean "isa"?
23:06 lucasb Another thing...
23:07 lucasb m: module Foo {}; say Foo.does(Any)
23:07 camelia rakudo-moar 143f62: OUTPUT«True␤»
23:07 lucasb m: module Foo {}; say Foo.isa(Any)
23:07 camelia rakudo-moar 143f62: OUTPUT«Cannot call isa(Perl6::Metamodel::ModuleHOW: Foo, Any); none of these signatures match:␤    (\SELF: $type, *%_)␤    (\SELF: Str:D $name, *%_)␤  in method isa at src/gen/m-CORE.setting:1284␤  in block <unit> at /tmp/aEzUCy4Fex:1␤␤»
23:07 lucasb Is a module even an object?
23:08 masak m: module F {}; say F ~~ Mu
23:08 camelia rakudo-moar 143f62: OUTPUT«True␤»
23:08 masak seems so :)
23:08 masak 'night, #perl6
23:10 TimToady m: say * ~~ Whatever
23:10 camelia rakudo-moar 143f62: OUTPUT«True␤»
23:28 telex joined #perl6
23:35 xiaomiao joined #perl6
23:37 timotimo tony-o: maybe it'd be better to pass rich objects around through the channel and not have a hash that's being accessed concurrently?
23:38 timotimo our hashes don't lock themselves by default and if you don't mutex write access on its keys, you might get into trouble
23:39 timotimo ah, you're only adding new keys in the connection handler ... i'd still pass around that whole hash that also includes the buffer to at least couple it looser
23:40 * timotimo heads off to bed
23:41 timotimo http://testers.p6c.org/reports/39580.html - this looks painful :(
23:44 tony-o timotimo: i tried just passing the connection off
23:45 tony-o has the same effect of .recv being empty, also noticed if i created the I:S:I in the same thread as the .recv call, it would receive data where it wouldn't otherwise
23:47 timotimo that's weird! perhaps we lack code to handle sockets that "belong to" or "have been created for" a different uv_loop, but i thought since we only have the sockets in the given loop for a very short time, that should be fine?
23:47 timotimo it's good that you found something like this; could you turn it into a simple-ish test case perhaps?
23:49 rivarun joined #perl6
23:54 dalek rakudo-star-daily: c591c5c | coke++ | log/ (2 files):
23:54 dalek rakudo-star-daily: today (automated commit)
23:54 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/c591c5c40d
23:54 dalek rakudo-star-daily: f2c364e | coke++ | log/ (2 files):
23:54 dalek rakudo-star-daily: today (automated commit)
23:54 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/f2c364ec9e
23:54 dalek rakudo-star-daily: 21fb00b | coke++ | log/ (2 files):
23:54 dalek rakudo-star-daily: today (automated commit)
23:54 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/21fb00b506
23:54 dalek perl6-roast-data: fc8dee4 | coke++ | / (8 files):
23:54 dalek perl6-roast-data: today (automated commit)
23:54 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/fc8dee49e0
23:54 dalek perl6-roast-data: 1f88773 | coke++ | / (9 files):
23:54 dalek perl6-roast-data: today (automated commit)
23:54 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/1f887734db
23:59 tony-o timotimo: yea i'll upload a gist

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

Perl 6 | Reference Documentation | Rakudo