»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:04 laouji joined 00:08 laouji left 00:12 skids joined 00:30 mr-foobar left, Rounin left
TimToady well, I already implemented tests, but only for exchange on Pair, which, er, was the only one specced... 00:31
and I asked for use cases for anything else...
er...speculated... 00:33
00:33 spider-mario left
TimToady it is not, in particular, clear whether .exchange is the opposite of .pairs, or the opposite of .invert 00:35
if people expect the latter on a list of pairs, they'll be very surprised to get extra keys 00:36
in particular, I was thinking about it as the opposite of invert, not the opposite of pairs, or I'd've named it something different 00:37
00:44 skids left
dalek ast: c349a13 | TimToady++ | S02-types/pair.t:
unfudge .exchange tests
00:50
TimToady maybe .antipairs is what lizmat++ implemented 00:52
then .exchange would only work on a Pair or list of Pair 00:55
01:10 fernando_ joined 01:11 Hor|zon joined 01:14 jack_rabbit left 01:16 Hor|zon left 01:19 davido__ left 01:20 davido__ joined 01:25 dayangkun joined, dayangkun left 01:28 gfldex left 01:42 aborazmeh joined, davido__ left, aborazmeh left, aborazmeh joined 01:43 davido__ joined 01:52 skids joined 01:55 raiph joined 01:59 grondilu left 02:01 Hor|zon joined 02:06 Hor|zon left 02:12 echowuhao left
dalek ecs: db834e7 | TimToady++ | S32-setting-library/Containers.pod:
distinguish antipairs from antipair/invert
02:21
02:22 aborazmeh left 02:23 xinming left 02:29 grettir left 02:37 xinming joined 02:38 dolmen joined 02:41 aborazmeh joined, aborazmeh left, aborazmeh joined 02:43 skids left 02:46 ilbot3 left 02:48 ilbot3 joined 02:50 skids joined 02:54 chenryn joined, laouji joined 02:59 laouji left
dalek ecs: 1968457 | skids++ | S03-operators.pod:
Negative binary shifts are indeed tested in roast, so whirl them

