Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-07

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:00 Mouq *:method
00:00 raydiak why is all this better than making method default to 'our' semantics?
00:00 Mouq raydiak: Because then it doesn't have 'has' semantics :P
00:01 raydiak I don't get it.
00:01 Mouq m: class Foo { our method bar { 42 } }; say Foo.bar
00:01 camelia rakudo-moar 7f2085: OUTPUT«No such method 'bar' for invocant of type 'Foo'␤  in block <unit> at /tmp/kuvMkLEdXm:1␤␤»
00:01 raydiak heh okay I get it :)
00:01 Mouq m: module Foo { method bar { 42 } }; say Foo.bar
00:01 camelia rakudo-moar 7f2085: OUTPUT«Useless declaration of a has-scoped method in multi (did you mean 'my method bar'?)␤No such method 'bar' for invocant of type 'Foo'␤  in block <unit> at /tmp/8UbUyQuqVW:1␤␤»
00:01 raydiak I had no idea using our makes a method not callable as a method
00:02 Mouq raydiak: However, it's possible that 'has' *should* have more 'our'-like semantics
00:04 raydiak yes I'm think if we want to facilitate looking things up symbolically...like in a table somehow...you see where I'm going :)
00:07 Mouq raydiak: Except: `class Foo { method FALLBACK ($name) { $name.perl }}; say Foo.::bar(Foo)` => "bar"
00:07 raydiak it doesn't handle multi candidates without the rest of the long name, either
00:07 Mouq raydiak: And probably lots of other things
00:09 raydiak m: class Foo { method FALLBACK ($name) { $name.perl }}; say Foo.^lookup('bar')
00:09 camelia rakudo-moar 7f2085: OUTPUT«(Mu)␤»
00:09 * Mouq is using ^find_method
00:09 raydiak m: class Foo { method FALLBACK ($name) { $name.perl }}; say Foo.^find-method('bar')
00:09 camelia rakudo-moar 7f2085: OUTPUT«No such method 'find-method' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in block <unit> at /tmp/hKPtqOtiUx:1␤␤»
00:09 raydiak m: class Foo { method FALLBACK ($name) { $name.perl }}; say Foo.^find_method('bar')
00:09 camelia rakudo-moar 7f2085: OUTPUT«<anon>␤»
00:09 raydiak m: class Foo { }; say Foo.^find_method('bar')
00:09 camelia rakudo-moar 7f2085: OUTPUT«(Mu)␤»
00:10 Mouq (The code @ https://github.com/Mouq/p6-Syntax-GetMethod/blob/master/lib/Syntax/GetMethod.pm6 works, btw)
00:10 raydiak m: class Foo { multi method bar () {}; multi method bar ($) {}; }; say Foo.^find_method('bar')
00:10 camelia rakudo-moar 7f2085: OUTPUT«bar␤»
00:10 Mouq (Well, except on core types :P)
00:10 raydiak m: class Foo { multi method bar () {}; multi method bar ($) {}; }; say Foo.^find_method('bar').signature
00:10 camelia rakudo-moar 7f2085: OUTPUT«use of uninitialized value $name of type Any in string context  in block <unit> at /tmp/dhhaN5zyeN:1␤␤:(Any ::T $: Any |)␤»
00:11 raydiak oh right, it gives me the proto
00:15 raydiak related thought: a method-call-ish syntax which resolves the dispatch for passed params but returns the candidate instead of invoking it
00:20 raydiak (or maybe just make the second multi you already have in there do that)
00:21 Mouq raydiak: Oo, that would be interesting
00:23 Mouq raydiak: But then how do you call it without narrowing? $foo.::bar()(Foo, "baz") seems pretty inconsistent
00:23 BenGoldberg joined #perl6
00:23 raydiak ah, I see...yeah it might have to be something separate
00:23 Mouq Granted, as it is, $foo.::bar() will return the method, but you can at least avoid writing it like that most of the time
00:24 Mouq Actually, it would by $foo.::bar.(Foo, "baz"), which isn't too bad
00:26 raydiak well, if you wanted to just right away call it with args, presumably you would have used a normal method call anyway
00:28 raydiak otoh I'm not sure how you would distinguish between getting the proto and getting a candidate which has no params :)
00:28 Mouq Fair point, but I feel like if there's going to be syntax to narrow down multi routines, it should be generalizable to subs
00:28 raydiak oh, so true...
00:29 * Mouq doesn't know if &sub:('params') is already reserved, and if so, reserved for this purpose
00:29 raydiak perhaps something to add as a method on routines or something, instead
00:41 BenGoldberg Is there a way to curry object methods?
00:42 BenGoldberg $foo.^assuming
00:42 BenGoldberg $foo.^assuming('somemethod', $some, $args);
00:43 raydiak once you have a methodref you can pretty much treat it like a normal sub including currying (even currying the invocant)
00:49 raydiak m: class Foo { has $.bar; }; my &curried = Foo.^find_method("bar").assuming: Foo.new(:bar<xyz>); say curried
00:49 camelia rakudo-moar 7f2085: OUTPUT«xyz␤»
00:50 raydiak actually, come to think of it, currying a method *without* the invocant is what you can't do, b/c assuming doesn't allow skipping positionals w/* yet
00:55 Kristien I see Jupiter.
00:57 raydiak Mouq: after all this, I think .:: is kinda nice as you have it...the narrowing thing should be separate, and the package symbol table feels wrongish b/c generally nothing goes into it without explicit 'our' (one of the things 6 moves away from compared to 5 I guess)
00:57 raydiak and Mouq++ for turning over this stone, not to mention providing a working example :)
01:00 rurban joined #perl6
01:08 Mouq raydiak: Heh, thanks :) I'm definitely interested to see what the EU hackers say about it
01:09 raydiak I guess the only parts left that I wonder about are whether '.::' is best (since it really has nothing to do with symbol tables but I don't have a better suggestion off the top of my head), and whether the multi which allows invokation is going to cause confusion since .::bar() and .::bar('stuff') are all of a sudden very different and I don't see a use-case for it
01:11 raydiak I also wonder if 'our method' should augment the has semantics instead of replacing them (effectively making it a weird detached floating method thingie?), but that's a different discussion
01:11 raydiak but yes it will be interesting to see what all the sleeping folks say
01:11 Mouq raydiak: I'm concerned about that too... at the same time, if you know that .:: means get a method, then .::bar() wouldn't never make sense to behave like .::bar('stuff'). I suppose the question is whether to allow arguments in the first place directly to dispatch:<.::>
01:11 Mouq *would
01:14 raydiak sounds most sane to disallow them unless you can think of *any reason whatsoever* to use .:: instead of . for that case :)
01:15 Mouq :) Eh, yeah. I'll amend the README to reflect this
01:17 raydiak was fun kicking that one around; afk
01:19 BenGoldberg joined #perl6
01:25 mattp__ are there any planned 6guts posts coming soon?
01:25 mattp__ its been a while :)
01:27 Mouq mattp__: That's up to jnthn :p he did post some slides from a recent talk at FOSDEM
01:27 muraiki_ joined #perl6
01:27 mattp__ Mouq: are those public?
01:28 mattp__ where else can i look to read about progress on things?
01:28 Mouq http://jnthn.net/papers/2015-fosdem-static-dynamic.pdf
01:29 Mouq mattp__: https://p6weekly.wordpress.com/ is one
01:30 mattp__ Mouq: thanks
01:37 muraiki_ the static/dynamic presentation was great
01:37 muraiki_ well, at least the slides :)
01:51 Kristien I don't like the Moon.
01:51 Kristien Let's swap it with Phobos or Io.
02:06 colomon joined #perl6
02:29 adu joined #perl6
02:31 muraiki_ :n
02:34 fhelmberger joined #perl6
02:47 ilbot3 joined #perl6
02:47 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!
02:51 * TimToady to Seattle now
02:51 colomon joined #perl6
02:54 muraiki_ have a safe trip
02:54 BenGoldberg joined #perl6
02:57 TimToady already did
02:57 TimToady s/to/in/
03:09 ggherdov joined #perl6
03:12 pnu joined #perl6
03:25 adu TimToady: that was quick!
03:26 adu Europe to Washington in 5 minutes?
03:26 noganex_ joined #perl6
03:27 TimToady no, already flew to Seattle, flew to Mountain View, and drove back here so we'll have a car here while my younger daughter has her 2nd baby
03:28 TimToady but that's why I've been fairly scarce the last couple days
03:34 dalek doc: d0f3d01 | Mouq++ | / (4 files):
03:34 dalek doc: Put the templates in the template files :P
03:34 dalek doc: review: https://github.com/perl6/doc/commit/d0f3d0199d
03:34 dalek doc: c5609cc | Mouq++ | htmlify.p6:
03:34 dalek doc: Merge write-routine-file and write-syntax-file
03:34 dalek doc: review: https://github.com/perl6/doc/commit/c5609cc738
03:34 dalek doc: ea1ce1f | Mouq++ | / (2 files):
03:34 dalek doc: Merge process-pod-source subs
03:34 dalek doc: review: https://github.com/perl6/doc/commit/ea1ce1ffce
03:41 dustinm` joined #perl6
03:43 Mouq joined #perl6
03:51 hoelzro .tell pmurias I tried my hand at implementing isint and isnum; isint wasn't too bad, but I think isnum is going to be hard, because JS doesn't distinguish between number types
03:51 yoleaux hoelzro: I'll pass your message to pmurias.
04:06 avuserow_ m: say $?FILE; sub foo {say CALLER::<$?FILE>}; foo; # should this work?
04:06 camelia rakudo-moar 7f2085: OUTPUT«/tmp/3DedfG7i6T␤(Any)␤»
04:06 avuserow_ m: say $?FILE; sub foo {say OUTER::<$?FILE>}; foo; # should this work?
04:06 camelia rakudo-moar 7f2085: OUTPUT«/tmp/bQzey5D8Fv␤(Any)␤»
04:08 avuserow_ $?PACKAGE appears to work in the above cases, but not if they are in different files/modules. Still experimenting on this...
04:10 avuserow_ okay, PACKAGE only works for OUTER, not CALLER, and not in separate files
04:22 dalek rakudo-star-daily: 6cc716a | coke++ | log/ (9 files):
04:22 dalek rakudo-star-daily: today (automated commit)
04:22 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/6cc716a826
04:25 avuserow_ m: sub foo {say (CALLER::<$?PACKAGE>).perl}; foo
04:25 camelia rakudo-moar 7f2085: OUTPUT«No such method 'dynamic' for invocant of type 'GLOBAL'␤  in method at_key at src/gen/m-CORE.setting:11561␤  in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3532␤  in sub foo at /tmp/yBVIalszyZ:1␤  in block <unit> at /tmp/yBVIalszyZ:1␤␤»
04:26 BenGoldberg m: say 2 <=> (4 R<=> 7)
04:26 camelia rakudo-moar 7f2085: OUTPUT«More␤»
04:26 BenGoldberg m: say 1 <=> (4 R<=> 7)
04:26 camelia rakudo-moar 7f2085: OUTPUT«Same␤»
04:28 dalek rakudo-star-daily: 5cd6188 | coke++ | bin/star.sh:
04:28 dalek rakudo-star-daily: Revert "Don't test parrot right now, it hangs. :("
04:28 dalek rakudo-star-daily:
04:28 dalek rakudo-star-daily: This reverts commit f580916f2dc0a1d10bd5ad1537c59502ec550f6f.
04:28 dalek rakudo-star-daily:
04:28 dalek rakudo-star-daily: moritz++ for pointing out this is testable again.
04:28 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/5cd618867f
04:29 [Coke] moritz: ^^ there you go.
04:29 dustinm` joined #perl6
04:31 avuserow_ Taking a step back, I guess I generally want to know the file and line of the calling code, for logging/debugging purposes. Also I'd like to have some sort of hierarchal identifier (module/class? package? compunit?) for categorizing log messages. Ideas appreciated :)
04:31 * [Coke] waves from Fredonia, NY
04:37 BenGoldberg joined #perl6
04:47 Mouq avuserow_: Backtrace.new ?
04:52 avuserow_ That looks like it'll get me the line number and filename, which is a start, but only if I know how many levels to go up
04:52 avuserow_ I'm also using .assuming here for convenience methods which is making things interesting
04:58 avuserow_ aha, there are helper methods in Backtrace::Frame that'll help.
05:00 avuserow_ thanks Mouq++
05:01 dalek ecosystem: 2a3f355 | Adrian++ | META.list:
05:01 dalek ecosystem: Add DateTime::Format::LikeGo to ecosystem
05:01 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/2a3f355f27
05:02 avuserow_ I was inspired to write that a while ago to see how easy it would be. Not super interesting but was amusing to write.
05:12 grondilu joined #perl6
05:13 grondilu Hello
05:13 grondilu I often check rakudo's speed with 'time perl6 -e 'say [+] rand xx 100_000;'
05:14 grondilu recently I've noticed that say [+] do for ^100_000 { rand } is much faster.
05:14 grondilu I wonder why.
05:15 grondilu m: say [+] rand xx 10_000; say now - BEGIN now
05:15 camelia rakudo-moar 7f2085: OUTPUT«5012.0104661598␤0.1165213␤»
05:15 grondilu m: say [+] rand xx 100_000; say now - BEGIN now
05:15 camelia rakudo-moar 7f2085: OUTPUT«50092.9241397308␤0.9423590␤»
05:15 grondilu m: say [+] do for ^100_000 { rand }; say now - BEGIN now
05:15 camelia rakudo-moar 7f2085: OUTPUT«50137.1103114145␤0.3230719␤»
05:15 grondilu m: say [+] rand xx 1_000_000; say now - BEGIN now
05:15 camelia rakudo-moar 7f2085: OUTPUT«499970.846753216␤10.0910847␤»
05:16 TimToady OSR maybe
05:16 grondilu m: say [+] do for ^1_000_000 { rand }; say now - BEGIN now
05:16 camelia rakudo-moar 7f2085: OUTPUT«500322.626687708␤3.1610978␤»
05:16 grondilu (so about three times faster)
05:16 * grondilu does not know what OSR stans for.  Checks S99
05:17 TimToady On-Stack Replacmenet
05:17 grondilu (S99 delivered :)
05:17 TimToady figures out the closure isn't needed, probably, and probably optimizes the loop counter better
05:18 grondilu does &infix:<xx> has to be lazy when given a finite $n anyway?
05:19 grondilu (because otherwise we could just have it use for ^$n or something, couldn't we?)
05:20 pierrot joined #perl6
05:20 TimToady currently uses: GatherIter.new({ take x.() while --$n >= 0; }, :infinite($n == Inf)).list
05:21 TimToady after GLR we can probably negotiate away the laziness
05:22 grondilu yeah.  Also I wondered why this candidate considers $n == Inf since there is already a candidate for Whatever as $n.
05:22 TimToady a reduce would know it isn't lazy, though a triangle goes back to lazy
05:23 grondilu oh yeah the triangular version may need laziness, indeed.
05:23 grondilu (or not on second thought.  Dunno)
05:24 TimToady well, that's why laziness needs to be negotiated end to end
05:24 TimToady it depends on what calls the trangle
05:25 grondilu ok
05:25 TimToady well, but it could've been called rand xx Inf
05:26 grondilu indeed.  Forgot about Inf being a thing.
05:26 TimToady we could make it say "No! You can't do infinitely many of those.  You can only do an arbitrary number of them with *." :)
05:31 fil_ joined #perl6
05:32 fil_ hey how do I create a multi-line string
05:32 fil_ without using \n
05:32 fil_ perl5 has this <<EOT syntax...
05:35 grondilu q:to 'EOT'
05:35 avuserow_ fil_: http://design.perl6.org/S02.html#Heredocs
05:35 fil_ thanks!
05:36 fil_ much better syntax than perl5
05:42 TimToady grondilu: your fast loop runs more than 99% in the JIT
05:43 fil_ i need to interpolate strings inside
05:43 avuserow_ use qq
05:43 fil_ when I use qq :to 'EOT' I get an error
05:43 fil_ postcircumfix:<{ }> not defined for type Str
05:44 grondilu that reminds me that I haven't tried compiling with JIT for a while.  Last time I checked it didn't work on 32bits IIRC.
05:44 TimToady fil_: can you show the line it's interpolating?
05:44 fil_ <UNIQUEID>$uniqueId</UNIQUEID>
05:44 TimToady yes, <> is a valid subscrpit
05:44 TimToady I suggest <UNIQUEID>{$uniqueId}</UNIQUEID>
05:44 fil_ it's getting tripped up by my XML?
05:45 TimToady $foo<bar> is short for $foo{'bar'}
05:45 fil_ that fixed it
05:45 fil_ thanks!
05:46 avuserow_ fil_: you could also do q:s:to/EOT/;
05:47 avuserow_ oh maybe not, one second
05:47 avuserow_ no, never mind
05:47 fil_ would be nice if there was a way to do without the curlies
05:47 fil_ but I can live with it
05:55 TimToady you can also backwhack teh <
05:57 grondilu an option to qq for the levels of interpolations allowed would make sense.
05:57 grondilu qq:s would mean 'interpolate only scalar variables'
06:00 grondilu though that seems to be in S02 already (line 3751?)
06:01 grondilu m: my $foo = "bar"; say q:s{this is $foo<bar>}
06:01 camelia rakudo-moar 7f2085: OUTPUT«postcircumfix:<{ }> not defined for type Str␤  in method Str at src/gen/m-CORE.setting:14590␤  in method Stringy at src/gen/m-CORE.setting:1154␤  in block <unit> at /tmp/DL_23e8TjM:1␤␤»
06:01 avuserow_ m: my $foo = {"bar": "other"}; say q:s{this is $foo<bar>};
06:01 camelia rakudo-moar 7f2085: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/E1fMNn_J_T�Invocant colon not allowed here�at /tmp/E1fMNn_J_T:1�------> [32mmy $foo = {"bar":[33m�[31m "other"}; say q:s{this is $foo<bar>};[0m�»
06:01 avuserow_ m: my $foo = {"bar" => "other"}; say q:s{this is $foo<bar>};
06:01 camelia rakudo-moar 7f2085: OUTPUT«this is other␤»
06:01 avuserow_ dang $dayjob brain-damage :)
06:02 grondilu not quite the line I thought
06:02 grondilu S02:4121
06:02 synopsebot Link: http://design.perl6.org/S02.html#line_4121
06:03 grondilu still no the correct line :/
06:03 * grondilu pulls his spec dir
06:09 grondilu meh, nevermind
06:17 Alina-malina joined #perl6
06:35 fhelmberger joined #perl6
06:36 dj_goku joined #perl6
06:36 dj_goku joined #perl6
06:51 [Sno] joined #perl6
06:58 telex joined #perl6
07:04 Alina-malina joined #perl6
07:11 kmnns joined #perl6
07:23 [Sno]_ joined #perl6
07:26 kmnns Hi. I have troubles installing some modules with Panda on OSX. Some succeed (e.g. YAML, Class::Utils, Data::Pretty), some fail (e.g. Pod::Parser, Inline::Perl5, TAP::Harness) due to failing tests. I have a current gcc 4.9.2. Is there anything I can do, or are some random modules just incompatible with the current Rakudo Perl 6?
07:30 avuserow_ kmnns: I just tried TAP::Harness, and it failed, but Inline::Perl5 built and tested okay
07:30 avuserow_ Pod::Parser also failed tests
07:31 avuserow_ I think that Inline::Perl5 requires a Perl 5 build with -fPIC, which yours may or may not have
07:32 raydiak kmnns: you can report the issues on the appropriate github project issue trackers...you may also have more luck with bleeding-edge rakudo in some cases (perhaps via rakudobrew if you're not already using it)
07:33 kmnns Thanks! I will try Inline::Perl5 with a homebrewed Perl 5 again.
07:33 kmnns I use rakudobrew, but even that fails some subtests.
07:34 avuserow_ what are you building Perl 5 with? homebrew? perlbrew? plenv?
07:34 avuserow_ and have you seen this section for Inline::Perl5? https://github.com/niner/Inline-Perl5#building
07:35 kmnns I use perlbrew.
07:35 kmnns A sec, I’ll look
07:35 avuserow_ ah good, it specifically mentions perlbrew
07:36 avuserow_ I know others have had success with it recently
07:36 avuserow_ I'm using plenv and it works, but I lost the plenv command I used to make it work.
07:38 kmnns Good to know, I’ll start from there. Thanks a lot.
07:39 kmnns Regarding the other modules, I guess stuff just breaks randomly currently.
07:40 avuserow_ I think that people are usually pretty good about addressing issues when they're reported
07:42 alini joined #perl6
07:43 kmnns That’ great! I’ll do my part. As soon as I have rules out any dumb mistake. Also, OSX is a special case, e.g. it pretends using gcc while actually linking to clang, afaik.
07:46 kmnns I am currently preparing a course for applied programming in NLP at my university. It would be great if I could use Perl6 for the class demos.
07:46 kmnns Thanks for your hints!
07:48 xfix joined #perl6
07:48 wicope joined #perl6
07:54 skids .tell moritz 32-bit star-RC build: all backends build.  moar,parrot pass "make spectest". jvm/openjdk can't run most anything, OOM and stack overflows.
07:54 yoleaux skids: I'll pass your message to moritz.
08:00 moritz skids: thanks for testing
08:00 yoleaux 07:54Z <skids> moritz: 32-bit star-RC build: all backends build.  moar,parrot pass "make spectest". jvm/openjdk can't run most anything, OOM and stack overflows.
08:01 skids also had one segv on parrot during panda-p install Sum but I think I've seen that happen before.
08:05 raydiak skids: idk if it will help in your case, but it used to be common to add/modify -Xmx and -Xms params in the perl6-j/nqp-j shell scripts to get errors like that to go away
08:05 prime joined #perl6
08:07 timotimo o/
08:07 raydiak \o timo
08:11 [Tux] lizmat, cunfusing git commit message: FILETEST-L -> FILETEST-READLINE  => FILETEST-L -> FILETEST-READLINK
08:11 avuserow_ do we have an IO::Handle subclass that writes to an in-memory array or string or something?
08:13 avuserow_ okay, so there's IO::String in the ecosystem, which provides enough of what I need, I think
08:16 timotimo if you have a specific use case for that module, be sure to provide some tests if possible :)
08:18 avuserow_ for IO::String? I was actually hoping to use it in my tests, since I'm working on a module that takes a filehandle for some purposes
08:18 darutoko joined #perl6
08:18 darutoko- joined #perl6
08:19 avuserow_ I'm trying to write a simple but still useful logging module
08:20 avuserow_ my theory is that someday, someone who wants ultra-configurable logging will port Log4j to Perl 6, and that'll be the go-to solution for those people. But I want something simple in the interim
08:21 timotimo ah, hehe
08:24 mr-foobar joined #perl6
08:26 _mg_ joined #perl6
08:33 Alina-malina joined #perl6
08:35 Rounin joined #perl6
08:36 raydiak good night #perl6
08:42 espadrine joined #perl6
08:56 Alina-malina joined #perl6
09:12 sivoais joined #perl6
09:17 mvuets joined #perl6
09:22 vendethiel joined #perl6
09:32 wicope joined #perl6
09:36 rindolf joined #perl6
09:37 diana_olhovik_ joined #perl6
09:37 molaf_ joined #perl6
09:38 lizmat [Tux]: yeah, noticed too late
09:38 lizmat anyway, it's only in a branch right now
09:47 lizmat m: my $a = 42; say qq:!s/a = $a/   # grondilu: you can switch off types of interpolation as well
09:47 camelia rakudo-moar 7f2085: OUTPUT«a = $a␤»
10:05 eternaleye joined #perl6
10:05 trone_ joined #perl6
10:23 gfldex joined #perl6
10:35 dalek rakudo/nom: db6254b | lizmat++ | / (4 files):
10:35 dalek rakudo/nom: Add IO::Symlink stub
10:35 dalek rakudo/nom:
10:35 dalek rakudo/nom: For easier switching between nom and newio branch
10:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/db6254b788
10:36 dalek rakudo/newio: 7f20855 | moritz++ | src/core/ (2 files):
10:36 dalek rakudo/newio: move X::Does::TypeObject to operators.pm
10:36 dalek rakudo/newio:
10:36 dalek rakudo/newio: it reads much nicer to have the exception defined close to where it is thrown
10:36 dalek rakudo/newio:
10:36 dalek rakudo/newio: Also record the type that was attempt to mix into
10:36 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/7f20855734
10:36 dalek rakudo/newio: db6254b | lizmat++ | / (4 files):
10:36 dalek rakudo/newio: Add IO::Symlink stub
10:36 dalek rakudo/newio:
10:36 dalek rakudo/newio: For easier switching between nom and newio branch
10:36 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/db6254b788
10:36 dalek rakudo/newio: 727f247 | lizmat++ | / (6 files):
10:36 dalek rakudo/newio: Merge branch 'nom' into newio
10:36 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/727f2475a3
10:36 spider-mario joined #perl6
10:36 eternaleye_ joined #perl6
10:41 eternaleye_ joined #perl6
11:01 nwc10 yoleaux: .tell jnthn origin/native-ref bad news - spectest fails, good new - not due to ASAN exploding
11:07 FROGGS .tell jnthn <nwc10> origin/native-ref bad news - spectest fails, good new - not due to ASAN exploding
11:07 yoleaux FROGGS: I'll pass your message to jnthn.
11:07 FROGGS :o)
11:08 kmnns joined #perl6
11:10 jnthn nwc10: What fails, ooc?
11:10 yoleaux 11:07Z <FROGGS> jnthn: <nwc10> origin/native-ref bad news - spectest fails, good new - not due to ASAN exploding
11:11 jnthn nwc10: For example, I know buf.t and reverse.t do, but those are because my branch is missing fixes from nom.
11:11 jnthn (I brunch too early to have them)
11:12 nwc10 also t/spec/integration/weird-errors.t t/spec/integration/advent2014-day05.rakudo.moar
11:12 nwc10 IIRC t/spec/integration/advent2014-day05.rakudo.moaris flappy
11:12 nwc10 yes, just passed
11:13 nwc10 t/spec/integration/weird-errors.t
11:13 nwc10 not ok 5 - multi sub with where clause + temp stress
11:13 nwc10 that's all the rest
11:14 nwc10 oh wait,t/spec/S17-procasync/basic.rakudo.moar  passed a todo and failed a test
11:14 nwc10 butnot on a repeat
11:14 nwc10 Failed test:  29
11:14 nwc10 TODO passed:   28
11:14 nwc10 but onrepeat
11:14 nwc10 ok 28 - Can finish, return Proc::Status# TODO returns Nil
11:14 nwc10 ok 29 - got correct STDOUT
11:15 Kristien joined #perl6
11:15 jnthn That's likely not to do with the branch, however...that one is flappy for me in nom also
11:16 nwc10 that's what I assumed
11:16 Kristien hi
11:17 FROGGS hi Kristien
11:27 jnthn mattp__: I'm back to having time to work on interesting stuff again now, so yeah, I'll write something there about the natives work I'm currently on with when I'm a bit further into it. :)
11:28 jnthn (there = my blog, for those without the curiosity to look hours ago in the backlog :))
11:32 tgt joined #perl6
11:40 xfix joined #perl6
11:46 dalek nqp/native-ref: b4bc86d | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
11:46 dalek nqp/native-ref: Map native attr ref-taking ops to MoarVM ops.
11:46 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/b4bc86dcbd
11:59 rurban joined #perl6
11:59 rurban__ joined #perl6
12:00 FROGGS [Coke]: can we get an RT tag 'blocking' or some such? that we'd set for tickets that really need to be resolved this year
12:01 FROGGS we could add the same in git repos
12:01 FROGGS and perhaps have a weekly report that gathers all of them
12:02 virtualsue joined #perl6
12:04 rurban__ We are happily using gh milestones, and a red Bug label, with Severity and Priority levels
12:06 FROGGS yeah, if we had moved to gh from RT already we certainly would use milestones too
12:06 FROGGS I really like these :o)
12:06 FROGGS rurban: btw, you've seen pmichaud message from a few days ago on #parrot?
12:08 colomon joined #perl6
12:11 FROGGS err, rurban__
12:15 rurban__ nope, I'll check
12:19 rurban__ Parrot is lacking support for typed arrays? What is the most important feature rakudo needs not to drop parrot. I believe it will be incredibly short-sighted to limit the number of architectures perl6 can run on
12:19 rurban__ But I'm used to the casual self-destructing tendencies over time
12:25 FROGGS rurban__: the goal is to have an implementation of what we think Perl 6.0.0 is... and prototyping that on moarvm is much faster than doing it on all three backends
12:25 FROGGS so, prototype this year, get all in line next year I suppose
12:26 FROGGS and about architectures, I don't think any user will try rakudo on armv5, even when parrot supports it
12:26 FROGGS moarvm also supports the most used platforms btw
12:27 timotimo also, rakudo on moarvm has less severe memory usage than parrot does (though it's hard to compare, as parrot only releases memory very rarely)
12:32 FROGGS for example I can't compile rakudo's setting on parrot when my windows 7 VM is running on the same box, it will crash the VM
12:32 FROGGS as if there is a deep recursion
12:33 FROGGS I can't compile perl6-j for that matter either
12:33 chenryn joined #perl6
12:35 FROGGS rurban__: btw, I'll help porting GLR, NFG or NSA stuff over, or whatever will change during perl6-p's sleep
12:37 rurban joined #perl6
12:37 yeahnoob joined #perl6
12:37 rurban left #perl6
12:39 rmgk_ joined #perl6
12:39 rurban__ yes, the parrot GC is a problem. GMS is correct but too slow, MS is 30% faster but incorrect when compacting strings
12:39 rurban__ NFG is parrot-only, but can be ported over from moar, I guess
12:39 rurban__ the rest is NQP-only I assume
12:40 chenryn joined #perl6
12:40 rurban__ And I have no idea what the deal with native arrays is. We had that for decades
12:41 maettu joined #perl6
12:41 timotimo what we need is an object to represent references to native things
12:41 timotimo or something like that
12:42 FROGGS we'll see what we need once it works on moar
12:43 rurban__ parrot supports that sized size or resizable, for P (any), and typed for S,I,N
12:43 rurban__ you mean attrref in moar?
12:44 jnthn The stuff going on in the moar native-ref branch
12:45 rurban__ I see. I don't understand the "taking ops" part
12:46 rurban__ A NativeRef PMC
12:46 BenGoldberg joined #perl6
12:47 jnthn Needs to be a 6model REPR really
12:48 jnthn And a real 6model object type
12:48 rurban__ yes
12:48 jnthn Since the container spec stuff is how you assign into it.
12:48 rurban__ So lot of nqp-p work needed. indeed
12:49 rurban__ I can only help with the parrot parts, NFG. I'm too bad with nqp
12:50 FROGGS as I said, I'm going to help out where I can
12:51 sqirrel__ joined #perl6
12:51 FROGGS though, The Release™ first (which are two releases, rakudo and roast)
12:54 * FROGGS hopes that MoarVM is not too sad that he put it under the rakudo umbrella
12:54 jnthn That's the reason MoarVM exists :)
12:55 FROGGS yeah, a faithful servant :o)
13:01 usuario_ joined #perl6
13:01 dalek rakudo/native-ref: 32ad78f | jnthn++ | src/core/Attribute.pm:
13:01 dalek rakudo/native-ref: Implement rw accessors for native attributes.
13:01 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/32ad78f7fc
13:02 FROGGS \o/
13:02 FROGGS jnthn++
13:03 vendethiel \o/
13:03 yoleaux 6 Feb 2015 19:06Z <Kristien> vendethiel: I decided to write a custom VM
13:03 vendethiel Kristien: in which language :P?
13:03 Kristien D
13:04 vendethiel alright, that makes sense :)
13:05 jnthn lunch &
13:06 Kristien vendethiel: it can already run this program! https://gist.github.com/rightfold/328570d1fcbc04ee881c
13:07 vendethiel Kristien: btw, agluj really reminds me of FORTRAN :p
13:07 dalek Inline-Perl5: 1a9085c | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
13:07 dalek Inline-Perl5: Allow re-using an existing Perl 5 interpreter
13:07 dalek Inline-Perl5:
13:07 dalek Inline-Perl5: First step to support using Inline::Perl5 to implement Inline::Perl6
13:07 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/1a9085c845
13:07 Kristien it looks a lot like Eiffel
13:08 vendethiel ah, right. then let's say ada instead of FORTRAN :p
13:15 * FROGGS .oO( weirdos )
13:16 Kristien :c
13:16 vendethiel FROGGS: coming from you, that's definitely  a complimen
13:16 vendethiel s/$/t/
13:17 Kristien I am now making the lexical analyzer.
13:17 FROGGS *g*
13:20 rurban__ I'm starting now with my type inferencer(s)
13:23 vendethiel rurban__: parrot-side?
13:24 bartolin fwiw I also think we should organize our (RT) tickets better. would it be possible to have sub-queues in addition to tags there?
13:24 bartolin * has no experience with githubs issue system
13:25 * bartolin has no experience with githubs issue system
13:26 FROGGS well, what's the difference between a subqueue and a tag?
13:28 bartolin I thought subqueues would it make easier to sort for something like "everything except this and that and those"
13:29 FROGGS github lets you do that with tags nicely
13:29 rurban__ vendethiel: no, perl5 and potion. parrot needs none. perl6 would need one
13:29 vendethiel rurban__:  ah, yes, potion
13:30 rurban__ but the problem is only the numerical tree. promote to bigint or double on jo?
13:31 rurban__ which is basically the biggest perl5 vs perl6 difference for me :)
13:33 rindolf joined #perl6
13:33 bartolin FROGGS: I'd be fine with moving to github. but in both cases we have to put some effort in better organizing the tickets/issues (IMHO)
13:35 lizmat historically, masak has been the most against moving to GH
13:35 FROGGS bartolin: aye
13:35 lizmat so maybe he should have a word in this as well  :-)
13:35 FROGGS lizmat: why? this just makes is harder :o)
13:35 bartolin lizmat: yes, of course!
13:35 FROGGS pah!
13:36 lizmat well, historically, masak has been the submitter and maintainer of the most bug reports
13:36 lizmat maybe that has changed...
13:36 vendethiel he's certainly one to have his reasons for keeping on RT :-)
13:37 * vendethiel has never been able to understand how RT worked, and has instead prefered showing the bugs in this channel :P
13:38 bartolin has anyone worked on perl5 tickets on RT and knows how those are organized?
13:40 moritz bartolin: not really, but #p5p von irc.perl.org can surely help you answer that
13:40 itz_ I was always confused why logging into RT seemed to show me less tickets than the anonymous view
13:41 itz_ less as in 0
13:41 moritz that's... not much
13:43 lizmat ship it!
13:43 lizmat :-)
13:44 FROGGS hehe
13:45 chenryn joined #perl6
13:48 dalek rakudo/newio: c12c52b | lizmat++ | src/core/IO/Symlink.pm:
13:48 dalek rakudo/newio: Make IO::Symlink compile
13:48 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/c12c52bbfa
13:48 dalek rakudo/newio: 3b2c900 | lizmat++ | src/core/IO (2 files):
13:48 dalek rakudo/newio: Introduce/use new OBJECTIFTY-PATH helper sub
13:48 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/3b2c90085b
13:48 pmurias joined #perl6
13:49 lizmat afk for the rest of the day
13:49 nine_ RT is a great ticket system. Unfortunately it's not a good development tool
13:49 virtualsue_ joined #perl6
13:51 pmurias .tell hoelzro yes, isint/isnum is impossible unless we wrap either integers of doubles  or infer the type somehow, it's a hard decision that might cost us some performance
13:51 yoleaux 03:51Z <hoelzro> pmurias: I tried my hand at implementing isint and isnum; isint wasn't too bad, but I think isnum is going to be hard, because JS doesn't distinguish between number types
13:51 yoleaux pmurias: I'll pass your message to hoelzro.
13:51 itz_ "We currently have a known issue where Bitcard accounts where the name contains non-ASCII characters (such as ö) will not be able to log in. The workaround is to change your full name in your bitcard account."
13:51 diana_olhovik joined #perl6
13:52 hoelzro pmurias: I figured =/ I don't know if the distinction would break things at the moment; should I just continue with a single breaking test?
13:52 yoleaux 13:51Z <pmurias> hoelzro: yes, isint/isnum is impossible unless we wrap either integers of doubles  or infer the type somehow, it's a hard decision that might cost us some performance
13:52 pmurias hoelzro: hi
13:52 hoelzro morning pmurias
13:52 nwc10 jnthn: no new failures, and Cthulhu, er ASAN sleeps
13:53 pmurias hoelzro: I think it would be best to just defer implementing those till we figure out how to best solve that problem
13:53 hoelzro ok
13:53 hoelzro I started with those because they *seemed* easy, and then the distinction occurred to me =(
13:54 hoelzro by the way, you wanted to merge in upstream nqp at some point, right, pmurias ?
13:54 pmurias hoelzro: there are ops marked with EASY in the todo
13:54 hoelzro ah, maybe I should start there =)
13:55 pmurias hoelzro:  merging in something we need to do eventually
13:55 Sysaxed joined #perl6
13:56 pmurias hoelzro:  I don't have strong gitfu, so if you know to do it correctly it would be great
13:56 hoelzro I can try
13:56 Sysaxed does anybody have a video of Larry's talk from FOSDEM? live.fosdem.org does not really work.
13:57 FROGGS Sysaxed: there are no recordings available atm AFAIK
13:57 hoelzro would a merge or a rebase be preferable?
13:57 FROGGS Sysaxed: the official recordings will be here in a few weeks: http://video.fosdem.org/
13:57 psch \o
13:58 Sysaxed FROGGS: hummm :(
13:58 FROGGS hi psch
13:58 hoelzro I see no merges in the history so far, and I see evidence of a past rebase
13:58 FROGGS Sysaxed: yeah
13:58 itz_ rebuild.fm has a recent audio interview
13:58 FROGGS Sysaxed: I missed some talks and have to wait too :o(
13:58 FROGGS ohh
13:58 lizmat Sysaxed: this is where the videos of the devroom should appear: http://video.fosdem.org/2015/K3401/Saturday/
13:58 FROGGS itz_++
13:58 lizmat it's 404 now, but sometime in the coming days / weeks it will be filled
13:58 pmurias hoelzro: to you want to merge it into the main nqp repo or just update the nqp-js repo?
13:58 pmurias s/do/to
13:58 Sysaxed lizmat: hummm :((
13:59 hoelzro pmurias: I was going to do the latter
13:59 Sysaxed thanks, guys!
13:59 lizmat This is where Larry's video should appear: http://video.fosdem.org/2015/Janson/Sunday/
13:59 hoelzro if others here assent, I don't see a problem with the former
13:59 lizmat really afk now&
14:00 pmurias hoelzro: for the former it would be best to ask jnthn's opinion
14:00 hoelzro agreed
14:01 pmurias jnthn: hi
14:03 pmurias re rebase or merge, rebasing seemed to work fine last time
14:09 tgt joined #perl6
14:09 xinming_ joined #perl6
14:11 Hor|zon joined #perl6
14:12 Kristien joined #perl6
14:13 chenryn joined #perl6
14:13 timotimo .o( git rebase and lightning, very very frightening me )
14:14 hoelzro galileo!
14:15 isBEKaml joined #perl6
14:16 jnthn When I worked on the JVM and Moar backends, I did them in a branch in the NQP repo, then merged once it was bootstrapped and passing make test.
14:16 jnthn (merged into master)
14:16 jnthn That made it easy to regularly merge stuff in from master also
14:25 Kristien hi
14:31 dalek roast: 4eb80b2 | usev6++ | S32-list/map.t:
14:31 dalek roast: Add test for RT #120620
14:31 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120620
14:31 dalek roast: review: https://github.com/perl6/roast/commit/4eb80b2d48
14:41 pmurias jnthn: does rebasing into a branch seem sane?
14:41 jnthn You don't really rebase into... :)
14:42 jnthn You can rebase the nqp-js dev branch on latest nqp master in a branch, if that's what you're pondering
14:42 pmurias jnthn: that's what I'm pondering
14:42 jnthn It's fine, except anybody who has that branch locally will have to fix that local tracking branch.
14:42 jnthn But if you're going to move to a branch within the NQP repo proper, that's kinda moot :)
14:42 pmurias jnthn: that branch doesn't exist yet so nobody has it yet
14:42 jnthn Right. :)
14:45 zoosha joined #perl6
14:45 jercos joined #perl6
14:45 amkrankruleuen joined #perl6
14:45 amkrankruleuen joined #perl6
14:45 awwaiid joined #perl6
14:45 gfldex joined #perl6
14:45 felher joined #perl6
14:45 Possum joined #perl6
14:45 rurban__ joined #perl6
14:46 yeltzooo joined #perl6
14:46 lue joined #perl6
14:46 gtodd joined #perl6
14:47 lea joined #perl6
14:48 rurban joined #perl6
14:49 hoelzro pmurias: if I rebase and push it up, you'll have to git reset --hard hoelzro/master
14:49 hoelzro but, as discussed, it's moot if I create a branch, or push it into nqp/master
14:49 pmurias creating a nqp-js in the main nqp repo seems the best thing
14:50 pmurias * nqp-js branch
14:50 [Coke] joined #perl6
14:52 jnthn I'd be +1 to a js branch in the main nqp repo
14:53 pmurias +1 for a js branch
14:59 dalek nqp/native-ref: 773a92b | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
14:59 dalek nqp/native-ref: Map atposref_* ops for MoarVM.
14:59 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/773a92bc64
14:59 pmurias hoelzro: do the tests pass after a rebase?
15:03 * hoelzro tries
15:03 hoelzro ok, here we go
15:09 dalek Inline-Perl5: 5902244 | (Stefan Seifert)++ | / (2 files):
15:09 dalek Inline-Perl5: Properly initialize callbacks when used from Inline::Perl6
15:09 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/59022444a3
15:11 Hor|zon joined #perl6
15:16 jnthn m: my $b = Buf.new; $b[0] = 1; $b[1, 2] = 2, 3; $b
15:16 camelia rakudo-moar db6254: OUTPUT«Cannot modify an immutable Int␤  in method STORE at src/gen/m-CORE.setting:8612␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3350␤  in block <unit> at /tmp/hGEt5bk9JP:1␤␤»
15:17 FROGGS m: my $b = Buf.new; $b[0] = 1;
15:17 camelia rakudo-moar db6254: ( no output )
15:17 dalek rakudo/native-ref: 3409067 | jnthn++ | src/core/Buf.pm:
15:17 dalek rakudo/native-ref: Allow Buf at_pos to return an l-value.
15:17 dalek rakudo/native-ref:
15:17 dalek rakudo/native-ref: Makes various kinds of assignment work out properly.
15:17 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/3409067abc
15:18 pyrimidi_ joined #perl6
15:18 jnthn > my $b = Buf.new; $b[0] = 1; $b[1, 2] = 2, 3; $b
15:18 jnthn Buf:0x<01 02 03>
15:19 jnthn :)
15:19 dalek rakudo/nom: 5450e7e | FROGGS++ | src/Perl6/Actions.nqp:
15:19 dalek rakudo/nom: improve error report for anon vars [RT #123584]
15:19 dalek rakudo/nom:
15:19 dalek rakudo/nom: `$; my $b;` now gives: Useless use of variable $ANON_VAR__1 in sink context (line 1)
15:19 dalek rakudo/nom:            instead of: Cannot find method "orig"
15:19 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123584
15:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5450e7edf8
15:20 FROGGS reporting*
15:25 FROGGS m: sub foo(\a) { say a.VAR.name }; foo($) # I wonder how to solve that
15:25 camelia rakudo-moar db6254: OUTPUT«$ANON_VAR__1␤»
15:28 chenryn joined #perl6
15:28 dalek Inline-Perl5: 35bf0a4 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
15:28 dalek Inline-Perl5: Allow EVALing Perl 6 code from Perl 5.
15:28 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/35bf0a4273
15:28 FROGGS hmmm, the patch seems too easy to be good
15:28 jnthn Just don't give it a name, perhaps :)
15:29 jnthn IN the ContainerDescriptor, I mean
15:29 jnthn The actual lexical slot needs a distinct name.
15:29 dalek Inline-Perl5: 9feb7b2 | (Stefan Seifert)++ | t/eval_p6_in_p5.t:
15:29 dalek Inline-Perl5: Tests for EVALing P6 code from P5
15:29 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/9feb7b2393
15:29 hoelzro curses, I screwed up Configure.pl a bit
15:31 Akagi201 joined #perl6
15:32 timotimo jnthn: yay!
15:32 timotimo also allows += and ++, right?
15:32 jnthn timotimo: In theory. In practice the += explodes with an odd MOP-y error
15:32 timotimo k
15:33 jnthn Didn't try the ++
15:33 jnthn Though the ++ should probably pick a native candidate also and it won't yet
15:33 colomon joined #perl6
15:33 jnthn Still plenty of work to do yet :)
15:33 jnthn And this is before any of the interesting optimization bits.
15:33 dalek Inline-Perl5: 8268489 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
15:33 dalek Inline-Perl5: Put P6 package creation and evaluator in a single class
15:33 dalek Inline-Perl5:
15:33 dalek Inline-Perl5: Fewer single-method classes and fewer variables for less overhead
15:33 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/8268489b0c
15:36 chenryn joined #perl6
15:38 telex joined #perl6
15:38 pyrimidine_ quick question on regex use of ^^ and $$; if I have something like 'token foo {^^ <bar> $$}', do the line beg/end matches imply the same line?
15:39 pyrimidine_ e.g. should <bar> be bound to the line?
15:39 timotimo i don't think they do, no.
15:39 pyrimidine_ or should I explicitly make <bar> not match a newline?
15:40 timotimo that seems like a better idea
15:41 pyrimidine_ timotimo: yeah, makes sense
15:41 jnthn The $$ there just means "after <bar> has happened we should be at the end of a line"
15:41 jnthn So yeah, what timotimo++ said
15:42 timotimo if you find no other way, you can also write { ^^ [\N+] & <bar> $$ }
15:42 hoelzro pmurias: ok, I finished the rebase, but now all of the NQP tests give me this error:
15:42 timotimo may not need the [ ]
15:42 hoelzro Unsupported serialization format version: 12
15:42 timotimo actually
15:42 timotimo probably wants to be:
15:42 timotimo { ^^ [\N+ & <bar>
15:42 timotimo ] $$ }
15:43 pyrimidine_ timotimo++
15:43 pyrimidine_ thx!
15:45 hoelzro hmm, maybe it's something left over from an earlier build in node_modules
15:46 JimmyZ m: my $= 'hell'; say $ANON_VAR__1
15:46 camelia rakudo-moar db6254: OUTPUT«hell␤»
15:48 davercc joined #perl6
15:48 hoelzro ok, if I bump the serialization version to 12 in deserialization.js, it works
15:49 dalek Inline-Perl5: f2963bb | (Stefan Seifert)++ | / (2 files):
15:49 dalek Inline-Perl5: Add support for calling arbitrary P6 functions from P5
15:49 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/f2963bb130
15:49 dalek Inline-Perl5: 21ff27d | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
15:49 dalek Inline-Perl5: Final piece for Inline::Perl6 implementation
15:49 dalek Inline-Perl5:
15:49 dalek Inline-Perl5: Set up a callback function that can be used to create an Inline::Perl5 object
15:49 dalek Inline-Perl5: for bootstrapping Inline::Perl6.
15:49 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/21ff27d1aa
15:50 dalek Heuristic branch merge: pushed 311 commits to nqp/js by hoelzro
15:53 dalek nqp/js-fixes: 36f747d | hoelzro++ | src/vm/js/nqp-runtime/deserialization.js:
15:53 dalek nqp/js-fixes: Bump serialization version to 12
15:53 dalek nqp/js-fixes:
15:53 dalek nqp/js-fixes: This fixes the tests for the JS backend
15:53 dalek nqp/js-fixes: review: https://github.com/perl6/nqp/commit/36f747d81b
15:53 dalek nqp/js-fixes: daa3e39 | hoelzro++ | src/vm/js/bin/run_tests:
15:53 dalek nqp/js-fixes: Specify the more-if-tests verbosely
15:53 dalek nqp/js-fixes:
15:53 dalek nqp/js-fixes: Otherwise we include a failing pipe test, which wasn't in nqp-js
15:53 dalek nqp/js-fixes: review: https://github.com/perl6/nqp/commit/daa3e39b45
15:53 hoelzro pmurias: ok, I did the rebase; that's in the js branch
15:54 hoelzro there are some fixes that I naively applied, which are in the js-fixes branch
15:54 hoelzro if you don't care for how I did them, we can just discard that branch
15:55 itz_ ==> Testing Inline
15:55 itz_ This type cannot unbox to a native integer in method postcircumfix:<( )> at /home/steve/othersrc/star/rakudo-star-2015.01-RC1/install/languages/perl6/lib/NativeCall.pm6:139
15:55 dalek Inline-Perl6: 6e0d5e8 | (Stefan Seifert)++ | / (6 files):
15:55 dalek Inline-Perl6: Use Inline::Perl5 directly instead of copying more and more code
15:55 dalek Inline-Perl6:
15:55 dalek Inline-Perl6: Inline::Perl6 now uses Perl 6's Inline::Perl5 for interop implementation.
15:55 dalek Inline-Perl6: This gives instant feature parity.
15:55 dalek Inline-Perl6: review: https://github.com/niner/Inline-Perl6/commit/6e0d5e89de
15:56 nine_ jnthn: Inline::Perl6 now consists only of 111 lines of XS and can do everything Inline::Perl5 can :)
15:56 noganex joined #perl6
15:57 jnthn nine_++ \o/
15:59 dustinm` joined #perl6
16:00 hoelzro oh, it seems that one of the tests is encountering an NYI op, but not failing...
16:01 hoelzro 63-slurp
16:11 Hor|zon joined #perl6
16:16 espadrine joined #perl6
16:36 Alina-malina joined #perl6
16:49 colomon joined #perl6
16:49 dalek nqp/js-fixes: d9e8868 | hoelzro++ | src/core/IO.nqp:
16:49 dalek nqp/js-fixes: Don't call setinputlinesep on JS
16:49 dalek nqp/js-fixes: review: https://github.com/perl6/nqp/commit/d9e8868408
16:49 hoelzro ok, that's fixed
16:52 dalek roast: 4dca70c | usev6++ | S03-metaops/reverse.t:
16:52 dalek roast: Add test for RT #116649
16:52 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=116649
16:52 dalek roast: review: https://github.com/perl6/roast/commit/4dca70c8ee
17:03 * flussence just spent a silly amount of time trying to find a way to detect an exit() call... all I needed in the end was &exit.wrap
17:05 timotimo and here comes somebody using nqp::exit
17:07 jnthn Not if they care about END blocks they won't... :P
17:07 Kristien joined #perl6
17:12 Hor|zon joined #perl6
17:13 arnsholt timotimo: my sub exit(int $code) is native(Str) {*} # >:D
17:13 arnsholt Or heck sub _exit if you want to terminate with extreme prejudice
17:14 Kristien sub main() is native(int) {*}!
17:14 Kristien hm wait
17:14 Kristien Str
17:14 Kristien how do you specify return type of native function?
17:15 Kristien sub main() returns int is native(Str) {*}?
17:15 timotimo "returns"
17:15 Kristien cool
17:15 vendethiel (or "of")
17:15 vendethiel (or prefix type)
17:15 vendethiel m: Int sub foo { 5 }
17:15 camelia rakudo-moar 5450e7: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/zTrVOatTP9â�¤Two terms in a rowâ�¤at /tmp/zTrVOatTP9:1â�¤------> [32mInt [33mâ��[31msub foo { 5 }[0mâ�¤    expecting any of:â�¤        infix stopperâ�¤        infix or meta-infixâ�¤        state…»
17:15 vendethiel m: sub Int foo { 5 }
17:15 camelia rakudo-moar 5450e7: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/gTz8CW1h1W�Missing block�at /tmp/gTz8CW1h1W:1�------> [32msub Int [33m�[31mfoo { 5 }[0m�»
17:15 arnsholt vendethiel: Or -->
17:15 vendethiel eh?
17:16 vendethiel can't remember the syntax then :)
17:16 arnsholt m: my Int sub foo { 5 }
17:16 camelia rakudo-moar 5450e7: ( no output )
17:16 flussence m: sub foo(--> Int) { 5 }
17:16 camelia rakudo-moar 5450e7: ( no output )
17:16 vendethiel ah, declarator, ofc
17:16 arnsholt vendethiel: Need the scope declarator to trigger the type parsing
17:22 timotimo we may be able to catch that mistake in the parser
17:26 dalek nqp/native-ref: ef8fa52 | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
17:26 dalek nqp/native-ref: Teach as_mast_constant about QAST::Want.
17:26 dalek nqp/native-ref:
17:26 dalek nqp/native-ref: Makes some of the nqp::ops usable from Rakudo that previously weren't.
17:26 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/ef8fa52bb4
17:26 dalek nqp/native-ref: add2c9f | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
17:26 dalek nqp/native-ref: Map late-bound form of native lexical reference.
17:26 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/add2c9fd18
17:32 Kristien Io looks like a delicious cheeseball.
17:38 jnthn dinner &
17:40 Mouq joined #perl6
17:42 moritz http://home.p6c.org/~moritz/rakudo-star-2015.01.tar.gz this is going to be last month's R* release, unless somebody finds a fatal flaw in it Really Soon[tm]
17:45 moritz release uploaded, tag pushed
17:45 [ptc] moritz++
17:48 Kristien I found a fatal flaw in it!
17:48 Kristien Just kidding!
17:48 moritz Kristien: if this were my first release, I might have paniced for a moment :-)
17:50 nwc10 jnthn: ASAN still sleeps
17:51 Kristien As Soon As Nap
17:51 moritz http://rakudo.org/2015/02/07/announce-rakudo-star-release-2015-01/
17:53 geekosaur .oO ph'nglui mglw'nafh ASAN Camelia wgah'nagl fhtagn?
17:53 geekosaur hrm, dropped some keys. my keyboard may be protecting me :p
17:54 geekosaur no, not dropped, swapped + current irc client is buggy :/
17:54 adu joined #perl6
17:55 colomon moritz++
17:55 nwc10 moritz: not sure what the correct way to send feedback is, but http://rakudo.org/how-to-help/ is quite prominent in mentioning parrot, and could probably do with some rephrasing
17:55 moritz nwc10: agreed
17:55 moritz nwc10: will look at that later
17:56 nwc10 cool, thanks. and thanks for star
17:57 TimToady if the bits are golden, does that make it a gold star?
18:04 orafu joined #perl6
18:07 adu_ joined #perl6
18:10 ugexe any way to slurp a file into a uint16/32 Blob or Buf? `my Blob[uint16] $x = "META6.json".IO.slurp(:bin);` is a type check fail 'expected 'Blob[uint16]' but got 'Buf[uint8]'
18:11 flussence you probably mean to write .slurp(:bin).decode('utf-8').encode('utf-16') then...
18:12 * grondilu doubts an arbitrary binary string can be understood as a utf-8 string.
18:13 mvuets joined #perl6
18:13 Mouq m: say $*IN.slurp(:bin).WHAT
18:13 camelia rakudo-moar 5450e7: OUTPUT«(Buf[uint8])␤Saw 1 call to deprecated code during execution.␤================================================================================␤Method slurp (from IO::Handle) called at:␤  /tmp/r_4elxVcqh, line 1␤Deprecated since v2014.10, will be r…»
18:14 Mouq m: say $*IN.slurp-rest(:bin).decode('utf-16')
18:14 camelia rakudo-moar 5450e7: OUTPUT«썃憩⁤汳ꇃ条猠썬榩桢整洠潡杲⁡桃湯慴⁥桄뫃慮渠慇汬䄊畧⁳桤ꇃ挠써憩⁤汳ꇃ条愠楅敲条污愠摲椠慮猠畴⁡獯挠潩湮挠潡⁲獩挠汯㭬上慵物愠朠汨慵獩洠獩⁥桴牡⁴敬䰠捯⁨桄뫃…»
18:14 grondilu m: say Buf.new((^256).roll(1000)).decode('utf-8')  # I would expect some error here.
18:14 camelia rakudo-moar 5450e7: OUTPUT«Malformed UTF-8 at line 1 col 2␤  in method decode at src/gen/m-CORE.setting:6314␤  in block <unit> at /tmp/xvMrNxtDJ4:1␤␤»
18:14 grondilu ^see?
18:14 Mouq Err, s/decode/encode
18:15 ugexe yea, using .decode('utf-8') doesnt work for some encodings
18:15 TimToady yes, it's easy to violate the self-clocking aspect of utf8
18:16 grondilu aren't there conversion methods from one type of Buf to an other?
18:17 grondilu m: say Buf.^methods
18:17 camelia rakudo-moar 5450e7: OUTPUT«␤»
18:17 xinming_ joined #perl6
18:17 grondilu o_O
18:17 ugexe if it gets slurped in as a Buf[uint8] then information could already be lost if i needed a uint16
18:17 TimToady m: say Buf.^methods(:all)
18:17 camelia rakudo-moar 5450e7: OUTPUT«␤»
18:17 Kristien lol, some guy removed use warnings; use strict; from all his Perl 5 source files and now he's complaining he gets no errors nor warnings
18:17 ugexe so converting from buf[uint8] wouldnt help
18:18 grondilu ugexe: I'm not sure why you'd lose information.  Everything is made of bytes, isn't it?
18:18 geekosaur that's not entirely a nonsense complaint if you have heard that newer perl 5 "turns them on automatically" but not the part where backward compat means you need a "use perl 5.016" or etc. to enable
18:19 geekosaur er, "use 5.016"
18:19 * geekosaur ought to go back to bed and start over, apparently :/
18:20 moritz nwc10: http://rakudo.org/how-to-help/ updated
18:21 ugexe m: say Blob[uint8].new(0xFF00).decode("latin-1"); say Blob[uint16].new(0xFF00).decode("latin-1")
18:21 camelia rakudo-moar 5450e7: OUTPUT«␀␤␀ÿ␤»
18:21 ugexe grondilu: ^
18:23 dalek star: c4e3ea6 | moritz++ | tools/star/release-guide.pod:
18:23 dalek star: Release guide: update list of previous releases
18:23 dalek star: review: https://github.com/rakudo/star/commit/c4e3ea6140
18:23 ugexe m: say Blob[uint8].new(0xFF00).perl; say Blob[uint16].new(0xFF00).perl
18:23 camelia rakudo-moar 5450e7: OUTPUT«Blob[uint8].new(0)␤Blob[uint16].new(65280)␤»
18:25 dalek star: b4d0182 | moritz++ | / (4 files):
18:25 dalek star: Remove Math::Model and Math::RungeKutta
18:25 dalek star:
18:25 dalek star: ... as announced
18:25 dalek star: review: https://github.com/rakudo/star/commit/b4d018213a
18:26 tadzik time to update Task::Star
18:26 moritz ++tadzik
18:27 MadcapJake joined #perl6
18:27 dalek star: 320f22d | moritz++ | tools/star/Makefile.old:
18:27 dalek star: remove Makefile.old
18:27 dalek star:
18:27 dalek star: it seems not to be in use, and I see no benefit in keeping dead code around.
18:27 dalek star: git has all the old revisions anyway.
18:27 dalek star: review: https://github.com/rakudo/star/commit/320f22d022
18:28 dalek doc: 2774c81 | Mouq++ | / (2 files):
18:28 dalek doc: Simplify &write-search-file
18:28 dalek doc: review: https://github.com/perl6/doc/commit/2774c81e94
18:29 moritz Mouq: are you investigating perl6/doc#49 ?
18:30 FROGGS[mobile] joined #perl6
18:31 tadzik hmm, perhaps we should switch from LWP::Simple to the new LWP
18:32 xinming_ joined #perl6
18:33 nwc10 moritz++ # looks good
18:35 _mg_ joined #perl6
18:37 fhelmberger joined #perl6
18:38 jnthn moritz++ # star
18:38 jnthn nwc10: Phew :)
18:38 chenryn joined #perl6
18:39 rurban joined #perl6
18:41 grondilu m: say Blob[$_].new(0xFF00) for uint8, uint16;
18:41 camelia rakudo-moar 5450e7: OUTPUT«Blob[uint8]:0x<00>␤Blob[uint16]:0x<ff00>␤»
18:42 grondilu ugexe: you just need to make sure not to give values > 255 to Blob[uint256].new
18:42 grondilu m: say Blob[uint8].new($_ div 256, $_ mod 256) given 0xFF00;
18:42 camelia rakudo-moar 5450e7: OUTPUT«Blob[uint8]:0x<ff 00>␤»
18:43 TimToady uint256 is pretty darn large :)
18:44 grondilu oops
18:46 grondilu anyway so me, if I had to convert a Buf[uint8] to a Buf[uint16], I'd first get the list of bytes, group them by two and then create the corresponding 16-bits words.
18:48 jnthn I'm sure we can provide a better way to do that :)
18:48 rindolf joined #perl6
18:48 MadcapJake is there a way to specify install dir with the rakudo* msi installers?
18:49 tadzik I'm afraid not :(
18:49 grondilu ideally there should be a constructor candidate that takes a buffer of an other type as argument.
18:50 grondilu something like:  my Buf[uint16] $a .= new: Buf[uint8].new: ^10
18:50 jnthn grondilu: That's not a bad idea.
19:00 grondilu btw grouping a list into sublists of the same size is not very easy to do.  I wish there was an idiom or an operator.
19:01 Hor|zon joined #perl6
19:01 jnthn m: (1..9).map(-> $a, $b, $c { [$a, $b, $c] }).perl.say # if you know how many
19:01 camelia rakudo-moar 5450e7: OUTPUT«([1, 2, 3], [4, 5, 6], [7, 8, 9]).list␤»
19:02 grondilu btw will -> @a[$n] { ... } ever work?
19:03 grondilu like "a subroutine of $n arguments"
19:04 jnthn Not sure
19:04 jnthn One other cheaty way is
19:04 jnthn m: say (1..9).classify({ ceiling($++ / 3) }).values.perl
19:04 camelia rakudo-moar 5450e7: OUTPUT«([1, 2, 3], [4, 5, 6], [7, 8, 9]).list␤»
19:04 grondilu neat
19:05 grondilu m: say (1..9).classify({ $++ div 3 }).values.perl
19:05 camelia rakudo-moar 5450e7: OUTPUT«([1, 2], [3, 4, 5], [6, 7, 8], [9]).list␤»
19:05 grondilu ahh the ceiling is indeed needed
19:05 jnthn Yes, I wrote floor in my first attempt
19:05 jnthn But with ceiling it worked floorlessly...
19:06 grondilu nice one
19:06 grondilu :)
19:07 grondilu m: say (1..9).classify({ ++$ div 3 }).values.perl
19:07 camelia rakudo-moar 5450e7: OUTPUT«([1], [2, 3, 4], [5, 6, 7], [8, 9]).list␤»
19:09 BenGoldberg joined #perl6
19:10 grondilu wait
19:11 grondilu meh, nevermind
19:11 BenGoldberg joined #perl6
19:12 grondilu m: say (1..9).classify({ $_++ div 3 }).perl
19:12 camelia rakudo-moar 5450e7: OUTPUT«Hash[Any,Any].new(3 => [10], 2 => [7, 8, 9], 0 => [3, 3], 1 => [4, 5, 6])␤»
19:14 colomon joined #perl6
19:14 grondilu m: say (1..9).classify({ $_++ div 3 }).values.perl
19:14 camelia rakudo-moar 5450e7: OUTPUT«([3, 3], [4, 5, 6], [7, 8, 9], [10]).list␤»
19:14 beastd joined #perl6
19:15 grondilu wth
19:15 grondilu oh
19:15 grondilu I wrote $_++ instead of $++
19:15 grondilu that's a very easy mistake to make
19:16 timotimo grondilu: there is anoperator that does it fro you
19:16 timotimo m: say (1..9).rotor(3,0).perl
19:16 camelia rakudo-moar 5450e7: OUTPUT«($(1, 2, 3), $(4, 5, 6), $(7, 8, 9)).list␤»
19:16 timotimo m: say (1..9).rotor(3,0)>>.Array.perl
19:16 camelia rakudo-moar 5450e7: OUTPUT«(Array.new(1, 2, 3), Array.new(4, 5, 6), Array.new(7, 8, 9))␤»
19:16 timotimo m: say (1..9).rotor(3,0)>>.List.perl
19:16 camelia rakudo-moar 5450e7: OUTPUT«No such method 'List' for invocant of type 'Parcel'␤  in method dispatch:<hyper> at src/gen/m-CORE.setting:1373␤  in block <unit> at /tmp/k4ES90MZlI:1␤␤»
19:16 timotimo m: say (1..9).rotor(3,0)>>.list.perl
19:16 camelia rakudo-moar 5450e7: OUTPUT«((1, 2, 3).list, (4, 5, 6).list, (7, 8, 9).list)␤»
19:16 * colomon had no idea about rotor.  nice.
19:17 timotimo rotor is also in the supply methods
19:17 adu joined #perl6
19:17 grondilu I don't quite understand why $++ div 3 does not work.
19:18 grondilu m: say $++ div 3 for ^9;
19:18 camelia rakudo-moar 5450e7: OUTPUT«0␤0␤0␤1␤1␤1␤2␤2␤2␤»
19:18 grondilu ^see? it should make the correct groups
19:18 colomon m: say (1..9).classify({ $++ div 3 }).values.perl
19:18 camelia rakudo-moar 5450e7: OUTPUT«([1, 2], [3, 4, 5], [6, 7, 8], [9]).list␤»
19:19 grondilu maybe classify is not sequential or something?
19:19 * geekosaur does not understand what's unexpected here?
19:19 colomon m: say (1..9).classify({ $_ div 3 }).values.perl
19:19 camelia rakudo-moar 5450e7: OUTPUT«([1, 2], [3, 4, 5], [6, 7, 8], [9]).list␤»
19:19 colomon that’s right
19:20 grondilu you don't want to classify per value of the list
19:20 colomon m: say (^9).classify({ $++ div 3 }).values.perl
19:20 camelia rakudo-moar 5450e7: OUTPUT«([0, 1], [2, 3, 4], [5, 6, 7], [8]).list␤»
19:20 grondilu m: say ('a'..'z')[^9].classify({ $_++ div 3 }).values.perl
19:20 camelia rakudo-moar 5450e7: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match:␤:(Int:D \a, Int:D \b)␤:(int $a, int $b --> int)␤  in block <unit> at /tmp/_hk6KkcIrO:1␤␤»
19:20 grondilu m: say ('a'..'z')[^9].classify({ $++ div 3 }).values.perl
19:20 camelia rakudo-moar 5450e7: OUTPUT«(["a", "b"], ["c", "d", "e"], ["f", "g", "h"], ["i"]).list␤»
19:21 colomon m: say (^9).classify({ .say; $++ div 3 }).values.perl
19:21 camelia rakudo-moar 5450e7: OUTPUT«0␤0␤1␤2␤3␤4␤5␤6␤7␤8␤([0, 1], [2, 3, 4], [5, 6, 7], [8]).list␤»
19:21 colomon that’s it, right there.
19:21 colomon lesson: do not include side-effects with classify
19:21 grondilu indeed
19:22 grondilu m: say ('a'..'z')[^9] Z=> { $++ div 3 } xx *
19:22 camelia rakudo-moar 5450e7: OUTPUT«a => -> ($_? is parcel) { #`(Block|55490496) ... } b => -> ($_? is parcel) { #`(Block|55490560) ... } c => -> ($_? is parcel) { #`(Block|55490624) ... } d => -> ($_? is parcel) { #`(Block|55490688) ... } e => -> ($_? is parcel) { #`(Block|55490752) ... } f…»
19:22 grondilu m: say ('a'..'z')[^9] Z=> { $++ div 3 }() xx *
19:22 camelia rakudo-moar 5450e7: OUTPUT«a => 0 b => 0 c => 0 d => 0 e => 0 f => 0 g => 0 h => 0 i => 0␤»
19:22 grondilu hum
19:23 BenGoldberg joined #perl6
19:23 grondilu m: say { $++ div 3 }() xx * Z=> ('a'..'i')
19:23 camelia rakudo-moar 5450e7: OUTPUT«0 => a 0 => b 0 => c 0 => d 0 => e 0 => f 0 => g 0 => h 0 => i␤»
19:23 colomon https://github.com/rakudo/rakudo/blob/nom/src/core/Hash.pm#L152 is the line that causes the extra call in classify
19:24 grondilu m: say ($++ div 3) xx * Z=> ('a'..'i')
19:24 camelia rakudo-moar 5450e7: OUTPUT«0 => a 0 => b 0 => c 1 => d 1 => e 1 => f 2 => g 2 => h 2 => i␤»
19:24 psch m: say $++ xx 4
19:24 camelia rakudo-moar 5450e7: OUTPUT«0 1 2 3␤»
19:24 psch m: say ($++ div 3) xx 4
19:24 camelia rakudo-moar 5450e7: OUTPUT«0 0 0 1␤»
19:24 grondilu m: say hash(($++ div 3) xx * Z=> ('a'..'i')).perl
19:24 camelia rakudo-moar 5450e7: OUTPUT«("1" => "f", "2" => "i", "0" => "c").hash␤»
19:25 grondilu m: say { ($++ div 3) xx * Z=> ('a'..'i') }
19:25 colomon what’s the goal here?
19:25 camelia rakudo-moar 5450e7: OUTPUT«-> ($_? is parcel) { #`(Block|73926560) ... }␤»
19:25 grondilu colomon: still trying to group a list of 9 items by sublists of 3
19:26 colomon didn’t we just establish that’s what rotor does?
19:26 grondilu I may have missed that :)
19:27 grondilu indeed.  rotor does the job.  I did not know about it at all.
19:29 BenGoldberg joined #perl6
19:31 flussence I just noticed something in S26 - "A declarator can have multiple leading and/or trailing Pod comments, in which case they are concatenated with an intermediate newline when their object's .WHY return value is stringified" - but neither rakudo nor the test suite do the newline thing...
19:32 BenGoldberg joined #perl6
19:32 flussence (so, who's right?)
19:33 zakharyas joined #perl6
19:34 adu joined #perl6
19:34 psch i'd say having the newline makes more sense
19:34 psch which means roast and rakudo are wrong
19:34 psch reason being, it has a newline in the source, which probably was put there for a reason
19:35 colomon joined #perl6
19:36 BenGoldberg joined #perl6
19:41 pyrimidi_ joined #perl6
19:43 BenGoldberg joined #perl6
19:45 moritz otoh, newlines inside paragraphs are ephemeral
19:49 dalek doc: 1bd122c | Mouq++ | htmlify.p6:
19:49 dalek doc: Fix #49
19:49 dalek doc:
19:49 dalek doc: Only add one search term for each category page, and choose the most
19:49 dalek doc: general descriptor if necessary
19:49 dalek doc: review: https://github.com/perl6/doc/commit/1bd122ceb5
19:56 BenGoldberg joined #perl6
20:06 diana_olhovik joined #perl6
20:12 FROGGS[mobile]2 joined #perl6
20:14 moritz Mouq++
20:15 moritz Mouq: re #48, I've noticed the same for prefix ++ and postfix ++, and it seems the headings there have different formats: =head2 prefix C«++»
20:15 moritz vs
20:15 moritz hrm, no, I mis-grepped
20:18 dalek doc: deb7189 | moritz++ | htmlify.p6:
20:18 dalek doc: htmlify: recognize enums as types
20:18 dalek doc: review: https://github.com/perl6/doc/commit/deb718944a
20:21 moritz what do we call the inverse of slurping?
20:21 go|dfish spurting?
20:21 FROGGS aye
20:21 moritz go|dfish: right, thanks
20:22 V_S_C joined #perl6
20:31 raydiak do we have a better way of accomplishing this for large blobs? https://github.com/raydiak/Image-PNG-Portable/blob/master/lib/Image/PNG/Portable.pm6#L102  if not, perhaps we should have something similar in core (and a few other related things I can think of)...everything else I tried was slow on the order of minutes, or gave a "too many elements in flattening list context" error or something like that
20:33 salva joined #perl6
20:34 FROGGS raydiak: dunno if that falls out of jnthn++'s current work
20:35 raydiak FROGGS: what is he working on?
20:35 FROGGS native arrays, that's what blobs and bufs are
20:36 timotimo can't we just ~ two bufs?
20:36 timotimo oh, Blobs
20:36 moritz ~ should be made to work on blobs
20:36 raydiak I think I can make them bufs, if that helps
20:36 moritz if it doesn't already
20:36 moritz and it should be made non-slow :-)
20:37 raydiak I didn't know it worked on listy things at all, will go try it out :)
20:37 timotimo m: my $foo = Blob[uint8].new(1, 2, 3, 4, 5); my $bar = Blob[uint8].new(10, 11, 12, 13, 14, 15); say $foo ~ $bar
20:37 camelia rakudo-moar 5450e7: OUTPUT«Blob[uint8]:0x<01 02 03 04 05 0a 0b 0c 0d 0e 0f>␤»
20:37 timotimo well, to be fair, a Blob is kind of a stringy thing?
20:37 jnthn Once I get native array stuff in place, I'll look more closely at blobs, bufs, etc.
20:37 raydiak timotimo: yeah that too, good point
20:37 jnthn I know there's a pile out outstanding requests regarding those.
20:37 timotimo <3
20:38 timotimo indeed
20:38 * raydiak was wondering where blob and buf fit in when we have complete cmopact/native arrays
20:39 davercc left #perl6
20:39 flussence well there's one thing, it's specced that you can regex/grammar on a blob...
20:39 raydiak oh right, the stringy part again...guess I forget that part a lot
20:40 jnthn Plus it makes sense to talk about .decode
20:43 moritz retupmoca: any reason you are opening pull requests on https://github.com/perl6/gtk-simple/ instead of pushing directly?
20:43 moritz retupmoca: ah no, those are issues; sorry, I got confused
20:45 timotimo i wish there were pull requests :P
20:45 moritz m: my $c = Channel.new; $c.close; await $c; say "done";
20:45 camelia rakudo-moar 5450e7: OUTPUT«Cannot receive a message on a closed channel␤  in method receive at src/gen/m-CORE.setting:21809␤  in sub await at src/gen/m-CORE.setting:23197␤  in block <unit> at /tmp/ZxOtUucmBA:1␤␤»
20:47 moritz that's LTA, no?
20:47 raydiak I suppose that makes sense...just have a (probably needless) fear of ending up with half a dozen different kinds of list with feindishly subtle differences
20:47 moritz at least I'd intuitively except "await $some_channel" to wait for the channel to close
20:48 Mouq m: my $c = Channel.new; start { sleep 1; $c.close }; await $c; say "done";
20:48 camelia rakudo-moar 5450e7: OUTPUT«Cannot receive a message on a closed channel␤  in method receive at src/gen/m-CORE.setting:21809␤  in sub await at src/gen/m-CORE.setting:23197␤  in block <unit> at /tmp/9wVmvLyJAD:1␤␤»
20:49 moritz m: my $c = Channel.new; start { sleep 1; $c.close }; await $c.closed; say "done"
20:50 Hor|zon joined #perl6
20:50 camelia rakudo-moar 5450e7: OUTPUT«(timeout)»
20:50 moritz oh my
20:50 jnthn That latter would shoulda worked...
20:51 moritz .close pushes a CHANNEL_CLOSE on $!queue
20:51 moritz ... and nothing consumes that
20:52 * moritz wonders if self!peek() would help
20:52 * moritz wonders how to test that without it hanging in the fail case
20:53 moritz yes, it does help
20:53 moritz jnthn: what *should* await $channel do?
20:54 * moritz just wanted to document 'await'
20:55 moritz m: my $p = Promise.new; $p.keep(42); $p.then({ say "after the fact" });
20:55 camelia rakudo-moar 5450e7: OUTPUT«after the fact␤»
20:55 moritz \o/
20:57 Peter_R Is there an "official" way to automatically cache a subroutine in perl 6?
20:57 raydiak wrt my ignorance, ~ seems adequately fast on large stuff; thanks timotimo++/#perl6 :)
20:57 jnthn moritz: Should await a value
20:58 moritz Peter_R: 'is cached'
20:58 moritz Peter_R: http://doc.perl6.org/routine/is%20cached
20:58 Peter_R In the sub definition? I was getting some weird error
20:59 Peter_R but looks like I was doing it wrong
20:59 grondilu m: sub f($) is cached { rand }; say f($++) xx 4
20:59 camelia rakudo-moar 5450e7: OUTPUT«0.251849955314625 0.794119814900987 0.801919925577047 0.942564767976645␤»
20:59 timotimo raydiak: yay
20:59 grondilu m: sub f($) is cached { rand }; say f(pi) xx 4
20:59 camelia rakudo-moar 5450e7: OUTPUT«0.347837372671691 0.347837372671691 0.347837372671691 0.347837372671691␤»
21:01 Peter_R I get this http://pastebin.com/7Jturnyj
21:02 moritz Peter_R: show your code please
21:02 Peter_R But grondilu's example works
21:02 Peter_R moritz, 2 seconds
21:03 Peter_R http://pastebin.com/bgT9G51b
21:03 Peter_R I'm probably doing something wrong
21:04 moritz hm, maybe the "is cached" doesn't work on multis?
21:04 grondilu should be put on the proto
21:04 raydiak yeah that's the same error I got trying to put 'is native' on multis iirc
21:04 grondilu m: proto f($) is cached {*}; multi f(Num $) { rand }; say f(pi) xx 4
21:04 camelia rakudo-moar 5450e7: OUTPUT«0.377066745509211 0.377066745509211 0.377066745509211 0.377066745509211␤»
21:04 moritz m: proto sub fib(Int) is cached {*}; multi fib(0) {1}; multi fib(1) {1}; multi fib(Int $x) { fib($x-1) + fib($x-2) }; say fib 10
21:04 camelia rakudo-moar 5450e7: OUTPUT«89␤»
21:05 bartolin there is RT #122899
21:05 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122899
21:05 moritz Peter_R: ^^ seems to work with 'is cached' on the proto
21:05 Peter_R So I need to declare a proto?
21:05 moritz aye
21:05 Peter_R How would that work with multis that have different signatures?
21:05 moritz m: proto sub fib(Int) is cached {*}; multi fib(0) {1}; multi fib(1) {1}; multi fib(Int $x) { fib($x-1) + fib($x-2) }; say fib 100
21:05 camelia rakudo-moar 5450e7: OUTPUT«573147844013817084101␤»
21:05 grondilu IIRC it's good practice to put all traits on protos and not on multis
21:05 moritz grondilu: yes, but IMHO it should still work
21:06 Peter_R I'm not that familiar with P6, so I'm not entirely sure what I'm talking about at all
21:06 moritz Peter_R: you can give the proto a pretty general signature, like (|)
21:06 Peter_R What is the use of the proto?
21:06 grondilu factorization of traits, for one :)
21:06 moritz wrapping all multis
21:07 moritz and adding a common signature that constrains the multis
21:07 grondilu but you can also factorize some code, since a proto could contain some common code:  proto f { dothis; {*}; dothat }
21:07 FROGGS Peter_R: you could add your own multi dispatch logic to a proto if you want to
21:08 dalek rakudo/nom: bf3e3ab | moritz++ | src/core/List.pm:
21:08 dalek rakudo/nom: Avoid the use of a deprecated method inside the setting
21:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf3e3ab47d
21:08 Peter_R I always thought multis could be useful for things like APIs where one endpoint could have wildly different signatures
21:09 Peter_R But it sounds like they cannot be used in this way easily?
21:09 moritz they can
21:09 ugexe sure you can
21:09 maettu1 joined #perl6
21:09 moritz and it's a bug that traits only work on protos, IMHO
21:09 maettu left #perl6
21:09 maettu1 left #perl6
21:09 Peter_R Can it not assume the most general proto possible if one is not specified or something?
21:10 Peter_R woops, I guess it does
21:10 maettu1 joined #perl6
21:10 Peter_R because aside from caching, my code is fine without one
21:10 grondilu it does indeed
21:11 grondilu then as mentioned above, use the generic signature:  (|)
21:11 Peter_R So this should be working? http://pastebin.com/3ffr77BL
21:11 grondilu m: proto f(|) {*}; multi f($, $) { "two args" }; multi f($) { "one arg" }; say f(pi)
21:11 camelia rakudo-moar 5450e7: OUTPUT«one arg␤»
21:11 Peter_R I'm getting a different error now
21:12 Peter_R Here's the error
21:12 Peter_R http://pastebin.com/qdDZ79v6
21:12 maettu1 left #perl6
21:12 Peter_R I did build this with perlbrew
21:12 grondilu remove the trait from the multis
21:12 Peter_R maybe I should get star 2015.1 instead
21:12 Peter_R ah
21:12 maettu1 joined #perl6
21:12 grondilu keep it *only* on the proto
21:13 moritz Peter_R: maybe you should show your code again :-)
21:13 Peter_R moritz, I thought I pasted it
21:13 Peter_R sorry, grondilu++ was right
21:14 grondilu also, this is just an example, right?  because there is much simpler ways to implement fibonacci
21:14 Peter_R yes :D
21:14 moritz Peter_R: sorry, missed that
21:14 Peter_R It is an intuitive way though
21:14 Peter_R I tend to care about readability over length (within reason of course)
21:15 * grondilu tends to find long things less readable
21:15 Peter_R grondilu, I just like the neat separation due to the declarative structure of it
21:16 grondilu well, it's the functional way to do it so it has some charm
21:16 Peter_R In C everything is horrible, so I use a 2 element array and modulo on n to decide which element to accumulate into
21:17 Peter_R Or something like that, its been 6 years since I've written that
21:17 dalek rakudo/nom: 3f9508c | moritz++ | src/core/Channel.pm:
21:17 dalek rakudo/nom: Fix Channel.close
21:17 dalek rakudo/nom:
21:17 dalek rakudo/nom: it did not immediately fulfill the .closed promise if $!queue was empty
21:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f9508c665
21:17 Peter_R Maybe 7 years
21:17 Peter_R grondilu, what is your recommended Perl 6 Fibonacci demonstration?
21:18 grondilu m: say 1, 1, * + * ... *
21:18 camelia rakudo-moar 5450e7: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 70140873…»
21:18 dalek roast: 0f7192a | moritz++ | S17-channel/basic.t:
21:18 dalek roast: Test Channel.closed without .receive
21:18 dalek roast: review: https://github.com/perl6/roast/commit/0f7192ab13
21:18 Peter_R Oh yes, I saw that literally two days ago the last time
21:18 Peter_R It really cool :D
21:18 sivoais joined #perl6
21:18 Peter_R *IS
21:18 moritz writing docs can be so distracting
21:19 moritz I often think "why isn't this consistent with $other_feature"
21:19 moritz or "huh, this corner case is weird. I'd rather improve it than documenting the corner case"
21:19 moritz and then I end up hacking on the compiler again, or grepping through the design documents
21:20 * Mouq wonders where "documentation" fits into the whirlpool model ;)
21:20 raydiak geez quit wasting time fixing things moritz++ :)
21:21 Peter_R Here was the Perl 5 I was comparing that example two, iirc all I had to do was change fun to sub to get it to run
21:21 Peter_R http://pastebin.com/bu1UGXZH
21:21 Peter_R and get rid of the crap up top :p
21:22 Peter_R and raduko moar is quite a bit faster
21:22 moritz m: my $s = Supply.new; my $p = Promise.in(0.2).then({ $p.emit(42) }); say await $s
21:23 camelia rakudo-moar 5450e7: OUTPUT«(signal XCPU)»
21:23 moritz m: my $s = Supply.new; my $p = Promise.in(0.2).then({ $p.emit(42); $p.close }); say await $s
21:23 grondilu Peter_R: your P5 version is not cached though.
21:23 camelia rakudo-moar 5450e7: OUTPUT«(signal XCPU)»
21:23 Peter_R I took caching out for comparison
21:23 moritz m: my $s = Supply.new; my $p = Promise.in(0.2).then({ $s.emit(42); $s.close }); say await $s
21:23 Peter_R I used Attribute::Memoize to do caching
21:23 camelia rakudo-moar 5450e7: OUTPUT«(signal XCPU)»
21:23 * grondilu was actually looking at the wrong pastebin
21:24 Peter_R Ah
21:24 Peter_R Sorry for pasting so may :P
21:24 Peter_R *many
21:24 grondilu wth
21:24 grondilu I'm confused by http://pastebin.com/bu1UGXZH
21:24 moritz jnthn: what should await $supply do?
21:25 Peter_R grondilu, what about it?
21:25 grondilu it's some kind of mix between P5 and P6??
21:25 Peter_R Kavorka :D
21:25 raydiak grondilu: https://metacpan.org/pod/Kavorka
21:25 Peter_R "Function signatures with the allure of the animal"
21:25 grondilu ok
21:26 Peter_R It's not as awesome as Perl 6, but its a start :D
21:26 bartolin I stumbled about RT #116419 and am not sure what to do with that ticket.
21:26 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=116419
21:26 bartolin It complains about $=data not working with Pod data blocks in combination with feature "Lexing and Parsing - Pod" being shown as implemented at perl6.org/compilers/features.
21:26 grondilu some people hack P5 so much it's just too much IMHO
21:26 bartolin I'd like to change the subject of the bug report to '[TODO] Implement $=data for Pod data blocks'.  But should we really mark said feature as only 'partially implemented' at perl6.org/compilers/featues?
21:27 Peter_R grondilu, from the right perspective the entire current language is pretty much a hack
21:27 Peter_R but 5.20 has signatures at least
21:27 Peter_R But not multis or type contraints
21:27 moritz well, 5.20 has argument unpacking
21:28 moritz but iirc it doesn't do any checking, so it's not quite the same as proper signatures
21:28 Peter_R moritz, docs say it will through exceptions on incorrect signatures?
21:28 moritz Peter_R: then I'm probably wrong
21:28 Peter_R of course it only does positionals
21:28 Peter_R So it is just an arg count really
21:28 pmurias joined #perl6
21:29 grondilu meh, I think Perl 5 is fine without signatures.  I just used to write things like die "wrong first argument type" unless ref(my $a = shift) eq 'Array'
21:29 Peter_R It will never be as nice as perl 6, but they could add an optional type check
21:29 grondilu (or stuff like that, it's verbose but it does the job without additional syntax)
21:30 Peter_R Why not automate?
21:30 Peter_R That's like saying Perl 5 just isn't allowed to change or improve?
21:30 grondilu I just don't like adding syntax conventions to an already complex language.
21:30 moritz perl -wE 'sub f ($x) { say $x }; f 42' # Illegal character in prototype for main::f : $x at -e line 1.
21:30 moritz that's a perl 5.20
21:30 Peter_R Perl 5 loves backwards compatibility, a little too much for my taste
21:30 moritz what am I doing wrong here?
21:30 ugexe why not just use kavorka::signature? :)
21:31 * moritz never actually tried sigantures
21:31 ugexe or rather kavorka
21:31 grondilu moritz: sub f($) { say $x }
21:31 moritz oh, -E doesn't enable that feature
21:31 moritz grondilu: that's a prototype, not a signature
21:31 FROGGS moritz: it is still experimental
21:31 flussence moritz: you need "use feature 'experimental::signatures';" and something to disable the warning you get for using them, iirc
21:32 Mouq bartolin: I agree the topic should be chaged, and the features bit *is* misleading. However, I'd put in a new features line called "Data blocks" or similar :)
21:32 Peter_R flussence, something like that, though I won't be touching them till 24.x
21:32 moritz perl -Mfeature=signatures -wE 'no warnings "experimental"; sub f ($x) { say $x }; f 42, 23'
21:32 moritz Too many arguments for subroutine at -e line 1.
21:33 moritz for which subroutine? would that really be too much to ask?
21:33 * moritz should stop ranting
21:33 bartolin Mouq: that's a nice idea ;-) I'll do that; thanks for the feedback
21:33 Peter_R moritz, I hope they improve it
21:33 Peter_R We'll see
21:33 Mouq bartolin++ # various bug things
21:33 moritz Peter_R: I'm sure they will
21:34 * flussence tried using $=data for something just now only to find out that was unimplemented *too* :(
21:35 dalek doc: 2c06edd | moritz++ | lib/Type/ (2 files):
21:35 dalek doc: Document await(Promise) and await(Channel)
21:35 dalek doc: review: https://github.com/perl6/doc/commit/2c06edd9ee
21:36 ribasushi joined #perl6
21:38 dalek rakudo/nom: a4ceed6 | moritz++ | src/core/asyncops.pm:
21:38 dalek rakudo/nom: &await works best with defined promises and channels
21:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a4ceed6f64
21:40 Peter_R Is there anyway to write the last multi here so that it doesn't use a named variable or uses the * or whatever? http://pastebin.com/6Qs4q6nG
21:41 moritz Peter_R: not that I'm aware of
21:41 grondilu make it more generic, it will be the default
21:41 moritz Peter_R: I mean, you can name it $_ instead of $x
21:41 moritz Peter_R: but you'll stil have to use the name
21:42 Peter_R moritz, thanks
21:42 Peter_R grondilu, could you show me what you mean please?
21:42 grondilu multi fib { fib($^n - 1) + fib($n - 2) }
21:43 grondilu I meant no where clause
21:43 psch m: multi fib ($ where * == 1 | 2) { 1 }; multi fib ($x) { fib $x - 1 + fib $x - 2 }; say fib 5 # timeout
21:43 dalek nqp/js: 045db6d | hoelzro++ | src/vm/js/nqp-runtime/deserialization.js:
21:43 dalek nqp/js: Bump serialization version to 12
21:43 dalek nqp/js:
21:43 dalek nqp/js: This fixes the tests for the JS backend
21:43 dalek nqp/js: review: https://github.com/perl6/nqp/commit/045db6da7c
21:43 dalek nqp/js: ebf56ea | hoelzro++ | src/core/IO.nqp:
21:43 dalek nqp/js: Don't call setinputlinesep on JS
21:43 dalek nqp/js: review: https://github.com/perl6/nqp/commit/ebf56ea720
21:43 dalek nqp/js: d065d45 | (Pawel Murias)++ | / (3 files):
21:43 dalek nqp/js: Rename t/nqp/86-more-if-tests.t to avoid conflict with a pipe test.
21:43 dalek nqp/js: review: https://github.com/perl6/nqp/commit/d065d455d3
21:43 grondilu psch: missing parens
21:43 camelia rakudo-moar 5450e7: OUTPUT«(timeout)»
21:43 pmurias hoelzro: your branch seems great, thanks
21:43 psch grondilu: right
21:44 psch m: multi fib ($ where * == 1 | 2) { 1 }; multi fib ($x) { fib($x - 1) + fib($x - 2) }; say fib 5 # timeout?
21:44 camelia rakudo-moar 5450e7: OUTPUT«5␤»
21:44 psch grondilu++
21:45 grondilu more about Fibonacci in Perl 6:
21:45 grondilu http://rosettacode.org/wiki/Fibonacci_sequence#Perl_6
21:46 psch that still states "is cached" is not supported yet
21:46 psch does RC need an account, and if so is someone with one around?
21:46 Peter_R psch, is that any different from whatI posted?
21:46 psch the backlog suggests it works when on the proto
21:46 dalek nqp-js: 7e6ee3c | (Pawel Murias)++ | / (2 files):
21:46 dalek nqp-js: Implement nqp::ordat.
21:46 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/7e6ee3c24a
21:46 dalek nqp-js: c30f376 | (Pawel Murias)++ | t/nqp/59-nqpop.t:
21:46 dalek nqp-js: Add test for nqp::ordat.
21:46 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/c30f3760a5
21:46 dalek nqp-js: 824ea1a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
21:46 dalek nqp-js: Implement nqp::setelems.
21:46 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/824ea1a786
21:46 dalek nqp-js: d84ee2f | (Pawel Murias)++ | t/nqp/59-nqpop.t:
21:46 dalek nqp-js: Add tests for nqp::setelems.
21:46 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/d84ee2f57d
21:46 dalek nqp-js: 1487928 | (Pawel Murias)++ | TODO:
21:46 Peter_R aside from s/n/x/
21:46 dalek nqp-js: Remove done TODO item.
21:46 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/14879287ff
21:46 grondilu psch: it's quite easy to create an account on RC
21:46 psch Peter_R: you have a constraint on $n ($x in my case), don't you?
21:47 psch Peter_R: «multi sub fib ($n where * >= 3) { ... }» instead of «multi sub fib ($x) { ... }»
21:47 grondilu psch: I'll update the entry regarding the "is cached" trait
21:48 psch grondilu: i just suspect i'll hardly contribute to RC, which i why i don't really want to create an account
21:48 Peter_R psch, then it won't fail for 0 and negative numbers?
21:49 psch Peter_R: right, it wouldn't.  i suppose it depends on where you want to place the error handling
21:50 psch Peter_R: i.e. "if we get a negative number we don't dispatch" vs "if we get a negative number we tell the user he made a mistake"
21:50 Peter_R I like to write completely specified stuff if I can without much effort
21:50 Peter_R I guess in practice I'd make a type to make it more explicit
21:50 dalek rakudo/nom: 1b24050 | Mouq++ | src/Perl6/Actions.nqp:
21:50 dalek rakudo/nom: Throw NYI (for now) for $=data and cousins
21:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1b240500b4
21:50 Peter_R but that's just personal taste
21:50 psch in that case moritz++ has you covered.  you have to have a where on the last candidate to exclude negative numbers
21:51 dalek nqp/js: 21fee9b | (Pawel Murias)++ | / (2 files):
21:51 dalek nqp/js: Implement nqp::ordat.
21:51 dalek nqp/js: review: https://github.com/perl6/nqp/commit/21fee9b549
21:51 psch if you wanted to do something else except fail when you get something outside of your range another candidate should cover that, i'd say
21:52 psch (maybe "something more than just fail", fwiw)
21:53 Mouq bartolin: Also, there already appears to be unrun tests in S02-literals/pod.t
21:53 dalek nqp/js: 308cb9f | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
21:53 dalek nqp/js: Implement nqp::setelems.
21:53 dalek nqp/js: review: https://github.com/perl6/nqp/commit/308cb9fe7f
21:54 raydiak every time 'is cached' comes up, I feel compelled to say "BUT... #122896 "
21:54 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122896
21:55 grondilu oh yeah I remember that
21:55 grondilu it's tough to always remember checking if something not only works on normal execution but also on pre-compiled code.
21:56 jnthn Mouq: About your method lookup module, I wondered about .&
21:56 jnthn $obj.&meth # looks up method bound to $obj
21:57 jnthn $obj.&meth(1) # looks up method bound to ($obj, 1) - e.g. shortcut for .assuming
21:57 jnthn std: 42.&sin
21:57 camelia std f9b7f55: OUTPUT«ok 00:01 138m␤»
21:57 jnthn Huh, it parses already?
21:57 jnthn m: 42.&sin
21:57 camelia rakudo-moar 5450e7: ( no output )
21:57 psch m: say 42.&sin
21:57 camelia rakudo-moar 5450e7: OUTPUT«-0.916521547915634␤»
21:57 jnthn Oh, of course
21:57 jnthn Duh.
21:57 jnthn Forget that, then. :(
21:57 psch that's postfix sub..?
21:58 jnthn Same as $obj.$meth
21:58 psch oh right
21:58 jnthn And yeah, we really don't want a discontinuity there.
21:59 dalek nqp/js: 51dde73 | (Pawel Murias)++ | t/nqp/59-nqpop.t:
21:59 dalek nqp/js: Add tests for nqp::setelems and nqp::ordat.
21:59 dalek nqp/js: review: https://github.com/perl6/nqp/commit/51dde73221
22:00 pmurias should I delete the old nqp-js repo?
22:02 jnthn pmurias: That or leave it with just a README saying where the code that uses to be there lives now
22:03 pmurias so I should 'git rm *' and then put is such a README?
22:03 pmurias s/put is/git add/
22:03 jnthn That'd likely work, yes
22:04 FROGGS_ joined #perl6
22:05 dalek nqp-js: 133a888 | (Pawel Murias)++ | / (1338 files):
22:05 dalek nqp-js: Add a README describing the move into the perl6/nqp repo.
22:05 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/133a88847d
22:05 dalek nqp-js: 84ff309 | (Pawel Murias)++ | . (2 files):
22:05 dalek nqp-js: Remove dot files.
22:05 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/84ff309dcc
22:08 timotimo can we pre-populate caches of "is cached" subs at BEGIN time and have the result serialized?
22:12 pmurias timotimo: by calling the sub at BEGIN time a bunch of times?
22:12 moritz timotimo: re http://irclog.perlgeek.de/perl6/2015-02-06#i_10073975 +1 to linking to the IRC channel more prominently
22:13 moritz timotimo: I don't know what a "private-ish comment thread" would be, nor private to whom, so it's hard for me comment on that
22:14 flussence I guess that means how docs.php.net works, each page has a comment section underneath.
22:14 moritz timotimo: I think that doc.perl6.org should stay 100% curated content, though any ways to help others contribute are welcome
22:15 moritz flussence: yes, and I don't like the idea. The content of the pages change over time, and then what do we do with the comments?
22:15 moritz I know the comments below the mysql docs, and they are of mixed quality
22:17 pmurias wouldn't it be similiar to annocpan?
22:17 * Mouq would think someone who's going to take the time to write a well researched comment would be able to take the time to write a well researched PR
22:17 moritz so are the docs on doc.perl6.org, but I have no qualms patching them; I'd certainly hesitate to patch comments
22:17 moritz Mouq: or an issue, at least
22:18 jnthn So let's just think about how we can make it as easy as possible for folks to contributed (with a little moderation) improvements to the docs.
22:18 jnthn *contribute
22:18 moritz maybe a line like "If you found anything on this page hard to understand, please open an issue" with a link to perl6/doc/issues/new
22:18 jnthn Maybe there's a way we can include a "Want to improve this doc? Here's the source." with a link.
22:19 El_Che put the page on github?
22:19 jnthn Though I guess some pages source the docs from many places...
22:19 dalek rakudo/nom: d728669 | FROGGS++ | src/Perl6/ (2 files):
22:19 dalek rakudo/nom: fix error reporting for anon vars [RT #123584]
22:19 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123584
22:19 dalek rakudo/nom:
22:19 dalek rakudo/nom: `$; my $b;` now gives correctly: Useless use of variable $ in sink context (line 1)
22:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d728669256
22:19 moritz jnthn: yes, linking to the source document (instead of just the repo) would be nice (where unique)
22:21 ugexe joined #perl6
22:27 timotimo you know how wikipedia ives you an "edit" link for each section?
22:28 * moritz knows
22:28 avar sink context? Is that the new void?
22:29 moritz yes
22:29 Mouq m: 1,2,3; 1
22:29 camelia rakudo-moar 5450e7: OUTPUT«WARNINGS:␤Useless use of "," in expression "1,2,3" in sink context (line 1)␤»
22:30 timotimo all docs are Pod6, right?
22:30 timotimo we should perhaps not expect a potential contributor to be able to turn pod6 into html for preview on their own
22:31 timotimo so we may want to offer a preview on the server side
22:31 BenGoldberg joined #perl6
22:31 moritz sounds useful
22:31 timotimo .o( and then performance may become an issue, if someone decides to give our parser a crapton of "well-prepared" data )
22:31 moritz timeouts exist
22:32 timotimo ah
22:32 timotimo yes
22:32 * moritz -> sleep
22:33 timotimo -> sleep, moritz
22:33 Mouq We could have a per-file and per-section "online editor" that interfaces with GH and can at least recognize bad Pod. But that would be quite a project
22:33 Mouq 'night moritz!
22:34 virtualsue joined #perl6
22:37 timotimo hmm
22:38 timotimo we have perlito 6tojs ... does perlito6 handle grammars properly?
22:39 Hor|zon joined #perl6
22:44 pdurbin joined #perl6
22:45 pdurbin TimToady: I just listened to http://rebuild.fm/78/ and really enjoyed it. Thanks for being awesome. :)
22:45 FROGGS I listened to it a few hours ago :o)
22:45 timotimo i liked it, too
22:45 timotimo i listened it around noon
22:46 El_Che yes, it was a nice interview
22:47 El_Che a good alternative for those that missed FOSDEM (waiting for the video...)
22:47 FROGGS aye
22:48 timotimo yes yes, videos please
22:48 d4l3k_ joined #perl6
22:48 Maddingu1 joined #perl6
22:48 timotimo i must say the c3voc, the Chaos Computer Club Video Operating Center ... it's fantastic at that stuff
22:49 Kristien_ joined #perl6
22:49 lumimies_ joined #perl6
22:49 El_Che timotimo: yeah, they produces a very nice Perl troll video :)
22:49 vendethiel timotimo: perlito's perl6 part is severly outdated (2012 at best)
22:49 gtodd1 joined #perl6
22:49 timotimo El_Che: not produce. record, cut and publish
22:49 El_Che true
22:50 timotimo El_Che: the voc is also not involved in the acceptance/rejection process; except everybody was
22:51 gfldex joined #perl6
22:51 sjn joined #perl6
22:51 timotimo as in: before congress, surveys went out to ask/figure out what talks people would be interested in
22:51 ingy joined #perl6
22:51 pmurias joined #perl6
22:51 stux|RC-only joined #perl6
22:51 jercos joined #perl6
22:53 FROGGS .tell bartolin do you have an opinion to RT #123584?
22:53 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123584
22:53 yoleaux FROGGS: I'll pass your message to bartolin.
22:53 FROGGS and with that, gnite #perl6
22:57 timotimo FROGGS: you can test for warnings with a CONTROL block
23:02 Util joined #perl6
23:09 zakharyas joined #perl6
23:10 Mouq <O=.mergeO(|%op_O, |$<assignO>)> => "Too many positionals passed; expected 1 argument but got 3" Dammit NQP :P
23:13 gugod joined #perl6
23:13 timotimo wanted a string, right?
23:14 BenGoldberg joined #perl6
23:20 Peter_R So whats the current ecosystem with modules like now in Perl 6
23:20 Peter_R Panda is the cpan type thing right?
23:20 timotimo see for yourself: http://modules.perl6.org/
23:20 Peter_R thanks
23:21 timotimo :)
23:22 Peter_R YAML, thank goodness
23:22 Peter_R Not sure how I would live without it :P
23:24 Peter_R Not centralised but links to individual githubs
23:24 Peter_R I can think of good and bad about that :D
23:29 Mouq Peter_R: YAML... Is kind of a lie, AFAIK. All it does is dumping. Ingy wasn't merging patches TestML for a long time, which YAML depended on, which meant that the YAML module didn't work for a long time. Recently we forked both as community modules, but no one's done work on adding YAML parsing yet
23:33 timotimo oh, er
23:33 timotimo i don't think YAML actually ... you know ...works
23:35 raydiak the readme mentions that the dump output is more for visualization and not necessarily valid YAML
23:35 timotimo ... >_>
23:36 timotimo i've not worked with yaml for a long time now
23:37 raydiak so other than the dump not dumping YAML, and nothing existing besides dump...yes we have a module named "YAML" :)
23:37 Kristien_ I considered using YAML for my object file format, but then I figured nobody has implemented it for D yet.
23:37 Kristien_ So I went with JSON.
23:41 vendethiel YAML is a bit crazy.
23:41 vendethiel but if you restrict your subset, it can be good... just avoid inheritance and stuff
23:42 timotimo yeah, YAML is very advanced
23:42 timotimo yaml is actually a perl6 superset
23:43 vendethiel :D
23:46 Peter_R That's it I'm off Perl 6 for good :P
23:46 Mouq Kristien_: I implemented TOML! ^_^
23:46 Peter_R I can't have a relationship with a YAMLess language :P
23:46 timotimo sad thing is, you have to fill up your infinite tape with data all the way up to the end in order to run a YAML programme
23:47 Kristien_ I wanted to use YAML because it supported multiline string literals.
23:47 timotimo in that case, use json65
23:47 timotimo json6
23:47 Kristien_ But then I figured I could do something in JSON with an array of strings, and have the program concatenate them.
23:47 Peter_R I like the look of YAML more than JSON :D
23:47 timotimo hm
23:47 timotimo what is that thing called again?
23:47 timotimo http://json5.org/
23:48 Kristien_ I ought to switch to a binary object file format though.
23:48 timotimo Strings can be split across multiple lines; just prefix each newline with a backslash. [ES5 §7.8.4]
23:51 Kristien_ Storing assembly code in an object file is incredibly inefficient and they are larger than the source files. :V
23:54 vendethiel Mouq: toml ftw!
23:54 vendethiel I actually was going for JSON for config at first, but then TOML looked at me in the eye..
23:57 vendethiel timotimo: you can already do that in JS, but not in json :)
23:57 vendethiel json is not a subset of js
23:58 timotimo yeah
23:58 Kristien_ I like XML.
23:58 timotimo that's why they have json5
23:58 telex joined #perl6
23:59 Kristien_ Time to write a code generator.

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

Perl 6 | Reference Documentation | Rakudo