Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-28

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:04 laouji joined #perl6
00:12 skids joined #perl6
00:31 TimToady well, I already implemented tests, but only for exchange on Pair, which, er, was the only one specced...
00:31 TimToady and I asked for use cases for anything else...
00:33 TimToady er...speculated...
00:35 TimToady it is not, in particular, clear whether .exchange is the opposite of .pairs, or the opposite of .invert
00:36 TimToady if people expect the latter on a list of pairs, they'll be very surprised to get extra keys
00:37 TimToady 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:50 dalek roast: c349a13 | TimToady++ | S02-types/pair.t:
00:50 dalek roast: unfudge .exchange tests
00:50 dalek roast: review: https://github.com/perl6/roast/commit/c349a13fcc
00:52 TimToady maybe .antipairs is what lizmat++ implemented
00:55 TimToady then .exchange would only work on a Pair or list of Pair
01:10 fernando_ joined #perl6
01:11 Hor|zon joined #perl6
01:20 davido__ joined #perl6
01:25 dayangkun joined #perl6
01:42 aborazmeh joined #perl6
01:42 aborazmeh joined #perl6
01:43 davido__ joined #perl6
01:52 skids joined #perl6
01:55 raiph joined #perl6
02:01 Hor|zon joined #perl6
02:21 dalek specs: db834e7 | TimToady++ | S32-setting-library/Containers.pod:
02:21 dalek specs: distinguish antipairs from antipair/invert
02:21 dalek specs: review: https://github.com/perl6/specs/commit/db834e7325
02:37 xinming joined #perl6
02:38 dolmen joined #perl6
02:41 aborazmeh joined #perl6
02:41 aborazmeh joined #perl6
02:48 ilbot3 joined #perl6
02:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
02:50 skids joined #perl6
02:54 chenryn joined #perl6
02:54 laouji joined #perl6
03:04 dalek specs: 1968457 | skids++ | S03-operators.pod:
03:04 dalek specs: Negative binary shifts are indeed tested in roast, so whirl them
03:04 dalek specs: into specs.  This implies that :signed and :unsigned will be
03:04 dalek specs: useful on infix:«<+», so mention that.  (The :signed and :unsigned
03:04 dalek specs: adverbs are currently only in spec not in roast/implementation)
03:04 dalek specs: review: https://github.com/perl6/specs/commit/1968457205
03:05 TimToady alternately, we should make that decision based on the left-hand type
03:08 skids Yes it makes no sense for Int.
03:09 skids But maybe better as a runtime error, rather than requiring tight typing?
03:10 TimToady actually, shifts are fine for Int
03:11 skids Yes, but :unsigned isn't
03:11 skids erm :!signed
03:14 dalek book: 5a4285b | (Christopher Bottoms)++ | src/operators.pod:
03:14 dalek book: Minor grammar fix
03:14 dalek book: review: https://github.com/perl6/book/commit/5a4285b1e6
03:15 TimToady with Int we just assume an infinite number of 0's or 1's to the left
03:15 TimToady m: say -1 +< 30
03:15 camelia rakudo-moar 3eb446: OUTPUT«-1073741824␤»
03:16 TimToady m: say 1 +< 30
03:16 camelia rakudo-moar 3eb446: OUTPUT«1073741824␤»
03:16 skids Right so :!signed would either be mute, or should be an error.
03:16 skids *moot
03:16 TimToady would like to avoid adverbs entirely if we can make it type based
03:17 TimToady 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.
03:18 TimToady see http://rosettacode.org/wiki​/Bitwise_operations#Perl_6
03:18 Patterner joined #perl6
03:18 TimToady notice how we cheat on the unsigned rightshfit
03:18 TimToady and the rotates
03:18 TimToady that could easily be determined by the native size of the left though
03:19 TimToady well, called to dinner &
03:20 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:22 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:36 noganex joined #perl6
03:37 dolmen joined #perl6
03:51 Hor|zon joined #perl6
03:51 skids .oO(Texas ⥀ ... ^<   Texas ⥁ ... ^>)
03:57 TimToady well, probably rol and ror are fine Texas versions
03:58 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␤␤»
03:59 * skids modernizes https://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
03:59 camelia rakudo-moar 3eb446: OUTPUT«True␤True␤True␤»
04:00 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␤␤»
04:00 TimToady looks kinda like a bug
04:00 TimToady m: say 0 < 'a'.chars < 256
04:00 camelia rakudo-moar 3eb446: OUTPUT«True␤»
04:01 TimToady actually, looks like it's ignoring the .chars
04:01 FROGGS_ joined #perl6
04:02 TimToady since they should all be True
04:02 TimToady oh, the real closure works
04:02 TimToady so it's just not handling * with chained ops
04:02 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
04:03 camelia rakudo-moar 3eb446: OUTPUT«(WhateverCode)␤»
04:04 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:06 b2gills ignore what I just wrote, it doesn't explain the `0` case
04:06 seaker joined #perl6
04:08 dalek roast: 9c69eb1 | TimToady++ | S (2 files):
04:08 dalek roast: antipairs and inversions
04:08 dalek roast: review: https://github.com/perl6/roast/commit/9c69eb104d
04:09 dalek rakudo/nom: 06f9b89 | TimToady++ | src/core/ (12 files):
04:09 dalek rakudo/nom: untangle antipairs vs invert
04:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/06f9b89bfa
04:10 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␤␤»
04:10 TimToady m: say (0 < *.chars)('a')
04:10 camelia rakudo-moar 3eb446: OUTPUT«True␤»
04:10 TimToady m: say (*.chars < 256)('a')
04:10 camelia rakudo-moar 3eb446: OUTPUT«True␤»
04:11 TimToady yeah, it's just the chaining fouling it up
04:16 jack_rabbit joined #perl6
04:17 TimToady something tells me it's probably even reported already
04:18 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␤␤»
04:19 TimToady that'll never work
04:19 ash_gti joined #perl6
04:19 TimToady a list with a Whatever in it is just a list with a Whatever in it
04:20 skids Yeah.  Can't blame a guy for trying :-)
04:20 TimToady the autopriming is really only defined on unary and binary ops
04:24 b2gills rakudobrew really doesn't work right when called as a symbolic ref
04:25 skids RT#123144 maybe, hit internally?
04:25 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123144
04:27 echowuhao joined #perl6
04:43 laouji joined #perl6
04:46 colomon \o/
04:50 * colomon was o/ the 15 minutes on Raspberry Pi 2 note.  backlogging is confusing.
04:50 TimToady let's do math
04:50 echowuhao joined #perl6
05:03 Sqirrel joined #perl6
05:04 chenryn joined #perl6
05:40 Hor|zon joined #perl6
05:40 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:45 * raydiak wonders if replacing all the SELF.keys in src/core/array_slice.pm with ^SELF.elems or so might fix it
06:05 dj_goku joined #perl6
06:25 moritz \o
06:26 raydiak o/
06:26 TimToady o—
06:27 * TimToady is testing a fix for local overriding of quote keywords so that my m = 42; say m / 100; prints 0.42
06:32 TimToady m: say { a => [1,2] }.invert.perl
06:32 camelia rakudo-moar 06f9b8: OUTPUT«(1 => "a", 2 => "a").list␤»
06:33 TimToady m: say { a => [1,2] }.antipairs.perl
06:33 camelia rakudo-moar 06f9b8: OUTPUT«([1, 2] => "a",).list␤»
06:33 TimToady 'antipairs' being somewhat dehuffmanized on purpose
06:37 TimToady m: say <a b c>.invert
06:37 camelia rakudo-moar 06f9b8: OUTPUT«Memory allocation failed; could not allocate 57696 bytes␤»
06:37 TimToady yowser
06:37 TimToady m: say <a b c>.pairs.invert
06:38 camelia rakudo-moar 06f9b8: OUTPUT«Memory allocation failed; could not allocate 640 bytes␤»
06:38 TimToady hmm
06:38 TimToady m: say <a b c>.pairs
06:38 camelia rakudo-moar 06f9b8: OUTPUT«0 => a 1 => b 2 => c␤»
06:38 TimToady m: say <a b c>.pairs>>.antipair
06:38 camelia rakudo-moar 06f9b8: OUTPUT«a => 0 b => 1 c => 2␤»
06:39 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?
06:39 TimToady probably
06:39 TimToady but I dunno what it is
06:40 laouji joined #perl6
06:40 TimToady m: say <a b c>.pairs>>.invert
06:40 camelia rakudo-moar 06f9b8: OUTPUT«a => 0 b => 1 c => 2␤»
06:41 moritz japhb: IO::Path.absolute or something like that
06:42 * lizmat only implemented .exchange last night
06:43 lizmat 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.
06:52 raydiak m: ".".IO.absolute.perl.say
06:52 camelia rakudo-moar 06f9b8: OUTPUT«"/home/camelia"␤»
06:52 raydiak m: ".".IO.abspath.perl.say
06:52 camelia rakudo-moar 06f9b8: OUTPUT«"/home/camelia"␤»
06:56 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␤␤»
06:57 raydiak m: $*SPEC.canonpath(".").perl.say
06:57 camelia rakudo-moar 06f9b8: OUTPUT«"."␤»
06:57 raydiak m: ".".IO.resolve.perl.say
06:57 camelia rakudo-moar 06f9b8: OUTPUT«Failure.new(exception => X::NYI.new(feature => "IO::Path.resolve"))␤»
06:59 japhb Sigh, NYI
07:00 dalek rakudo/nom: f786d89 | TimToady++ | src/Perl6/Grammar.nqp:
07:00 dalek rakudo/nom: quoters now lexically overridable by terms/subs
07:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f786d89d71
07:01 dalek roast: 6d85d5a | TimToady++ | S0 (2 files):
07:01 dalek roast: quoters now lexically overridable by terms/subs
07:01 dalek roast: review: https://github.com/perl6/roast/commit/6d85d5af21
07:03 perl6_newbee joined #perl6
07:05 dalek doc: d12c47b | moritz++ | t/pod-convenience.t:
07:05 dalek doc: Fix a test
07:05 dalek doc: review: https://github.com/perl6/doc/commit/d12c47bd17
07:09 moritz [ptc]: https://github.com/perl6/doc/issues/56
07:13 dalek rakudo/nom: 6f9016e | TimToady++ | src/core/ (2 files):
07:13 dalek rakudo/nom: fix infinite regress on List.invert
07:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f9016eb03
07:13 TimToady m: my \s = 'sigma'; say s;
07:13 camelia rakudo-moar f786d8: OUTPUT«sigma␤»
07:13 moritz TimToady++
07:14 TimToady can override by using any option to get back to the qouter
07:14 TimToady *uo
07:15 TimToady m: my \m = 'millipede'; say m ~~ m:s/\w*/
07:15 camelia rakudo-moar f786d8: OUTPUT«「millipede」␤»
07:15 TimToady m: my \m = 'millipede'; say m ~~ ms/\w*/
07:15 camelia rakudo-moar f786d8: OUTPUT«「millipede」␤»
07:16 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 #perl6
07:16 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…»
07:16 moritz colomon: something's off with the smoker. http://smoke.perl6.org/project/Questhub says Questhub failed its test, but it doesn't even have a t/ directory
07:17 moritz 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:18 raydiak bugfix PR https://github.com/rakudo/rakudo/pull/375
07:20 moritz I'd like to leave that for lizmat++ to evaluate, since she wrote the code and is probably aware of performance tradeoffs
07:21 raydiak sounds good, I'd not be surprised if that is a slower-than-necessary way to write it
07:28 Hor|zon joined #perl6
07:34 moritz maybe we should have positional-keys and associative-keys methods
07:35 moritz (and still have .keys, but [] could use .positional-keys)
07:35 raydiak kv, pairs, elems, etc too?
07:37 moritz hmmm
07:37 moritz there's a bite more to it than I initially thought :/
07:38 raydiak yeah the overlap is actually pretty sizable
07:39 raydiak my patch relies on the fact that things which do both seem to delegate .elems to the array part
07:41 FROGGS[mobile] TimToady++ # overridable quoters
07:41 wicope joined #perl6
07:42 rindolf joined #perl6
07:46 dalek roast: 08174d6 | TimToady++ | S02-types/pair.t:
07:46 dalek roast: test invert on list of pairs
07:46 dalek roast: review: https://github.com/perl6/roast/commit/08174d600e
07:48 diana_olhovik_ joined #perl6
08:01 TimToady m: say <a b c>.pairs.invert
08:01 camelia rakudo-moar 6f9016: OUTPUT«a => 0 b => 1 c => 2␤»
08:01 TimToady m: say <a b c>.invert
08:01 camelia rakudo-moar 6f9016: OUTPUT«Cannot call 'invert'; none of these signatures match:␤  in block <unit> at /tmp/emLQR3RLBd:1␤␤»
08:01 TimToady m: say <a b c>.list.invert
08:01 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 …»
08:02 TimToady maybe that failure mode is a bit LTA
08:02 TimToady it *should* fail though
08:02 TimToady since invert is now only defined on lists of pairs and on hashes
08:04 tinyblak joined #perl6
08:04 prime- joined #perl6
08:10 dalek rakudo-star-daily: e3ff6cd | coke++ | log/ (9 files):
08:10 dalek rakudo-star-daily: today (automated commit)
08:10 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/e3ff6cde5c
08:15 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 darutoko joined #perl6
08:21 moritz timotimo: there is no automatic upgrade
08:22 moritz timotimo: and camelia run on nine_++'s box, so you need to ask him for an account first
08:22 xfix joined #perl6
08:23 rindolf joined #perl6
08:26 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 colomon joined #perl6
08:29 Hor|zon joined #perl6
08:29 raydiak m: say 5.&prefix:<^> # this works, though it feels clumsy
08:29 camelia rakudo-moar 6f9016: OUTPUT«0..^5␤»
08:36 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:38 yeahnoob joined #perl6
08:43 timotimo oh, right, it's nine's box
08:44 timotimo i knew that, but i forgot about it briefly
08:46 moritz I guess I should just document it
08:47 dalek rakudo/nom: 4f854b3 | raydiak++ | src/core/array_slice.pm:
08:47 dalek rakudo/nom: Attempt to fix array slicing of Capture
08:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4f854b3b0f
08:47 dalek rakudo/nom: e35414b | lizmat++ | src/core/array_slice.pm:
08:47 dalek rakudo/nom: Merge pull request #375 from raydiak/arrayhashslicefix
08:47 dalek rakudo/nom:
08:47 dalek rakudo/nom: Fix array slicing of Capture, Match, etc.  Brings about a ~5% performance gain on [*] slices
08:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e35414bd70
08:50 * timotimo has a look at the whatever currying problem
08:50 raydiak thank you lizmat :)
08:50 lizmat raydiak: thank you!
08:50 timotimo thank you, raydiak and lizmat :)
08:51 raydiak timotimo: what I had before for the currying is on the assumingwhatevs branch of my rakudo fork if it's any use
08:52 timotimo oh
08:52 timotimo no, not that
08:52 timotimo i mean this:
08:52 timotimo m: say (0 < *.chars < 255)("a")
08:52 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␤␤»
08:52 timotimo the .chars gets dropped somewhere in the inlining process
08:53 raydiak ah I see
08:53 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 geekosaur joined #perl6
08:54 timotimo i'm a tiny bit annoyed that there was no test that caught this problem back then
08:54 timotimo but also apparently no code in the ecosystem stumbled upon this
08:54 masak good morning, #perl6
08:55 raydiak good morning masak
08:55 timotimo i think i have a clue what's happened, but not 100% sure
08:56 nine_ sjn: a little example of what actions can do: https://github.com/niner/Grammar-Highlighter
08:56 masak m: say prefix:<^> 5
08:56 masak come back, camelia! :/
08:56 masak anyway, locally I get `0..^5`
08:56 masak I like it.
08:57 masak it seems we already have a listop for this :)
08:58 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 raydiak if you have method(s), you don't have to type any circumfix at all
08:59 dalek rakudo/nom: 35de750 | lizmat++ | src/core/Any.pm:
08:59 dalek rakudo/nom: Fix copy-pasto
08:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/35de7505e0
08:59 raydiak but 5.&prefix:<^> is no better
08:59 masak m: sub up($n) { ^$n }; say 5.&up
08:59 masak raydiak: that works, too.
08:59 timotimo raydiak: do you know about map ^5:; ?
08:59 timotimo m: say map ^5: *.say;
08:59 timotimo er
09:00 timotimo map ^5: *.say works, anyway.
09:00 timotimo i'm beginning to like indirect method call syntax
09:00 raydiak masak: yes that's not a terrible way to do it, but I probably won't bother if it's not in core
09:00 raydiak timotimo: neat, I hadn't thought of that
09:02 masak raydiak: that's my point. you can define something locally to make it easier for you.
09:03 timotimo nine_: some time ago i wrote this fun piece of code: https://github.com/timo/text_to_cell/b​lob/master/ZasimCodeGenerator.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.
09:03 timotimo nine_: it's kind of sort of similar to the grammar highlighter
09:03 masak you have this wonderfully extensible language where, at the snap of your fingers, you can turn it into what you want.
09:03 masak and then people want to stuff their favorite DSL into core, or they refuse to play.
09:03 masak >:-(
09:06 rurban joined #perl6
09:07 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:08 masak sorry for the rant. it's not just you.
09:08 masak of course "it doesn't cross my personal threshold for ease/readability" *is* a respectable argument.
09:09 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 #perl6
09:10 masak like, if you really wanted a postfix:<upto>, there's nothing to stop you from defining one.
09:11 virtualsue joined #perl6
09:12 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:18 telex joined #perl6
09:28 Kristien joined #perl6
09:33 raydiak good night #perl6
09:33 * timotimo is micro-optimizing whatever_curry, as it seems to be called quite often in stage parse
09:41 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:43 timotimo why must my stage parse measurements be so noisy?
09:47 vendethiel psch: yes, that was *basically* the use-case
09:47 timotimo huh. my "optimizations" seem to have made it worse
09:51 Kristien I don't like functions that return from their definer.
09:55 timotimo .o( that's me in a nutshell: starts looking at correctness, tries performance tweaks instead )
09:56 jack_rabbit joined #perl6
09:57 psch vendethiel: the «public String evalP6(…) { }» bit, right?  not the bit about nesting p6 with interop i hope :)
09:58 psch also hi #perl6 \o
10:04 Rounin joined #perl6
10:05 diana_olhovik_ joined #perl6
10:10 masak hi psch
10:17 _mg_ joined #perl6
10:18 Hor|zon joined #perl6
10:20 smls joined #perl6
10:20 smls o/
10:24 * smls backlogs (had very little computer time these last 4 days due to health issue)
10:27 spider-mario joined #perl6
10:30 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 smls 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.
10:30 smls Although :* won't win any beauty contests either.
10:31 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?
10:31 timotimo :DUI?
10:31 smls ;)
10:33 smls or  :U:D  to make it look like stacking adverbs
10:34 masak doesn't feel quite right, though.
10:34 timotimo i dislike how that collides with the final : for invocant
10:34 timotimo then you could have Dog:, Dog:D:, Dog:U:, Dog:D:U and Dog:D:U:
10:35 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
10:35 masak feels to me that making :D the default "hides" type objects quite a bit further back in the language.
10:35 masak smls: that feels weird, especially for invocant-only methods.
10:36 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:37 smls which, in the general case, are also signatures
10:37 smls so either it's inconsistent, or one of them is suboptimal
10:38 smls my ($x, $y);  # a "type check failed" error here would be rather WAT
10:38 * timotimo lacs
10:38 timotimo er
10:39 * timotimo lacks permission to restart cameli
10:39 timotimo camelia
10:48 laouji joined #perl6
10:52 Maddingue joined #perl6
10:56 dalek doc: ab78bc1 | paultcochrane++ | t/pod-htmlify.t:
10:56 dalek doc: Don't run pod-htmlify if URI::Escape isn't installed
10:56 dalek doc: review: https://github.com/perl6/doc/commit/ab78bc1cfd
10:57 smls Being able to say "my-method(:U: $foo)" insead of "my-method(Current::Class::Name:U: $foo)" is nice. moritz++
10:58 timotimo did moritz already implement that, or only suggest?
10:58 smls he spec'd it
10:59 timotimo OK
11:01 smls timotimo: Once good Perl 6 syntax highlighting proliferates, the different kinds of : will hopefully be less confusing.
11:02 smls e.g. "Dog:U:"  -->  "<typespec>Dog:U</typespec><inter​punctuation>:</interpunctuation>"
11:02 timotimo i disagree with requiring to have syntax highlighting to make code understandable
11:03 smls Well there are different levels of understanding
11:03 smls 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
11:04 vendethiel psch: the problem is -- "evalp6code" will be a real performance problem :)
11:08 psch vendethiel: to the extend that 'perl6-j' is a performance problem, yes
11:09 vendethiel *g*
11:09 vendethiel no, to the extend that the jvm can't optimize it
11:09 vendethiel (in the long run, that is)
11:09 psch why not?
11:09 vendethiel because it's re-eval'd everytime
11:09 dalek evalbot/timo-require-config-file-exists: 067570b | timo++ | evalbot.pl:
11:09 dalek evalbot/timo-require-config-file-exists: exit the program if the config file wasn't found
11:09 dalek evalbot/timo-require-config-file-exists:
11:09 dalek evalbot/timo-require-config-file-exists: also writes the cwd to the console.
11:09 dalek evalbot/timo-require-config-file-exists: review: https://github.com/perl6/evalbot/commit/067570b436
11:10 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?
11:11 psch timotimo: curlies don't interpolate in qq in p5, afair
11:12 timotimo OK. how do i do it instead?
11:12 psch i'd do «"...not found in " . getcwd();»
11:13 psch although those parens might be superstitious
11:14 smls "wasn't found in @{[ getcwd ]}." would also work, though it's a hack.
11:15 jnthn afternoon, #perl6
11:15 timotimo test test
11:15 psch o/ jnthn
11:16 dalek evalbot/timo-require-config-file-exists: 56af077 | timo++ | evalbot.pl:
11:16 dalek evalbot/timo-require-config-file-exists: qq doesn't interpolate curlies in perl5 by default
11:16 dalek evalbot/timo-require-config-file-exists:
11:16 dalek evalbot/timo-require-config-file-exists: psch++
11:16 dalek evalbot/timo-require-config-file-exists: review: https://github.com/perl6/evalbot/commit/56af077850
11:18 timotimo looks mergable?
11:19 Hor|zon joined #perl6
11:22 tinyblak joined #perl6
11:25 tinyblak joined #perl6
11:26 [ptc] is there a "panda uninstall [package-name]"?
11:27 dalek doc: b0c06de | timotimo++ | t/pod-htmlify.t:
11:27 dalek doc: simplify URI::Escape requirement in pod-htmlify.t
11:27 dalek doc: review: https://github.com/perl6/doc/commit/b0c06def42
11:27 timotimo there is not
11:28 [ptc] pity
11:28 [ptc] is there a simple way to uninstall a package?
11:29 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:31 timotimo Mouq: are you attentive?
11:32 jnthn TimToady++ # fixing the s and m term thing
11:33 * jnthn is gonna have to update the native-ref branch with nom before his next test run, after all these patches :)
11:33 jnthn But first, get the JVM porting done... :)
11:35 itz is native-ref to be used for NSA?
11:35 timotimo itz: indeed
11:36 timotimo 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
11:37 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 jnthn Like the infamous "wtf I can't $native-int++"
11:38 timotimo yes!
11:38 psch coercing to string here https://github.com/rakudo/rakudo/bl​ob/nom/src/Perl6/Actions.nqp#L6733 fixes this todo https://github.com/perl6/roast/blob/master/​S06-signature/positional-placeholders.t#L66
11:38 timotimo and "cannot use 'is rw' on a native attribute"
11:38 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 tinyblak joined #perl6
11:39 psch 'cause $*IN_DECL, which is what gets annotated into .ann('IN_DECL') on nqp level should be Mu on both backends, right?
11:40 psch (coercing to string seems a bit like fixing the symptoinstead of the system
11:40 psch s/oin/om in/
11:43 smls jnthn: If @a is a compact array of native int's, what will @a[0] return? Some kind of Proxy container?
11:44 timotimo a native reference to the int in the array
11:44 timotimo it is "a kind of container", but not really
11:44 smls Is that specunspecified on a language level and users are told to think of  @[0] = 4 as magic syntax and not introspect it?
11:44 jnthn Well, it is a container in the same sense Scalar is
11:44 itz m: my int $i=2; $i++
11:44 jnthn Just doing a rather different thing when you store into it
11:44 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.
11:45 itz ah
11:45 Kristien joined #perl6
11:45 jnthn And Moar will be able to eliminate a bunch more, especially in combination with inlining.
11:46 jnthn smls: Well, you can expect some kind of "first class" l-value thing
11:46 smls ok
11:46 jnthn smls: But the spec doesn't nail down details beyond that.
11:46 smls Currently @a[$i] already returns a proxy for out-of-bounds elements, right?
11:46 smls to make autovivification work
11:47 jnthn Yes
11:47 jnthn > my int $a = 42; my $b := $a; $b++; say $a;
11:47 jnthn 43
11:47 jnthn That's one example of the "first class" nature of the refs
11:48 smls nice
11:48 timotimo that's supposed to work for compact arrays, too, right?
11:48 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"
11:49 jnthn timotimo: Yeah, and already does in native-ref if you count Buf as a kind of native array
11:49 timotimo neato!
11:49 jnthn > my $b = Buf.new(1, 2, 3); my $x := $b[1]; $x++; say $b;
11:49 jnthn Buf:0x<01 03 03>
11:50 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:54 vendethiel nine_++ # highlighter
11:54 timotimo vendethiel: take a screenshot please!
11:54 * vendethiel doesn't have one :P
11:55 timotimo OK
11:57 timotimo i'd like a parallel version of that that outputs pretty html
11:58 virtualsue joined #perl6
11:59 timotimo jnthn: can we have a way to throw out blocks that have been added into the $*W at some point?
12:02 timotimo i'm a bit too distracted to figure the whatever currying stuff out right now
12:03 _mg_ joined #perl6
12:03 jnthn timotimo: Umm...at some point maybe
12:04 jnthn timotimo: Do we need to do it often?
12:04 timotimo i should measure before i make more "demands"
12:04 timotimo whatever_curry "inlining" creates many, many throw-away blocks
12:04 timotimo well, one for each operator that's involved
12:05 jnthn Ah, I see
12:06 dalek nqp/native-ref: ceb047a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files):
12:06 dalek nqp/native-ref: HLL entries for native ref types.
12:06 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/ceb047aeab
12:25 leont joined #perl6
12:33 Kristien joined #perl6
12:37 grondilu joined #perl6
12:38 laouji joined #perl6
12:43 kjs_ joined #perl6
12:46 laouji joined #perl6
12:54 moritz star-m: say "version?"
12:54 moritz ENOCAMELIA
12:56 tinyblak joined #perl6
12:59 timotimo moritz: do you have permission to systemctl restart camelia@irc.freenode.net ?
13:00 moritz timotimo yes, but it doesn't help :(
13:00 timotimo oh?
13:00 moritz missing module, it seems
13:00 timotimo did you see the log?
13:00 timotimo yeah
13:00 dalek nqp/native-ref: 89d2119 | jnthn++ | src/vm/jvm/runtime/org/perl6/​nqp/sixmodel/reprs/NativeRef (5 files):
13:00 dalek nqp/native-ref: Fill out native lexical reference REPR bits.
13:00 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/89d2119775
13:00 dalek nqp/native-ref: de6e270 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
13:00 dalek nqp/native-ref: Native ref lexical ops need to receive the tc.
13:00 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/de6e270a62
13:00 dalek nqp/native-ref: 228f135 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
13:01 dalek nqp/native-ref: Fix native ref type HLL config thinko.
13:01 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/228f135ab2
13:01 moritz timotimo: installing stuff now..
13:01 timotimo thanks. and can you review my pull-request in perl6/evalbot?
13:01 timotimo it adds a early program abort if the specified config file doesn't exist
13:02 moritz https://github.com/perl6/evalbot/pulls is empty
13:02 moritz where can I find it?
13:02 timotimo moritz: how did you get permission to systemctl?
13:02 moritz timotimo: sudo
13:02 timotimo oh
13:02 timotimo i didn't make an actual pull request
13:02 timotimo https://github.com/perl6/evalbot/com​pare/timo-require-config-file-exists
13:03 moritz timotimo: +1
13:03 moritz timotimo: and +2 if you explicitly import getcwd from Cwd
13:04 timotimo oh
13:04 timotimo i can do that
13:04 camelia joined #perl6
13:04 dalek evalbot/timo-require-config-file-exists: 78eaa68 | timo++ | evalbot.pl:
13:04 dalek evalbot/timo-require-config-file-exists: explicitly pull in getcwd from Cwd
13:04 dalek evalbot/timo-require-config-file-exists: review: https://github.com/perl6/evalbot/commit/78eaa68cbe
13:04 timotimo there we go
13:04 moritz m: say 42
13:05 camelia rakudo-moar 35de75: OUTPUT«42␤»
13:05 moritz star-m: say 'version?'
13:05 camelia star-m 2015.02: OUTPUT«version?␤»
13:06 dalek evalbot: a9ae692 | moritz++ | README:
13:06 dalek evalbot: Document how to update the star build
13:06 dalek evalbot: review: https://github.com/perl6/evalbot/commit/a9ae69243e
13:07 timotimo moritz: if the run script for the evalbot would output (at least errors) to stdout/stderr, journalctl and "systemctl status" would display that helpfully when something goes wrong
13:07 timotimo though it seems like the evalbot will log everything executed?
13:08 Hor|zon joined #perl6
13:08 moritz timotimo: it usually does output errors to stderr
13:08 moritz (or to IRC, if the errors are with compiler invoked)
13:09 timotimo right, i only meant errors like "crashed due to out of memory"
13:09 timotimo or stuff like that
13:15 timotimo oh, when updating star i forgot to echo YYYY.MM > install/VERSION
13:16 tinyblak joined #perl6
13:19 dj_goku joined #perl6
13:24 spider-mario joined #perl6
13:24 timotimo fosdem videos still very sparsely uploaded; not a single main-track-languages or devroom-perl video appeared :(
13:27 dalek nqp/native-ref: 52f64dd | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
13:27 dalek nqp/native-ref: Implement lexical native ref taking ops.
13:27 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/52f64dd26d
13:31 dj_goku joined #perl6
13:31 dj_goku joined #perl6
13:43 raiph joined #perl6
13:48 espadrine joined #perl6
13:54 vendethiel joined #perl6
13:55 timotimo jnthn: whatever_curry gets called crazy often; maybe there'd be a way to prevent calling it very early?
13:56 * masak .oO( Breaking News: the Haskell community rages over the insensitive tone of the internal Rakudo routine `whatever_curry` )
13:57 tinyblak joined #perl6
13:57 timotimo m)
13:58 * masak .oO( in retaliation, they rename `foldr` to the incredibly immature and not at all well-thought-out `yeahRightWall` )
14:04 timotimo i'm not sure if that was a good joke or i'm just easily amused :)
14:05 masak :)
14:07 Kristien masak: does the Haskell community every not rage about everything not Haskell?
14:08 masak yes, but only inside a RageIO monad. so you'll never really notice from the outside.
14:08 timotimo i didn't know the haskell community rages a lot
14:08 masak raging is a side effect.
14:10 vendethiel there are 2 sides of the haskell community...
14:10 timotimo my sides!
14:10 vendethiel hence the #haskell and #nothaskell split,btw...
14:10 * vendethiel would love to toss names around, but won't :)
14:10 masak vendethiel: I did not know about that.
14:10 timotimo https://video.fosdem.org/2015/STATUS.txt - cool
14:11 masak vendethiel: what do they talk about in #nothaskell, I wonder?
14:11 colomon haskell, I imagine.  :)
14:11 vendethiel masak: being open ;-)
14:12 vendethiel masak: it's mostly the same, really, they're just more open about people. and don't treat you like a p*** of sh** because you don't know everything about CT
14:12 masak :/
14:12 * vendethiel has watched smalltalk videos yesterday
14:12 timotimo what's CT again?
14:12 vendethiel category theory
14:12 masak Category Theory.
14:12 timotimo ah
14:13 masak vendethiel: I will never understand why people choose to be mean/derogatory based on lack of knowledge.
14:13 vendethiel one of the people that's hated by the #nothaskell community is the scalaz guy, that also split the scalaz community
14:13 timotimo there was even an XKCD about that topic and that still didn't help!
14:13 masak timotimo: *rolls eyes* "what, you didn't even know about the xkcd strip about the topic?"
14:13 masak :P
14:14 timotimo :D
14:14 * vendethiel is really sad aobut this :(
14:15 vendethiel and the problem is that most people are "afraid" to call them out because they "paved the way". (I've been asked to leave #scalaz once because of that..)
14:15 timotimo but you're an angry frenchman, i can understand why people would ask you to leave places! :P
14:15 masak vendethiel: sometimes it seems to me that *transmitting knowledge*, teaching and learning really efficiently, is a still-uncracked challenge. and that whoever cracks it is going to be fairly influential going forards.
14:17 vendethiel right.
14:18 vendethiel timotimo: you know it ;-)
14:18 timotimo *hug*
14:18 * vendethiel has heard that for real, though...
14:18 vendethiel *hug*
14:19 masak *hug*
14:20 timotimo ugh
14:20 timotimo i kind of wish the whatever code inlining code could be simplified
14:20 timotimo i'm still splitting my attention between it and watching a zero-k tournament being cast, but ...
14:21 timotimo and looking at the code the whatevercode inliner generates ... holy crap that's ugly
14:22 masak you're not supposed to look directly at it :P
14:22 timotimo probably
14:23 tinyblak joined #perl6
14:24 tinyblak_ joined #perl6
14:25 tinyblak joined #perl6
14:25 tinyblak joined #perl6
14:30 FROGGS joined #perl6
14:34 aborazmeh joined #perl6
14:34 aborazmeh joined #perl6
14:36 FROGGS "This representation can not unbox another" :o(
14:40 colomon joined #perl6
14:44 b2gills m: say Int.Range; say 8.Range
14:44 camelia rakudo-moar 35de75: OUTPUT«-Inf..Inf␤Invocant requires a type object, but an object instance was passed␤  in method Range at src/gen/m-CORE.setting:5531␤  in block <unit> at /tmp/I0Vfs5Mkv5:1␤␤»
14:44 timotimo m: say Int.range
14:44 camelia rakudo-moar 35de75: OUTPUT«No such method 'range' for invocant of type 'Int'␤  in block <unit> at /tmp/Mw0J1Xbn8d:1␤␤»
14:44 timotimo m: say int8.range
14:44 camelia rakudo-moar 35de75: OUTPUT«No such method 'range' for invocant of type 'int8'␤  in block <unit> at /tmp/2soVLIS3SR:1␤␤»
14:44 timotimo m: say int8.Range
14:44 camelia rakudo-moar 35de75: OUTPUT«-128..127␤»
14:44 timotimo m: say uint8.Range
14:44 camelia rakudo-moar 35de75: OUTPUT«0..255␤»
14:45 masak m: say Str.Range
14:45 camelia rakudo-moar 35de75: OUTPUT«No such method 'Range' for invocant of type 'Str'␤  in block <unit> at /tmp/IC9SzQKqm3:1␤␤»
14:45 masak shouldn't that one also be -Inf..Inf ?
14:45 masak m: say Num.Range
14:45 camelia rakudo-moar 35de75: OUTPUT«No such method 'Range' for invocant of type 'Num'␤  in block <unit> at /tmp/WS62og84QG:1␤␤»
14:45 masak and that one?
14:45 masak m: say Real.Range
14:45 camelia rakudo-moar 35de75: OUTPUT«No such method 'Range' for invocant of type 'Real'␤  in block <unit> at /tmp/EzDNPPmyB6:1␤␤»
14:45 masak and probably that one, too?
14:45 masak m: say Rat.Range
14:45 camelia rakudo-moar 35de75: OUTPUT«No such method 'Range' for invocant of type 'Rat'␤  in block <unit> at /tmp/OhsQCuYc9h:1␤␤»
14:45 masak seems there are a couple of them missing :)
14:46 b2gills All of them are missing except Int
14:47 b2gills I tried `$_.?Range // ^$_` and it didn't work
14:47 Kristien joined #perl6
14:48 timotimo m: say Num.?NoSuchMethod
14:48 camelia rakudo-moar 35de75: OUTPUT«Nil␤»
14:48 timotimo m: my $_ = 1; say Str // $_.WHAT.say
14:48 camelia rakudo-moar 35de75: OUTPUT«Potential difficulties:␤    Redeclaration of symbol $_␤    at /tmp/qzYZFfyrtk:1␤    ------> 3my $_ 7⏏5= 1; say Str // $_.WHAT.say␤(Int)␤True␤»
14:49 timotimo m: my $_ = 1; say (Str // $_.WHAT.say)
14:49 camelia rakudo-moar 35de75: OUTPUT«Potential difficulties:␤    Redeclaration of symbol $_␤    at /tmp/QZUrvHhVCc:1␤    ------> 3my $_ 7⏏5= 1; say (Str // $_.WHAT.say)␤(Int)␤True␤»
14:49 timotimo ah
14:51 jnthn timotimo: Not sure we need to prevent calling it, more try to make sure it does the most common/cheap check first to quickly return.
14:52 timotimo right, i've looked into that
14:52 timotimo i put one of the checks earlier and it catches about 1/10 of cases
14:52 geekosaur hmmm. older perl 6 links go into the ether
14:52 timotimo but for the rest of the cases we still need to iterate over all arguments to check if they .returns WhateverCode
14:53 rmgk_ joined #perl6
14:53 geekosaur I have dev.perl.org/perl6/syn/ in my history which goes to feather.perl6.nl/syn/ which is 404. likewise the top level links on feather.perl6.nl
14:53 timotimo ah
14:54 Hor|zon joined #perl6
14:54 timotimo perl6.feather.nl seems *very* outdated
14:54 timotimo at least partially?
14:55 timotimo it still refers to pugs, for example
14:55 timotimo at least pl6anet.org is being linked to instead of the old planetsix
14:56 timotimo somehow every WhateverCode we compile still ends up with one lexical per argument
14:57 timotimo but there's also locals for lowered params and lowered lexes
14:57 * moritz doesn't know why feather still runs at all
14:57 jnthn timotimo: We have to keep the lexicals around too
14:57 timotimo oh
14:57 jnthn timotimo: We don't use them normally
14:57 timotimo but they aren't being used :)
14:57 timotimo OK, fair enough
14:57 moritz Juerd: services have been migrated away from feather, so if you want, you can take it down
14:58 timotimo so i won't energy into trying to remove them
14:58 jnthn timotimo: But if we get a bind failure, we fall back to the slow path binder, and it gets upset if they ain't there.
14:58 jnthn timotimo: We might be able to be smarter in the future on that.
14:58 timotimo understood. is thatsomething we'd want to fix at ... yeah
14:58 jnthn But it was the most expedient thing :)
14:58 jnthn (Yes, I did learn this the hard way. ;))
14:58 dj_goku joined #perl6
14:58 dj_goku joined #perl6
15:00 timotimo FWIW, CORE.setting.moarvm contains 1002 instances of "Execution of block eliminated by optimizer"
15:00 laouji joined #perl6
15:01 colomon …. huh?
15:02 timotimo colomon: is that huh for my last line?
15:03 colomon timotimo: yes
15:03 timotimo ah
15:03 timotimo i can explain
15:04 vendethiel "i can explain!"
15:05 Juerd moritz: Great, thanks!
15:05 timotimo except my internet connection has the hiccups again
15:05 timotimo ok, i'm back
15:06 timotimo so when the optimizer (which works with QAST nodes) inlines a block into another, the original block isn't needed any more
15:06 masak vendethiel: "it's not what it looks like!"
15:06 timotimo before removal it'd've been something like call(clone(QAST::BVal(reference_to_block)))
15:07 timotimo unfortunately, the compiler gets very upset when a block had been added to the World and it's no longer around when we get to compiling
15:07 timotimo so what we do is replace the block's contents with just a quick die statement
15:08 timotimo it doesn't use up a lot of memory, but since we have 1000 of them in our core setting, whatever memory it uses per block will get moved from bytes to kilobyte or from kilobytes to megabytes :)
15:08 jnthn We inline 1000 of them? Wow, nice :)
15:09 timotimo it's better than having calls in their places, for sure
15:09 jnthn Very
15:09 timotimo especially since inlined blocks allow more lexical vars to become local vars etc etc
15:09 timotimo but also call overhead etc
15:09 diana_olhovik_ joined #perl6
15:10 * jnthn cranks the music and gets back to native-ref JVM porting
15:10 timotimo don't be so cranky, jnthn
15:10 masak don't listen to the cranks, jnthn
15:10 jnthn :P
15:10 masak their music sucks
15:12 colomon timotimo++
15:12 perl6_newbee joined #perl6
15:16 dalek rakudo/nom: d2604ea | timotimo++ | src/Perl6/Actions.nqp:
15:16 dalek rakudo/nom: fewer QAST nodes when eliminating blocks in *-curry
15:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d2604eabfa
15:16 dalek rakudo/nom: 67a75c1 | timotimo++ | src/Perl6/Optimizer.nqp:
15:16 dalek rakudo/nom: possibly the smallest time save ever achieved.
15:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/67a75c1e1d
15:19 skids m: role g[::T $t] { multi method foo (T $a) { "OHAI".say }; multi method foo($a) { "ONOES".say }; }; g[Int(Str)].new.foo("100")
15:19 camelia rakudo-moar 35de75: OUTPUT«ONOES␤»
15:21 jnthn Bah, I knew somebody would try that :P
15:21 vendethiel *g*
15:21 jnthn I only did coercion types so far sufficient that we could migrate away from the deprecated "as" in sigs.
15:21 jnthn That one should be possible to make work, anyways. :)
15:22 jnthn It's just a bit fiddly.
15:22 * skids laughs maniacally
15:22 Juerd Who can update the topic?
15:23 timotimo any op
15:23 timotimo er
15:23 timotimo that's not what you're asking, is it? :)
15:23 Juerd I want names! :P
15:24 timotimo you can /msg ChanServ access #perl6 list
15:24 skids jnthn: I can RT that if you like.
15:24 Juerd timotimo: Thanks
15:25 colomon joined #perl6
15:25 Juerd jnthn: You appear to be an op. Could you add to the topic that feather will shut down permanently 2015-03-31?
15:25 jnthn skids: Feel free
15:27 FROGGS "P6opaque representation can not unbox NativeCall" sounds better than "This representation can not unbox another"
15:28 timotimo can someone please /msg ChanServ access add timotimo +Avorit
15:28 timotimo jnthn, you could do this
15:28 jnthn I'm kinda trying :P
15:28 timotimo (gives me a few not very dangerous permissions)
15:29 Juerd Is "/msg ChanServ access add timotimo +Avorit" the new "op me plx"? :P
15:29 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
15:29 Juerd jnthn++
15:29 timotimo Juerd: except easier to sneak something malicious into :P
15:31 timotimo moritz: dalek's whois shows 2001:780:101:ff00::2:9; is there no reverse-dns for that ipv6 yet?
15:37 * FROGGS has the feeling that 'is box_target' does not work correctly on jvm
15:37 xfix joined #perl6
15:37 dalek nqp/native-ref: cef0fd2 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp​/sixmodel/reprs/NativeRef.java:
15:37 dalek nqp/native-ref: Implement NativeRef REPR composition.
15:37 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/cef0fd27c5
15:37 dalek nqp/native-ref: 959164f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp​/sixmodel/reprs/NativeRef.java:
15:37 dalek nqp/native-ref: REPR data serialize/deserialize for NativeRef.
15:37 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/959164f029
15:38 jnthn FROGGS: It's very possibly "interesting"
15:38 FROGGS jnthn: I try to fix Inline::C, which applies roles to a routine, and then passes it off to &trait_mod:<is>($r, native => $!dll)
15:39 FROGGS and the result is: "P6opaque representation can not unbox NativeCall"
15:39 FROGGS (with improved error message)
15:39 jnthn FROGGS: Could be a missing decont...
15:40 FROGGS I tried nqp::buildnativecall(nqp::decont(self), ...
15:40 FROGGS so, that explodes right now: call = (NativeCallBody)target.get_boxing_of(tc, ncrepr.ID);
15:41 * FROGGS tries to pass $!call instead of self
15:42 FROGGS java.lang.RuntimeException: Cannot access a native attribute as a reference attribute :o(
15:48 dalek nqp/native-ref: b22a0e7 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp​/sixmodel/reprs/NativeRef.java:
15:48 dalek nqp/native-ref: Fix copy-pasta.
15:48 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/b22a0e779a
15:48 dalek nqp/native-ref: 47a347c | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/si​xmodel/NativeRefContainerSpec.java:
15:48 dalek nqp/native-ref: Native fetch/store for native_ref cont spec.
15:48 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/47a347ca69
15:48 dalek nqp/native-ref: 8bebd81 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/​sixmodel/reprs/NativeRefInstance (3 files):
15:48 dalek nqp/native-ref: Correct inheritance for lex ref types.
15:48 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/8bebd810b4
15:53 mr-foobar joined #perl6
15:58 dalek nqp/native-ref: 52188d6 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/si​xmodel/NativeRefContainerSpec.java:
15:58 dalek nqp/native-ref: Non-native fetch/store to native_ref conts.
15:58 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/52188d6cc6
15:58 jnthn Whee, get quite a bit further into the CORE.setting compile now.
15:58 Kristien joined #perl6
15:59 grondilu joined #perl6
16:01 zakharyas joined #perl6
16:12 BenGoldberg joined #perl6
16:15 xtreak joined #perl6
16:17 xtreak p6: my $a = (1, 2, 3, (4, 5,6)); $a.say;
16:17 camelia rakudo-moar 67a75c: OUTPUT«1 2 3 4 5 6␤»
16:18 xtreak Doesn't perl6 differentiate a parcel and a normal list element visually? It seems like a 6 element list now
16:19 perl6_newbee joined #perl6
16:20 jnthn Depends how you output it
16:20 jnthn p6: my $a = (1, 2, 3, (4, 5,6)); $a.perl.say;
16:20 camelia rakudo-moar 67a75c: OUTPUT«$(1, 2, 3, (4, 5, 6))␤»
16:21 xtreak What does .perl do?
16:21 skids Prints something that has a chance of being valid perl code that would recreate the same thing.
16:22 geekosaur .perl generates something resembling the perl code to produce a value (think Data::Dumper in perl5); .say uses .gist which generates a simplifies "just the facts" representation
16:22 timotimo we have no documentation about exception handling in doc.perl6.org/language yet?
16:23 xtreak Thanks. I have installed rakudo star. Is there a way to view documentation for perl 6 like perldoc?
16:26 jnthn I think it's called p6doc, and believe it's included with r*
16:26 * timotimo away for most of $evening
16:28 BenGoldberg p6: :foo.perl.say
16:28 camelia rakudo-moar 67a75c: OUTPUT«"foo" => Bool::True␤»
16:28 BenGoldberg m: sub foo (|bar) { bar[*] }; foo "quux" => Bool::True
16:28 camelia rakudo-moar 67a75c: ( no output )
16:29 BenGoldberg m: sub foo (|bar) { bar[*] }; foo :quux
16:29 camelia rakudo-moar 67a75c: ( no output )
16:29 dalek nqp/native-ref: 75d83a9 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
16:29 dalek nqp/native-ref: Implement attributeref scope compilation.
16:29 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/75d83a9c17
16:29 BenGoldberg m: sub foo (|args) { args[*] }; foo :bar
16:29 camelia rakudo-moar 67a75c: ( no output )
16:29 xtreak Thanks jnthn. It will be better if it has tab completion like perldoc. As I don't know how things are structured. May be am missing something
16:31 b2gills xtreak: the only reason you would have tab completion for perldoc is someone added it to your shell
16:32 b2gills Is `$*PERL.version` supposed to be the version of the language?
16:32 jnthn It's probably still worth us looking at what was done to make it work nicely for perldoc, so we can replicate it in p6doc :)
16:33 jnthn b2gills: I think so
16:34 skids xtreak: you might be better of with doc.perl6.org for starters
16:34 b2gills star-m: say $*PERL.version; say $*PERL.compiler.version; # I don't have star installed locally
16:34 camelia star-m 2015.02: OUTPUT«vunknown␤v2015.2␤»
16:35 dalek nqp/native-ref: 11b846e | jnthn++ | src/vm/jvm/runtime/org/perl6/​nqp/sixmodel/reprs/NativeRef (2 files):
16:35 dalek nqp/native-ref: Extend NativeRef REPR to include attribute refs.
16:35 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/11b846e047
16:35 dalek nqp/native-ref: 253b419 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
16:35 dalek nqp/native-ref: Implement getattrref_[ins] ops.
16:35 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/253b419017
16:36 gfldex joined #perl6
16:36 jnthn b2gills: Given we didn't settle on the exact naming scheme for lang versions yet, unknown is basically true ;)
16:37 jnthn One of those things we need to nail down in the next few months.
16:37 b2gills I'm working on a fix for the $] error message
16:37 b2gills m: $]
16:37 camelia rakudo-moar 67a75c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8heIuDchb5␤Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION␤at /tmp/8heIuDchb5:1␤------> 3$]7⏏5<EOL>␤»
16:38 [ptc] silly question time: how does one slurp a text file into an array, a la in perl5 $fh = open "file"; @lines = <$fh>;  ?
16:38 b2gills I was wondering if it should say `... use $*PERL.version or $*PERL.compiler.version`
16:38 [ptc] I've tried "file".IO.slurp.split(/\n/), but that gives me one more element than I expect
16:38 jnthn [ptc]: $fh.lines
16:38 [ptc] I know I've got a thinko in here somewhere...
16:39 jnthn [ptc]: Or $filename.IO.lines
16:39 [ptc] jnthn: thanks, I'll document that one
16:39 jnthn [ptc]++
16:39 [ptc] jnthn: actually, I want to check the (in this case) the last 3 elements of a file for a particular pattern
16:40 [ptc] so, I'd like to split the string on newlines and look at the output (feels sort of like the natural thing to do)
16:40 Hor|zon joined #perl6
16:40 [ptc] however, split() doesn't do what one as perl5 hacker would expect
16:40 jnthn [ptc]: Last 3 elements = last 3 lines?
16:40 [ptc] jnthn: yes
16:41 jnthn $fh.lines[*-3 .. *] may do it
16:41 [ptc] interestingly enough, split() on an empty file returns a 1 element list, but I've been there before ;-)
16:41 [ptc] jnthn: I'll give it a go
16:41 laouji joined #perl6
16:42 [ptc] Index out of range. Is: -3, should be in 0..Inf
16:42 skids *-3 ..^ *
16:43 skids hrm.
16:43 jnthn b2gills: Are $[ and $^V the same thing in Perl 5, ooc?
16:43 b2gills No but they are close enough
16:43 jnthn OK
16:43 nwc10 m say $^V
16:43 nwc10 m: say $^V
16:43 camelia rakudo-moar 67a75c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7dHEmEpx71␤Unsupported use of $^V variable; in Perl 6 please use $*PERL_VERSION␤at /tmp/7dHEmEpx71:1␤------> 3say $^V7⏏5<EOL>␤»
16:43 nwc10 m: say ${^PERL_VERSION}
16:43 camelia rakudo-moar 67a75c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2ZOsyAHUNY␤Unsupported use of ${^PERL_VERSION}; in Perl 6 please use $(^PERL_VERSION)␤at /tmp/2ZOsyAHUNY:1␤------> 3say ${^PERL_VERSION}7⏏5<EOL>␤»
16:44 dalek rakudo/nom: cebde22 | (Brad Gilbert)++ | src/core/Exception.pm:
16:44 dalek rakudo/nom: Update error message for $] to use $*PERL.version
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cebde2272a
16:44 dalek rakudo/nom: 6959323 | jnthn++ | src/core/Exception.pm:
16:44 dalek rakudo/nom: Merge pull request #376 from b2gills/nom
16:44 dalek rakudo/nom:
16:44 dalek rakudo/nom: Update error message for $] to use $*PERL.version
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6959323e3f
16:44 timotimo m: say "".split("\n").perl
16:44 b2gills $^V is supposed to be an object, while $] is a flot
16:44 camelia rakudo-moar 67a75c: OUTPUT«("",).list␤»
16:44 [ptc] ah, if the file has fewer than 3 lines, it barfs
16:44 timotimo we've had a lengthy discussion about this at some point, didn't we?
16:45 [ptc] timotimo: do you mean me?
16:45 jnthn We've probably had lengthy discussions about most things by this point... :P
16:45 colomon joined #perl6
16:45 timotimo i mean about the behavior of split on empty strings
16:45 timotimo m: say "abacaba".split("b").perl
16:45 camelia rakudo-moar 67a75c: OUTPUT«("a", "aca", "a").list␤»
16:46 timotimo (just making sure i don't have the arguments to split reversed between invocant and needle)
16:46 timotimo m: say ("",).list.join("\n").perl
16:46 camelia rakudo-moar 67a75c: OUTPUT«""␤»
16:47 timotimo well, at least the behavior is consistent between split and join
16:47 [ptc] m: say "abcd".split("e").elems
16:47 camelia rakudo-moar 67a75c: OUTPUT«1␤»
16:47 timotimo that's very important.
16:47 [ptc] that's something that confuses me.  The behaviour is documented though
16:48 [ptc] since it's documented I'm ok with it. Nevertheless, I expect this to trip up more than just a few people (just saying)
16:49 [ptc] I also agree that the consistency with join is important
16:49 b2gills jnthn: $ perl -E'say $^V; say $]'␤v5.20.1␤5.020001
16:50 jnthn b2gills: OK, thanks.
16:50 b2gills So perhaps it would be a little more accurate for $] to say `$*PERL.version.Numeric or $*PERL.compiler.version.Numeric`
16:51 jnthn I'd probably write it as +$*PERL.version
16:51 jnthn I can't tell if changing this is helpful or oddly specific. :)
16:52 b2gills The only reason $] still is a float is for backwards compatibility
16:52 dalek nqp/native-ref: 7008cc2 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
16:52 dalek nqp/native-ref: Add missing add_lexicalref method.
16:52 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/7008cc2b3e
16:53 darutoko joined #perl6
16:55 b2gills It's probably better in the long run to leave off the `+`
16:59 BenGoldberg I would expect perl6 versions, when made into numbers, to be Rats, not floats.
17:00 dalek nqp/native-ref: 9b7f462 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
17:00 dalek nqp/native-ref: Fix thinko in lexicalref late-bound comp.
17:00 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/9b7f462f79
17:00 jnthn native-ref branch now spits out a CORE.setting.jar on JVM
17:00 jnthn ...which explodes on loading.
17:04 TimToady m: my $a = (1,2,3); say $a[].WHAT
17:04 camelia rakudo-moar 67a75c: OUTPUT«(Parcel)␤»
17:04 TimToady that is borken, supposed to be List
17:04 TimToady m: my $a = (1,2,3); say $a.list.WHAT
17:04 camelia rakudo-moar 67a75c: OUTPUT«(List)␤»
17:04 BenGoldberg m: my $a = (1,2,3); say $a.perl
17:04 camelia rakudo-moar 67a75c: OUTPUT«$(1, 2, 3)␤»
17:05 japhb Is there a way in the Rakudo setting to detect whether a particular nqp:: op exists?  I'd like to do "feature detection" to implement methods like IO::Path.resolve that work if the underlying backend supports the right ops (nqp::readlink, in this case), and NYI's if not.
17:05 BenGoldberg m: my $a = (1,2,3); say $a.list.perl
17:05 camelia rakudo-moar 67a75c: OUTPUT«(1, 2, 3).list␤»
17:05 TimToady $a[] is supposed to be equivalent to @$a
17:05 _mg_ joined #perl6
17:05 TimToady m: my $a = (1,2,3); say @$a.WHAT
17:05 camelia rakudo-moar 67a75c: OUTPUT«(List)␤»
17:05 japhb jnthn: ^^^ (my question above)
17:06 TimToady 'cause we been bragging that we don't have to use ->@* and such, just []
17:06 TimToady (broke one of my quizzing programs too)
17:07 timotimo well, if you write a spectest ... :)
17:07 japhb Was pmichaud able to do GLR work, or did the "if I can't, someone else do it" clause get activated?
17:07 jnthn japhb: nqp::getcomp('QAST').operations gets you the object that'd be able to answer the question, if only it had a method to do so...
17:08 japhb *snort*
17:08 jnthn japhb: However, I don't quite like doing it that way...it's very cross-comp unfriendly if we end up there
17:09 japhb How is it cross-comp unfriendly, since it's querying what I presume would be the cross-comp?
17:09 jnthn japhb: nqp::getcomp('perl6').back​end.supports-nqp-op('...') would be a nice API for it.
17:09 jnthn japhb: Trouble is it isn't... :)
17:09 japhb Oh, I think I understand your point.
17:09 jnthn You want to know the backend of the compiler you're using.
17:09 jnthn japhb: I actually need to do a similar thing quite soon anyway
17:10 japhb Oooh, can haz priority bump?
17:10 jnthn japhb: Yeah, I'll be in exactly the right places to do it.
17:10 japhb Thanks muchly.
17:11 jnthn Added it to my todo list next to the other thing :)
17:11 japhb heh
17:11 jnthn (The other thing is a soft dependency for native-ref merge, so you're likely to get it this weekend.)
17:11 japhb Nice
17:12 jnthn Depends whether I've got a second 80% to do on native-ref JVM port, or if the 20% remaining really is 20% :)
17:12 japhb :-)
17:15 japhb Hmmm, that leaves me with a question, though ... such a feature allows me to detect if an op is supported ... but what happens on a backend that doesn't support it?  Will the *compiler* complain that nqp::readlink isn't a known op, even if I make sure it never gets executed on that backend?
17:16 japhb Or have I wandered into macro land?
17:16 * japhb waves at amasak
17:16 * japhb waves at masak
17:17 jnthn japhb: Uh...yeah, it'll complain it's missing
17:17 jnthn So not immediately sure how to use it...hmm.
17:17 japhb Yeah, I'm wondering if this is one of those cases where I really do need to use a macro or something macro-ish
17:18 raydiak .tell tadzik minor patch to fix another warning: https://github.com/tadzik/rakudobrew/pull/30
17:18 yoleaux raydiak: I'll pass your message to tadzik.
17:18 raydiak \o #perl6
17:18 japhb o/
17:19 aborazmeh joined #perl6
17:19 aborazmeh joined #perl6
17:20 dalek nqp/native-ref: b7388c6 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
17:20 dalek nqp/native-ref: Implement decont_[ins].
17:20 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/b7388c61b7
17:26 japhb FROGGS: Is there currently a way to specify a 'use lib' that is script-relative instead of $*CWD relative?
17:26 telex joined #perl6
17:27 dalek rakudo/native-ref: 631219a | jnthn++ | src/vm/jvm/Perl6/Ops.nqp:
17:27 dalek rakudo/native-ref: Use decont_* ops to do unboxing.
17:27 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/631219a884
17:28 raydiak japhb: I usually use $?FILE.IO.parent or along those lines
17:31 japhb raydiak: This falls into the un-.resolve-d path problem I've been banging my head on.
17:32 raydiak japhb: have you looked through S32 IO?  I saw like half a dozen different methods which looked pertinant
17:33 japhb raydiak: I'm thinking I just need to implement the beast myself, but 1) I want to make sure I'm not duplicating something that already exists, possibly in one of the S11 branches, and 2) I run up against stuff like the aforementioned "nqp::readlink only exists in nqp-m" problem.
17:33 japhb raydiak: .resolve is NYI.  :-/
17:34 tadzik raydiak: thanks :)
17:34 yoleaux 17:18Z <raydiak> tadzik: minor patch to fix another warning: https://github.com/tadzik/rakudobrew/pull/30
17:34 raydiak tadzik: you're welcome :)
17:35 raydiak japhb: does .canonpath help? I think it already exists (was playing with these things a bit last night, but was too tired to recall now what I saw)
17:35 japhb raydiak: .canonpath explicitly doesn't resolve ../
17:35 japhb Because symlinks.
17:37 japhb (I do appreciate the ideas, though.  You just haven't yet hit on one I haven't tried so far.  ;-)
17:37 dalek roast: 51c3b8e | TimToady++ | S02-types/array.t:
17:37 dalek roast: make sure .[] decontainerizes
17:37 dalek roast: review: https://github.com/perl6/roast/commit/51c3b8e3ae
17:39 raydiak japhb: so you're trying to get to the actual hardlinked location so that .. might take you somewhere other than where you appeared to start from (in case you were in a symlinked path)?
17:43 _mg_ joined #perl6
17:44 japhb raydiak: Well, there's two problems: 1. I need a true absolute path to feed to CompUnitRepo::Locally.new (because otherwise it assumes $*CWD-relative), 2. Someone might call my script using a relative path that contains ../, which means $?FILE and $*PROGRAM_NAME and such contain that, 3. I'm inside a symlinked tree, 4. IO::Path.parent is broken WRT to ../ path components.
17:47 cschwenz joined #perl6
17:48 japhb *multiple problems, I guess
17:51 raydiak m: .IO.parent.say for <.. ../foo  foo/.. foo/../bar >
17:52 camelia rakudo-moar 695932: OUTPUT«"/home/camelia/../..".IO␤"/hom​e/camelia/../../foo".IO␤"/home/cameli​a/foo".IO␤"/home/camelia/foo/..".IO␤»
17:55 raydiak yeah no brilliant ideas here, guess implementing .resolve is the shortest real solution
18:04 BenGoldberg m: ".".IO.say
18:04 camelia rakudo-moar 695932: OUTPUT«"/home/camelia".IO␤»
18:05 BenGoldberg m: ".".IO.parent.say
18:05 camelia rakudo-moar 695932: OUTPUT«"/home/camelia/..".IO␤»
18:08 japhb m: my $a = '../foo/bar'.IO.absolute.IO; $a.perl.say; $a.parent.parent.parent.perl.say;
18:08 camelia rakudo-moar 695932: OUTPUT«q|/home/camelia/../foo/bar|.​IO(:SPEC(IO::Spec::Unix))␤q|/home/c​amelia|.IO(:SPEC(IO::Spec::Unix))␤»
18:08 japhb BenGoldberg: ^^ that is my pain right now
18:08 echowuhao joined #perl6
18:08 japhb Also, .IO.absolute.IO is ugly.
18:11 raydiak star-m: use NativeCall; sub realpath (Str:D $, Str $) returns Str is native {*}; realpath("..").IO # japhb: well, there's this...
18:11 camelia star-m 2015.02: ( no output )
18:11 raydiak star-m: use NativeCall; sub realpath (Str:D $, Str $) returns Str is native {*}; realpath("..").IO.say
18:11 camelia star-m 2015.02: OUTPUT«"/home/camelia/rakudo-star-2015.02".IO␤»
18:11 raydiak star-m: use NativeCall; sub realpath (Str:D $, Str $) returns Str is native {*}; realpath(".").say
18:11 camelia star-m 2015.02: OUTPUT«/home/camelia/rakudo-star-2015.02/install␤»
18:12 raydiak star-m: say '.'.IO.absolute
18:12 camelia star-m 2015.02: OUTPUT«/home/camelia/rakudo-star-2015.02/install␤»
18:12 raydiak star-m: say '..'.IO.absolute
18:12 camelia star-m 2015.02: OUTPUT«/home/camelia/rakudo​-star-2015.02/install/..␤»
18:22 [ptc] timotimo++   # for the pod-htmlify.t improvement
18:22 dalek doc: 88af0dc | paultcochrane++ | lib/Type/IO (4 files):
18:22 dalek doc: Link to related roles/classes in IO roles/classes
18:22 dalek doc: review: https://github.com/perl6/doc/commit/88af0dc836
18:22 dalek doc: bb3a7f5 | paultcochrane++ | lib/Language/5to6.pod:
18:22 dalek doc: Mention .lines when reading a text file
18:22 dalek doc: review: https://github.com/perl6/doc/commit/bb3a7f51fa
18:22 dalek doc: ae5d229 | paultcochrane++ | t/pod-htmlify.t:
18:22 dalek doc: Merge branch 'master' of github.com:perl6/doc
18:22 dalek doc: review: https://github.com/perl6/doc/commit/ae5d2295a1
18:22 japhb raydiak: Why do you need star-m there?
18:23 japhb Also, yeah, I considered the realpath method (though I couldn't remember the C name, thanks)
18:23 raydiak japhb: oh yeah forgot nativecall is in core now duh
18:25 timotimo [ptc]: eine meiner leichtesten übungen ;)
18:28 dalek nqp/native-ref: 40d219c | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
18:28 dalek nqp/native-ref: Elide many lexicalref/attributeref takes.
18:28 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/40d219cbc6
18:28 Hor|zon joined #perl6
18:29 dalek rakudo/native-ref: ac026be | jnthn++ | tools/build/create-jvm-runner.pl:
18:29 dalek rakudo/native-ref: Fix JVM runner generation on Windows.
18:29 dalek rakudo/native-ref:
18:29 dalek rakudo/native-ref: %CLASSPATH% may end up with spaces in, and also needs the correct
18:29 dalek rakudo/native-ref: separator.
18:29 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/ac026be071
18:29 rurban joined #perl6
18:30 laouji joined #perl6
18:31 [ptc] timotimo: ich wünschte mir, ich hätte die Lösung gesehen :-/
18:31 [ptc] timotimo: I'm still learning
18:31 timotimo that's very all right
18:31 timotimo i've needed almost this exact pattern in the past
18:32 timotimo at that point i wanted to react to the presence or absence of Term::ANSIColor
18:32 [ptc] timotimo: I kept having the problem that, even though I'd put the "use" inside a "try" it kept failing at compile time, hence the choice of BEGIN
18:32 timotimo ah, i understand that part
18:32 * [ptc] wonders where this perl of wisdom should be written
18:33 timotimo but "EVAL" should have obsoleted the BEGIN
18:33 Kristien vendethiel: is LiveScript still being improved?
18:34 [ptc] timotimo: I had: try { use URI::Escape, CATCH { default { say "Need URI::Escape" }}}  and that kept failing at compile time
18:34 timotimo yeah
18:34 timotimo damn you, perl6, for failing so early!
18:34 [ptc] timotimo: I also knew it was more complicated than necessary, but couldn't find a way out
18:35 timotimo er, hold on
18:36 timotimo running "plan 0;" and "exit" at BEGIN time may not be a good idea if you're in a module, because those get precompiled when modules are installed via panda
18:36 timotimo but you could have done something like my $has_escape = BEGIN { ... }
18:38 [ptc] yeah, the "plan 0" solution was to stop "prove" from complaining that no tests were planned/run
18:41 [ptc] timotimo: could you try something out for me?  Without URI being installed, run "prove --exec=perl6 -r t" in perl6/doc
18:42 [ptc] timotimo: for me it fails by not being able to run the subtests (and tries to load URI::Escape in the process)
18:42 vendethiel Kristien: idk
18:42 Ben_Goldberg joined #perl6
18:43 dalek nqp/native-ref: 6559876 | jnthn++ | src/vm/jvm/runtime/org/perl6/​nqp/sixmodel/reprs/NativeRef (2 files):
18:43 dalek nqp/native-ref: Extend NativeRef REPR to include positional refs.
18:43 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/6559876e1f
18:43 dalek nqp/native-ref: 42da59a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
18:43 dalek nqp/native-ref: Implement atposref_[ins].
18:43 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/42da59ac62
18:44 vendethiel Kristien: I pretty much gave up on LS, around a year ago
18:44 vendethiel Kristien: tho someone is adding sourcemaps
18:44 Kristien ok :p
18:44 vendethiel Kristien: actually -- that's unfair. I gave up on JS in general.
18:44 vendethiel so I stopped working on both
18:45 Kristien Currently working on a lens library in LS
18:46 vendethiel Kristien: I think we have one already:P!
18:46 vendethiel sorella (notlolita) has done a fair amount of ls stuff
18:47 diana_olhovik_ joined #perl6
18:48 timotimo [ptc]: gimme a minute
18:48 [ptc] timotimo: np
18:49 [ptc] afk for a while # dinner &
18:50 timotimo i get an error from "use-ok" not being defined, because rakudo too old
18:51 virtualsue joined #perl6
18:52 nine_ timotimo: https://github.com/niner/Grammar-Highlighter/c​ommit/1cddcff2cfe9f5fe8c610e517e3e99341587f800
18:59 * raydiak wonders why compress::zlib::raw fails to build on the smoker but wfm
18:59 * raydiak also wonders what happened to cpandatesters
19:02 jack_rabbit joined #perl6
19:03 timotimo nine_: if you have style="..." already, i'd suggest you use the hsl function together with a pseudorandom spread over 0..255 to get nice colors
19:04 timotimo also, inside of postcircumfix:<[ ]> you can have a WhateverCode that gets passed the number of elements, so i'd suggest $color % *
19:04 timotimo pseudorandom can also mean "actually random but cached with the name of the rule as the key"
19:05 nine_ Finding good, distinct colors is a surprisingly difficult problem.
19:07 timotimo oh, agreed
19:07 timotimo [ptc]: you're right, it seems like it's fatal
19:07 timotimo oh, derp :)
19:07 timotimo it "use"s that module a few lines later
19:07 jack_rabbit joined #perl6
19:08 timotimo i have to hit the road right now, unfortunately
19:09 timotimo you can wrap it in EVAL q{ ... }
19:09 Gitu joined #perl6
19:09 timotimo for now
19:09 [ptc] timotimo: the use-ok isn't as ripe ase it could b
19:09 [ptc] *be
19:09 [ptc] I'll give it a go
19:09 * vendethiel just learned that groovy copied the " println (4 + 5) * 3" problem from perl5...
19:09 timotimo use-ok is all right
19:09 timotimo the use directly below it is problematic
19:09 timotimo ttyl :)
19:11 Gitu Hello
19:13 vendethiel o/
19:13 dalek roast: feca340 | TimToady++ | S02-types/ (2 files):
19:13 dalek roast: make sure $hash{} decontainerizes too
19:13 dalek roast: review: https://github.com/perl6/roast/commit/feca34047a
19:14 Gitu My first question here: Can Perl 6 generate Windows executables? Also, can it be used to create COM servers (for Windows)?
19:14 raiph joined #perl6
19:18 nine_ @colors[$color % *] is really sweet :)
19:19 TimToady even sweeter will be when you can put the modmap into the declaratoin
19:20 TimToady which S09 speculates
19:20 tinyblak joined #perl6
19:20 TimToady though perhaps with a bogus syntax
19:21 FROGGS[mobile] Gitu: with a little bit of work we can create executables in future, but, the win32 api is not yet there as a module
19:21 FROGGS[mobile] Gitu: so com servers would be quite some work...
19:23 Gitu Froggs: Thank you.
19:24 dalek roast: 35b8f69 | TimToady++ | S02-types/array.t:
19:24 dalek roast: deconting array doesn't necessarily imply List
19:24 dalek roast: review: https://github.com/perl6/roast/commit/35b8f69686
19:25 FROGGS[mobile] Gitu: a very good first step would be to port the win32 module from Perl 5
19:25 xtreak joined #perl6
19:27 Gitu Froggs: That module is able to create just COM clients, not servers. Under Perl, only ActiveState's PDK commercial solution can create COM servers. (Or am I wrong?)
19:27 FROGGS[mobile] ohh :o(
19:27 avuserow has anyone started a grammar for parsing SQL? in particular I'm wanting to parse .sql files output from mysqldump and similar tools.
19:27 FROGGS[mobile] I dont know
19:28 aborazmeh joined #perl6
19:28 aborazmeh joined #perl6
19:28 FROGGS[mobile] avuserow: tony-o made a slang::sql
19:28 FROGGS[mobile] IIRC
19:28 FROGGS[mobile] look in the irc logs
19:29 Hor|zon joined #perl6
19:30 avuserow FROGGS[mobile]: I saw that one, but it doesn't appear like it actually generates an AST or similar from the SQL
19:30 avuserow it has a note in the README saying that it doesn't validate SQL yet :(
19:31 raydiak nine_: for the palette, just picking regular intervals around the hue circle can work well...multiplied by a desaturated and/or darkened variant of each hue plus a few greys I wouldn't be surprised if you could generate 20 or 30 adequately distinct colors
19:31 FROGGS[mobile] ohh..
19:32 laouji joined #perl6
19:43 BenGoldberg joined #perl6
19:45 b2gills I think for a COM server you would need at least a C shim
19:49 dalek doc: 06ada66 | (Matthias Krull)++ | htmlify.p6:
19:49 dalek doc: Fixed generated links to Github files
19:49 dalek doc: review: https://github.com/perl6/doc/commit/06ada6659c
19:53 zakharyas joined #perl6
19:54 dalek roast: d2134c7 | TimToady++ | S02-types/hash.t:
19:54 dalek roast: correcter decontainerized test
19:54 dalek roast: review: https://github.com/perl6/roast/commit/d2134c72e3
19:54 dalek rakudo/nom: 9d41570 | TimToady++ | src/core/ (2 files):
19:54 dalek rakudo/nom: decontainerize bare Zen slices
19:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d41570388
19:55 _mg_ joined #perl6
20:13 japhb OK, I've got a locally working IO::Path.resolve, but right now it only works on POSIX filesystems.
20:17 japhb Anyone with both Windows and Linux access interested in fixing it to work on both?  I can make guesses, but they'd probably be dead wrong ...
20:19 FROGGS m: use lib $?FILE.IO.dirname ~ '/lib' # japhb
20:19 camelia rakudo-moar 9d4157: ( no output )
20:20 dalek roast: c5379ec | TimToady++ | S02-lists/tree.t:
20:20 dalek roast: yes, the test is correct, since Zen should decont
20:20 dalek roast: review: https://github.com/perl6/roast/commit/c5379ec896
20:26 tmch joined #perl6
20:29 jnthn NQP_VERBOSE_EXCEPTIONS
20:29 jnthn oops
20:32 Kristien joined #perl6
20:35 japhb FROGGS: I need to handle the case that the script, the lib/, and the user are all in separate directories, possibly multiple levels apart with symlinks between.  I'm planning basically 'use lib ($?FILE.IO.dirname ~ "/../../../lib").IO.resolve'
20:36 FROGGS japhb: that's not pretty but it works
20:36 japhb Actually, more like 'use lib ($?FILE.IO.dirname ~ "/../../../foo/bar/lib").IO.resolve'
20:36 itz https://www.topcoder.com/blog/if​-programming-languages-were-beer
20:38 japhb Am I the only one that finds the odd mixture of IO::Path methods that return Str or IO::Path rather odd (and *cough* PHP-like)?
20:38 japhb .oO( odd mixture is odd)
20:39 psch japhb: newio exists, and lizmat++ looks like she knows what she's doing in there
20:39 psch *the branch
20:41 japhb nod
20:42 japhb What should .resolve do with paths that don't exist past some point?  realpath(3) will error, realpath(1) can work in "resolve symlinks, error on fake paths" or "don't resolve symlinks, but don't error on fake paths" mode.
20:43 Ben_Goldberg joined #perl6
20:44 japhb I was thinking about a DWIM: Start in "Resolving symlinks, handling real paths" mode, and the first time it hits a path element that doesn't exist, just append the rest of the path elements as-is except for dropping // and /./
20:44 japhb This has the downside of possibly leaving /../, but iff that could not be successfully resolved.
20:45 japhb Which means if the missing intermediate path element were created later, the partially-resolved path would still be correct, and (more-)fully-resolvable.
20:48 japhb So if /usr/bin/X11 -> /usr/bin, then /usr/lib/../bin/X11/foo/../baz would return /usr/bin/foo/../baz, which could later be resolved completely if /usr/bin/foo were created as a directory or as a valid symlink.
20:48 sivoais joined #perl6
20:48 sivoais joined #perl6
20:48 japhb Seem sane, or YTICN?
20:53 Celelibi joined #perl6
20:53 Kristien We should call singletons "sigiltons"
20:55 jack_rabbit joined #perl6
20:58 japhb Hmmm, there's also the case of /dir/dir/file/bar/baz to contend with ...  :-/
20:58 japhb Oh, actually, we probably want to let that slide, because 'file' can be a ZIP or TAR file that the filesystem can mount as a dir ...
20:59 geekosaur there's also streams in NTFS and HFS+
21:06 japhb Yeah, the more I think about this, the more I think it's a good idea to be more lax ... after all, if the user wants to be sure the resolved thing is "real", they can always .IO.e on the result.
21:10 Ben_Goldberg On windows "//" right at the beginning of a path name has a special meaning.
21:12 Ben_Goldberg Specifically, all named pipes start with \\ or, equivilantly, //
21:13 geekosaur UNC paths
21:14 geekosaur /host/share/path
21:14 geekosaur er
21:14 geekosaur //host/share/path
21:14 geekosaur right, my mental automatic doubling at the start of the line doesn't quite work if it's starting with // for other reasons :p
21:15 Ben_Goldberg Err, actually, \\ is the windows equivilant of unix's /dev/
21:16 Ben_Goldberg Windows named pipes start with "\\<ComputerName>\pipe\" .... and there are other devices in addition to pipes in the \\ namespace.
21:17 geekosaur right, it's a variant of UNC paths
21:18 geekosaur "pipe" is a virtual share in UNC syntax
21:18 Hor|zon joined #perl6
21:20 beastd joined #perl6
21:44 masak m: my $now = DateTime.now; $now.later
21:44 camelia rakudo-moar 9d4157: OUTPUT«use of uninitialized value $unit of type Any in string context  in block <unit> at /tmp/RmyvdH1jbH:1␤␤use of uninitialized value $unit of type Any in string context  in block <unit> at /tmp/RmyvdH1jbH:1␤␤use of uninitialized value $unit of type Any…»
21:45 masak that goes on for a while. ends with "Error while creating error string: No exception handler located for warn"
21:46 * masak .oO( who implemented this stuff? ) :P
21:46 dalek nqp: b91a78d | FROGGS++ | src/vm/jvm/runtime/org/perl6/nq​p/sixmodel/SixModelObject.java:
21:46 dalek nqp: improve error messages for repr mismatch
21:46 dalek nqp: review: https://github.com/perl6/nqp/commit/b91a78d52c
21:46 masak I see there's a &die in there for "More than one time unit supplied". there should be one for "No time unit supplied" as well, I guess.
21:47 * masak attempts a quick fix
21:49 masak by the way, that method has the coolest given block I've ever written. any discussion about the variation in given statements should invlude that given statement as a matter of course. :)
21:49 masak include*
21:56 Celelibi joined #perl6
21:56 [ptc] .tell timotimo unfortunately the require version wasn't working at all (errors with and without prove).  The check needs to take place at compile time.  Don't know what the best solution is though...
21:56 yoleaux [ptc]: I'll pass your message to timotimo.
21:56 cognominal joined #perl6
21:59 jnthn yays, native-is-rw.t and native-is-copy.t nowp ass on JVM \o/
21:59 jnthn uh, now pass
21:59 colomon \o/
21:59 colomon nowp ass!
21:59 dalek doc: b481d52 | paultcochrane++ | t/pod-htmlify.t:
21:59 dalek doc: Wrap check for URI::Escape in BEGIN block
21:59 dalek doc:
21:59 dalek doc: The "unless try" was a good solution, however the check for URI::Escape
21:59 dalek doc: needs to happen at compile time, since the later "use" will be checked and
21:59 dalek doc: thus fail since URI::Escape isn't there.  What a better solution is, I don't
21:59 dalek doc: know, however the test works again now.
21:59 dalek doc: review: https://github.com/perl6/doc/commit/b481d52984
22:00 dalek nqp/native-ref: e6b895e | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
22:00 dalek nqp/native-ref: Fix a few thinkos in lexicalref compilation.
22:00 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/e6b895e0c1
22:00 dalek nqp/native-ref: 134199d | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
22:00 dalek nqp/native-ref: Don't confuse primitive type and reference kind!
22:00 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/134199dd70
22:01 dalek rakudo/native-ref: 7b24f43 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
22:01 dalek rakudo/native-ref: Update JVM binder impl for native is rw params.
22:01 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/7b24f4335f
22:02 jnthn Leaves me with native-lvalue-subroutines.t to fix.
22:05 FROGGS jnthn++
22:10 jnthn Ah, think I got that one too :)
22:10 colomon :)
22:11 * colomon is glad someone is being productive today, as he is being spectacularly useless.
22:14 echowuhao joined #perl6
22:16 dalek rakudo/native-ref: b57292d | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
22:16 dalek rakudo/native-ref: Fix native return value decontainerization.
22:16 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/b57292dee8
22:17 laouji joined #perl6
22:23 Celelibi joined #perl6
22:25 bartolin in case someone is interested: I think I found a reasonable way to write tests for 'multi line input' for the REPL (which works on Windows and Unix platforms): https://gist.github.com/usev6/f9d​0f6ca4e213e89b546#comment-1403334
22:26 FROGGS bartolin: ohh nice!
22:28 bartolin .oO ( AWS to the rescue )
22:30 aborazmeh joined #perl6
22:30 aborazmeh joined #perl6
22:43 dalek perl6-examples: 1edd74c | paultcochrane++ | rosalind/ (43 files):
22:43 dalek perl6-examples: Add vim coda to rosalind example files
22:43 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/1edd74cef6
22:43 dalek perl6-examples: 1f15ddd | paultcochrane++ | rosalind/ (7 files):
22:43 dalek perl6-examples: Add use v6 pragma to rosalind examples
22:43 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/1f15ddd114
22:49 dalek ecosystem: 85c5876 | FROGGS++ | META.list:
22:49 dalek ecosystem: remove zavolaj (NativeCall) from ecosystem, it lives in rakudo
22:49 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/85c5876b66
22:50 FROGGS jnthn: btw, we have now a way to compare module smoke tests across compiler versions...
22:51 jnthn FROGGS: ooh :)
22:51 FROGGS panda puts not every module test into a file to deduplicate test reports, and this file is created once per compiler version
22:52 jnthn JVM spectest is a tad messy, but looks mostly assignable to me missing patches from nom
22:52 FROGGS so, do a smoke run, copy the file to some place, switch rakudo branch, rerun and do a diff
22:53 FROGGS that's how such a file looks like: https://gist.github.com/FR​OGGS/2a08ad542c1ebe08e4b2
22:53 FROGGS (I am doing an ecosystem smoke run right now)
22:54 jnthn Yay, the couple of tests I suspected I'd busted something on r-j are also due to missing patches from nom :)
22:54 FROGGS that are the easy ones :o)
22:54 jnthn FROGGS: Ah, cool :)
22:55 lizmat joined #perl6
22:55 FROGGS gnight
22:55 jnthn 'night, FROGGS++
22:55 lizmat gnight FROGGS
22:56 jnthn So, I'm down to the r-m perl6-bench performance regressions to look at ahead of native-ref being mergeable, it seems :)
22:56 jnthn I'll look at those tomorrow.
22:59 masak 'night, #perl6
23:00 dalek perl6-examples: bb55df5 | paultcochrane++ | rosalind/afrq-grondilu.pl:
23:00 dalek perl6-examples: Use default data input for afrq rosalind example
23:00 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/bb55df560b
23:00 lizmat gnight masak
23:02 dalek perl6-examples: b91954a | paultcochrane++ | rosalind/afrq-grondilu.pl:
23:02 dalek perl6-examples: Document afrq example origin and expected output
23:02 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/b91954a049
23:07 Hor|zon joined #perl6
23:11 sirdancealot joined #perl6
23:12 Celelibi joined #perl6
23:15 virtualsue joined #perl6
23:19 lizmat japhb: re .resolve, I'd be very interested in trying that out
23:20 lizmat as a status update re the newio branch: I sort of hit a blocker on how to handle symlinks that point to non-existing dir entries
23:20 lizmat now that stat() is the default on Moar (as opposed to lstat before)
23:21 lizmat one of my assumptions was that any dir() entry that I get, by definition exists
23:21 lizmat this is no longer true if it is a symlink to a non-existing dir entry
23:21 lizmat in that case -e is false, and -le is trie
23:21 lizmat *true
23:22 lizmat now, one of my speedups was that one would not have to check existence on dir() entries
23:22 lizmat and now one needs to  :-(
23:22 lizmat which sort of kicks the legs out from under the whole idea for speedup that I had
23:22 lizmat still pondering on how to continue...
23:25 jnthn lizmat: Where exactly do we need to check existence on them?
23:26 lizmat just before you want to check if something is a regular file or a directory, e.g.
23:30 lizmat m: (a => 0).Bag.perl.say  # arguably, this should say (a=>0).Bag
23:30 camelia rakudo-moar 9d4157: OUTPUT«().Bag␤»
23:30 lizmat m: (a => 0).BagHash.perl.say  # this is correct, in think
23:30 camelia rakudo-moar 9d4157: OUTPUT«().BagHash␤»
23:31 lizmat I'm thinking, that *if* you're creating an immutable structure, the removal of a key is removal of information
23:33 lizmat m: (a => -1).Bag.perl.say  # but should this be true for any non-positive value?
23:33 camelia rakudo-moar 9d4157: OUTPUT«Type check failed for return value; expected 'Baggy' but got 'Failure'␤  in any return_error at src/vm/moar/Perl6/Ops.nqp:649␤  in method new-from-pairs at src/gen/m-CORE.setting:19715␤  in method Bag at src/gen/m-CORE.setting:2130␤  in block <unit…»
23:34 lizmat interesting
23:34 lizmat ok, something to look at after some sleep&
23:34 jnthn 'night, lizmat
23:34 * jnthn also heads off to relax &
23:36 bayprogrammer joined #perl6
23:50 dalek DBIish: 21fdbe8 | (Adrian Kreher)++ | / (2 files):
23:50 dalek DBIish: [mysql] Connect via socket
23:50 dalek DBIish:
23:50 dalek DBIish: Add connection option to connect to a server via a (non-default) socket
23:50 dalek DBIish: on the filesystem.
23:50 dalek DBIish: review: https://github.com/perl6/DBIish/commit/21fdbe8eed
23:51 ash_gti joined #perl6

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

Perl 6 | Reference Documentation | Rakudo