useful on infix:«<+», so mention that. (The :signed and :unsigned adverbs are currently only in spec not in roast/implementation)
03:04
TimToady alternately, we should make that decision based on the left-hand type 03:05
skids Yes it makes no sense for Int. 03:08
But maybe better as a runtime error, rather than requiring tight typing? 03:09
TimToady actually, shifts are fine for Int 03:10
skids Yes, but :unsigned isn't 03:11
erm :!signed
dalek ok: 5a4285b | (Christopher Bottoms)++ | src/operators.pod:
Minor grammar fix
03:14
03:14 Houndcat left
TimToady with Int we just assume an infinite number of 0's or 1's to the left 03:15
m: say -1 +< 30
camelia rakudo-moar 3eb446: OUTPUT«-1073741824␤»
TimToady m: say 1 +< 30 03:16
camelia rakudo-moar 3eb446: OUTPUT«1073741824␤»
skids Right so :!signed would either be mute, or should be an error.
*moot
TimToady would like to avoid adverbs entirely if we can make it type based
likewise if we ever get rotate instructions 03:17
skids The point of the adverb is kind of to override signedness of the type, I thought.
TimToady see rosettacode.org/wiki/Bitwise_operations#Perl_6 03:18
03:18 Patterner joined
TimToady notice how we cheat on the unsigned rightshfit 03:18
and the rotates
that could easily be determined by the native size of the left though
well, called to dinner & 03:19
skids I think that's the intent of the language in specs -- the left hand type determines which adverb would be needed to break the rules. 03:20
03:22 Psyche^ left
skids FWIW if anyone ever wants to rewrite asm in perl6 they would probably also want a "with carry" option on shifts and rotates. 03:22
03:24 dolmen left 03:35 fernando_ left 03:36 noganex joined 03:37 dolmen joined 03:40 noganex_ left 03:51 Hor|zon joined
skids
.oO(Texas ⥀ ... ^< Texas ⥁ ... ^>)
03:51
03:54 raiph left, aborazmeh left 03:55 Hor|zon left
TimToady well, probably rol and ror are fine Texas versions 03:57
b2gills m: subset Test of Str where 0 < *.chars < 256; say '0' ~~ Test; say '1' ~~ Test; say 'a' ~~ Test 03:58
camelia rakudo-moar 3eb446: OUTPUT«False␤True␤Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Real at src/gen/m-CORE.setting:4685␤ in sub infix:<<> at src/gen/m-CORE.setting:5193␤ in block <unit> at /tmp/EdXKXiyxUm:1␤␤»
skids modernizes gist.github.com/skids/4998260 03:59
b2gills m: subset Test of Str where {0 < $_.chars < 256}; say '0' ~~ Test; say '1' ~~ Test; say 'a' ~~ Test
camelia rakudo-moar 3eb446: OUTPUT«True␤True␤True␤»
b2gills star-m: subset Test of Str where 0 < *.chars < 256; say '0' ~~ Test; say '1' ~~ Test; say 'a' ~~ Test 04:00
camelia star-m 2015.01: OUTPUT«False␤True␤Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Real at src/gen/m-CORE.setting:4236␤ in sub infix:<<> at src/gen/m-CORE.setting:4746␤ in block <unit> at /tmp/mxH8DNt_Ga:1␤␤»
TimToady looks kinda like a bug
m: say 0 < 'a'.chars < 256 04:01
camelia rakudo-moar 3eb446: OUTPUT«True␤»
TimToady actually, looks like it's ignoring the .chars
04:01 FROGGS_ joined
TimToady since they should all be True 04:02
oh, the real closure works
so it's just not handling * with chained ops
b2gills I think that it is seeing that the *.chars is in Real context and is trying to convert it too soon 04:03
TimToady m: say (0 < *.chars < 256).WHAT
camelia rakudo-moar 3eb446: OUTPUT«(WhateverCode)␤»
TimToady m: say (0 < *.chars < 256)('a') 04:04
camelia rakudo-moar 3eb446: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Real at src/gen/m-CORE.setting:4685␤ in sub infix:<<> at src/gen/m-CORE.setting:5193␤ in block <unit> at /tmp/aYgm5iSKst:1␤␤»
04:04 FROGGS left, Sqirrel left 04:05 leont left
b2gills ignore what I just wrote, it doesn't explain the `0` case 04:06
04:06 seaker joined, seaker left
dalek ast: 9c69eb1 | TimToady++ | S (2 files):
antipairs and inversions
04:08
kudo/nom: 06f9b89 | TimToady++ | src/core/ (12 files):
untangle antipairs vs invert
04:09
TimToady m: say (0 < (*.chars) < 256)('a') 04:10
camelia rakudo-moar 3eb446: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Real at src/gen/m-CORE.setting:4685␤ in sub infix:<<> at src/gen/m-CORE.setting:5193␤ in block <unit> at /tmp/0GxAW99xbc:1␤␤»
TimToady m: say (0 < *.chars)('a')
camelia rakudo-moar 3eb446: OUTPUT«True␤»
TimToady m: say (*.chars < 256)('a')
camelia rakudo-moar 3eb446: OUTPUT«True␤»
TimToady yeah, it's just the chaining fouling it up 04:11
04:16 jack_rabbit joined
TimToady something tells me it's probably even reported already 04:17
skids m: (0 < (*,).chars < 256)("a").say 04:18
camelia rakudo-moar 3eb446: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/_WL6_uLKcS:1␤␤»
TimToady that'll never work 04:19
04:19 ash_gti joined
TimToady a list with a Whatever in it is just a list with a Whatever in it 04:19
skids Yeah. Can't blame a guy for trying :-) 04:20
TimToady the autopriming is really only defined on unary and binary ops
b2gills rakudobrew really doesn't work right when called as a symbolic ref 04:24
skids RT#123144 maybe, hit internally? 04:25
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123144
04:27 echowuhao joined 04:37 chenryn left 04:38 ash_gti left 04:43 laouji joined
colomon \o/ 04:46
04:47 laouji left
colomon was o/ the 15 minutes on Raspberry Pi 2 note. backlogging is confusing. 04:50
04:50 echowuhao left
TimToady let's do math 04:50
04:50 echowuhao joined 05:00 jack_rabbit left 05:03 Sqirrel joined 05:04 chenryn joined 05:40 Hor|zon joined
raydiak m: sub foo (|args) { args[*] }; foo :bar # known? 05:40
camelia rakudo-moar 06f9b8: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏bar' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:15021␤ in method Int at src/gen/m-CORE.setting:6832␤ in sub postcircumfix:<[ ]> at src/gen/…»
05:44 Hor|zon left
raydiak wonders if replacing all the SELF.keys in src/core/array_slice.pm with ^SELF.elems or so might fix it 05:45
06:01 BenGoldberg_ left 06:02 dj_goku left 06:05 dj_goku joined
moritz \o 06:25
raydiak o/ 06:26
TimToady o—
TimToady is testing a fix for local overriding of quote keywords so that my m = 42; say m / 100; prints 0.42 06:27
m: say { a => [1,2] }.invert.perl 06:32
camelia rakudo-moar 06f9b8: OUTPUT«(1 => "a", 2 => "a").list␤»
TimToady m: say { a => [1,2] }.antipairs.perl 06:33
camelia rakudo-moar 06f9b8: OUTPUT«([1, 2] => "a",).list␤»
TimToady 'antipairs' being somewhat dehuffmanized on purpose
m: say <a b c>.invert 06:37
camelia rakudo-moar 06f9b8: OUTPUT«Memory allocation failed; could not allocate 57696 bytes␤»
TimToady yowser
m: say <a b c>.pairs.invert
camelia rakudo-moar 06f9b8: OUTPUT«Memory allocation failed; could not allocate 640 bytes␤» 06:38
TimToady hmm
m: say <a b c>.pairs
camelia rakudo-moar 06f9b8: OUTPUT«0 => a 1 => b 2 => c␤»
TimToady m: say <a b c>.pairs>>.antipair
camelia rakudo-moar 06f9b8: OUTPUT«a => 0 b => 1 c => 2␤»
TimToady well, something screwy on List.invert still 06:39
japhb Does Rakudo have any way to take a path containing .. and properly resolve it? For example, given ('../foo/bar' relative to '/a/b/c/d/e'), which absolutifies to '/a/b/c/d/e/../foo/bar', where any segments of that path could be links (symbolic or otherwise), allows you to do .parent.parent.parent and get a sane result?
TimToady probably
but I dunno what it is
06:40 laouji joined
TimToady m: say <a b c>.pairs>>.invert 06:40
camelia rakudo-moar 06f9b8: OUTPUT«a => 0 b => 1 c => 2␤»
moritz japhb: IO::Path.absolute or something like that 06:41
lizmat only implemented .exchange last night 06:42
off for some swimming& 06:43
japhb moritz: .absolute oddly gets you a Str of the relative base and relative path concatenated by the directory separator. So it gets you that thing I said "absolutifies to" above.
raydiak m: ".".IO.absolute.perl.say 06:52
camelia rakudo-moar 06f9b8: OUTPUT«"/home/camelia"␤»
raydiak m: ".".IO.abspath.perl.say
camelia rakudo-moar 06f9b8: OUTPUT«"/home/camelia"␤»
raydiak m: ".".IO.canonpath.perl.say 06:56
camelia rakudo-moar 06f9b8: OUTPUT«No such method 'canonpath' for invocant of type 'IO::Path'␤ in block <unit> at /tmp/ibumoZm_J8:1␤␤»
raydiak m: $*SPEC.canonpath(".").perl.say 06:57
camelia rakudo-moar 06f9b8: OUTPUT«"."␤»
raydiak m: ".".IO.resolve.perl.say
camelia rakudo-moar 06f9b8: OUTPUT«Failure.new(exception => X::NYI.new(feature => "IO::Path.resolve"))␤»
japhb Sigh, NYI 06:59
dalek kudo/nom: f786d89 | TimToady++ | src/Perl6/Grammar.nqp:
quoters now lexically overridable by terms/subs
07:00
ast: 6d85d5a | TimToady++ | S0 (2 files):
quoters now lexically overridable by terms/subs
07:01
07:03 perl6_newbee joined
dalek c: d12c47b | moritz++ | t/pod-convenience.t:
Fix a test
07:05
moritz [ptc]: github.com/perl6/doc/issues/56 07:09
dalek kudo/nom: 6f9016e | TimToady++ | src/core/ (2 files):
fix infinite regress on List.invert
07:13
TimToady m: my \s = 'sigma'; say s;
camelia rakudo-moar f786d8: OUTPUT«sigma␤»
moritz TimToady++
TimToady can override by using any option to get back to the qouter 07:14
*uo
m: my \m = 'millipede'; say m ~~ m:s/\w*/ 07:15
camelia rakudo-moar f786d8: OUTPUT«「millipede」␤»
TimToady m: my \m = 'millipede'; say m ~~ ms/\w*/
camelia rakudo-moar f786d8: OUTPUT«「millipede」␤»
TimToady m: my \m = 'millipede'; say m ~~ m/\w*/ 07:16
camelia rakudo-moar f786d8: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/y9RJoxQNZw:1␤------> 3my \m = 'millipede'; say m ~~ m/\w*/7⏏5<EOL>␤Regex not terminated.␤at /tmp/y9RJoxQNZw:1␤------> 3my \m = 'millipede'; say m ~~ m/\w*/7⏏5<EOL>␤Unable to parse r…»
07:16 gfldex joined
TimToady m: my \m = 'millipede'; say m ~~ m /\w*/ 07:16
camelia rakudo-moar f786d8: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/JK9sCZV9qB:1␤------> 3my \m = 'millipede'; say m ~~ m /\w*/7⏏5<EOL>␤Regex not terminated.␤at /tmp/JK9sCZV9qB:1␤------> 3my \m = 'millipede'; say m ~~ m /\w*/7⏏5<EOL>␤Unable to parse…»
moritz colomon: something's off with the smoker. smoke.perl6.org/project/Questhub says Questhub failed its test, but it doesn't even have a t/ directory
colomon: and in the second-to-last report, it succeeded, so it can't be general failure of counting absense of t/ as test failure 07:17
raydiak bugfix PR github.com/rakudo/rakudo/pull/375 07:18
moritz I'd like to leave that for lizmat++ to evaluate, since she wrote the code and is probably aware of performance tradeoffs 07:20
raydiak sounds good, I'd not be surprised if that is a slower-than-necessary way to write it 07:21
07:28 Hor|zon joined 07:33 Hor|zon left
moritz maybe we should have positional-keys and associative-keys methods 07:34
(and still have .keys, but [] could use .positional-keys) 07:35
raydiak kv, pairs, elems, etc too?
moritz hmmm 07:37
there's a bite more to it than I initially thought :/
raydiak yeah the overlap is actually pretty sizable 07:38
my patch relies on the fact that things which do both seem to delegate .elems to the array part 07:39
FROGGS[mobile] TimToady++ # overridable quoters 07:41
07:41 wicope joined, echowuhao left 07:42 rindolf joined
dalek ast: 08174d6 | TimToady++ | S02-types/pair.t:
test invert on list of pairs
07:46
07:48 diana_olhovik_ joined 07:49 maettu left
TimToady m: say <a b c>.pairs.invert 08:01
camelia rakudo-moar 6f9016: OUTPUT«a => 0 b => 1 c => 2␤»
TimToady m: say <a b c>.invert
camelia rakudo-moar 6f9016: OUTPUT«Cannot call 'invert'; none of these signatures match:␤ in block <unit> at /tmp/emLQR3RLBd:1␤␤»
TimToady m: say <a b c>.list.invert
camelia rakudo-moar 6f9016: OUTPUT«No such method 'value' for invocant of type 'Str'␤ in block at src/gen/m-CORE.setting:10239␤ in method reify at src/gen/m-CORE.setting:9438␤ in block at src/gen/m-CORE.setting:9270␤ in method reify at src/gen/m-CORE.setting:9244␤ in block …»
TimToady maybe that failure mode is a bit LTA 08:02
it *should* fail though
since invert is now only defined on lists of pairs and on hashes
08:04 tinyblak joined, prime- joined 08:05 prime left
dalek kudo-star-daily: e3ff6cd | coke++ | log/ (9 files):
today (automated commit)
08:10
08:13 diana_olhovik_ left, colomon left
timotimo moritz: would you like to walk me through how to update star-m: on camelia? or just do it yourself (or check what went wrong with the automatic update - if it exists) 08:15
08:15 darutoko joined 08:19 rindolf left
moritz timotimo: there is no automatic upgrade 08:21
timotimo: and camelia run on nine_++'s box, so you need to ask him for an account first 08:22
08:22 xfix joined 08:23 rindolf joined
raydiak I think we should have a few range constructor methods in Int or Cool, or even just a single coercion, such that 5.Range eqv ^5 08:26
08:26 colomon joined 08:29 Hor|zon joined
raydiak m: say 5.&prefix:<^> # this works, though it feels clumsy 08:29
camelia rakudo-moar 6f9016: OUTPUT«0..^5␤»
08:34 Hor|zon left
raydiak 5.Range.map looks and feels better in some ways than (^5).map...or maybe something more like .from-zero for ^5, .from-zero-to for 0..5, and s/zero/one/ variants for 0^.. 08:36
08:38 yeahnoob joined 08:42 gfldex left, dolmen left
timotimo oh, right, it's nine's box 08:43
i knew that, but i forgot about it briefly 08:44
moritz I guess I should just document it 08:46
dalek kudo/nom: 4f854b3 | raydiak++ | src/core/array_slice.pm:
Attempt to fix array slicing of Capture
08:47
kudo/nom: e35414b | lizmat++ | src/core/array_slice.pm:
Merge pull request #375 from raydiak/arrayhashslicefix

