Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-14

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 timotimo though i think our lowest level IO thingies have locking on themselves already
00:00 timotimo but you'll want to have locking for bigger blobs of output, too
00:00 masak I'd use .act regardless, just to be on the safe side.
00:00 masak it is the semantics you want here, even if lower levels handle it just fine.
00:01 adu avuserow: how goes the logging?
00:03 skids joined #perl6
00:04 vendethiel joined #perl6
00:05 avuserow .tell adu been at $dayjob all day so no direct hacking on it, just backlogged and read lizmat++'s suggestion about supplies, so I'm doing a bit of reading about it
00:05 yoleaux avuserow: I'll pass your message to adu.
00:07 masak 'night, #perl6
00:16 jack_rabbit joined #perl6
00:20 xiaomiao joined #perl6
00:23 jack_rabbit joined #perl6
00:27 BenGoldberg joined #perl6
00:27 adu joined #perl6
00:28 kurahaupo1 joined #perl6
00:29 davido__ joined #perl6
00:29 BenGoldberg joined #perl6
00:30 vendethiel joined #perl6
00:31 BenGoldberg joined #perl6
00:32 Alina-malina joined #perl6
00:32 Kristien joined #perl6
00:33 * Kristien had an idea: https://gist.github.com/rightfold/fcbc1be0d35b11d38a84
00:33 Kristien I want to implement that.
00:34 PZt joined #perl6
00:39 * Kristien wonders whether such shenanigans can be implemented in Perl 6 with a custom HOW
00:42 adu joined #perl6
00:45 timotimo sub calls to the other thing?
00:45 timotimo so kind of like callsame?
00:48 Kristien calling x calls the least derived implementation
00:48 Kristien sub() calls the one more derived implementation
00:48 Kristien I don't know what callsame is.
00:54 ugexe it redispatches. you could also use .wrap or augment i imagine
00:57 ugexe or .candidates[*-1] maybe
01:10 TimToady m: class B { method f { 'B' } }; class D is B { method f { 'D' } }; say D.*f
01:10 camelia rakudo-moar fec233: OUTPUT«D B␤»
01:10 TimToady or you can use .* like that
01:11 Kristien I want B.f to call D.f for an object of type D
01:11 Kristien and (that object).f to call B.f.
01:13 TimToady how do you avoid infinite regress if you come back to B.f?
01:13 TimToady and why do you want B to implement the virtual dispatch for you?
01:13 Kristien just don't call super in D.f :P
01:14 TimToady I didn't :)
01:15 TimToady I don't understand why you want to visit B.f twice
01:15 Kristien I don't.
01:15 TimToady okay, I misread what you meant
01:15 TimToady you kinda mean two different things by B.f up there
01:16 Kristien "class B { method f { say 'B'; prevsame; } }; class D is B { method f { say 'D' } }; D.new.f" would print "B\nD"
01:16 Kristien With some annotation on f to annotate that the mro is reversed of course.
01:20 Kristien I can be an alternative to documenting that overrides must always use nextsame.
01:21 jack_rabbit joined #perl6
01:21 Kristien well, time to sleep
01:21 Kristien bye!
01:21 TimToady m: class B { method f { 'B' } }; class D is B { method f { 'D' } }; say D.*f.reverse  # :)
01:21 camelia rakudo-moar fec233: OUTPUT«B D␤»
01:24 TimToady m: class B { method f { 'B' } }; class D is B { method f { 'D' } }; say .can('f').reverse».($_) given D.new
01:24 camelia rakudo-moar fec233: OUTPUT«B D␤»
01:25 vendethiel joined #perl6
01:27 TimToady still kinda seems like misuse of inheritance
01:33 skids FROGGS++ suggestion to do a "my $!" to keep exceptions from falling out of compunits didn't seem to work.  But assigning to $! at the end of the module did.  Wonder how naughty that is.
01:42 TimToady sort of a shame that http://rosettacode.org/wiki/Write_language_name_in_3D_ASCII#Perl_6 actually requires that 'my $/;'
01:46 adu I use figlet for that
01:46 yoleaux 00:05Z <avuserow> adu: been at $dayjob all day so no direct hacking on it, just backlogged and read lizmat++'s suggestion about supplies, so I'm doing a bit of reading about it
01:46 adu avuserow: cool
01:46 adu my $dayjob sucked today
01:47 adu yoleaux: tell avuserow cool
01:47 * adu is not sure if that worked
01:54 Woody joined #perl6
02:04 BenGoldberg joined #perl6
02:13 BenGoldberg joined #perl6
02:13 vendethiel joined #perl6
02:19 ugexe grammar { token TOP { ^ <tell> \s <user> \s <message> } token tell:sym<.tell> { <sym> } token user { <alnum>+ } token message { <after <user>> (.*) } }
02:24 TimToady \s+ probably
02:25 TimToady and ; after } if you follow with another statement on the same line
02:25 TimToady after is amost certainly wrong
02:25 ugexe also <after [<.ws>+ <user>]>
02:25 TimToady *alm
02:25 TimToady you just don't need it
02:26 TimToady your TOP rule already guarantees it's after <user>
02:27 TimToady token message { .* } is about all you need
02:28 TimToady or \N* if you want to stop on \n
02:32 TimToady m: $_ = "foo"; s:g [(0)] = $0 xx 2; .say;  # known?
02:32 camelia rakudo-moar fec233: OUTPUT«foo␤»
02:32 TimToady m: my $/; $_ = "foo"; s:g [(0)] = $0 xx 2; .say;  # known?
02:32 camelia rakudo-moar fec233: OUTPUT«Potential difficulties:â�¤    Redeclaration of symbol $/â�¤    at /tmp/4d6DTiJY6l:1â�¤    ------> [32mmy $/[33mâ��[31m; $_ = "foo"; s:g [(0)] = $0 xx 2; .say;[0mâ�¤fooâ�¤Â»
02:33 TimToady m: $_ = "foo"; s:g [(o)] = $0 xx 2; .say;  # known?
02:33 camelia rakudo-moar fec233: OUTPUT«fo oo o␤»
02:33 TimToady well, works there
02:35 TimToady m: given "foo" -> $_ is copy { s:g [(o)] = $0 xx 2; .say }
02:35 camelia rakudo-moar fec233: OUTPUT«fo oo o␤»
02:35 TimToady m: for "foo" -> $_ is copy { s:g [(o)] = $0 xx 2; .say }
02:35 camelia rakudo-moar fec233: OUTPUT«f␤»
02:35 TimToady there's the bug
02:36 TimToady masakbot ^^
02:36 TimToady m: for "foo" -> $_ is copy { my $/; s:g [(o)] = $0 xx 2; .say }
02:36 camelia rakudo-moar fec233: OUTPUT«fo oo o␤»
02:36 TimToady and there's the workaround
02:37 TimToady m: for "foo" -> $_ is copy { s:g [(o)] = OUTER::<$0> xx 2; .say }
02:37 camelia rakudo-moar fec233: OUTPUT«use of uninitialized value of type Any in string context  in block <unit> at /tmp/53Sju6_D4U:1␤␤use of uninitialized value of type Any in string context  in block <unit> at /tmp/53Sju6_D4U:1␤␤use of uninitialized value of type Any in string context…»
02:50 echowuhao joined #perl6
03:07 noganex joined #perl6
03:13 avuserow adu: I usually backlog here :) for future reference, yoleaux works via '.tell user message'
03:18 Patterner joined #perl6
03:26 vendethiel joined #perl6
03:27 adu o hi
03:28 avuserow o/
03:28 adu I knew I was doing something wrong
03:57 sunnavy joined #perl6
04:01 colomon joined #perl6
04:08 raydiak TimToady: #123005
04:08 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123005
04:14 colomon joined #perl6
04:17 vendethiel joined #perl6
04:27 colomon joined #perl6
04:34 avuserow m: sub x {say caller}; x
04:34 camelia rakudo-moar fec233: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_pzqm4NxEWâ�¤Undeclared routine:â�¤    caller used at line 1â�¤â�¤Â»
04:44 vendethiel joined #perl6
05:20 vendethiel joined #perl6
05:29 adu raydiak: how goes?
05:38 xiaomiao joined #perl6
05:51 vendethiel joined #perl6
06:00 TimToady raydiak: thanks
06:21 dalek doc: d7e1907 | paultcochrane++ | html/css/pygments.css:
06:21 dalek doc: Add pygments css colour definitions file
06:21 dalek doc: review: https://github.com/perl6/doc/commit/d7e1907306
06:21 dalek doc: 776d3f4 | paultcochrane++ | template/head.html:
06:21 dalek doc: Load pygments style definitions
06:22 moritz good morning
06:22 moritz that was the add_pygments_highlighting branch merge
06:22 dalek joined #perl6
06:31 fhelmberger joined #perl6
06:48 bartolin joined #perl6
06:57 vendethiel joined #perl6
07:07 dj_goku joined #perl6
07:19 sjn__ joined #perl6
07:20 diana_olhovik joined #perl6
07:28 Mr0rris0 joined #perl6
07:28 Mr0rris0 joined #perl6
07:29 El_Che joined #perl6
07:30 Mr0rris0 joined #perl6
07:30 coyocanid joined #perl6
07:30 Mr0rris0 joined #perl6
07:32 Mr0rris0 joined #perl6
07:33 Mr0rris0 joined #perl6
07:33 Mr0rris0 joined #perl6
07:35 alini joined #perl6
07:35 itz joined #perl6
07:35 slavik joined #perl6
07:49 darutoko joined #perl6
07:53 dj_goku joined #perl6
07:53 dj_goku joined #perl6
08:01 rurban joined #perl6
08:02 telex joined #perl6
08:08 prime joined #perl6
08:17 dj_goku joined #perl6
08:17 dj_goku joined #perl6
08:25 Ven joined #perl6
08:35 xfix joined #perl6
08:44 dalek doc: 8ba60b3 | moritz++ | lib/Type/IO.pod:
08:44 dalek doc: IO &close: correct link, explain why close is necessary
08:44 dalek doc: review: https://github.com/perl6/doc/commit/8ba60b3beb
08:46 espadrine joined #perl6
08:49 FROGGS[mobile] joined #perl6
08:51 dalek nqp: 2776313 | jnthn++ | tools/build/MOAR_REVISION:
08:51 dalek nqp: Bump to latest MoarVM.
08:51 dalek nqp: review: https://github.com/perl6/nqp/commit/277631377d
08:51 dalek rakudo/nom: 168ca22 | jnthn++ | src/vm/moar/ops/container.c:
08:51 dalek rakudo/nom: Update Rakudo scalar contspec for updated API.
08:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/168ca22ffe
08:51 dalek rakudo/nom: b46a4a9 | jnthn++ | src/vm/moar/ops/container.c:
08:51 dalek rakudo/nom: Chase MoarVM container API change after bump.
08:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b46a4a93d2
08:51 dalek rakudo/nom: 9c2dc10 | jnthn++ | tools/build/NQP_REVISION:
08:51 dalek rakudo/nom: Bump to latest NQP, to get updated MoarVM.
08:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c2dc10158
08:52 jnthn (b46a4a9 was a merge commit, turns out the first commit in the native-ref branch was also the one needed for compat with the Moar bump)
08:54 Alina-malina joined #perl6
08:57 dalek rakudo/nom: 8862eb3 | TimToady++ | src/core/Rational.pm:
08:57 dalek rakudo/nom: omit . on Rat with 0 fractional digits
08:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8862eb37fa
08:59 Ven joined #perl6
08:59 dalek roast: a25df02 | TimToady++ | S32-num/base.t:
08:59 dalek roast: tests for .base with digits, .base-repeating
08:59 dalek roast: review: https://github.com/perl6/roast/commit/a25df02ac7
09:07 TimToady zzz while recompiling everything and spectesting &
09:10 FROGGS[mobile] like in the good old parrot times :p
09:10 moritz m: say pi.base(10, 5);
09:10 camelia rakudo-moar fec233: OUTPUT«3.14159␤»
09:14 moritz m: say (1/7).base-repeating
09:14 camelia rakudo-moar fec233: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤  in method base-repeating at src/gen/m-CORE.setting:12103␤  in block <unit> at /tmp/3tmU1_MDCS:1␤␤»
09:14 moritz m: say (1/7).base-repeating(10)
09:14 camelia rakudo-moar fec233: OUTPUT«0. 142857␤»
09:15 moritz m: say (4/7).base-repeating(10)
09:15 camelia rakudo-moar fec233: OUTPUT«0. 571428␤»
09:15 moritz m: say (24/7).base-repeating(10)
09:15 camelia rakudo-moar fec233: OUTPUT«3. 428571␤»
09:19 itz parrot used to run out of VM on a particularly old system of mine
09:20 dalek doc: d82788a | moritz++ | lib/Type/Real.pod:
09:20 dalek doc: document $digits argument to .base
09:20 dalek doc:
09:20 dalek doc: stolen from the design docs
09:20 dalek doc: review: https://github.com/perl6/doc/commit/d82788a250
09:22 gfldex joined #perl6
09:23 TimToady compiles all three backends, some failing tests but no apparent regressions on moarvm spectest
09:23 TimToady zzz &
09:25 moritz m: printf "%s(%s)", '6.', 3
09:25 camelia rakudo-moar fec233: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/STMjqDTtdGâ�¤Variable '%s' is not declaredâ�¤at /tmp/STMjqDTtdG:1â�¤------> [32mprintf "%s(%s[33mâ��[31m)", '6.', 3[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
09:25 moritz m: printf '%s(%s)', '6.', 3
09:25 camelia rakudo-moar fec233: OUTPUT«6.(3)»
09:30 moritz .ask TimToady wouldn't it more consistent to return Str (the type object) for .base-repeating that exceeds the precision limit?
09:30 yoleaux moritz: I'll pass your message to TimToady.
09:30 dalek doc: 998065c | moritz++ | lib/Type/Rational.pod:
09:30 dalek doc: Document Rational.base-repeating
09:30 dalek doc: review: https://github.com/perl6/doc/commit/998065cdbc
09:34 _mg_ joined #perl6
09:39 dalek doc: 9a69456 | moritz++ | lib/Language/operators.pod:
09:39 dalek doc: Improve docs for infix =:=
09:39 dalek doc: review: https://github.com/perl6/doc/commit/9a69456bdb
09:41 ab5tract .botsnack
09:41 yoleaux :D
09:47 dalek doc: 7fa0d46 | moritz++ | lib/Language/operators.pod:
09:47 dalek doc: Examples for eqv operator
09:47 dalek doc: review: https://github.com/perl6/doc/commit/7fa0d467f8
09:50 dalek doc: 7588f2b | moritz++ | lib/Language/operators.pod:
09:50 dalek doc: infix:<leg>: mnemonic, examples
09:50 dalek doc: review: https://github.com/perl6/doc/commit/7588f2ba6c
09:51 FROGGS[mobile] joined #perl6
09:53 Ven joined #perl6
09:54 Kristien joined #perl6
09:55 Kristien morning
10:00 ab5tract Kristien: good morning :)
10:04 * [ptc] has the feeling that moritz++ is some kind of bot...
10:04 [ptc] m: my %hash = { "a" => 1, "b" => 2, "c" => 3}; say %hash;
10:04 camelia rakudo-moar 8862eb: OUTPUT«a => 1, b => 2, c => 3␤Saw 1 call to deprecated code during execution.␤================================================================================␤%hash = itemized hash called at:␤  /tmp/Hl55Fx2VT1, line 1␤Deprecated since v2014.7, will be r…»
10:05 [ptc] interesting, that error didn't turn up in my rakudo-moar....
10:05 * [ptc] goes back to the drawing board
10:10 nine_ moritz: StartSSL certificates are orders of magnitude cheaper then the competition and they are accepted by all browsers nowadays. Have them in production with good experiences.
10:10 [ptc] m: my %hash = "a" => 1, "b" => 2, "c" => 3; say %hash;
10:10 camelia rakudo-moar 8862eb: OUTPUT«a => 1, b => 2, c => 3␤»
10:10 [ptc] m: my %hash = "a" => 1, "b" => 2, "c" => 3; say %hash.gist;
10:10 camelia rakudo-moar 8862eb: OUTPUT«a => 1, b => 2, c => 3␤»
10:18 dalek rakudo-star-daily: afd95e2 | coke++ | log/ (14 files):
10:18 dalek rakudo-star-daily: today (automated commit)
10:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/afd95e25f6
10:18 itz I got my last startssl cert for free
10:28 dalek doc: 70a983d | moritz++ | type-graph.txt:
10:28 dalek doc: Add some more types to type-graph.txt
10:28 dalek doc: review: https://github.com/perl6/doc/commit/70a983d62d
10:31 itz m: 'ABC'.ords xx 2
10:31 camelia rakudo-moar 8862eb: ( no output )
10:32 _mg_ joined #perl6
10:37 dalek rakudo/nom: 98de201 | moritz++ | src/core/Temporal.pm:
10:37 dalek rakudo/nom: DateTime: Fix/add type constraints, fix format specifier in error message
10:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/98de20135c
10:37 davido__ joined #perl6
10:37 kjs_ joined #perl6
10:38 nine_ After two decades I'm still struggeling to accept how much one can screw up a language: http://lwn.net/SubscriberLink/633203/40c7d412a07bc317/
10:39 [ptc] quite right :-)
10:40 [ptc] especially 1 + "extrajunk" = 2
10:40 Rounin joined #perl6
10:40 nine_ They really want to add strict typing so functions may rely on types of their input parameters just to make it the caller's decision if he really wants to be strict or not...
10:43 dalek rakudo/nom: 949b809 | moritz++ | src/core/Proc/Async.pm:
10:43 dalek rakudo/nom: Give all X::Proc::Async exceptions a common role
10:43 dalek rakudo/nom:
10:43 dalek rakudo/nom: and make the Proc::Async object that threw it available as an attribute in the common role
10:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/949b8097d6
10:43 dalek doc: 8fdbbb1 | moritz++ | / (2 files):
10:43 dalek doc: Document X::Proc::Async
10:43 dalek doc:
10:43 dalek doc: also add X::Proc::Async and friends to the type graph
10:43 dalek doc: review: https://github.com/perl6/doc/commit/8fdbbb1558
10:46 virtualsue joined #perl6
10:56 masak good noon, #perl6
10:56 Ven o/, masakbot
10:56 [ptc] masak: o/
10:57 dalek roast: 776cec3 | moritz++ | S03-operators/repeat.t:
10:57 dalek roast: Fudge failing test (RT #123830)
10:57 dalek roast: review: https://github.com/perl6/roast/commit/776cec3eb6
10:57 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123830
11:01 espadrine joined #perl6
11:07 wicope joined #perl6
11:11 virtualsue_ joined #perl6
11:24 alini joined #perl6
11:46 lizmat Mouq: re http://irclog.perlgeek.de/perl6/2015-02-13#i_10112937 , it will most definitely *not* land before 2015.02
11:46 yoleaux 13 Feb 2015 21:35Z <jnthn> lizmat: Hm, that doesn't quite strike me as correct either. The $!PIO attribute is really a handle...so something along those lines may fit better. I guess we already used IO::Handle...or did that change in newio, or does places with PIO overlap with that anyway? :)
11:46 lizmat Mouq: I have good hopes soon thereafter
11:47 lizmat .tell jnthn the PIO role is consumed by IO::Handle / IO::Socket / IO::Dup (the class handling $*IN and friends)
11:47 yoleaux lizmat: I'll pass your message to jnthn.
11:47 lizmat .tell jnthn fwiw, as I stated before, I'm fine with PIO, as it is the Perl Io Object
11:47 yoleaux lizmat: I'll pass your message to jnthn.
11:49 dalek Heuristic branch merge: pushed 132 commits to roast/newio by lizmat
11:52 gaussblurinc_ joined #perl6
11:56 dalek roast: 2c3817c | lizmat++ | S03-operators/repeat.t:
11:56 dalek roast: Unfudge tests for parrot
11:56 dalek roast: review: https://github.com/perl6/roast/commit/2c3817c0a8
12:03 dalek specs/newio: 634956a | lizmat++ | S16-io.pod:
12:03 dalek specs/newio: Oops, fix wrong merge
12:03 dalek specs/newio: review: https://github.com/perl6/specs/commit/634956a5d9
12:05 [ptc] m: say mkdir "blah"
12:05 camelia rakudo-moar 949b80: OUTPUT«mkdir is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:1␤  in sub mkdir at src/RESTRICTED.setting:8␤  in block <unit> at /tmp/uA88Lv3L0m:1␤␤»
12:05 dalek rakudo/newio: 168ca22 | jnthn++ | src/vm/moar/ops/container.c:
12:05 dalek rakudo/newio: Update Rakudo scalar contspec for updated API.
12:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/168ca22ffe
12:05 dalek rakudo/newio: b46a4a9 | jnthn++ | src/vm/moar/ops/container.c:
12:05 dalek rakudo/newio: Chase MoarVM container API change after bump.
12:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/b46a4a93d2
12:05 dalek rakudo/newio: 9c2dc10 | jnthn++ | tools/build/NQP_REVISION:
12:05 dalek rakudo/newio: Bump to latest NQP, to get updated MoarVM.
12:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/9c2dc10158
12:05 dalek rakudo/newio: 8862eb3 | TimToady++ | src/core/Rational.pm:
12:05 dalek rakudo/newio: omit . on Rat with 0 fractional digits
12:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/8862eb37fa
12:05 dalek rakudo/newio: 98de201 | moritz++ | src/core/Temporal.pm:
12:05 dalek rakudo/newio: DateTime: Fix/add type constraints, fix format specifier in error message
12:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/98de20135c
12:05 dalek rakudo/newio: 7418eeb | lizmat++ | / (4 files):
12:05 dalek rakudo/newio: Merge branch 'nom' into newio
12:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/7418eeb694
12:05 lizmat [ptc]: what are you trying to show ?
12:06 [ptc] lizmat: I was just interested to see what the error message would be like
12:06 [ptc] I'm looking at the docs for mkdir and rmdir atm, and they don't seem to do the same as what the spec does
12:07 [ptc] I'm running moarvm, btw
12:07 lizmat which docs are you looking at ?
12:07 [ptc] perl6/specs/S32-setting-library/IO.pod and perl6/doc/lib/Type/IO.pod
12:08 [ptc] in my repl, when I try to mkdir, it returns the name of the directory made, but if I try something like mkdir "/moo", it returns effectively $( )
12:09 [ptc] the specs say it fails, and I was just playing around to see what a failure would look like on another, more restricted system
12:10 [ptc] also rmdir returns the name of the dir which was deleted (if it existed) and nothing (not even Nil) if it didn't exist
12:10 lizmat on the restricted system, the mkdir sub is just replaced by something that fails
12:10 [ptc] that's ok, I just wanted to see it fail in some way :-)
12:10 lizmat well, the *exact* behaviour of mkdir() and friends is currently a bit in flux
12:10 lizmat both from a synopsis point of view
12:10 lizmat and from a backend point of vire
12:10 lizmat *view
12:11 [ptc] that's good to know, so it might be an idea to hold off documenting things exactly at this stage
12:11 lizmat the newio branch of "specs" contains description that matches the doc
12:11 lizmat for mkdir at least
12:12 lizmat and the newio implementation also matches that
12:12 [ptc] I had the vague feeling that what I was seeing was backend implementation-specific, and what you've said basically confirms that
12:12 [ptc] ok, thanks for the info :-)
12:13 lizmat yw
12:16 nine_ lizmat: as long as it's in flux anyway. With mkdir especially I often want it to succeed if the directory already exists, but sometimes I need to treat that as an error. When the API caters to both use cases I'd consider it highly practical.
12:17 dalek specs: ad449e5 | paultcochrane++ | S32-setting-library/IO.pod:
12:17 dalek specs: Format code-like string with C< >
12:17 dalek specs: review: https://github.com/perl6/specs/commit/ad449e5352
12:17 dalek specs: 55b6345 | paultcochrane++ | S (5 files):
12:17 dalek specs: Merge branch 'master' of github.com:perl6/specs
12:17 dalek specs: review: https://github.com/perl6/specs/commit/55b63455f0
12:17 lizmat it returns a Failure if failed, you can // it if you want to ignore
12:19 dalek doc: 211ed6e | paultcochrane++ | lib/Type/IO.pod:
12:19 dalek doc: Document IO::print
12:19 dalek doc: review: https://github.com/perl6/doc/commit/211ed6eaa9
12:19 dalek doc: e510017 | paultcochrane++ | lib/Type/IO.pod:
12:19 dalek doc: Document IO::say
12:19 dalek joined #perl6
12:32 coffee` joined #perl6
12:35 moritz nine_, lizmat: mkdir-but-succeed-if-exists could be called declaredir
12:35 lizmat sub mkdir-but-succeed-if-exists(|c) { mkdir(|c) // True }
12:36 lizmat sub declaredir(|c) { mkdir(|c) // True }  # sorry moritz, should read better :-)
12:36 masak assuredir
12:37 moritz lizmat: mkdir() // True doesn't cover it
12:37 lizmat moritz: why ?
12:37 moritz lizmat: what wouldn't fail when permission denied, no?
12:38 lizmat ah, ok
12:38 moritz or if it's a file, not a directory
12:38 moritz or if the parent dir doesn't exist
12:38 moritz or all the other ways that mkdir can go wrong
12:38 lizmat sub declaredir(\path,|c) { mkdir(path,|c) // path.IO.d }
12:38 moritz nope
12:38 moritz that return False on error, not the Failure
12:38 diana_olhovik_ joined #perl6
12:39 lizmat sub declaredir(\path,|c) { path.IO.d // mkdir(path,|c) }
12:39 rmgk_ joined #perl6
12:39 moritz now if you change // to || it might work :-)
12:39 moritz m: say "nosuchdir".IO.d
12:39 camelia rakudo-moar 949b80: OUTPUT«Failed to find 'nosuchdir' while trying to do '.d'␤  in method gist at src/gen/m-CORE.setting:14669␤  in sub say at src/gen/m-CORE.setting:17426␤  in block <unit> at /tmp/ewedKfJhTw:1␤␤»
12:39 moritz ugh
12:40 moritz I thought it'd simply return a False
12:40 lizmat yeah, guess we need to check for .e first
12:40 lizmat in the newio branch, that would work
12:40 lizmat I think
12:40 lizmat lemme check
12:41 dalek rakudo/newio: f7642cc | lizmat++ | src/core/Distro.pm:
12:41 dalek rakudo/newio: Make sure we check dirs when using Distro.tmpdir
12:41 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/f7642ccee1
12:43 lizmat moritz: well False would mean it exists but is not a dir
12:43 coffee` left #perl6
12:43 lizmat if anything, it should return Bool in that case
12:43 lizmat if it doesn't return a failure
12:44 lizmat m: say "nosuchdir".IO.d // "huh"
12:44 camelia rakudo-moar 949b80: OUTPUT«huh␤»
12:44 moritz lizmat: if something doesn't exist, it's not a directory either
12:44 lizmat no, you can't tell
12:44 moritz well yes
12:44 moritz if it doesn't exist, I can tell it's not a directory
12:44 lizmat m: say "nosuchdir".IO.d // False
12:44 camelia rakudo-moar 949b80: OUTPUT«False␤»
12:45 moritz .oO( santa claus isn't a directory )
12:45 lizmat well, if that's what we want to do for the newio branch
12:45 lizmat I'm fine with that
12:46 lizmat m: say "nosuchfile".IO.s
12:46 camelia rakudo-moar 949b80: OUTPUT«Failed to find 'nosuchfile' while trying to do '.s'␤  in method gist at src/gen/m-CORE.setting:14669␤  in sub say at src/gen/m-CORE.setting:17426␤  in block <unit> at /tmp/LVjc8W7yj_:1␤␤»
12:46 lizmat m: say "nosuchfile".IO.s // 0   # and for non-boolean cases?
12:46 camelia rakudo-moar 949b80: OUTPUT«0␤»
12:46 lizmat or -1 ?
12:50 dalek rakudo/newio: 168fca7 | lizmat++ | src/core/IO/Pathy.pm:
12:50 dalek rakudo/newio: IO::Pathy is only for existing paths
12:50 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/168fca71cb
12:50 dalek rakudo/newio: f43f963 | lizmat++ | src/core/IOU.pm:
12:50 dalek rakudo/newio: IOU.e should never fail, just return Bool:D
12:50 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/f43f9635dc
12:50 FROGGS[mobile] joined #perl6
12:52 lizmat afk for a few hours
12:53 tengignick joined #perl6
12:58 diana_olhovik___ joined #perl6
12:59 pecastro joined #perl6
13:05 tgt joined #perl6
13:10 Akagi201 joined #perl6
13:10 mr-foobar joined #perl6
13:14 Kristien joined #perl6
13:15 Kristien say you'd write in Perl a program that needs some assets compiled
13:15 Kristien would you use a separate build step or would you do it in a BEGIN?
13:15 moritz separate build step
13:15 nine_ .tell lizmat path.IO.d // mkdir(path,|c) is prone to very hard to diagnose race conditions
13:15 yoleaux nine_: I'll pass your message to lizmat.
13:16 dalek doc: 36c35e2 | paultcochrane++ | htmlify.p6:
13:16 dalek doc: Rename $c -> $pod-element in find-definitions()
13:16 dalek doc:
13:16 dalek doc: This better represents (I believe) the variable's purpose.
13:16 dalek doc: review: https://github.com/perl6/doc/commit/36c35e2116
13:17 Kristien moritz: why?
13:18 moritz Kristien: because that's what build steps are for
13:18 Kristien OK.
13:19 Ven joined #perl6
13:25 dalek doc: 1139ae9 | paultcochrane++ | htmlify.p6:
13:25 dalek doc: Rename @c -> @all-pod-elements in find-definitions()
13:25 dalek doc: review: https://github.com/perl6/doc/commit/1139ae9742
13:30 moritz [ptc]++
13:44 dolmen joined #perl6
13:53 Ven joined #perl6
13:54 Ven joined #perl6
14:06 dalek doc: 622daaa | paultcochrane++ | htmlify.p6:
14:06 dalek doc: Rename $tg -> $type-graph in htmlify
14:06 dalek doc: review: https://github.com/perl6/doc/commit/622daaa556
14:07 arnsholt Kristien: Remember that you're not guaranteed that your program will be run in pre-compiled mode. In that case, you'd end up building the assets on every start-up
14:07 masak [ptc]++ # clarity? in variable names? well, I never! :P
14:07 arnsholt Which is probably not what you want
14:07 Kristien OK
14:10 arnsholt I mean, it could be what you want, but a priori I'd think a separate step is more appropriate
14:12 pmurias joined #perl6
14:12 pmurias re building assets at BUILD time, shouldn't the be rebuilt when their dependencies change?
14:13 itz some odd and inconsistant spec test fails on FreeBSD/Linux
14:14 arnsholt pmurias: Probably. Of course, you *could* implement that kind of logic in a BEGIN =)
14:15 arnsholt I guess it's just a question of time before someone implements a Make slang =D
14:15 itz ah one is fudged now
14:16 pmurias we don't have a decent way to compile Perl 6 yet, so I'm not sure putting compilation of other stuff into makes much sense
14:16 pmurias s/into/it/
14:16 zby_home joined #perl6
14:17 [ptc] masak: sorry!  I'll change them into $x, $xx and $xxx  :P
14:19 masak :P
14:23 moritz [Coke]: re http://irclog.perlgeek.de/perl6/2015-02-11#i_10100787 do you think what's shown now satisfies that?
14:28 dalek nqp/js: 020a5af | (Pawel Murias)++ | nqp-js:
14:28 dalek nqp/js: Do not rm tmp.js in the nqp-js script, it's annoying and potentially dangerous
14:28 dalek nqp/js: review: https://github.com/perl6/nqp/commit/020a5af407
14:28 dalek nqp/js: 6c9e703 | (Pawel Murias)++ | src/vm/js/ (4 files):
14:28 dalek nqp/js: Pass test 55.
14:28 dalek nqp/js:
14:28 dalek nqp/js: Deserialize closures which have no context.
14:28 dalek nqp/js: Set the code object on deserialized closures.
14:28 dalek nqp/js: review: https://github.com/perl6/nqp/commit/6c9e703bf3
14:33 fhelmberger joined #perl6
14:35 pmurias but once we get rid of Makefile doing asset compilation at BEGIN time makes some sense
14:41 moritz pmurias: do you know how I can get 'node' installed on debian? the nodejs package just installs a 'nodejs' binary
14:45 pmqs joined #perl6
14:46 Ven moritz: build it.
14:46 moritz pmurias: or should I teach Configure.pl to probe for nodejs? or allow specifying the binary
14:46 moritz Ven: I'd like to avoid that
14:46 Ven well...:)
14:47 moritz Ven: a different binary name shouldn't be reason to do a custom build
14:47 Ven moritz: no, but an outdated version in packages is.
14:47 moritz Ven: but is it?
14:47 Ven moritz: pretty sure it is. type nodejs -v and discover
14:48 moritz 0.10.29
14:48 moritz vs. 0.12 as the last stable release
14:48 moritz not knowing anything about node, that doesn't sound too terrible
14:49 colomon joined #perl6
14:50 moritz ok, I've done a symlink into $HOME/bin for now
14:50 moritz though I'm happy to contribute some code to make the binary name specifyable at Configure.pl time
14:50 moritz if that's wanted
14:54 Ven pmurias: so, after nqp-js gets tests 19,24,29-32,34,43-45,49,50,52,54,60-63,67,72-74,77-80,83-87 -- will other tests be missing?
14:55 Ven admittedly, some of them can't be passed -- are they "just" skipped?
14:57 tgt joined #perl6
14:58 Akagi201 joined #perl6
15:00 * Ven is now building nqp-js
15:05 ab5tract .ask lizmat i'm curious what your opinion is re: a quanthash-y symmetric difference op: https://github.com/rakudo/rakudo/pull/362
15:05 yoleaux ab5tract: I'll pass your message to lizmat.
15:06 ab5tract .tell lizmat but even more curious is that infix:<(^+)> seems to break the parser in some really weird way. the operator is unusable when invoked from a file, or when used like (...).Bag (^+) (...).Bag from the repl
15:06 yoleaux ab5tract: I'll pass your message to lizmat.
15:06 Ven pmurias: I'm totally new to nqp hacking. Do I get need to re-make && make test everytime I change something? (the answer seems obvious here
15:11 Ven pmurias: uglifyjs command seems to be "uglify" here (?)
15:14 pmurias moritz: teaching Configure.pl to probe for nodejs would be great
15:15 pmurias Ven: you need to make everything after you change something
15:15 Ven pmurias: mmmh... I'm a bit lost in the sea, tbh. but yeah, I guessed as much
15:16 pmurias Ven: there is a HACKING file
15:16 Ven pmurias: yes, I know, I'm reading it
15:16 pmurias Ven: re "uglify" we might want to detect that
15:17 Ven pmurias: but, i.e., TODO says "list_s", so I tried looking i.e. in Ops.java for a list_s, but none to be found, so I'm guessing I'm looking at the wrong file...:)
15:17 psch o/
15:17 * pmurias looks
15:17 Ven \o psch
15:17 psch Ven: Compiler.nqp has the core ops, not all of those map to vm-specific code
15:18 psch (Compiler.nqp for jvm that is, it's QASTCompilerMAST.nqp for moar)
15:18 psch to clarify, not all are implemented on vm-level
15:18 psch i think that's more correct :)
15:20 pmurias src/vm/jvm/QAST/Compiler.nqp
15:23 dalek nqp/js: 4d5827a | (Pawel Murias)++ | src/vm/js/nqp-runtime/deserialization.js:
15:23 dalek nqp/js: Remove empty loop.
15:23 dalek nqp/js: review: https://github.com/perl6/nqp/commit/4d5827ae7c
15:23 dalek nqp/js: bf84036 | (Pawel Murias)++ | HACKING:
15:23 dalek nqp/js: Mention the other place ops are implemented on the jvm.
15:23 dalek nqp/js: review: https://github.com/perl6/nqp/commit/bf8403675f
15:23 Ven psch: thanks. too bad there doesn't seem to have much comments
15:24 pmurias Ven: for implementing list_s it's best to just add a new type to the generic list_* code in src/vm/js/QAST/Compiler.nqp:528
15:25 psch Ven: the add_core_op invocation the file pmurias++ gave above seems commented better than other some other parts the jvm backend to me
15:29 Ven pmurias: ah, is it really that simple :P?
15:29 Ven There's no listing OP <-> test, I'll guess?
15:29 pmurias I don't understand
15:30 Ven pmurias: I reckon there's no tests currently written for nqp::list_s, right?
15:30 itz https://twitter.com/fsfe
15:30 itz :)
15:30 pmurias I have one ready
15:30 psch pmurias: ooc, what's the reason for having "add_op" and "add_simple_op" instead of "add_core_op" as jvm and moar do?
15:31 Ven itz: that's a very nice photo of woolfy++
15:31 dalek nqp/js: 6820384 | (Pawel Murias)++ | / (2 files):
15:31 dalek nqp/js: Add list_s test.
15:31 dalek nqp/js: review: https://github.com/perl6/nqp/commit/68203843f4
15:32 pmurias Ven: as I was just preparing to implement list_s, as it's required for rules
15:32 Ven pmurias: fair enough.
15:33 grondilu joined #perl6
15:33 pmurias just add 59 back to run_tests when you implement nqp::list_s
15:33 grondilu joined #perl6
15:34 pmurias psch: add_simple_op is just a helper on top of add_op to allow more concise op definitions
15:35 grondilu say "foo".trans: @$_ Z=> .[].rotate(13) given "a".."z"
15:35 grondilu m: say "foo".trans: @$_ Z=> .[].rotate(13) given "a".."z"
15:35 camelia rakudo-moar 949b80: OUTPUT«sbb␤»
15:35 grondilu m: say "sbb".trans: @$_ Z=> .[].rotate(13) given "a".."z"
15:35 camelia rakudo-moar 949b80: OUTPUT«foo␤»
15:36 * grondilu thought Range supported .rotate so he could do without .[]
15:36 alini joined #perl6
15:37 pmurias psch: it's not really clear to me what the difference between "hll" and "core" ops is in the jvm backend
15:37 dolmen joined #perl6
15:37 paul__ joined #perl6
15:37 paul__ left #perl6
15:38 psch pmurias: hll ops are bound to one specific hll, for starters.  e.g. "how do we stringify" differs between python and perl6
15:38 pmqs left #perl6
15:38 psch pmurias: i don't know if that distinction is consistent throughout NQP though
15:38 pmqs joined #perl6
15:39 pmurias psch: I tend to do things in a test driven manner, when we get to the point where it's neccessary I will add that distinction
15:40 pmurias but I'm not jnthn++ so it's hard for me do anticipate how everything will be done as I haven't implemented nqp 3 times before
15:41 psch pmurias: no worries, i was just wondering.  not having the distinction might just make it different (than nqp-j or nqp-m) to use nqp-js for other languages
15:42 psch that's how i understand the difference between add_core_op and add_hll_op at least - ops added with the former exist for every language implemented with NQP, ops added with the latter are bounds to one HLL
15:42 psch which is kinda fun, because NQP is itself a HLL implemented with NQP...
15:42 ab5tract pmurias++ # it's great to see so much progress on nqp-js
15:43 pmurias calling both the NQP language and the QAST backend NQP is confusing
15:44 psch QAST is (P++)AST as a parsing structure implemented in NQP
15:44 psch NQP is bootstrapping and understand languages that emit QAST
15:44 psch NQP emits QAST
15:44 psch and Münchhausen is happy
15:45 psch in other words, i'm not sure i understand the confusion
15:48 pmurias NQP is a language like Perl 6
15:49 pmurias but jnthn also calls the whole architecture NQP
15:50 psch in my understanding, NQP is a bootstrapping language and compiler focused on parsing and compilation
15:50 psch as such, NQP is a prime target for dogfooding and should bootstrap
15:51 psch eh, that was jumbled.  "it's bootstrapping because it should bootstrap"
15:52 psch what i mean is that as a language it's made for implementing languages, and thus as a compiler it should bootstrap to prove it's good at what it does
15:52 Ven pmurias: what's $@ in run_tests?
15:54 Ven pmurias: "NYI is not defined" :P
15:55 Ven Heap corruption detected: pointer 0x101367fa0 to past fromspace while trying to re-"make"
15:55 Ven Okay, what now :(
15:55 colomon joined #perl6
15:55 * Ven make cleans
15:58 Ven pmurias: okay, works with make clean && make, but I'm a bit afraid I'll have to do that every time
15:59 pmurias Ven: $@ in run_tests is used to pass a -v
15:59 colomon joined #perl6
15:59 Ven pmurias: ah, it's basically "every input"?
16:00 Ven as in, input forwarding
16:00 pmurias command line options forwarding
16:00 pmurias so we can have src/vm/js/bin/run_tests -v
16:00 Ven alright, gotcha
16:00 Ven going to fork, make a branch and PR, then
16:00 Ven "what's the smallest contribution I can make?"
16:00 Ven I found the answer to that one :). gotta start somewhere, tho
16:01 pmurias just commit
16:01 pmurias Ven: you have a nqp commit bit?
16:01 Ven pmurias: I don't
16:02 pmurias I can pull the PR then
16:02 Ven alright, then I'll fork and PR
16:04 Ven pmurias: #221
16:05 dalek nqp/js: 5ca166f | vendethiel++ | src/vm/js/ (2 files):
16:05 dalek nqp/js: Add nqp::list_s and nqp::push_s, re-enable test 59
16:05 dalek nqp/js: review: https://github.com/perl6/nqp/commit/5ca166fcf7
16:05 dalek nqp/js: 2eb3dc1 | (Pawel Murias)++ | src/vm/js/ (2 files):
16:05 dalek nqp/js: Merge pull request #221 from vendethiel/js-fix59
16:05 dalek nqp/js:
16:05 dalek nqp/js: Add nqp::list_s and nqp::push_s, re-enable test 59
16:05 dalek nqp/js: review: https://github.com/perl6/nqp/commit/2eb3dc1ca1
16:06 Ven pmurias: I have *no idea* how die_s should be implemented. Throw an exception :|?
16:08 pmurias Ven: yes, but we will need to walk the contexts to call the handler *before* calling the exception
16:08 dalek nqp/js: 32535d5 | (Pawel Murias)++ | src/vm/js/ (4 files):
16:08 dalek nqp/js: Implement nqp::callercode.
16:08 dalek nqp/js: review: https://github.com/perl6/nqp/commit/32535d5023
16:08 Ven pmurias: it seems nqp-js will really have to ABUSE exceptions a lot
16:08 Ven ah, I forgot to update TODO
16:08 pmurias as exceptions are resumable in nqp
16:08 pmurias I'll update the TODO
16:09 dalek nqp/js: 8fffdb7 | (Pawel Murias)++ | TODO:
16:09 dalek nqp/js: Update the TODO.
16:09 dalek nqp/js: review: https://github.com/perl6/nqp/commit/8fffdb7345
16:09 pmurias Ven: Perl 6 abuses exceptions a lot, it uses them a lot for control flow
16:09 Ven pmurias: why did you name all these functions?
16:10 BenGoldberg joined #perl6
16:10 Ven pmurias: admittedly, the perl6 VM(s) can optimize for control flow exceptions
16:10 pmurias Ven: the ones with _?
16:10 Ven pmurias: yes, but I have my answer now
16:11 Ven I didn't read the commit properly
16:11 Ven pmurias: be aware, tho, Function.name is nonstandart, AFAIK
16:11 Ven I'm not even sure actually. I know it's not standardly-writeable, at least... (IE fails here)
16:14 pmurias IE doesn't seem to support it :(
16:14 pmurias we could define our own property
16:15 pmurias we will need to set up some in browser testing if we want to make sure we are compatible
16:17 dalek Inline-Perl5: fa2e492 | (Stefan Seifert)++ | / (2 files):
16:17 dalek Inline-Perl5: Check minimum Perl 5 version for less confusing errors
16:17 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/fa2e492138
16:18 nine_ Seems like Inline::Perl5 requires 5.18 at least. Older perls don't seem to like calls like 'v6::run("say q{Hello World}");'
16:19 pmurias nine_: there is an existing v6 module
16:19 ugexe how do you turn off a modifier in a group? like [:i 'http'] but *not* case sensitive
16:20 ugexe er not case insensitive :)
16:21 psch m: say "abCd" ~~ m:i/a b [:!i c] d/
16:21 camelia rakudo-moar 949b80: OUTPUT«False␤»
16:21 psch m: say "abCd" ~~ m:i/a b [ c] d/
16:21 camelia rakudo-moar 949b80: OUTPUT«「abCd」␤»
16:21 ugexe ah thanks psch
16:23 nine_ pmurias: you mean v6-perlito? Only the distribution is called v6. The package is v6-perlito. It's where I got the idea for v6-inline
16:23 pmurias ok
16:24 nine_ I guess perl's parser in older versions gets confused, leading to messages like "Bareword found where operator expected at (eval 5) line 6, near "v6::call""
16:28 Ven joined #perl6
16:31 Ven_ joined #perl6
16:34 pierrot_ joined #perl6
16:34 dalek nqp/js: 6aa5d8d | moritz++ | tools/lib/NQP/Configure.pm:
16:34 dalek nqp/js: Build a probe for node/nodejs. Not used yet
16:34 dalek nqp/js: review: https://github.com/perl6/nqp/commit/6aa5d8de41
16:37 Kristien joined #perl6
16:39 moritz pmurias: where is node actually called? I'm too dumb to find it in Makefile-JS.in
16:39 spider-mario joined #perl6
16:40 dalek nqp/js: 4ffd64f | moritz++ | Configure.pl:
16:40 dalek nqp/js: probe for node(js) in Configure.pl
16:40 dalek nqp/js: review: https://github.com/perl6/nqp/commit/4ffd64f3dc
16:45 pierrot joined #perl6
16:47 pmurias moritz: src/vm/js/HLL/Backend.nqp
16:47 alini joined #perl6
16:48 moritz pmurias: how do I get configure values in there?
16:48 dalek Inline-Perl6: a477ec6 | (Stefan Seifert)++ | / (3 files):
16:48 dalek Inline-Perl6: Lower perl requirement to 5.18
16:48 dalek Inline-Perl6: review: https://github.com/niner/Inline-Perl6/commit/a477ec655f
16:50 pmurias moritz: not really sure
16:50 Gerardo_ joined #perl6
16:50 literal from S02: "In addition, the double angles allow for comments beginning with #. These comments work exactly like ordinary comments in Perl code." <- Rakudo thinks otherwise and I can't find any spectests for this. Is it still correct?
16:52 FROGGS joined #perl6
16:52 nine_ Can I detect in my BUILd method whether an optional named parameter has been passed in even if it is undefined?
16:52 pmurias moritz: we could write a .nqp file at build time with the probed value
16:53 pmurias moritz: or maybe we could to the probing at runtime?
17:01 gaussblurinc_ joined #perl6
17:01 echowuhao joined #perl6
17:03 dalek Inline-Perl5: fbff133 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
17:03 dalek Inline-Perl5: Allow for using NULL as external $p5 for perls without multiplicity
17:03 dalek Inline-Perl5:
17:03 dalek Inline-Perl5: Inline::Perl6 on a perl without multiplicity passes a NULL pointer as
17:03 dalek Inline-Perl5: my_perl. Detect this correctly and avoid creating a new perl interpreter.
17:03 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/fbff13313e
17:03 dalek Inline-Perl6: 8305f7b | (Stefan Seifert)++ | Perl6.xs:
17:03 dalek Inline-Perl6: Support perl without multiplicity
17:03 dalek Inline-Perl6: review: https://github.com/niner/Inline-Perl6/commit/8305f7b63a
17:04 nine_ Done :)
17:04 nine_ pmurias: now supporting perl 5.18 and up with and without multiplicity in Inline::Perl6
17:08 pmurias nine_: great
17:15 zakharyas joined #perl6
17:23 sqirrel__ joined #perl6
17:26 FROGGS nine_++
17:26 naptastic joined #perl6
17:26 naptastic Is there a list of modules that will be included in the Perl 6 core distribution anywhere?
17:27 FROGGS naptastic: there is only one distribution of that kind atm and is called 'rakudo star'
17:27 TimToady we're adopting the linux multiple distribution model
17:27 yoleaux 09:30Z <moritz> TimToady: wouldn't it more consistent to return Str (the type object) for .base-repeating that exceeds the precision limit?
17:28 FROGGS naptastic: this is bundled there currently: https://github.com/rakudo/star/tree/master/modules
17:28 moritz nine_: you can add a *%args and test for %args{$paramtername}:exists
17:28 naptastic FROGGS, thanks! That's what I was looking for.
17:28 hoelzro TimToady: not that I disagree, but do you think that having a multiple distribution model could confuse people?
17:28 adu joined #perl6
17:28 hoelzro I remember being confused about that when I started with Linux
17:29 TimToady sure, but it scales better for success and for evolution of the set of modules
17:29 TimToady unlike with P5 where we had to decide in one spot what should be included
17:29 hoelzro I see
17:30 TimToady we're like the Linux kernel
17:30 TimToady except when we're doing Star, which is like, oh, slackware :)
17:30 hoelzro I see how it's better for people used to the ecosystem, but I feel it could impact adoption
17:30 telex joined #perl6
17:30 hoelzro good analogy =)
17:30 * masak .oO( except with a less abrasive BDFL )
17:31 naptastic :D :D :D
17:31 TimToady in some ways it's a lot less of a problem, since people don't have to load their linux from 20 floppies anymore
17:31 hoelzro I think the issue is in a year or two, people may ask "which Perl 6 distribution do I use?"
17:31 mst p5's quest to have core be as close as possible to "what you need to bootstrap a cpan client"
17:31 flussence it's fine if we're not perfect, as long as all the bits are in place to allow anyone else to come along and do a better job
17:31 TimToady but we're trying to avoid the "batteries included but some of them are dead batteries"
17:32 hoelzro then again, we kind of have that issue with implementations
17:32 mst is, at least in part, intended to enable perl5 distributions
17:32 hoelzro ok, that's a good thing to avoid =)
17:32 mst all things considered "batteries included but some of them are leaking acid everywhere" is a worse fate
17:32 TimToady mst: yes, we were basically aiming for the kernel vs distribution model from nearly the beginning
17:33 mst I mean, FFS, we had *Switch.pm* in core up until 5.13.1
17:33 TimToady for the same reason that P5 now is :)
17:33 * mst vomits
17:33 El_Che mst: "leave my leaking batteries alone! my old code is depending on them!" :)
17:33 naptastic I've been curious, because (mainly as a thought exercise) I've been thinking of how I would design my library
17:33 mst hoelzro: basically, having had the alternative problem, I'd much prefer to have the "which one do I use" problem
17:34 mst also, well, so long as apps/modules specify their deps in full
17:34 flussence hey, I *liked* Switch.pm (until I used it...)
17:34 mst it shouldn't matter that much
17:34 adu joined #perl6
17:35 hoelzro mst: looking at P5 in hindsight (esp. with your Switch example), it does make more sense
17:35 naptastic (I'm mostly thinking about serialization formats right now... did you know that INI format can be as expressive as JSON?)
17:35 hoelzro I guess the onus is ours to make the choice of which distribution to use clearer for new users
17:35 mst it can, sort of. I prefer JSONY, which ingy and I cooked up as a less-syntax-JSON
17:35 flussence naptastic: yes, but SGML can be as expressive as YAML :)
17:35 hoelzro El_Che: even worse is depending on battery acid dripping on the floor =)
17:36 pierrot_ joined #perl6
17:36 naptastic Any time someone complains about Perl--ANYTHING about Perl--I remind them that it could be worse. We could be using PHP.
17:36 * TimToady is not sure how much further we can drive a metaphor borrowed from a boa constrictor
17:36 naptastic What we have here, is a Swiss Army Chainsaw. What they have there is the training wheels without the bike.
17:37 flussence they have a decent template engine but lack a language behind it
17:37 skids Is there any consistent-semantics claim staked on e.g. $myclass.Int( args-to-coercion ) or is that solidly in each class's purview to decide?
17:37 nine_ moritz: do you think https://github.com/niner/Inline-Perl5/commit/fbff13313e is acceptable Perl 6?
17:37 arnsholt jnthn: At the 6model level, what's the state of our story for shaped arrays?
17:37 skids Like $obj.Int(Str) won't be expected to mean "coerce to a coercion type" right? (Can't think of a use to that)
17:38 hoelzro skids: I think that a .Type method can take any args/kwargs it wants, as long as it supports a zero-arity call
17:39 El_Che hoelzro: well, it depends how you define what a battery is. Sometimes batteries do provide stuff that should be core. In my case, I am thinking on Moo. It's probably the first thing I install.
17:39 TimToady coercions should generally not have args, to my mind; they should generally be 1-to-1, or they should be named something else
17:40 TimToady in particular, if there are multiple values coming in, you have a constructor, not a coercer
17:40 TimToady or a composer, if you sill
17:40 TimToady *will
17:42 skids Well, the particular use case I had in mind was something to give one-shot use to Sum akin to P5 $d->digest($addend,...).  I was thinking maybe $sum.buf8($addends,...) etc.
17:43 skids Allowing one-shots for various types.
17:43 pmurias what are the benefits of batteries included distro? It's a bit more convenient as you don't have to install some modules?
17:43 TimToady you don't have to pull in as many modules, yes
17:44 TimToady and each distribution will be tuned for a certain set of standard activities
17:44 TimToady so you have the linux(es) for video production, for office use, for (cough) touchscreens, etc
17:45 TimToady I wouldn't be surprised if there was a linux for model railroading :)
17:45 pmurias I hope we avoid having multiple cpans
17:46 Ven_ nine_: any reason for not using `//` instead of === Any?
17:46 TimToady it doesn't matter
17:46 Ven_ ah, I guess Nil is p5's undef?
17:46 El_Che TimToady: it sounds like you have world domination plans :)
17:46 TimToady (mutliple CPANs)
17:46 Ven_ OOh that's the base for the commit -_-. I'm so blind
17:46 moritz pmurias: "batteries included" might lead to less fragmentation
17:46 TimToady if official modules are immutably identified, it doesn't matter where they come from
17:46 moritz pmurias: just look at how many OO modules Perl 5 has that are in common use
17:47 mst that was nothing to do with batteries being included or not
17:47 TimToady Ven_: yes, Nil is (supposed to be) the most like undef, except when it's not
17:47 mst that was to do with there being lots of experimentation until one particular experiment (Moose) was good enough to spawn an ecosystem that became dominant
17:47 Ven_ That makes sense. p5 only has "one" undef type? (not Nil Mu Any)
17:47 TimToady batteries included would be like the linux kernel trying to also be a distribution
17:48 Ven_ well, I guess there's the common supertype that I can't name ATM
17:48 mst this was an improvement over us trying to build something we didn't know how to build yet
17:48 mst flailing randomly on CPAN for years was a distinct improvement over nothing
17:48 TimToady Nil is still too much like () in list context, but we'd like to fix that if possible
17:48 mst as a way of passing the time until we could steal carefully researched ideas from perl6 ;)
17:48 masak :)
17:48 flussence pmurias: right now we only have one "cpan" for p6, which is github. Some diversity would be a good thing there...
17:49 TimToady well, you should really steal the type system, if you want smartmatching to work right :)
17:49 pierrot joined #perl6
17:49 TimToady I think P5 could usefully steal the various metaoperators though
17:49 pmurias flussence: yes
17:50 masak TimToady: it already stole the assignment one :P
17:52 Ven_ masak: All =()= of the world, unite!
17:52 moritz .uni +ב
17:52 moritz ENOUNIBOT
17:52 flussence .u 1F365
17:52 yoleaux U+1F365 FISH CAKE WITH SWIRL DESIGN [So] (????)
17:53 masak o.O
17:53 moritz .u +ב
17:53 yoleaux U+002B PLUS SIGN [Sm] (+)
17:53 yoleaux U+05D1 HEBREW LETTER BET [Lo] (ב)
17:54 TimToady .u ユ
17:54 yoleaux U+FF95 HALFWIDTH KATAKANA LETTER YU [Lo] (ユ)
17:54 naptastic Stop it. None of this is rendering correctly for me.
17:55 TimToady this is all normal UTF-8
17:55 naptastic I know. That's what makes it so sad.
17:55 rindolf joined #perl6
17:55 Rounin Just wait until we get started on the hieroglyphs
17:55 TimToady what client/terminal are you on
17:55 Rounin I have a soft spot for the squirting penis one
17:55 masak naptastic: you should look into fixing that.
17:55 Rounin (Yes, it exists)
17:55 Rounin And the "guy fondling a microchip"
17:56 naptastic Hexchat on Gentoo. I probably don't have enough fonts installed.
17:56 Rounin Good evening rindolf!
17:56 rindolf Rounin: hi, evening.
17:56 masak easy enough to fix, then.
17:56 rindolf Rounin: what's new?
17:56 Rounin Haha
17:56 Rounin I'm Rounin! Evening's the time period ;)
17:56 TimToady does it make boxes or does it make mojibake?
17:56 TimToady if it's boxes, it's probably font
17:56 flussence naptastic: `emerge unifont` will fix that up
17:57 Rounin rindolf: Nothing I think... I'm trolling around the classified ads for new jobs, since I'm bored at work... But it's half-hearted I guess
17:57 TimToady if mojibake, it's probably a missing -utf8 sort of switch somewhere
17:57 Rounin rindolf: What's new in your life then?
17:58 rindolf Rounin: well, today our telephone (And ergo - ADSL Internet) connection was down for most of the day.
17:58 Rounin :(
17:58 masak rindolf, Rounin: glad to see you both here on #perl6. :D
17:58 naptastic flussence, thanks! As soon as Thunderbird and Firefox are finished, I'll do that. XD
17:58 masak it's Rakudo you're using, yes?
17:59 TimToady apparently hexchat doesn't do font substitution very well, so you get mojibake where you should get boxes
17:59 TimToady at least as of 2013
17:59 Rounin Thanks masak :)
17:59 mst TimToady: I want pluggable operators
18:00 mst TimToady: sadly my "find a horrible hacky way and implement that to embarass competent people into doing it properly" didn't work
18:00 Rounin TimToady: Hm... One would think it used standard GTK+ widgets... But is this on Windows?
18:00 Rounin Oh, no, Gentoo
18:00 Ven_ mst: can I see your implem. ?
18:00 mst (unlike for keywords ;)
18:00 P1RATEZ joined #perl6
18:00 mst Ven_: uh. I mean, I never worked out a way.
18:01 mst Ven_: Devel::Declare was the keyword one, Devel::CallParser the proper approach in perl5 core
18:01 Ven_ mst: ah, okay. what about keywords :)?
18:01 Ven_ ah, thanks..
18:01 TimToady well, user-defined operators are just gonna be a pain as soon as you get anywhere near the lexer in P5
18:02 _mg_ joined #perl6
18:02 TimToady there's a reason we picked an entirely different way to do that, with strict one-pass parsing...
18:03 mst of course. but "that's going to involve crawling horrors" has never stopped me trying before
18:04 TimToady have the appropriate amount of fun :P
18:04 naptastic hueheuhue
18:04 mst I think the only way to enjoy writing something like Devel::Declare is to have an inappropriate amount of fun
18:05 mst once you end up with a file called stolen_chunk_of_toke.c 'appropriate' becomes pretty unreachable ;)
18:05 TimToady s/amount/kind/  :)
18:05 rindolf masak: hi, thanks.
18:06 Rounin As long as you have The One Function, eval(), you can look forward to all sorts of fun
18:06 mst TimToady: :D
18:06 masak rindolf: are you on Rakudo?
18:06 masak Rounin: how about you?
18:07 rindolf masak: no, I'm not using Rakudo.
18:07 masak :/
18:07 Rounin masak: I'm not on any Perl compiler right now... I program in Java, and on weekends I read "A Dance with Dragons"
18:08 masak Rounin: sounds nice :)
18:08 Rounin There are worse things, for sure
18:11 TimToady maybe you should sneakily start using rakudo/jvm at work
18:12 TimToady and reimplement all you cohort's mile-long Java programs as one-liners
18:12 TimToady *cohorts'
18:12 Rounin It has occurred to me ;)
18:12 Rounin I'm already replacing 12-line methods with 1-2-line ones with regexes in them and such
18:12 FROGGS that does not help if you get paid by loc :/
18:13 masak FROGGS: quit.
18:13 Rounin while(tokenizer.hasNext()) stringBuffer.append(so-and-so) etc.
18:13 Rounin We have some very old-school code
18:13 FROGGS masak: I don't get paid that way luckily
18:13 FROGGS not sure if that is a thing in Germany anyway
18:13 Rounin I get paid for just sitting there, personally... But man, is that a boring thing to be getting paid for
18:13 masak FROGGS: I think I would just unroll loops all day.
18:14 FROGGS hehe
18:14 Rounin Come to think of it, perhaps that was how we got our code
18:14 Rounin It does look like every loop has been unrolled and every function inlined
18:14 Rounin And bugs left in 1 out of 200 instances
18:14 FROGGS :o(
18:15 Rounin It's fun refactoring it though :>
18:15 FROGGS I am an almost-one-man-army that also has to do the support... so, I fix my bugs quickly
18:15 Ven joined #perl6
18:16 Rounin Ah, the good old "development/operations/customer support" position
18:16 FROGGS right
18:17 raydiak moritz: should I be seeing syntax highlighting in the docs?
18:17 FROGGS but hey, it also can be a good thing... I do the design also, which is quite pleasing
18:17 pierrot joined #perl6
18:17 FROGGS I'd like to have code reviews are a discussion from time to time though
18:17 FROGGS or a*
18:19 Rounin We have caught some troublesome issues during code reviews... I've come to like them a lot
18:20 [ptc] raydiak: I don't think so yet; the server needs the right version of pygments installed for syntax highlighting to appear on docs.perl6.org
18:23 raydiak [ptc]: I see...thanks
18:23 pierrot joined #perl6
18:23 [ptc] raydiak: of course, if you have pygments version 2.0 installed on your machine, after you run htmlify, you should see syntax highlighted docs
18:25 gaussblurinc_ joined #perl6
18:27 raydiak [ptc]: hadn't tried myself yet, just saw the merge last night, so wanted to make sure someone with the power to fix it was alraedy aware that it's not working yet
18:29 pierrot joined #perl6
18:33 moritz raydiak, [ptc] the problem isn't pygments, it's Pod::To::HTML
18:33 moritz ... updated Pod::To::HTML
18:33 fhelmberger joined #perl6
18:34 moritz the next push should[tm] trigger a build with syntax hilighting
18:34 Mouq joined #perl6
18:35 echowuhao joined #perl6
18:35 pierrot joined #perl6
18:36 raydiak moritz: thanks!
18:38 dalek doc: 6f6938b | moritz++ | htmlify.p6:
18:38 dalek doc: Note requirements for pygmentize in comment
18:38 dalek doc: review: https://github.com/perl6/doc/commit/6f6938b80f
18:38 moritz my dummy commit to trigger a rebuild :-)
18:39 tgt joined #perl6
18:40 raydiak heh I figured it was just a clever way to get someone to contrib something :)
18:40 pierrot joined #perl6
18:46 pierrot joined #perl6
18:47 nine_ Ven: I have used // before, but I need to differ between Any (argument not passed) and Perl5Interpreter (NULL pointer passed).
18:48 moritz ok, build failed
18:48 moritz http://doc.perl6.org/build-log/build-2015-02-14T18:40+0000.log
18:48 moritz guess why it failed
18:48 moritz I ran it as user 'moritz' before
18:49 moritz so there was a /tmp/pod_to_pyg.pod there already
18:49 moritz and not writable for use doc.perl6.org
18:49 dolmen joined #perl6
18:50 psch m: class A { method BUILD(Mu :$named) { say $named.perl } }; A.new(); A.new(:named) # nine_
18:50 camelia rakudo-moar 949b80: OUTPUT«Mu␤Bool::True␤»
18:50 psch might help, not sure how exactly your case looks
18:50 psch i'd guess a null pointer would come as Nil, which would give you Mu
18:51 psch oh, nevermind, that doesn't help.  not passed is still the type
18:51 moritz nine_: use *%args, and check for %args<argument>:exists
18:53 dalek doc: 0edfb1a | moritz++ | htmlify.p6:
18:53 dalek doc: Try to make temp file safer
18:53 dalek doc: review: https://github.com/perl6/doc/commit/0edfb1a282
18:55 colomon joined #perl6
18:58 b2gills m: sub test ( Range:D $r ( :$infinate where 0, *% ) ){ say $r }; test ^5;
18:58 camelia rakudo-moar 949b80: OUTPUT«use of uninitialized value of type Any in numeric context  in sub test at /tmp/0c2iKN1gRZ:1␤␤0..^5␤»
18:59 diana_olhovik_ joined #perl6
19:01 brrt joined #perl6
19:03 skids joined #perl6
19:04 dalek Inline-Perl5: c93c77c | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
19:04 dalek Inline-Perl5: Make init with external $p5 less fragile.
19:04 dalek Inline-Perl5:
19:04 dalek Inline-Perl5: Thanks to moritz++ for the suggestion.
19:04 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/c93c77c6c5
19:04 TimToady m: say « 42 # a comment␤ 43 »
19:04 camelia rakudo-moar 949b80: OUTPUT«42#acomment43␤»
19:04 TimToady literal: looks like NYI
19:05 lizmat .botsnack
19:05 yoleaux :D
19:05 yoleaux 13:15Z <nine_> lizmat: path.IO.d // mkdir(path,|c) is prone to very hard to diagnose race conditions
19:05 yoleaux 15:05Z <ab5tract> lizmat: i'm curious what your opinion is re: a quanthash-y symmetric difference op: https://github.com/rakudo/rakudo/pull/362
19:05 yoleaux 15:06Z <ab5tract> lizmat: but even more curious is that infix:<(^+)> seems to break the parser in some really weird way. the operator is unusable when invoked from a file, or when used like (...).Bag (^+) (...).Bag from the repl
19:05 nine_ moritz: why don't you use File::Temp?
19:05 aborazmeh joined #perl6
19:05 aborazmeh joined #perl6
19:05 lizmat .tell nine_ do you have a suggestion on how to fix that race condition?
19:05 yoleaux lizmat: I'll pass your message to nine_.
19:06 brrt lizmat - happen to know a good spec for copy?
19:06 lizmat brrt: not sure what you mean
19:06 nine_ lizmat: the only fix I see is call mkdir() and check for EEXISTS
19:06 yoleaux 19:05Z <lizmat> nine_: do you have a suggestion on how to fix that race condition?
19:06 brrt is it ok to open-and-create the second file if opening-and-creating the first file doesn't work
19:06 brrt for example
19:06 lizmat nine_: that suffers from the same race condition
19:07 nine_ lizmat: how so?
19:07 lizmat nine_: just as likely as something can remove the dir just after the IO.d
19:07 lizmat it could well remove it after we just created it
19:08 lizmat with mkdir()
19:09 lizmat IO.d // mkdir()  has the same race as mkdir // IO.d
19:09 nine_ lizmat: true. Though mkdir with EEXISTS check should at least be faster
19:09 lizmat so it is a race condition that is even harder to fix ?  :-)
19:10 lizmat what I'm getting at, is that in a multi-process world, there are no guarantees unless we have a "stop the world" lock
19:10 lizmat and we don't have that as soon as we have to deal with the outside world
19:11 nine_ I'm trying to construct a use case that depends on correct information about "did we just create that directory even if it may have been deleted already?". Kinda hard
19:12 nine_ lizmat: oh, it may actually fail in the other direction: http://stackoverflow.com/questions/1586648/race-condition-creating-folder-in-python
19:12 brrt i guess what i'm saying is that S16 doesn't really specify the failure conditions of copy
19:16 lizmat brrt: well, I guess we could document that
19:16 lizmat on Moar, it is really determined by MVM_file_copy in src/io/fileops.c
19:16 brrt right, and i'm working on that as we speak
19:17 brrt because of the 2gb issue :-)
19:17 lizmat and it seems to open the destination file only when the source file can be opened for reading
19:17 brrt right, and when it can be stat
19:17 pierrot joined #perl6
19:17 lizmat brrt: wrt the 2GB issue: I have *not* been able to reproduce it
19:17 brrt i have
19:17 brrt it's libuv dependent
19:17 lizmat libuv version, or underlying OS ?
19:17 brrt but that probably differs between linux / os x
19:17 brrt well, yeah :-)
19:17 lizmat I would think it is the underlying OS's implementation of sendfile()
19:18 lizmat have you checked that on your OS ?
19:18 * brrt nods
19:18 brrt i have not, actually
19:18 brrt could do that
19:18 lizmat indeed..  :-)
19:18 brrt but....
19:18 brrt libuv doesn't really consider sendfile one of it's core assets
19:18 brrt so to speak
19:19 lizmat so uv_fs_sendfile doesn't just refer to the OS's sendfile ?
19:19 moritz nine_: I'm kinda against additional dependencies
19:20 moritz doc.perl6.org is now syntax hilighted
19:20 moritz [ptc]++
19:21 brrt i'm pretty sure that it does, unless you're using windows
19:23 [ptc] moritz: hammer!
19:23 nic77 joined #perl6
19:24 pierrot joined #perl6
19:28 _mg_ joined #perl6
19:30 lizmat .tell ab5tract re https://github.com/rakudo/rakudo/pull/362 , I think colomon / TimToady should shine their light on that
19:30 yoleaux lizmat: I'll pass your message to ab5tract.
19:31 lizmat .tell ab5tract I have merely implemented what colomon implemented in niecza
19:31 yoleaux lizmat: I'll pass your message to ab5tract.
19:31 tgt joined #perl6
19:33 masak ab5tract: other xor-like operators have a slightly different behavior when chained.
19:33 masak (such that order doesn't matter)
19:35 Kristien Can you customise MRO?
19:35 kjs_ joined #perl6
19:35 lizmat m: say Int.^mro
19:35 camelia rakudo-moar 949b80: OUTPUT«(Int) (Cool) (Any) (Mu)␤»
19:36 lizmat it's just a method in the MOP
19:36 lizmat afaik
19:36 japhb Kristien: with a little MOP work, just about any change in the object system is possible.
19:36 japhb Sometimes even easy, actually ....
19:37 Kristien cool
19:39 espadrine_ joined #perl6
19:40 kjs_ joined #perl6
19:43 dalek nqp/longer: 71e9494 | lizmat++ | docs/ops.markdown:
19:43 dalek nqp/longer: Document nqp::lstat
19:43 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/71e9494217
19:43 dalek nqp/longer: 2776313 | jnthn++ | tools/build/MOAR_REVISION:
19:43 dalek nqp/longer: Bump to latest MoarVM.
19:43 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/277631377d
19:43 dalek nqp/longer: f302b25 | FROGGS++ | / (2 files):
19:43 dalek nqp/longer: Merge branch 'master' of github.com:perl6/nqp into longer
19:43 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/f302b25e87
19:43 dalek nqp/longer: 8ae7b29 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
19:43 dalek nqp/longer: fix C_TYPE_* constants for nums which also start at -1
19:43 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/8ae7b291ae
19:44 dalek Heuristic branch merge: pushed 17 commits to rakudo/longer by FROGGS
19:44 dalek zavolaj/longer: 6dc894e | FROGGS++ | lib/NativeCall.pm6:
19:44 dalek zavolaj/longer: use new trait "is ctype"
19:44 dalek zavolaj/longer: review: https://github.com/jnthn/zavolaj/commit/6dc894ecee
19:45 pierrot joined #perl6
19:47 Possum joined #perl6
19:47 brrt what's more, sendfile is far from the only way to copy data between buffers
19:48 brrt on linux
19:49 lizmat true, but it is the only way that doesn't touch userland, no?
19:50 brrt we also have tee and splice
19:50 brrt splice is the really generic one
19:51 pierrot joined #perl6
19:51 brrt but yeah, sendfile is the correct one
19:51 * brrt afk for now
20:02 dalek roast: 93b3e92 | TimToady++ | S02-literals/quoting.t:
20:02 dalek roast: add << #comment >> tests suggested by literal++
20:02 dalek roast: review: https://github.com/perl6/roast/commit/93b3e925cc
20:04 * grondilu notices that the 'longer' branches is said to solve the 32bits issues with zavolaj
20:04 TimToady speaking of integer sizes, should NQP provide any support for bit rotations of various integers?
20:06 skids joined #perl6
20:08 FROGGS grondilu: it solves it, aye
20:08 grondilu TimToady: no quite related, but you once suggested something like 'use nativecall <somelibrary>;'.  That'd be insanely awesome.  Were you joking or is it doable in a reasonable time?
20:09 FROGGS I can't imagine how it is supposed to work... unless it also introduces a new keyword as a replacement for 'sub'
20:09 grondilu I mean, Perl 6 looking in the C library path, possibly looking for C library headers, just as a C compiler would do.
20:10 FROGGS ahh, no, we do not care about headers at this point
20:10 grondilu (or rather a C linker)
20:11 grondilu hum, I switched to the 'longer' branch in rakudo, MoarVM and nqp, and compilation of rakudo failed  :/
20:12 grondilu Makefile:397: recipe for target 'blib/Perl6/Metamodel.moarvm' failed
20:12 FROGGS grondilu: you pulled right now?
20:12 grondilu like a minute or two ago
20:13 FROGGS is there an error message?
20:13 grondilu yeah, see the Makefile: line above
20:13 grondilu but I've just pulled again and it seems I was not up-to-date for nqp
20:13 FROGGS yes, well, usually there is something else too
20:13 FROGGS ahh
20:14 * grondilu tries compiling again
20:14 FROGGS that explains it
20:14 FROGGS because it probably did not find the new constants
20:17 lizmat m: say << /home/$*USER >>.perl  # this feels wrong, expected ("/home/liz")
20:17 camelia rakudo-moar 949b80: OUTPUT«("/home/", "camelia")␤»
20:17 lizmat *or camelia  :-)
20:17 dalek nqp/longer: d4ed5bd | FROGGS++ | src/vm/ (2 files):
20:17 dalek nqp/longer: add C type constants for parrot/jvm
20:17 dalek nqp/longer: review: https://github.com/perl6/nqp/commit/d4ed5bdc47
20:17 lizmat but is this a rakudobug?
20:19 lizmat m: say << "/home/$*USER" >>.perl  # I guess we need the double quotes ??
20:19 camelia rakudo-moar 949b80: OUTPUT«"/home/camelia"␤»
20:19 * grondilu failed to compile again, suspects he did something wrong when pulling, so *
20:20 FROGGS grondilu: how do you compile? do you run configure? If so, then you have to pass: --gen-moar=longer --gen-nqp=longer
20:20 grondilu oh
20:20 FROGGS grondilu: but I expect that I merge the branches by monday or so
20:20 grondilu I did use the same configure options than with nom
20:21 grondilu do you?  I guess I can wait, then.
20:21 FROGGS yeah
20:21 * grondilu switches back to nom
20:23 dalek rakudo/newio: 159c38b | lizmat++ | src/core/Distro.pm:
20:23 dalek rakudo/newio: Refactor tmpdir using private first-rwx-dir
20:23 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/159c38bd05
20:23 dalek rakudo/newio: c92e49e | lizmat++ | src/core/Distro.pm:
20:23 dalek rakudo/newio: Implement Distro.homedir, preparing for $*HOME
20:23 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/c92e49e6da
20:23 dolmen joined #perl6
20:24 lizmat off to see a Jupiter Ascending &
20:24 * FROGGS .oO( Mars is bright tonight. )
20:34 fhelmberger joined #perl6
20:38 Guest16300 joined #perl6
20:42 pierrot_ joined #perl6
20:48 pierrot_ joined #perl6
20:48 asdf12z_ joined #perl6
20:58 gaussblurinc_ joined #perl6
20:59 pierrot_ joined #perl6
21:05 pierrot joined #perl6
21:09 Kristien yes
21:10 Kristien mars has been bright for a week or two now
21:10 Kristien and venus too
21:10 Kristien it's very nice
21:12 _mg_ joined #perl6
21:22 pierrot_ joined #perl6
21:53 adu joined #perl6
21:57 mvuets joined #perl6
22:05 FROGGS_ joined #perl6
22:05 Sqirrel_ joined #perl6
22:07 bjz joined #perl6
22:18 * masak generated a 12 MB SVG file tonight
22:19 masak for science!
22:20 masak it says something about Rakudo nowadays that it's (a) up to the task, and (b) not unreasonably slow.
22:21 masak Inkscape was brought to its knees, though :P
22:21 timotimo no surprises there, IMO
22:21 asdf12z_ joined #perl6
22:23 timotimo i really wonder how a graph-like diff of before/after for spesh graphs could look
22:28 flussence I tried getting graphviz to make a SVG diagram of my installed (OS) packages once. It couldn't even *create* the file without running out of memory, let alone trying to view it...
22:31 Alina-malina joined #perl6
22:34 timotimo yeah, i know that feeling
22:35 Spot__ joined #perl6
22:37 raydiak timotimo: would it work to plot all the paths for both before and after in the same flowchart and highlight the lines and boxes which aren't common to both? (red for before and green for after, or some such)
22:38 avuserow m: sub f($x=60 is rw) {$x++; say $x}; f
22:38 camelia rakudo-moar 949b80: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/KK124_JoHD�Missing block�at /tmp/KK124_JoHD:1�------> [32msub f($x=60 [33m�[31mis rw) {$x++; say $x}; f[0m�»
22:38 avuserow std: sub f($x=60 is rw) {$x++; say $x}; f
22:38 camelia std f9b7f55: OUTPUT«[31m===[0mSORRY![31m===[0m�Default expression must come last at /tmp/W6d6MA7gbZ line 1:�------> [32msub f($x=60 [33m�[31mis rw) {$x++; say $x}; f[0m�Unable to parse signature at /tmp/W6d6MA7gbZ line 1:�------> [32msub f[33m�[31m($x=60 is rw…»
22:39 avuserow m: sub f($x is rw = 60) {$x++; say $x}; f
22:39 camelia rakudo-moar 949b80: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/L9ZwKOd6I3�Cannot use 'is rw' on an optional parameter�at /tmp/L9ZwKOd6I3:1�------> �»
22:40 avuserow std: sub f($x is rw = 60) {$x++; say $x}; f
22:40 camelia std f9b7f55: OUTPUT«ok 00:00 140m␤»
22:40 avuserow rakudobug?
22:41 masak no, I don't think so.
22:41 masak or, hm.
22:42 masak I don't immediately see what the problem is with using 'is rw' on an optional parameter...
22:42 masak sometimes it doesn't bind with the outside, but that's not a show-stopper.
22:42 masak avuserow: please submit it and we can have a discussion of why it should or should not be possible ;)
22:43 avuserow okay. so the first one is a LTA error IMO, should I submit that separately?
22:45 pmurias joined #perl6
22:45 dalek nqp/js: dd4e123 | (Pawel Murias)++ | TODO:
22:45 dalek nqp/js: add a callercode portability to IE TODO item
22:45 dalek nqp/js: review: https://github.com/perl6/nqp/commit/dd4e1233dd
22:45 dalek nqp/js: d2e9220 | (Pawel Murias)++ | / (3 files):
22:45 dalek nqp/js: Make nqp::isinvokable respect nqp::setinvokespec.
22:45 dalek nqp/js: review: https://github.com/perl6/nqp/commit/d2e9220a59
22:50 echowuhao joined #perl6
22:51 clkao joined #perl6
22:51 avuserow oh, masak. Found this in S06: Since this option forces an argument to be required, it cannot coexist with the ? mark to make an argument optional. (It may, however, be used with = indicating a default, but only if the default expression represents something that is nameable at compile time and that can bind as an lvalue, such as CALLER::<$/> or OUTER::<$_>.)
22:51 synopsebot Link: http://design.perl6.org/S06.html#Since_this_option_forces_an_argument_to_be_required
22:54 jack_rabbit joined #perl6
22:55 avuserow I'll be back later to file this bug once I get an idea of what that means.
22:55 * avuserow away &
22:56 masak I don't understand why S06 requires that.
22:57 masak it seems to me $x could *either* bind to a passed argument (in which case there's no problem) *or* just be its own detached locally defined variable assigned with the provided default (in which case we're also fine).
22:57 masak I suspect I'm missing something here :)
22:59 pmurias masak: provided default, without a = no default is provided
23:01 pmurias masak: by a detached locally defined variable you suggest that we should create a temporary variable that will be discarded after the sub finishes?
23:02 masak right.
23:06 dj_goku joined #perl6
23:06 dj_goku joined #perl6
23:06 pmurias I think that's more likely to cause a weird bug than be useful
23:06 masak I suspect that's the reason, yes.
23:06 masak but S06 doesn't say that, it just pretends it's impossible :)
23:07 pmurias it just bans that
23:07 masak right.
23:11 aborazmeh joined #perl6
23:11 aborazmeh joined #perl6
23:15 vendethiel joined #perl6
23:16 kjs_ joined #perl6
23:16 raydiak my vote is with masak++...I've also tried to do that quite intentionally in the past and ended up working around the spurrious-feeling limitation with something a little more awkward and/or slow
23:17 masak I'm not sure where I stand, actually.
23:17 masak I can't recall wanting 'is rw = $some-default'.
23:17 masak and I can't gauge properly if it would be helpful or just lead to weird bugs.
23:18 masak in some sense, it's "well, you asked for it" -- in another sense, it's "you probably shouldn't want that in the first place".
23:19 masak and now...
23:19 masak *drum roll*
23:19 masak lol! I blogged! http://strangelyconsistent.org/blog/youre-in-a-space-of-twisty-little-mazes-all-alike
23:19 Kristien I'm so puzzled.
23:19 masak (that took way too long -- sorry. everything takes a long time right now.)
23:21 ninjazach joined #perl6
23:22 dj_goku joined #perl6
23:23 ruoso on moarvm, does it make a difference for the optimizer and the jit if "for 1..10 -> int $x" instead of "for 1..10 -> $x"?
23:27 dj_goku joined #perl6
23:29 Mouq joined #perl6
23:31 timotimo masak: there's a loose ")" in there
23:32 masak thanks.
23:32 ruoso on moarvm, does it make a difference for the optimizer and the jit if "for 1..10 -> int $x" instead of "for 1..10 -> $x"?
23:32 ruoso ah... sorry  for the repost
23:33 ruoso wrong window for up-arrow-enter
23:33 masak timotimo: fixed, should be up shortly.
23:33 timotimo :)
23:34 masak (fun fact: different Markdown parsers handle parentheses inside of the link syntax differently!)
23:35 dalek rakudo/nom: 874caf6 | TimToady++ | src/core/ (2 files):
23:35 dalek rakudo/nom: implementation of polymod method to play with
23:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/874caf6f7c
23:36 TimToady > say 1000000.polymod(60,60,24)
23:36 TimToady 40 46 13 11
23:36 TimToady 11 days, 13 hours, 46 minutes, 40 seconds
23:37 ruoso Oh, now someone can implement somethign to make sense of imperial units :)
23:37 TimToady that's...not possible :P
23:38 timotimo masak: is that png file already optipng'd?
23:39 masak timotimo: I... don't know what that means.
23:39 timotimo did you run the huge png file through optipng or pngcrush to make it more efficient?
23:39 masak ...no.
23:39 timotimo may be worth a try :)
23:39 masak I just exported to png from Inkscape.
23:40 * masak tries
23:41 masak (apt-get++ for just giving me `optipng` when I ask for it. this is package management in the future, folks.)
23:42 pippo joined #perl6
23:42 pippo o/ #perl6
23:42 Mouq masak++ # blug
23:43 timotimo optipng -o7 is the maximum, IIRC
23:43 timotimo it may take quite a while to run, though
23:43 timotimo given the file is so big
23:44 masak timotimo: on default setting, the big file deflated by 13%
23:44 Mouq I imagine with the near-tiling of the file, even a little optimization is going to really trim the file
23:44 pippo One question. When we declare "my Int $a" do we declare that on RHS of an assignement we shall have Int or we declare that the RHS will be (if possible) casted to Int?
23:44 masak pippo: the former.
23:45 Mouq pippo: The syntax for the latter is "my Int() $a" but still NYI, I believe
23:45 Mouq or "my Int(Any) $a" if you want to be clearer (take Any, cast to Int)
23:45 pippo masak: Mouq: thank you very much. Lokking for Int() to be implemented :-))
23:45 timotimo masak: next thing of interest may be: how does lossless webp fare. but this may not be your area of interest at all :)
23:46 timotimo so maybe i'll try that out myself
23:46 timotimo .o( and ... actually, i could encode this in daala and see what happens )
23:46 masak :)
23:47 Mouq m: sub getInt (Int() $a) { say $a.WHAT }; getInt "1234" # Works in parameters, just not variables
23:47 camelia rakudo-moar 949b80: OUTPUT«(Int)␤»
23:47 pippo Mouq: Thanks!
23:49 dalek rakudo/nom: 0e61279 | TimToady++ | src/core/ (2 files):
23:49 dalek rakudo/nom: polymod yields 1 more result than args unless inf
23:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e61279325
23:53 dalek rakudo/newio: 59ef5f0 | lizmat++ | src/core/Distro.pm:
23:53 dalek rakudo/newio: Make sure we check the default dir as well
23:53 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/59ef5f0a68
23:53 dalek rakudo/newio: 6c86e26 | lizmat++ | src/core/Process.pm:
23:53 dalek rakudo/newio: Lazily initialize $*HOME
23:53 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/6c86e26132
23:53 dalek rakudo/newio: 301cf15 | lizmat++ | src/core/io_operators.pm:
23:53 dalek rakudo/newio: Make tmpdir/homedir functional
23:53 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/301cf159f6
23:54 lizmat and on that note, good night, #perl6!
23:54 masak 'night, lizmat
23:55 Kristien After two hours I finally got my algorithm to work.
23:58 Kristien For calculating the optimal layout of a struct by reordering fields!
23:59 masak sounds like it could be exponential in the number of fields.
23:59 Kristien well it has two nested loops

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

Perl 6 | Reference Documentation | Rakudo