Fix array slicing of Capture, Match, etc. Brings about a ~5% performance gain on [*] slices
timotimo has a look at the whatever currying problem 08:50
raydiak thank you lizmat :)
lizmat raydiak: thank you!
timotimo thank you, raydiak and lizmat :)
raydiak timotimo: what I had before for the currying is on the assumingwhatevs branch of my rakudo fork if it's any use 08:51
timotimo oh 08:52
no, not that
i mean this:
m: say (0 < *.chars < 255)("a")
camelia rakudo-moar 6f9016: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Real at src/gen/m-CORE.setting:4683␤ in sub infix:<<> at src/gen/m-CORE.setting:5191␤ in block <unit> at /tmp/6dZ75MJkVg:1␤␤»
timotimo the .chars gets dropped somewhere in the inlining process
raydiak ah I see 08:53
08:53 geekosaur left
timotimo a couple of months ago i built some code that would generate a single code object from this rather than three nested ones that were sort-of recursively called 08:53
08:53 geekosaur joined
timotimo i'm a tiny bit annoyed that there was no test that caught this problem back then 08:54
but also apparently no code in the ecosystem stumbled upon this
masak good morning, #perl6
raydiak good morning masak 08:55
timotimo i think i have a clue what's happened, but not 100% sure
nine_ sjn: a little example of what actions can do: github.com/niner/Grammar-Highlighter 08:56
masak m: say prefix:<^> 5
08:56 camelia left
masak come back, camelia! :/ 08:56
anyway, locally I get `0..^5`
I like it.
it seems we already have a listop for this :) 08:57
raydiak I was looking for a way to get it as an easier-to-type postfix, b/c e.g. (^5).map feels awkward 08:58
if you have method(s), you don't have to type any circumfix at all
dalek kudo/nom: 35de750 | lizmat++ | src/core/Any.pm:
Fix copy-pasto
08:59
raydiak but 5.&prefix:<^> is no better
masak m: sub up($n) { ^$n }; say 5.&up
raydiak: that works, too.
timotimo raydiak: do you know about map ^5:; ?
m: say map ^5: *.say;
er
map ^5: *.say works, anyway. 09:00
i'm beginning to like indirect method call syntax
raydiak masak: yes that's not a terrible way to do it, but I probably won't bother if it's not in core
timotimo: neat, I hadn't thought of that
masak raydiak: that's my point. you can define something locally to make it easier for you. 09:02
timotimo nine_: some time ago i wrote this fun piece of code: github.com/timo/text_to_cell/blob/...r.h#L21-23 09:03
masak raydiak: why do people get so hung up on "if it's [not] in core"? I don't understand.
timotimo nine_: it's kind of sort of similar to the grammar highlighter
masak you have this wonderfully extensible language where, at the snap of your fingers, you can turn it into what you want.
and then people want to stuff their favorite DSL into core, or they refuse to play.
>:-(
09:06 rurban joined
raydiak mostly out of a desire to not write code which is difficult for people who are not me to follow. if I came up with an idea with a more tangible benefit, I'd likely use it, but for .&up, which is hard for me to type in the dark anyway which was my original problem? no, the ratio does not meet my own personal threshhold. sorry if that makes anyone frown. 09:07
masak sorry for the rant. it's not just you. 09:08
of course "it doesn't cross my personal threshold for ease/readability" *is* a respectable argument.
raydiak no biggie. I know it's a common thing, and I'm sure more than none of it is still the same stuck-in-the-past thinking which you're rightly opposed to 09:09
masak but I do recommend freely creating ops and functions in small scopes when you need them. it becomes addictive, and it changes the way you think about the code :)
09:09 _mg_ joined
masak like, if you really wanted a postfix:<upto>, there's nothing to stop you from defining one. 09:10
09:11 virtualsue joined
raydiak yeah the syntactic mutability is something I am really attracted to, though I sometimes make a mess quickly when I start down those paths, so I often go to the opposite extreme; still looking for a good balance, as with all things 09:12
09:16 yeahnoob left 09:17 telex left 09:18 telex joined 09:24 FROGGS_ left 09:28 Kristien joined
raydiak good night #perl6 09:33
timotimo is micro-optimizing whatever_curry, as it seems to be called quite often in stage parse
vendethiel TimToady: smalltalk doesn't have "leave", but return ("^") from a lambda returns from the outerlying function, that's what I was referring to 09:41
timotimo why must my stage parse measurements be so noisy? 09:43
09:45 _mg_ left
vendethiel psch: yes, that was *basically* the use-case 09:47
timotimo huh. my "optimizations" seem to have made it worse
09:48 molaf left, laouji left
Kristien I don't like functions that return from their definer. 09:51
timotimo .o( that's me in a nutshell: starts looking at correctness, tries performance tweaks instead ) 09:55
09:56 jack_rabbit joined
psch vendethiel: the «public String evalP6(…) { }» bit, right? not the bit about nesting p6 with interop i hope :) 09:57
also hi #perl6 \o 09:58
10:04 Rounin joined 10:05 diana_olhovik_ joined
masak hi psch 10:10
10:17 _mg_ joined 10:18 Hor|zon joined 10:20 smls joined
smls o/ 10:20
10:21 jack_rabbit left, _mg_ left 10:23 Hor|zon left
smls backlogs (had very little computer time these last 4 days due to health issue) 10:24
10:27 wicope left, spider-mario joined
smls "* vendethiel would really, really like to have :D as the default" -- same here, though I agree with TimToady that the :_ syntax is not great. 10:30
Especially since the concept of "whatever / I don't care / all of the above" is usually encoded using an asterisk in Perl 6, not an underscore.
Although :* won't win any beauty contests either.
masak I always thought it was a bit of a nod to p5 that the thing passed in can be either a type object or a concrete object. 10:31
smls Maybe call it :UD or :DU instead?
timotimo :DUI?
smls ;)
or :U:D to make it look like stacking adverbs 10:33
masak doesn't feel quite right, though. 10:34
timotimo i dislike how that collides with the final : for invocant
then you could have Dog:, Dog:D:, Dog:U:, Dog:D:U and Dog:D:U:
masak I think the consequences of making :D the default should be seriously thought through. regardless of what syntax ends up replacing :_ , if any. 10:35
smls if the invocant : requires a space after it, it might not be so bad
masak feels to me that making :D the default "hides" type objects quite a bit further back in the language.
smls: that feels weird, especially for invocant-only methods.
smls one disadvantage of making :D the default in function signatures, is that it doesn't make sense to also make it the default for my declarations 10:36
which, in the general case, are also signatures 10:37
so either it's inconsistent, or one of them is suboptimal
my ($x, $y); # a "type check failed" error here would be rather WAT 10:38
timotimo lacs
er
timotimo lacks permission to restart cameli 10:39
camelia
10:48 laouji joined 10:52 Maddingu1 left, Maddingue joined 10:53 laouji left
dalek c: ab78bc1 | paultcochrane++ | t/pod-htmlify.t:
Don't run pod-htmlify if URI::Escape isn't installed
10:56
smls Being able to say "my-method(:U: $foo)" insead of "my-method(Current::Class::Name:U: $foo)" is nice. moritz++ 10:57
timotimo did moritz already implement that, or only suggest? 10:58
smls he spec'd it
timotimo OK 10:59
10:59 Kristien left
smls timotimo: Once good Perl 6 syntax highlighting proliferates, the different kinds of : will hopefully be less confusing. 11:01
e.g. "Dog:U:" --> "<typespec>Dog:U</typespec><interpunctuation>:</interpunctuation>" 11:02
timotimo i disagree with requiring to have syntax highlighting to make code understandable
smls Well there are different levels of understanding 11:03
If newbies can recognize a construct and even use it without understanding the more general rule of how it is contructed from its parts, that's ok imo
vendethiel psch: the problem is -- "evalp6code" will be a real performance problem :) 11:04
psch vendethiel: to the extend that 'perl6-j' is a performance problem, yes 11:08
vendethiel *g* 11:09
no, to the extend that the jvm can't optimize it
(in the long run, that is)
psch why not?
vendethiel because it's re-eval'd everytime
dalek albot/timo-require-config-file-exists: 067570b | timo++ | evalbot.pl:
exit the program if the config file wasn't found

also writes the cwd to the console.
timotimo can has review, please? i don't has perl5 skills 11:10
psch i don't know if that's true. caching CompUnits (e.g. CORE.setting) might be possible?
timotimo: curlies don't interpolate in qq in p5, afair 11:11
11:12 chenryn left
timotimo OK. how do i do it instead? 11:12
psch i'd do «"...not found in " . getcwd();»
although those parens might be superstitious 11:13
smls "wasn't found in @{[ getcwd ]}." would also work, though it's a hack. 11:14
jnthn afternoon, #perl6 11:15
timotimo test test
psch o/ jnthn
dalek albot/timo-require-config-file-exists: 56af077 | timo++ | evalbot.pl:
qq doesn't interpolate curlies in perl5 by default

  psch++
11:16
timotimo looks mergable? 11:18
11:19 Hor|zon joined 11:21 tinyblak left 11:22 tinyblak joined 11:23 Hor|zon left 11:24 tinyblak left 11:25 tinyblak joined
[ptc] is there a "panda uninstall [package-name]"? 11:26
11:27 virtualsue left
dalek c: b0c06de | timotimo++ | t/pod-htmlify.t:
simplify URI::Escape requirement in pod-htmlify.t
11:27
timotimo there is not
[ptc] pity 11:28
is there a simple way to uninstall a package?
timotimo only rm'ing the files in the install directory 11:29
[ptc] ok. been there, done that. However wondered if I was missing something 11:30
timotimo Mouq: are you attentive? 11:31
jnthn TimToady++ # fixing the s and m term thing 11:32
jnthn is gonna have to update the native-ref branch with nom before his next test run, after all these patches :) 11:33
But first, get the JVM porting done... :)
itz is native-ref to be used for NSA? 11:35
timotimo itz: indeed
Mouq: you're wrapping $past with &HYPERWHATEVER near the bottom of whatever_curry after the annotations have been set that are used for inlining curries into each other; do you know if that has negative effects? 11:36
itz [ptc]: I was wondering whether panda should record installed files with SHA256 sums maybe in a JSON structure
jnthn itz: Yeah, it's one of the main building blocks I needed for native arrays, but it also takes care of many language usability issues with native types 11:37
Like the infamous "wtf I can't $native-int++"
timotimo yes! 11:38
psch coercing to string here github.com/rakudo/rakudo/blob/nom/....nqp#L6733 fixes this todo github.com/perl6/roast/blob/master...ders.t#L66
timotimo and "cannot use 'is rw' on a native attribute"
11:38 tinyblak left
psch i'm unsure if moar is doing the right thing (i.e. not getting hung up on Mu vs Any) or jvm (i.e. getting hung up on *) 11:38
11:38 tinyblak joined
psch 'cause $*IN_DECL, which is what gets annotated into .ann('IN_DECL') on nqp level should be Mu on both backends, right? 11:39
(coercing to string seems a bit like fixing the symptoinstead of the system 11:40
s/oin/om in/
smls jnthn: If @a is a compact array of native int's, what will @a[0] return? Some kind of Proxy container? 11:43
timotimo a native reference to the int in the array 11:44
it is "a kind of container", but not really
smls Is that specunspecified on a language level and users are told to think of @[0] = 4 as magic syntax and not introspect it?
jnthn Well, it is a container in the same sense Scalar is
itz m: my int $i=2; $i++
jnthn Just doing a rather different thing when you store into it
timotimo itz: camelia needs a restart right now, nine isn't at the computer to do it right now, though 11:45
jnthn The key thing is that for common cases, the compiler can elide a lot of the reference takes.
itz ah
11:45 Kristien joined
jnthn And Moar will be able to eliminate a bunch more, especially in combination with inlining. 11:45
11:46 lizmat left
jnthn smls: Well, you can expect some kind of "first class" l-value thing 11:46
smls ok
jnthn smls: But the spec doesn't nail down details beyond that.
smls Currently @a[$i] already returns a proxy for out-of-bounds elements, right?
to make autovivification work
jnthn Yes 11:47
> my int $a = 42; my $b := $a; $b++; say $a;
43
That's one example of the "first class" nature of the refs
smls nice 11:48
timotimo that's supposed to work for compact arrays, too, right?
jnthn Not quite sure how horribly that will fall out of the optimizer, but in combination with lowering to locals and the stuff spesh does, the answer may well be "just fine"
timotimo: Yeah, and already does in native-ref if you count Buf as a kind of native array 11:49
timotimo neato!
jnthn > my $b = Buf.new(1, 2, 3); my $x := $b[1]; $x++; say $b;
Buf:0x<01 03 03>
colomon moritz: I think the problem is emmentaler / panda cannot tell the difference between a module failing tests and one of its dependencies failing tests. Questhub depends on HTTP::UserAgent, which also failed... 11:50
vendethiel nine_++ # highlighter 11:54
timotimo vendethiel: take a screenshot please!
vendethiel doesn't have one :P
timotimo OK 11:55
i'd like a parallel version of that that outputs pretty html 11:57
11:58 virtualsue joined
timotimo jnthn: can we have a way to throw out blocks that have been added into the $*W at some point? 11:59
i'm a bit too distracted to figure the whatever currying stuff out right now 12:02
12:03 _mg_ joined
jnthn timotimo: Umm...at some point maybe 12:03
timotimo: Do we need to do it often? 12:04
timotimo i should measure before i make more "demands"
whatever_curry "inlining" creates many, many throw-away blocks
well, one for each operator that's involved
jnthn Ah, I see 12:05
dalek p/native-ref: ceb047a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files):
HLL entries for native ref types.
12:06
12:17 virtualsue left 12:21 spider-mario left 12:25 leont joined 12:26 Kristien left 12:33 Kristien joined 12:37 grondilu joined 12:38 laouji joined 12:42 laouji left 12:43 kjs_ joined 12:46 laouji joined 12:48 vendethiel left
moritz star-m: say "version?" 12:54
ENOCAMELIA
12:55 tinyblak left 12:56 tinyblak joined
timotimo moritz: do you have permission to systemctl restart [email@hidden.address] ? 12:59
moritz timotimo yes, but it doesn't help :( 13:00
timotimo oh?
moritz missing module, it seems
timotimo did you see the log?