Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-10-27

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:03 intrigue joined #perl6
00:11 Alina-malina joined #perl6
00:19 colomon do we have the C++ interface working yet?
00:21 psch colomon: https://github.com/rakudo/rakudo/​blob/nom/t/04-nativecall/11-cpp.t passes at least mostly, iirc
00:23 colomon psch++
00:24 colomon looks like it all passes on my machine
00:25 Hor|zon joined #perl6
00:25 skids joined #perl6
00:31 lizmat P6 Weekly: https://p6weekly.wordpress.com​/2015/10/27/2015-44-niceville/
00:31 lizmat get it while they're good!
00:31 Actualeyes joined #perl6
00:32 lizmat and with that, I wish #perl6! a good night!
00:33 gfldex m: no strict; $lizmt++ x 44;
00:33 camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "x" in expression "++ x 44" in sink context (line 1)␤»
00:33 gfldex m: no strict; $lizmat++ x 44; # o.0
00:33 camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "x" in expression "++ x 44" in sink context (line 1)␤»
00:41 kid51 joined #perl6
00:42 tokuhirom joined #perl6
00:44 colomon joined #perl6
00:45 psch m: "a" x 4
00:45 camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "x" in expression "\"a\" x 4" in sink context (line 1)␤»
00:45 psch that's somewhat LTA
00:45 psch i mean, with the ++
00:46 psch m: $++ x 4
00:46 camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "x" in expression "++ x 4" in sink context (line 1)␤»
00:49 gfldex m: my $i = $++; say $i;
00:49 camelia rakudo-moar cd7766: OUTPUT«0␤»
00:49 gfldex what's a $++ and who put it into my perl? o.O
00:49 psch gfldex: shorthand for (state $)++
00:49 BenGoldberg joined #perl6
00:52 psch m: sub lizmat is rw { $ }; lizmat++ xx 4; say lizmat
00:52 camelia rakudo-moar cd7766: OUTPUT«4␤»
00:52 psch err, i hope that's not pinging on her end... :S
00:52 psch or belling, or \a-ing or somesuch
00:53 gfldex you can increment me instead if you like
00:53 psch heh, i demonstrated what i meant to, but thanks gfldex++ :)
00:58 flussence given the lack of nick-highlighting for those lines, there's no need to worry about pinging :)
00:58 flussence (handy feature to have, that)
01:00 gfldex i found it in http://design.perl6.org/S02.html#Names
01:00 gfldex but i knew what i was looking for. That's a mean trap for a novice Perl 6 learner
01:01 psch flussence: i guess you're right.  most clients only highlight the own nick on the beginning of the line, don't they
01:02 flussence yeah... I'm using some irssi plugin I found a while back that gives the whole scrollback a 256-colour fruit salad look :D
01:11 ShimmerFairy my client would've highlighted that, fwiw :)
01:20 raiph joined #perl6
01:26 Hor|zon joined #perl6
01:31 gfldex m: my Any is ro $foo; # i'm quite sure Any is declared
01:31 camelia rakudo-moar cd7766: OUTPUT«5===SORRY!5===␤Type 'Any' is not declared␤at /tmp/uYzX7ytRVn:1␤------> 3my Any 7⏏5is ro $foo; # i'm quite sure Any is decl␤Malformed my␤at /tmp/uYzX7ytRVn:1␤------> 3my Any 7⏏5is ro $foo; # i'm quite sure Any is decl␤␤»
01:31 gfldex i'm leaning towards LTA
01:41 ingy joined #perl6
01:44 AlexDaniel gfldex: hmmm I think there was some similar bug…
01:45 gfldex i will dig for the RT tomorrow
01:45 AlexDaniel gfldex: https://rt.perl.org/Public/​Bug/Display.html?id=125902
01:46 AlexDaniel m: my Any $foo is ro;
01:46 camelia rakudo-moar cd7766: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_EJEtDCKjp␤Can't use unknown trait 'is ro' in a variable declaration.␤at /tmp/_EJEtDCKjp:1␤------> 3my Any $foo is ro7⏏5;␤    expecting any of:␤        TypeObject␤        default␤        dyn…»
01:48 psch it's a parsing muck-up somewhere, yeah
01:48 psch m: sub trait_mod:<foobar>() { }; my Any foobar $x
01:49 camelia rakudo-moar cd7766: OUTPUT«5===SORRY!5===␤Type 'Any' is not declared␤at /tmp/Rkh7wF3sHy:1␤------> 3sub trait_mod:<foobar>() { }; my Any 7⏏5foobar $x␤Malformed my␤at /tmp/Rkh7wF3sHy:1␤------> 3sub trait_mod:<foobar>() { }; my Any 7⏏5foobar $x␤␤»
01:49 psch traits between type and var make the grammar confused
02:03 Zoffix joined #perl6
02:13 chenryn joined #perl6
02:15 dayangkun joined #perl6
02:23 secwang joined #perl6
02:27 Hor|zon joined #perl6
02:45 rangerprice joined #perl6
02:45 rangerprice hi
03:18 ParsonsNose joined #perl6
03:23 yeahnoob joined #perl6
03:27 vike joined #perl6
03:28 Hor|zon joined #perl6
03:38 llfourn joined #perl6
04:13 ShimmerFairy joined #perl6
04:28 ShimmerFairy m: package A::B { constant C = 42 }; say A::B::C
04:28 camelia rakudo-moar cd7766: OUTPUT«42␤»
04:28 ShimmerFairy m: package A::B { constant C = 42 }; say A::<B>::<C>
04:28 camelia rakudo-moar cd7766: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kQuWvLN79b␤Confused␤at /tmp/kQuWvLN79b:1␤------> 3ge A::B { constant C = 42 }; say A::<B>:7⏏5:<C>␤    expecting any of:␤        colon pair␤»
04:28 ShimmerFairy ^ any idea why that doesn't work?
04:28 quester joined #perl6
04:29 Hor|zon joined #perl6
04:29 ShimmerFairy m: package A::B { constant C = 42 }; my \foo = A::<B>; say foo::<C>;   # a workaround, but one that feels LTA to need
04:29 camelia rakudo-moar cd7766: OUTPUT«42␤»
04:34 chenryn joined #perl6
04:59 Fluor joined #perl6
05:07 Fluor joined #perl6
05:17 adu joined #perl6
05:25 aborazmeh joined #perl6
05:25 aborazmeh joined #perl6
05:30 Hor|zon joined #perl6
05:50 softmoth joined #perl6
05:51 skogs joined #perl6
05:52 xfix joined #perl6
06:00 dayangkun_ joined #perl6
06:21 darutoko joined #perl6
06:31 Hor|zon joined #perl6
06:33 chenryn joined #perl6
06:35 _dolmen_ joined #perl6
06:48 bjz joined #perl6
06:56 bjz joined #perl6
06:58 domidumont joined #perl6
07:00 nine .tell jnthn Welcome back! Since it wasn't mentioned in the p6weekly, we've started work on implementing your CompUnit design in the curli branch. Progress is somewhat slow but steady. It's a good example of the best way to understand a design being to implement it :)
07:00 yoleaux nine: I'll pass your message to jnthn.
07:04 domidumont joined #perl6
07:15 [Tux] test             50000    39.855    39.739
07:15 [Tux] test-t           50000    39.578    39.463
07:16 telex joined #perl6
07:17 domidumont joined #perl6
07:24 Actualeyes joined #perl6
07:29 lizmat joined #perl6
07:32 Hor|zon joined #perl6
07:35 FROGGS joined #perl6
07:38 softmoth joined #perl6
07:42 bjz joined #perl6
07:42 RabidGravy joined #perl6
07:49 rurban joined #perl6
07:59 abraxxa joined #perl6
08:00 chenryn joined #perl6
08:02 dalek rakudo/nom: 4bdc880 | usev6++ | src/Perl6/Grammar.nqp:
08:02 dalek rakudo/nom: Look for all terminators in case of missing sigil
08:02 dalek rakudo/nom:
08:02 dalek rakudo/nom: Completes fix for RT #120831
08:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4bdc88046a
08:02 dalek rakudo/nom: 438d786 | FROGGS++ | src/Perl6/Grammar.nqp:
08:02 dalek rakudo/nom: Merge pull request #563 from usev6/rt120831
08:02 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=120831
08:02 dalek rakudo/nom:
08:02 dalek rakudo/nom: Look for all terminators and EOF in case of missing sigil
08:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/438d786e28
08:11 cosimo [Coke]: ok, I thought http_proxy support was indeed implemented. Do you have a test case at hand?
08:19 ely-se joined #perl6
08:20 telex joined #perl6
08:21 RabidGravy yes it is, though not for an https connection
08:23 RabidGravy cosimo, while you're here would you except a PR to kebab-case the snake_case method names and remove the (commented out) legacy parts in Cache::Memcached?
08:24 cosimo RabidGravy: I think I can do better than that
08:25 RabidGravy cool
08:25 cosimo RabidGravy: you should now be allowed to push to my perl6-cache-memcached repo
08:26 RabidGravy :) Yeah got it
08:26 aborazmeh joined #perl6
08:26 aborazmeh joined #perl6
08:27 RabidGravy cheers!
08:27 cosimo and thanks
08:28 RabidGravy thanks for making it in the first place
08:30 rindolf joined #perl6
08:32 kmel_ joined #perl6
08:33 Hor|zon joined #perl6
08:33 telex joined #perl6
08:37 [Sno] joined #perl6
08:37 cosimo kebab-case I had never heard before
08:40 leont joined #perl6
08:41 lizmat joined #perl6
08:43 ChoHag I have a Str but Foo, where Foo does Iterable. Mapping over the string works (finally) so the Iterator is doing its thing, but how can I ensure the iterator is used in a for loop too?
08:43 lizmat good *, #perl6!
08:44 ChoHag Wider question, how does perl determine that map uses the iterator but for uses the Str?
08:44 moritz ChoHag: is your variable inside a scalar container?
08:44 ChoHag Yes.
08:44 moritz ChoHag: if yes, "for" will not iterate over it
08:45 ChoHag Is the best kind of answer always another question?
08:45 moritz ChoHag: I'd recommend putting it into an @-sigiled variable
08:46 lizmat m: my Int $a but Iterable; for $a {}   # don't think a @ is needed
08:46 camelia rakudo-moar cd7766: OUTPUT«Method 'iterator' must be implemented by Int+{Iterable} because it is required by a role␤  in any compose_method_table at gen/moar/m-Metamodel.nqp:2661␤  in any apply at gen/moar/m-Metamodel.nqp:2671␤  in any compose at gen/moar/m-Metamodel.nqp:2807…»
08:46 moritz ChoHag: well, if you don't show us actual code, all we can do is ask more questions to find out what's wrong
08:46 lizmat if it does Iterable, it is expected to have an iterator method, and for will call it
08:46 moritz lizmat: I'm pretty sure that's not true
08:46 moritz m: my $a = [1, 2, 3]; for $a { say 42 }
08:46 camelia rakudo-moar cd7766: OUTPUT«42␤»
08:47 moritz m: my $a = [1, 2, 3]; for $a { say 42 }; say $a ~~ Iterable
08:47 camelia rakudo-moar cd7766: OUTPUT«42␤True␤»
08:47 ChoHag lizmat: It certainly seems towork that way.
08:47 moritz ... unless it's inside a scalar container
08:47 moritz m: my \a = [1, 2, 3]; for a { say 42 };
08:47 camelia rakudo-moar cd7766: OUTPUT«42␤42␤42␤»
08:47 Actualeyes joined #perl6
08:48 ChoHag Interestingly the pull-one method is called the first time when looping over the (now-@-sigilled) variable with map but not the second time when looping over it with for.
08:48 ChoHag So, not that I need to in this instance, but is there a way to ensure that Iterator's results aren't cached?
08:49 moritz ChoHag: for might call .cache
08:49 ChoHag Would such an action even make sense or be grounds for taking away one's programming license?
08:49 lizmat if you don't want it cached, you could implement your own .cache method that doesn't do anything, I think
08:50 * lizmat admits to not quite being awake yet
08:50 moritz method cache { self }
08:50 ChoHag Hmm. How do I force a $-sigilled variable to treated as though it's @-sigilled without re-sigilling it?
08:51 ChoHag And does sigilling have one or two ells?
08:51 moritz m: my $a := [1, 2, 3]; for $a { say 42 }
08:51 camelia rakudo-moar cd7766: OUTPUT«42␤42␤42␤»
08:51 moritz ChoHag: you bind to it. Though I'm not sure that's a good idea
08:52 lizmat .oO( isn't that sigillizing ? )
08:52 moritz contrary to what folks believe, sigils do carry meaning in Perl 6
08:52 ChoHag Sorry, not make the variable pretend it's @-sigilled, just treat it in one specific instance as though it is.
08:52 moritz *some folks
08:52 moritz and it's best to use the appropriate sigil
08:52 moritz you can also do
08:52 ChoHag Like I naiively thought for @($haha-I'm-a-list) { ... } did.
08:52 moritz m: my $a = [1, 2, 3]; for @$a { say 42 }
08:52 camelia rakudo-moar cd7766: OUTPUT«42␤42␤42␤»
08:53 moritz yes, that works
08:53 ChoHag Not here. Must be because my object's weird.
08:53 moritz deweirdify it :-)
08:53 ChoHag It's actually a Str but with a role that does Positional and Iterable.
08:54 moritz in German we call that "Eierlegende Wollmilchsau"
08:54 moritz https://en.wiktionary.org/wi​ki/eierlegende_Wollmilchsau
08:55 moritz egg-laying wool-milk-sow
08:55 ChoHag Yes thanks. My 15 year old lessons and Google were both having trouble with that one.
08:56 ChoHag What I'm doing does make a sort of sense. I hope.
08:56 ChoHag I'll know when I've done it.
08:58 ChoHag If.
09:02 dakkar joined #perl6
09:02 ChoHag Interesting. If I start with my pigsheep in an @ it loops correctly in for, if I start with it in a $ then put it into an @, it still thinks its a scalar.
09:02 zakharyas joined #perl6
09:05 ChoHag If someone knows how to make sense of that then great, but I'll live with it (being able to treat the magic bacon like a list is really the exception) but it brings to mind a more useful question - are the syntax changes brought about by the GLR documented?
09:05 ChoHag Also: Mmmm. Furry bacon.
09:08 gfldex m: my ($s1, $s2, $s3) = [1,2],[3,4],[5,6]; my @a1 = <a b>; my @a2 = <c d>; my @a3 = <e f>; .say for flat $s1, $s2, $s3; .say for flat @a1, @a2, @a3;
09:08 camelia rakudo-moar cd7766: OUTPUT«[1 2]␤[3 4]␤[5 6]␤a␤b␤c␤d␤e␤f␤»
09:08 Timbus erm. are you putting your item into an array, or are you.. putting it 'into' an array. like as the first item at position 0
09:09 gfldex some things are flatter then others
09:09 azawawi joined #perl6
09:09 azawawi hi #perl6
09:09 Hor|zon joined #perl6
09:09 ChoHag In a nutshell: method (Str :$to) { $to but WollMilchSau unless $to ~~ WollMilchSau; ...; my @to = $to; ...; }
09:09 Timbus my @thing = $other-thing.list; seems to allow iteration,  but im not sure if you've got something fancy here
09:10 Timbus oh
09:10 gfldex ChoHag: some changes are documented, some are not. It depends on the document and the thing.
09:10 azawawi https://github.com/azawawi/perl6-selenium​-webdriver/blob/master/examples/chrome.t # Automated chrome UI testing in Perl 6 :)
09:10 Timbus well.. that's putting it in the array as the first element isn't it?
09:10 RabidGravy azawawi++ # go go go!
09:11 ChoHag Apparently.
09:11 Timbus you might want $to.list there
09:11 azawawi RabidGravy: thx :)
09:12 Timbus oh but you cant seem to listify your ubject huh.. I missed that. well then..
09:14 azawawi any update on module version support in panda or Zef like PAUSE/CPAN
09:14 azawawi ?
09:14 timotimo ohai happy perl people
09:15 azawawi timotimo: hey there
09:15 lizmat azawawi: http://irclog.perlgeek.de/p​erl6/2015-10-27#i_11437939
09:15 * azawawi reads it
09:16 azawawi lizmat: cool
09:17 lizmat m: use nqp; class A { method a is raw { nqp::list(1,2,3) } }; dd nqp::atpos(A.a,0)   # but not when it's a class method ?
09:17 camelia rakudo-moar cd7766: OUTPUT«This type does not support positional operations␤  in block <unit> at /tmp/jOAHVkWFqK:1␤␤»
09:18 ChoHag Ah that's why the iteration only happens once. my @foo = "bar" but ChickenPig; iterates immediately.
09:18 lizmat .tell jnthn use nqp; class A { method a is raw { nqp::list(1,2,3) } }; dd nqp::atpos(A.a,0)   # is this failure intended, side effect or a NYI ?
09:18 yoleaux lizmat: I'll pass your message to jnthn.
09:18 ChoHag So @something is literally a list, not an object which happens to be listy.
09:19 ChoHag Right?
09:19 lizmat .tell jnthn it works with my/our subs: not working with class method is holding back internal sub -> Rakudo::Internals migration
09:19 yoleaux lizmat: I'll pass your message to jnthn.
09:20 azawawi can we use 'NETWORK_TESTING=1 or 0' in HTTP::UserAgent?
09:21 azawawi i feel it is the right way for tests requiring network testing
09:21 azawawi i know in Perl land there is NO_NETWORK_TESTING and NETWORK_TESTING
09:22 diana_olhovik_ joined #perl6
09:22 quester left #perl6
09:22 azawawi the assumption that tests can access the internet freely is wrong in restricted corporate environments
09:25 timotimo oh lord
09:25 timotimo does the "named arguments inside a method call inside a return call" problem still exist?
09:26 softmoth joined #perl6
09:29 Begi1114 joined #perl6
09:31 lizmat joined #perl6
09:32 lizmat timotimo: doesn't ring a bell to me
09:34 timotimo return Blah.new(:$foo, :$bar);  -- gives "the default constructor for Blah only takes named arguments"
09:34 timotimo my $c = Blah.new(:$foo, :$bar); return $c;  -- works
09:35 tokuhiro_ joined #perl6
09:41 azawawi what's the best module to port to Perl 6 land to handle Zip files?
09:42 timotimo totally build a gui automation thing to drive a WinRAR instance!
09:43 bjz_ joined #perl6
09:43 RabidGravy azawawi, probably Archive::Zip
09:43 xinming joined #perl6
09:44 azawawi im reading its cpan ratings :)
09:44 azawawi one thing i noticed that it is not intuitive... members vs the concept of files
09:45 RabidGravy well it seems to be the thing that most of the things on CPAN depend on
09:45 azawawi cool
09:45 azawawi it depends on Zlib
09:46 RabidGravy azawawi, that is the zip terminology, they aren't files until you put them on disk ;0)
09:46 azawawi but i remember using it before and i was like why is it so complicated...
09:46 CIAvash joined #perl6
09:46 azawawi the API is not that user friendly
09:47 azawawi a good mdule API is one that you can use to accomplish your given task in like 5 minutes
09:48 RabidGravy it depends on what that task is
09:48 azawawi RabidGravy: see https://metacpan.org/source/PHRED/A​rchive-Zip-1.53/examples/extract.pl
09:49 RabidGravy sure, but that doesn't preclude making something on top of it that has an interface that does what *you* want it to do
09:49 azawawi yup
09:50 azawawi kebab-cased API... yummy :)
09:51 RabidGravy for something like zip, it's best to make something a somewhat unintuitive, but flexible and generalised API with the expectation that other people will use it in different ways
09:52 mrf No reason you can't get a bit of both.
09:52 mrf The core functions people are likely to use a lot (Archive and Extract) should be fairly simple to grok
09:53 RabidGravy but I'd go a separate module for that
09:53 mrf RabidGravy: why?
09:53 * DrForr contemplates gyro-case. Somehow I visualize lots of parentheses and whitespace.
09:54 azawawi my $members = File::Zip.unzip('foo.zip').members;
09:54 mrf azawawi: yeah Though I would caution that members might be very specific knowledge to zip docs. Maybe items
09:55 azawawi mrf: i will re-read zip file format first and then implement. Porting blindly = bad
09:55 RabidGravy because if I want to e.g. zip for streaming or storing in a database or whatever I want a fairly low-level API and not be doing with the rest
09:56 mrf Yeah though I caution using the terminology in the Zip docs as it is probably unfamiliar to lots of people using it as a pure archiving tool
09:56 timotimo Archive-Zip only supports deflate, is that the only compression type you'll find in pkzip archives?
09:57 RabidGravy it's the only one that is un-encumbered as I understand it
09:57 mrf RabidGravy: still no reason not to have a more intuitive api for access to the features 90% will want.
09:57 azawawi timotimo: if it can read JARS and firefox XPIs, it would be enough for me atm :)
09:57 mrf Basically I don't see why you can't have your cake and eat it
09:58 timotimo azawawi: i have no idea :)
09:59 azawawi timotimo: Jars (Java archives) are zip files along with firefox extensions (XPIs)
09:59 mrf azawawi: any way this could be hoked into IO. so that "file.zip".IO.unzip would work?
09:59 RabidGravy mrf, we appear to be at cross purposes. I'm not arguing against providing such an interface, just for a separate way of providing it
10:00 RabidGravy e.g.  Archive::Zip. Archive::Zip::File in the same distribution
10:00 diana_olhovik__ joined #perl6
10:00 RabidGravy the latter using the former to provide the common interface
10:00 azawawi mrf: true at the end of the day, you need to unzip a file entry and maybe read a particular file entry to change a value or something
10:00 mrf RabidGravy: Clearly I misinterpretted you. I was under the impression you were arguing for seperate distributions
10:01 * azawawi Travis CI rocks (http://docs.travis-ci.com/use​r/gui-and-headless-browsers/) :)
10:01 RabidGravy no, just a separation of concerns
10:01 mrf RabidGravy: then I completely agree
10:02 RabidGravy of course there's nothing to preclude someone who has a completely different view of what the simple API from looking like making a completely different one as a separate distribution ;-)
10:06 espadrine joined #perl6
10:06 RabidGravy azawawi, it is entirely possible, having looked at this for a second or two, that this could be acomplished with a few changes to Compress::Zlib::Raw and a wrapper module
10:07 RabidGravy as most likely you're going to end up using zlib anyway
10:08 azawawi true
10:08 RabidGravy strangely, it appears (or at least ldd tells me,) that the "unzip" here uses libbz2
10:08 * azawawi starts working on it :)
10:10 nine RabidGravy: so the user has to decide up front which interface to use. What if the requirements change as the program grows and the user suddenly needs functionality that's no longer covered by the simplified API?
10:12 RabidGravy they change their code, being programmers and all
10:12 nine Sucks to rewrite everything just because you need an additional feature in one place
10:13 nine I'm arguing here for a scalable API with high level functions that cover the most common use cases and still can be combined with lower level methods for the interesting edge cases.
10:13 RabidGravy er, but how do they use different functionality without doing that?
10:15 RabidGravy and that API can be provided by a hierarchy of modules
10:15 nine Like in Inline::Perl5 you usually will use only use Foo:from<Perl5> and maybe EVAL "foo()", :lang<Perl5>; but if you need to, you can combine that with $p5.call, .invoke, .require and so on.
10:15 Odud joined #perl6
10:16 RabidGravy if Foo::Simple uses Foo to provide some functionality then a user of Foo::Simple has the features of Foo at their disposal
10:17 Odud I'm trying to install a module using panda, I can see it in http://modules.perl6.org/ but it doesn't show up when I do panda list?
10:17 bjz joined #perl6
10:17 RabidGravy anyway, more important things like checking out a south asian sweet shop for divali gifts call
10:17 RabidGravy have fun
10:18 azawawi so basically Travis CI comes with PhantomJS (headless web-kit based browser testing) and firefox (via X virtual frame buffer). Cool :)
10:18 kjs_ joined #perl6
10:20 azawawi https://travis-ci.org/azawawi/perl6-se​lenium-webdriver/builds/87634099#L1348    # firefox webdriver is being tested now via Travis CI :)
10:29 dalek doc: 97bcfa4 | lizmat++ | doc/Type/Supply.pod:
10:29 dalek doc: Some work on documenting Supply.throttle
10:29 dalek doc:
10:29 dalek doc: WIP, more later today during the lulls at OSCON Europe
10:29 dalek doc: review: https://github.com/perl6/doc/commit/97bcfa4083
10:29 lizmat afk for  a few hours&
10:32 Upasaka joined #perl6
10:34 Odud ah, needed a panda update first, now found and installed
10:35 kid51 joined #perl6
10:37 rindolf joined #perl6
10:43 lucasb_ joined #perl6
10:51 zakharyas joined #perl6
10:56 lucasb_ Is jnthn available? Is he the only one who can upload releases to moarvm site? I'm just reminding. I don't need it anymore; I've already built it from the repo.
10:56 chenryn joined #perl6
10:56 zakharyas1 joined #perl6
10:57 jnthn lucasb_: Yeah, I'm back now...will do the tarball today.
10:57 yoleaux 26 Oct 2015 21:47Z <AlexDaniel> jnthn: No, there was no input from TimToady yet. Although I like my pull request the way it is, there are a couple of things to think about: “out” or “runout”, “runout” or “run-out”, and whether qx// should still exist with “no strict”.
10:57 yoleaux 07:01Z <nine> jnthn: Welcome back! Since it wasn't mentioned in the p6weekly, we've started work on implementing your CompUnit design in the curli branch. Progress is somewhat slow but steady. It's a good example of the best way to understand a design being to implement it :)
10:57 yoleaux 09:18Z <lizmat> jnthn: use nqp; class A { method a is raw { nqp::list(1,2,3) } }; dd nqp::atpos(A.a,0)   # is this failure intended, side effect or a NYI ?
10:57 yoleaux 09:19Z <lizmat> jnthn: it works with my/our subs: not working with class method is holding back internal sub -> Rakudo::Internals migration
10:57 jnthn lucasb_: And yeah, we should figure out a way to scale the number of people who can do such uploads to be > 1 :)
10:57 lucasb_ jnthn++, cool!
10:58 jnthn nine++ # working on implementing the compunit design \o/
10:58 zakharyas joined #perl6
10:59 jnthn .tell lizmat Intended; we assume subs are in the same language and so will always return us a value that doesn't need hll-mapping, but for method calls we always hll-map (at the callee side, so "is raw" doesn't change anything)
10:59 yoleaux jnthn: I'll pass your message to lizmat.
11:00 jnthn .tell lizmat You can explicitly nqp::findmethod(A, 'a')(A) to avoid it. Alternatively, we could special-case calls on Rakudo::Internals to not code-gen a hllize, which would be the more pretty option in the code.
11:00 yoleaux jnthn: I'll pass your message to lizmat.
11:00 azawawi mrf: https://pkware.cachefly.net/we​bdocs/casestudies/APPNOTE.TXT   # zip file spec
11:02 azawawi mrf: 4.1.3 "... Compression method 8 (Deflate) is the method used by default by most     ZIP compatible application programs. ..."
11:02 eone joined #perl6
11:02 spider-mario joined #perl6
11:12 timotimo m: say Rat.^roles; say FatRat.^roles; say "<- huh?"
11:12 camelia rakudo-moar cd7766: OUTPUT«((Rational[Int,Int])​)␤((Rational[Int,Int]))␤<- huh?␤»
11:13 ParsonsNose joined #perl6
11:14 softmoth joined #perl6
11:16 timotimo i mean ... that's how it's defined, but is that right?
11:21 jnthn MoarVM 2015.10 release now at http://www.moarvm.org/rele​ases/MoarVM-2015.10.tar.gz
11:21 nine m: my subset PosInt of Int:D where * > 0; my PosInt $i = PosInt; say $i.defined;
11:21 camelia rakudo-moar cd7766: OUTPUT«False␤»
11:22 nine jnthn: your use of a subset of a :D type in your gist has opened up a can of questions like ^^^
11:23 nine jnthn: the bug in Metamodel::DefiniteHOW it uncovered is already fixed
11:23 weihan joined #perl6
11:23 nine jnthn: though neither FROGGS++ nor I are sure if the fix is actually correct :)
11:24 jnthn Well, given PosInt is a type object, that should probably complain... :)
11:28 pmurias joined #perl6
11:29 pmurias jnthn: the list of test files 'node nqp-bootstrapped.js' passes: http://paste.debian.net/318326
11:30 jnthn Wow
11:30 jnthn pmurias++
11:30 jnthn pmurias++ for expanding NQP's test coverage too :)
11:31 timotimo yes, very pmurias++
11:31 jnthn FROGGS: On the perf issue I mentioned yesterday: it appears that it's actually a "returns Int:D" that is costly
11:32 * jnthn is also disturbed by a lack of inlining in the profile he's looking at
11:33 timotimo yes, lack of inlining's also a thing i've been seeing more and more often
11:37 adhoc_ joined #perl6
11:41 jnthn Ouch, the "let Failure though return" has cost us a lot there :/
11:41 mrf Should named captures always appear in match object even if the calling rule was called using <.rule>. ie. should rule TOP {<.bar>} token bar {<baz>} give you a $<baz>
11:41 timotimo i'm still amazed at how jnthn can get from a profile to such a realization; i have a hard time with that, still ...
11:42 jnthn timotimo: Well, looking at spesh_log by now :)
11:42 timotimo mrf: i don't think so
11:42 jnthn mrf: No
11:42 mrf Why. What is teh rational.
11:42 timotimo mrf: you'd have a $<bar><baz> if it did capture, but the . throws out the $<bar> completely
11:43 timotimo and just putting named captures into a caller's result seems very icky
11:43 mrf for RFC grammars its really annoying and quite slow to have to provide either a massive heirachy or none of the tokens people want.
11:43 FROGGS jnthn: it is nice that you are back :o)
11:43 timotimo then you can successively { make $<...> } and use $<foo>.ast
11:43 jnthn mrf: You're aware of actions? :)
11:43 mrf jnthn: I am ish
11:43 jnthn mrf: Those let you decouple the data structure you build from the grammar structure.
11:43 mrf I am aware of the concept of actions.
11:43 jnthn mrf: Which would probably help
11:44 timotimo jnthn: do we actually generate a bit of code into our methods/subs to do the failure-returning/type-check thing?
11:45 mrf jnthn: would you suggest that in these cases it is likely best to declare almost everything with <.rule> and just use actions to actually handle data mapping from the parse
11:45 timotimo you still need to capture the subrule in order to get at its .ast
11:45 mrf timotimo: ah ok
11:47 jnthn timotimo: Yeah, but I need to work out exactly what/why
11:48 ely-se joined #perl6
11:50 tokuhiro_ joined #perl6
11:50 khw joined #perl6
11:51 colomon joined #perl6
11:52 sufrostico joined #perl6
11:55 abraxxa joined #perl6
11:57 Jo_ joined #perl6
11:58 Jo_ left #perl6
12:11 loren joined #perl6
12:15 masak hi, #perl6
12:15 yoleaux 26 Oct 2015 13:46Z <lizmat> masak: hejki told us to say hi to you at EuroOSCON
12:15 masak hej, hejki :)
12:15 DrForr UGT, masak.
12:17 pmurias masak: hi
12:17 * masak is working on 007 tonight
12:18 ShimmerFairy "*sigh* For the last time, Bond, this equipment is all very expensive. I really don't think you're getting this."
12:19 DrForr Bummer, you missed yesterday's release date :)
12:19 masak :)
12:19 masak we've decided to go and watch the movie while we're still in .cn
12:19 masak with luck, it'll be subtitled, not dubbed
12:20 DrForr I should check to see if there's an IMAX in Lyon.
12:20 timotimo which "the" movie are we talking about?
12:20 timotimo is there a new james bond movie?
12:20 DrForr Spectre, I assume.
12:21 masak aye
12:22 DrForr Pathe' Carre de Soie.
12:23 DrForr Bummer, Nov. 11th.
12:28 masak oh? then maybe it hasn't premiered here either...
12:28 tadzik hejki :)
12:28 * DrForr watches the trailer.
12:29 tadzik I still haven't watched the "old" bond movie
12:29 tadzik with blond bond
12:29 masak tadzik: there's, like, three of them
12:30 DrForr 'the "old" bond movie' is somewhat ambiguous :)
12:30 tadzik oh, time flies :)
12:30 oha that "old" between quotes will cost you a lot in the future, tadzik
12:30 masak tadzik: you could just read the 007 README.md instead *boom dssh*
12:30 tadzik well, with Daniel Craig or so
12:30 tadzik masak: I think I did :)
12:30 masak well, no need to watch the movie then
12:30 tadzik oha: the old part, or the between quotes part?
12:30 oha tadzik, that, too
12:30 tadzik . o O ( I feared a "yes" answer )
12:31 tadzik well, old as in "not the newest one which comes out a day after I get the steam controller"
12:31 oha you are making it worse :)
12:32 DrForr Well, given /Quantum of Solace/ that's not entirely unreasonable.
12:32 dalek problem_solver_tutorial: 55bece5 | lichtkind++ | chapter/text1.md:
12:32 dalek problem_solver_tutorial: updated overview chapter 1
12:32 dalek problem_solver_tutorial: review: https://github.com/perl6/problem_​solver_tutorial/commit/55bece5e7c
12:34 tadzik hey, I only watched star trek to understand the jokes that you oslians made on #is
12:34 tadzik keep pestering me and I'll have to watch the bonds too! :P
12:35 Begi1115 joined #perl6
12:43 jdv79 is there an equiv for .? for a private meth?
12:44 masak jdv79: no, I don't think so
12:44 flussence .oO( ‽ )
12:44 jdv79 self.?pubmeth but self!?privmeth
12:44 masak jdv79: guess you can always MOP it
12:44 timotimo um, isn't .? for when you don't know if a method exists
12:44 jdv79 yes but what if its private
12:44 timotimo hm, with private methods you may be inside a role and trying to call a private method on another composed role or the target class
12:44 timotimo so there *is* some sense to that
12:44 masak I'd like to call y'all's attention to tonight's 007 oddity: a proposed melt() built-in: https://github.com/masak/007/issues/61
12:45 jdv79 i'll just workaround it then
12:45 kaare_ joined #perl6
12:47 rurban joined #perl6
12:47 timotimo is your use-case actually where you have roles or something and you don't know if a given private method will be there?
12:47 masak m: role A { method foo { self!bar() } }; role B { method !bar { say "OH HAI" } }; class C does A does B {}; C.new.foo
12:47 camelia rakudo-moar cd7766: OUTPUT«OH HAI␤»
12:47 masak huh. :)
12:50 timotimo i remember when the decision was made that private methods and attributes should be shared between roles and such
12:50 flussence oh timotimo, did you see? tokuhirom++ made a WebSocket module \o/
12:51 timotimo yes!
12:51 timotimo with client *and* server parts!
12:52 kjs_ joined #perl6
12:52 * flussence scratches one thing off my ever-growing list of things that get endlessly procrastinated on...
12:55 RabidGravy joined #perl6
12:58 masak tokuhirom++ # making Perl 6 a lot more interesting
12:58 jnthn Any thoughts on https://rt.perl.org/Ticket/Display.html?id=126459 ?
12:59 jnthn exit *does* cause END phasers to be run, so arguably LEAVE ones could too BUT I don't see that behavior extending to LEAVE blocks in call stacks on other threads, and would kinda prefer not to open this can of worms and leave things as they are.
13:00 jnthn (The issue is nothing to do with die/fail and everything to do with the exit call in the CATCH, fwiw)
13:02 RabidGravy yeah, I'd go with documenting the behaviour
13:03 softmoth joined #perl6
13:03 kmel joined #perl6
13:03 masak jnthn: it's not immediate to me that LEAVE has the same claim to running on exit() as END does
13:04 masak jnthn: LEAVE has some kind of guaranteed-ness about it *if* the program is still executing normally
13:04 jnthn I also don't really buy the "different compunit" argument too much, in so far as if you bury exit calls in modules you're already asking for trouble.
13:05 [Coke] (not for https) - ok, there's a redirect from http to https. ah well.
13:05 RabidGravy if you exit in a module you should be taken outside
13:05 masak RabidGravy: ...and smooched?
13:06 masak jnthn: didn't we have an exit in a module at some point at $client? :P
13:06 masak (someone else's code, that is)
13:07 jnthn Probably :P
13:07 jdv79 timotimo: yes.
13:08 timotimo OK
13:11 RabidGravy masak, smooched is an option
13:13 RabidGravy but yeah once you've left the building by the window you can't expect to swipe your door card on the way out
13:15 timotimo so we should call it "defenestrate" instead of "exit"?
13:16 pink_mist throw-out-the-back-entrance
13:17 psch so the CATCH outside of &f delays the exception unwinding until after it's finished?
13:17 psch because S04 says "at every block exit time (even stack unwinds from exceptions)" for LEAVE
13:17 timotimo it has to, doesn't it?
13:17 psch i'm just asking to understand correctly :)
13:18 masak m: constant foo = say("OH HAI"); BEGIN { say "yep" }
13:18 camelia rakudo-moar cd7766: OUTPUT«OH HAI␤yep␤»
13:18 psch timotimo: but yes, "it has to" seems intuitively right.  i mean, unwinding the exception means letting it bubble up into it's dealt with
13:19 psch and if "dealing with it" means bailing the program we don't reach the spot where we finished dealing with it, which would be where LEAVE would be called
13:19 sufrostico joined #perl6
13:19 tadzik hmm, does anyone remember a piece of documentation of sorts that explained grammars giving URI parsing as an example?
13:19 tadzik I think it might've been moritz++'s site, but perlgeek.de looks down
13:19 masak m: say "and then there was runtime"; role R { say "OH HAI" }; class C does R {}
13:19 camelia rakudo-moar cd7766: OUTPUT«OH HAI␤and then there was runtime␤»
13:19 psch tadzik: the wikibook has URL
13:20 psch https://en.wikibooks.org/wiki​/Perl_6_Programming/Grammars
13:20 dalek nqp: 5db12c0 | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
13:20 dalek nqp: Don't allow quantifying anchors.
13:20 dalek nqp:
13:20 dalek nqp: They're certain to be zerowidth, so it almost always indicates a
13:20 dalek nqp: mistake.
13:20 dalek nqp: review: https://github.com/perl6/nqp/commit/5db12c088c
13:20 jnthn psch: We don't unwind the stack until *after* the CATCH block has been left
13:20 psch tadzik: and http://essays.ajs.com/2010/05/​writing-perl-6-uri-module.html has URI
13:20 jnthn psch: That is, the CATCH is in the dynamic scope of the die
13:20 masak m: say "run"; class C { say "!" }
13:20 camelia rakudo-moar cd7766: OUTPUT«run␤!␤»
13:20 jnthn (On the stack top)
13:20 masak huh :)
13:20 jnthn Thus why resumable exceptions are trivial: it's just a return from the handler
13:21 masak m: say "run"; role R { say "role" }; class C does R { say "class" }
13:21 camelia rakudo-moar cd7766: OUTPUT«role␤run␤class␤»
13:21 tadzik psch: yeah, I recall something that was perhaps not 100% RFC-compliant but very easy to understand and explain, with not too many fancy characters :P
13:21 jnthn Also means you have the dynamic scope where the exception took place.
13:21 masak m: say "run"; role R { say "role" }; for ^3 { class C does R { say "class" } }
13:21 camelia rakudo-moar cd7766: OUTPUT«role␤run␤class␤class␤class␤»
13:22 psch jnthn: okay, i think that means i understood it mostly correctly :)
13:22 dalek rakudo/nom: d5786ca | jnthn++ | tools/build/NQP_REVISION:
13:22 dalek rakudo/nom: Bump for error on quantifying anchors.
13:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d5786ca2f3
13:22 dalek roast: c49587f | jnthn++ | S05-metachars/line-anchors.t:
13:22 dalek roast: Tests for RT #126438.
13:22 dalek roast: review: https://github.com/perl6/roast/commit/c49587f369
13:22 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=126438
13:22 Begi1115 joined #perl6
13:23 jnthn That was an easy RT at least :)
13:27 brrt joined #perl6
13:30 AlexDaniel joined #perl6
13:36 tokuhiro_ joined #perl6
13:37 bjz joined #perl6
13:37 skids joined #perl6
13:40 [Coke] jnthn++ #moarvm tarball. Thanks!
13:40 RabidGravy cosimo, yay! https://travis-ci.org/cosimo/perl6-cache-memcached
13:40 bjz_ joined #perl6
13:46 psch hrm, i'm not really seeing a way forward wrt r-j
13:46 timotimo todo passed!
13:47 psch from the looks of it, the NQP-level concept of a CompUnit is too closely tied to "singular output-file" to make the general case of splitting classfiles feasible
13:47 timotimo luckily we don't expect user code to be as big as the setting is right now
13:48 timotimo so we can probably do something to partition the core setting
13:48 pmurias arbitrary limitations suck
13:48 jnthn *sigh* JVM :/
13:48 jnthn We've already hit and worked around a bunch of limitations.
13:48 psch pmurias: yeah, especially considering the classfile field that holds the size is actually 32bit afair, but still limits at 2**16
13:49 jnthn For this one, I'm not sure what to do.
13:49 psch well, if we accept the conjecture that only CORE.setting is large enough to need splitting it could probably special-cased
13:49 jnthn We always --target=jar so we could feasibly produce one class file that forwards method calls to all the rest
13:49 Skarsnik joined #perl6
13:49 jnthn And pack the lot into the JAR
13:50 psch i'm thinking something along the lines of splitting the CU into a super- and subclass, which should be workable when entering from the subclass
13:50 psch although figuring out how, when and where to split is gonna be fun
13:51 psch but again, in a special case it should be workable
13:51 jnthn *nod*
13:51 jnthn Ugh
13:52 jnthn What's actually too large?
13:52 jnthn Number of methods?
13:52 jnthn Or the amount of bytecode?
13:52 psch the latter
13:52 jnthn bah
13:52 psch "The value of the code_length item must be less than 65536."
13:52 psch it bails with a "Classfile too large" RTE
13:52 timotimo perhaps we can improve our code-gen to bridge the gap for another month or two
13:53 jnthn Huh? Really? CORE.setting compiled into 64KB oc doe?
13:53 jnthn *of code?
13:53 jnthn (until recently)
13:53 * jnthn can't believe that...
13:53 psch jnthn: i think code_length is number of ins, not bytes
13:53 timotimo we may be hitting some degenerate case or something
13:54 FROGGS perhaps 65536 frames or something similar?
13:55 psch i'm gonna check the classfile for cd77669d09d38e5ddb89ee8f6c8392bacebdf829 (which still compiled) for the value the classfile spec is talking about
13:55 psch just to verify that's actually what's behind this
13:56 psch "The last byte of the last instruction in the code array must be the byte at index code_length - 1. " 'nother bit from the spec
13:57 ilmari http://docs.oracle.com/javase/s​pecs/jvms/se7/html/jvms-4.html says it's bytes
13:57 ilmari http://docs.oracle.com/javase/spec​s/jvms/se7/html/jvms-4.html#jvms-4.7.3 specifically
13:57 ilmari that's a for a single method
13:58 psch mhm, i might've been misreading a lot, it seems
13:58 psch in my defense, actually reading through the whole standard... well :P
13:58 psch so it's probably not code_length, but an actual limit on the classfile, which is specified elsewhere..?
13:59 dalek nqp: 8c1fe86 | jnthn++ | src/HLL/Grammar.nqp:
13:59 dalek nqp: Fix whitespace.
13:59 dalek nqp: review: https://github.com/perl6/nqp/commit/8c1fe86c64
13:59 dalek nqp: a23e6c1 | jnthn++ | src/HLL/Grammar.nqp:
13:59 dalek nqp: Add missing non-assoc check as found in STD.
13:59 dalek nqp:
13:59 dalek nqp: Prevents things like ++$foo++ from compiling.
13:59 dalek nqp: review: https://github.com/perl6/nqp/commit/a23e6c15ed
13:59 ilmari constant_pool_count, fields_count, methods_count and attributes_count are 16bit
13:59 aborazmeh joined #perl6
13:59 aborazmeh joined #perl6
14:00 dalek rakudo/nom: 58029ca | jnthn++ | tools/build/NQP_REVISION:
14:00 dalek rakudo/nom: Bump NQP_REVISION for non-assoc error.
14:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58029ca004
14:00 pmurias psch: isn't code_length a per method limit?
14:00 dalek roast: 5988574 | jnthn++ | S03-operators/precedence.t:
14:00 dalek roast: Test for RT #125210.
14:00 dalek roast: review: https://github.com/perl6/roast/commit/5988574c93
14:00 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=125210
14:01 psch pmurias: yeah, ilmari++ hinted at that.  i've apparently misread that
14:01 jnthn There's one more off the xmas list :)
14:01 psch it's a pity the jvm doesn't tell which constant exactly was exceeded, if that's the problem
14:02 g4 joined #perl6
14:02 timotimo ah, so you're grabbing the last one that still compiles and look at which value is closest to some arbitrary limit
14:03 jdv79 joined #perl6
14:03 tokuhiro_ joined #perl6
14:03 tokuhiro_ joined #perl6
14:04 psch looks like it's the constant pool
14:04 [Coke] I didn't google hard, but some links implied it was a limit on the tool we were using to generate the bytecode.
14:04 psch 0000000: cafe babe 0000 0033 ff9f 0100 2831 4331
14:04 psch ff9f looks bad :P
14:04 timotimo the ff9f part?
14:04 pmurias timotimo: grepping the jvm source code could show you the exact value
14:04 timotimo ugh :) :)
14:05 psch as in, it's the constant pool count
14:06 timotimo what kinds of things land in there?
14:06 timotimo it's not just integers and strings, right?
14:06 azawawi joined #perl6
14:06 jnthn Callsite descriptors too iirc
14:06 jnthn And type descriptors
14:06 azawawi hi
14:07 timotimo hum.
14:07 psch timotimo: well, the constant pool starts right after the count in the file
14:07 azawawi first attempt at unzipping a zipped archive https://github.com/azawawi/s​cripts/blob/master/unzip.p6  # currently displaying file headers, not uncompressing but we're nearly there :)
14:08 psch timotimo: and it has type descriptors, method descriptors, P6-level attribute names
14:08 psch and lots other, too...
14:08 psch like, names of serialized files
14:08 timotimo so we should re-name attributes so that some classes can re-use those names :D
14:08 softmoth joined #perl6
14:09 psch that could work, yes... :P
14:09 timotimo ugh
14:10 psch on that note, it's pretty much only integers and strings that land there, but those strings might be any of the listed examples above
14:10 psch especially 'cause we're using strings in nqp mostly to write bytecode, which needs descriptors
14:10 timotimo can you give us a dump of those?
14:11 timotimo or rather
14:11 timotimo tell us how to dump those strings :)
14:11 [Coke] RT: 1040, LTA: 89; weird: 12, NOM: 8; tests: 10; xmas: 72
14:12 timotimo may not be such a good idea to upload a gigantic bunch of strings like that
14:12 [Coke] glr: 4
14:12 timotimo also, perhaps we want to shorten the bytecode-only strings
14:12 [Coke] segfault: 10
14:13 psch timotimo: uhm, i'm using xxd
14:13 timotimo oh, it's that easy?
14:13 timotimo just unzip the .jar and xxd?
14:13 psch timotimo: yeah, xxd the .class
14:15 timotimo first i gotta have one at all :|
14:15 timotimo cd77669d09d38e5ddb89ee8f6c8392bacebdf829 is the one i'm going to make
14:15 psch yeah, that's the one i have here
14:15 timotimo good
14:16 masak lol, I blogged! http://strangelyconsistent.org/​blog/macros-time-travel-is-hard
14:17 PerlJam masak++ (if nothing else, for the title :)
14:17 psch m: 0xfffe - 0xff9f
14:17 camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "-" in expression "0xfffe - 0xff9f" in sink context (line 1)␤»
14:17 masak heh :)
14:17 psch m: say 0xfffe - 0xff9f
14:17 camelia rakudo-moar cd7766: OUTPUT«95␤»
14:17 gfldex masak: can i read that now or do i have to wait until the future becomes the present?
14:17 psch this also means that e8d7577b662a1ab85d9ed080d3a8eff56036b016 adds at least 96 constant pool entries...
14:17 psch that feels somewhat much
14:17 PerlJam gfldex: the future is already the past!  you're too late!
14:18 PerlJam masak: "DeLoeran" ?
14:18 masak ugh. fixing.
14:19 PerlJam masak: btw, I think changing the language used for macros is a necessity for clarity and understanding.  So, kudos on that.
14:19 masak typo fix'd.
14:19 chenryn joined #perl6
14:19 masak PerlJam++
14:21 andreoss joined #perl6
14:21 * PerlJam adds "macros are gnarly" to his imaginary masak quote file
14:26 psch timotimo: shortening doesn't help with this, we have too many strings, not too long strings :)
14:26 timotimo psch: i didn't mean shortening, just sharing
14:26 psch oh
14:27 psch well, classes with the same descriptor are already shared
14:27 andreoss left #perl6
14:27 psch and for codegen we don't really use many strings that aren't descriptors
14:27 timotimo hmm
14:29 psch ironically, if we didn't need to split methods we'd probably not run into the constant pool size limit yet...
14:29 timotimo we seem to have a gigantic amount of flattening_* strings in there
14:29 timotimo like, up to ~200
14:30 psch and pres_topic_*s too
14:30 timotimo these are probably names for locals, so we're probably asking for unique names from a block too far up in the tree?
14:30 timotimo i thought those are per QAST::Block?
14:30 pmurias maybe replacing some strings with integers would help?
14:31 timotimo !HANDLER_*, too
14:31 dalek rakudo/nom: bd2d5c4 | jnthn++ | src/core/Capture.pm:
14:31 dalek rakudo/nom: Fix .perl on Capture with no valid $!list part.
14:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd2d5c40cf
14:31 dalek rakudo/nom: 5cfda30 | jnthn++ | src/core/List.pm:
14:31 dalek rakudo/nom: Prevent creation of Capture from lazy list.
14:31 dalek rakudo/nom:
14:31 dalek rakudo/nom: Rather than just hanging (which was a slight improvement from the
14:31 dalek rakudo/nom: pre-GLR behavior, which was to give back an empty Capture, meaning
14:31 dalek rakudo/nom: you could get silent bogus matches on an empty array unpack in a
14:31 dalek rakudo/nom: signature). Thus this addresses RT #123581. In a future Perl 6, we
14:31 dalek rakudo/nom: may find a way to allow Capture to contain infinite things. But not
14:31 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=123581
14:31 dalek rakudo/nom: for 6.christmas.
14:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5cfda30b26
14:31 psch mhm, "don't use $_" and "don't give int constants meaningful names" would probably help quite a bit
14:31 timotimo fatalizee_*, too
14:31 timotimo i wonder why we're getting such high numbers
14:32 Aggressively_Alp joined #perl6
14:32 raiph joined #perl6
14:32 jnthn There are names of...locals, right?
14:32 timotimo if those get a little thinned out, i'm sure we'll have enough space
14:32 timotimo jnthn: i think so, yeah
14:32 * jnthn wonders if we actually need to preserve those down to bytecode level
14:32 jnthn I mean, we don't in Moar
14:32 tokuhirom joined #perl6
14:33 Skarsnik Hello. I just created a module (Gumbo) The module document said to tell someone one IRC to have it added to the perl6 modules list: https://github.com/Skarsnik/perl6-gumbo
14:33 psch ugh
14:33 jnthn They're just for identification during compilation; so far as we care beyond that we can call then local_0, local_1, etc.
14:33 psch jnthn: doesn't that mean pre-codegen inlining..?
14:33 jnthn psch: No
14:33 psch oh, or just calling them the same, yeah that would work too
14:33 jnthn psch: Right :)
14:33 timotimo that's for the Perl6::Optimizer to do
14:33 psch err uhm
14:33 psch no, it doesn't help
14:33 jnthn psch: Could even fix it in the bytecode generation
14:34 jnthn Oh?
14:34 psch wait, it does
14:34 psch misthought there
14:34 lichtkind joined #perl6
14:34 psch if all the locals are numbered the same
14:34 psch of course it helps
14:34 psch as in, every block starts his locals at 0
14:34 timotimo probably also not terribly hard to implement
14:35 timotimo would that also help on moarvm to keep .moarvm files a little bit smaller?
14:35 RabidGravy Skarsnik, it's make a pull request to add the line to https://github.com/perl6/eco​system/blob/master/META.list
14:35 timotimo though sometimes the local names have a tiny bit more information in them
14:35 jnthn timotimo: On MoarVM we already don't preserve that info
14:35 timotimo ...oh?
14:35 jnthn timotimo: In the bytecode locals just have indexes.
14:35 jnthn Since local = register
14:35 timotimo indeed!
14:36 dalek roast: 54f672b | jnthn++ | S02-types/capture.t:
14:36 dalek roast: Tests for RT #123581, plus one other bug.
14:36 dalek roast: review: https://github.com/perl6/roast/commit/54f672b4e0
14:36 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=123581
14:36 Skarsnik RabidGravy, thx, how I do that? Git is very confusing for me.
14:36 psch so that's replacing all the (overly) meaningful arguments to QAST::Node.unique() with "local", right?
14:36 timotimo either that or do it "in post"
14:36 jnthn psch: no no, just those for *locals*
14:37 psch uhm, right
14:37 sciurius joined #perl6
14:37 psch i'd prefer that "in post", but i'm not sure in how far we still know what's supposed to be local there
14:37 psch 76 calls to Node.unique, fwiw
14:37 masak 'night, #perl6
14:37 RabidGravy Skarsnik, fork, the https://github.com/perl6/ecosystem. clone your fork locally, make the change, push to your fork, make Pull Request in github
14:38 RabidGravy in summary
14:38 jnthn psch: Around https://github.com/perl6/nqp/blob/m​aster/src/vm/jvm/runtime/org/perl6/​nqp/jast2bc/JASTCompiler.java#L205 I think
14:40 dakkar mrf: https://gist.github.com/da​kkar/07b3c50bdf899421489c
14:41 ely-se joined #perl6
14:47 Skarsnik RabidGravy, thx for the help :)
14:48 psch hm, neither pres_topic_* nor fatalizee_* actually appear in the decompiled classfile
14:49 psch as in, nothing is loaded via those strings
14:49 psch i guess that just confirms that they're local to a given method
14:49 Actualeyes left #perl6
14:50 timotimo how do you mean "nothing is loaded"?
14:51 dalek nqp: a513828 | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
14:51 dalek nqp: [js] Set the method_cache on a knowhow metaobj to make nqp::can work.
14:51 dalek nqp: review: https://github.com/perl6/nqp/commit/a5138287af
14:51 dalek nqp: fa7a2d5 | (Pawel Murias)++ | t/nqp/90-findmethod.t:
14:51 dalek nqp: Test nqp::can/nqp::findmethod on the knowhow instance and metainstance.
14:51 dalek nqp: review: https://github.com/perl6/nqp/commit/fa7a2d500d
14:51 dalek nqp: b100410 | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
14:51 dalek nqp: [js] Make nqp::can work on the knowhow attribute metaobjects. Implement add_method on the knowhow metaobject.
14:51 dalek nqp: review: https://github.com/perl6/nqp/commit/b100410573
14:51 psch timotimo: ldc #\d+
14:51 psch timotimo: i.e. load constant
14:52 timotimo oh
14:52 psch timotimo: other cases load a constant and e.g. invoke it as method
14:52 timotimo so the constants are there, but not used at all?
14:52 psch or constructor or whathaveyou
14:52 psch timotimo: it looks like that, yeah
14:53 jnthn Well, just for debugging info I'd guess
14:53 timotimo OK. well, even if we can't kick them out completely (for some reason?), if we get to have them share names it'd be a gigantic win for the amount of constants we have
14:53 timotimo i expect a 75% decrease in constant pool size
14:53 timotimo just from holding pagedown on strings blah.class | less
14:54 psch 24282 constants are actually loaded
14:54 psch so maybe not 75%, but around 50% might be possible
14:54 timotimo how many of those constants are going to be sharing names later on?
14:57 timotimo why the ... how come 768ECFB91FF8D3046E74BE1165F9984E57671A01 appears a crazy amount of times in strings blah.class
14:57 moritz is that the hash of some object that's referenced everywhere?
14:57 psch i'd guess it's BOOTSTRAP
14:57 timotimo i expect it's a reference to another compunit
14:58 hoelzro o/ #perl6
14:58 jnthn wval probably
14:58 timotimo but why is the whole string in there rather than just a reference to the string constant pool?
14:58 jnthn timotimo: It is, I'd guess?
14:58 RabidGravy Skarsnik, there's a couple of things not quite right with your META.info
14:58 jnthn timotimo: And they all refer to the same constant, and your dumper is derefing it?
14:58 RabidGravy comments on the PR
14:58 timotimo 21181 768ECFB91FF8D3046E74BE1165F9984E57671A01
14:58 Skarsnik Yes, I just saw the 'comment'
14:58 timotimo jnthn: the dumper is "strings" :)
14:58 RabidGravy cool
14:59 timotimo jnthn: strings doesn't know anything about references
14:59 dalek roast: 20171ea | jnthn++ | S09-typed-arrays/hashes.t:
14:59 dalek roast: Tests to codify behavior in RT #118031.
14:59 dalek roast: review: https://github.com/perl6/roast/commit/20171ea9a3
14:59 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=118031
14:59 timotimo interestingly, the core setting jar is still only 3.5 megabytes big
15:00 timotimo well, it's compressed
15:01 timotimo the classfile itself is 11M, which is comparable to moar's core setting, i think
15:01 dalek ecosystem: eb01a52 | (Sylvain Colinet)++ | META.list:
15:01 dalek ecosystem: Add Gumbo to ecosystem
15:01 dalek ecosystem:
15:01 dalek ecosystem: See https://github.com/Skarsnik/perl6-gumbo
15:01 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/eb01a52c3a
15:01 dalek ecosystem: da708c9 | RabidGravy++ | META.list:
15:01 dalek ecosystem: Merge pull request #84 from Skarsnik/master
15:01 dalek ecosystem:
15:01 dalek ecosystem: Add Gumbo to ecosystem
15:01 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/da708c92a8
15:01 timotimo almost the same size, actually
15:01 psch timotimo: xxd doesn't only show the constant pool, fwiw
15:01 psch or strings either, fwiw
15:02 timotimo i know
15:02 timotimo i'm wondering why that string appears over and over and over again
15:02 timotimo and i'm surprised that strings on the core setting for moarvm shows 01234567890ABCDEFGHIJKLMNOPQRSTUV​WXYZAabcdefghijklmnopqrstuvwxyza showing up like 15 times in a row
15:03 pmurias timotimo: looks like something from the regex engine
15:03 timotimo nah, look
15:03 timotimo 0 appears at the beginning and end
15:03 pmurias hoelzro: hi
15:03 timotimo as do a and A
15:03 hoelzro o/ pmurias
15:03 timotimo i think it's for our handling of ..
15:03 CIAvash joined #perl6
15:04 timotimo m: m: say "ay" .. "bc"
15:04 camelia rakudo-moar cd7766: OUTPUT«"ay".."bc"␤»
15:04 timotimo m: m: say @("ay" .. "bc")
15:04 camelia rakudo-moar cd7766: OUTPUT«(ay ax aw av au at as ar aq ap ao an am al ak aj ai ah ag af ae ad ac by bx bw bv bu bt bs br bq bp bo bn bm bl bk bj bi bh bg bf be bd bc)␤»
15:04 timotimo ^- this i mean
15:05 timotimo moar's core setting strings output is dominated by cuid_[incrementing_number]_​[same_thing_over_and_over]
15:05 ParsonsNose joined #perl6
15:05 psch timotimo: 768ECFB91FF8D3046E74BE1165F9984E57671A01 is an argument to takedispatcher
15:05 psch not sure why it actually appears, instead of the const pool ref
15:05 psch that's probably some kind of bytecode internal... stuff
15:06 timotimo is that an op the jvm has?
15:06 psch err
15:06 psch misread
15:06 telex joined #perl6
15:06 psch it's an argument to invokeDynamic...
15:06 psch that makes sense, actually.  the dynamic callsite gets is name from the constant pool iirc
15:07 psch so 768ECFB91FF8D3046E74BE1165F9984E57671A01 is probably the callsite for wval_noa
15:07 psch and that gets called a lot
15:07 timotimo ah, could be
15:08 timotimo but ... if the dynamic callsite gets its name from the constant pool, why does that long string appear literally in the code?
15:09 timotimo is this something we can control at all?
15:10 psch no
15:10 timotimo in that case, i'll shut up
15:10 timotimo no need to waste time on that
15:10 timotimo i'll be AFK for a bit, maybe when i'm back you'll have something nice to show from the local renaming thing :)
15:10 chenryn joined #perl6
15:12 psch re: "how many of those constants are going to be sharing names later on?", there's hardly any ldc insns that load something that's called _\d+
15:13 psch mostly alt_nfa_*, a few ANON_VAR_, and whatever_code_
15:13 mr_ron joined #perl6
15:13 psch alt_nfa_* is interesting
15:13 timotimo hm, are those not refering to serialized objects?
15:13 psch maybe, yeah
15:13 pmurias hoelzro: nqp-js-compiled-to-js is passing 77 test files, and I'm currently working on debugging the weird bugs (and hidden missing features) that prevent the remaining ones from passing
15:14 psch that'd probably explain why alt_nfa_ has two numbers postfixed
15:14 hoelzro pmurias: awesome! I see that others have been lending their expertise on JS stuff here lately =)
15:15 mr_ron star: use IETF::RFC_Grammar::URI; my $g = ::("IETF::RFC_Grammar"); say $g.WHAT
15:15 camelia star-m 2015.09: OUTPUT«(RFC_Grammar)␤»
15:15 mr_ron what does the ::( ) do and where is it documented?
15:16 moritz it's a symbol lookup by name
15:16 mr_ron thanks
15:16 moritz dunno if that's documented on perl6/doc anywhere
15:18 pmurias hoelzro: konobi has suggested improving the hackish way nqp-js interacts with the npm
15:19 hoelzro yeah? I saw konobi talking a lot with you about it
15:19 hoelzro which is great, because my knowledge of that ecosystem is Nil =/
15:21 pmurias it's mostly alien to me too
15:21 FROGGS m: proto foo($x = 42) { } # should that throw like "Cannot put default values on attributes in proto declaration"?
15:21 camelia rakudo-moar cd7766: ( no output )
15:21 FROGGS jnthn: ^^
15:23 jnthn FROGGS: Could be a "potential difficulty" if it's an onlystar proto maybe but it's not automatically wrong
15:23 andreoss joined #perl6
15:23 FROGGS ahhh, yes, onlystar vs not...
15:25 jnthn But I mean, proto foo($x, $y = $x where $x >= $y) { * } is sensible enough and doesn't mean you're saying anything about the candidates other than that you pre-checked this case in the proto
15:25 jnthn So a ban feels too strong to me
15:25 jnthn I'm not even sure it's worth the code in the compiler to warn, tbh.
15:26 jnthn Just document this behavior in the docs for protos
15:26 jnthn And tests to codify it
15:26 Begi1115 Is it possible to secure an input ? I excpet only a int https://gist.github.com/Eme​ric54/786503acdf9a99a4b25f I ex
15:26 abaugher joined #perl6
15:27 dalek rakudo/nom: 78ea30a | jnthn++ | src/ (2 files):
15:27 dalek rakudo/nom: Complain over typed *%h at compile time.
15:27 dalek rakudo/nom:
15:27 dalek rakudo/nom: Makes things consistent with typed *@a. Also introduced a typed
15:27 dalek rakudo/nom: exception to cover the two cases and used it.
15:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/78ea30acb0
15:27 psch Begi1115: you can add "$nombre ~~ Int" as first condition to the if in a conjunction
15:29 lucasb_ m: say '<-- revision'
15:29 camelia rakudo-moar cd7766: OUTPUT«<-- revision␤»
15:29 lucasb_ ^^ camelia is 3 days outdated?
15:29 jnthn lucasb_: May be when the JVM build busted
15:29 lucasb_ hmm
15:29 jnthn psch++ is looking into that already :)
15:31 RabidGravy Skarsnik, Gumbo now on http://modules.perl6.org/
15:31 Skarsnik Thx :)
15:34 Begi1115 psch : $number -> (Str), so it will not works (?)
15:34 tokuhirom joined #perl6
15:35 psch m: sub f ($number) { if $number ~~ Int && 0 < $number < 100 { say "yuss" } else { say "that wasn't right" } }; f "foo"; f 100; f 50
15:35 camelia rakudo-moar cd7766: OUTPUT«that wasn't right␤that wasn't right␤yuss␤»
15:35 PerlJam Begi1115: use $nombre.Numeric  and have a CATCH block to do whatever you want when it's not numeric
15:35 PerlJam Begi1115: (as an alternative)
15:36 PerlJam psch: I think he's saying that he'll only ever get a Str from prompt()
15:36 psch oh
15:36 psch i thought &prompt calls &val
15:37 psch m: say 0xff9f - 0xe76c
15:37 camelia rakudo-moar cd7766: OUTPUT«6195␤»
15:37 jnthn m: my $a = "omg"; with +$a -> $number { say $number } else { say "$a not a number" }
15:37 camelia rakudo-moar cd7766: OUTPUT«omg not a number␤»
15:37 jnthn m: my $a = 42; with +$a -> $number { say $number } else { say "$a not a number" }
15:37 camelia rakudo-moar cd7766: OUTPUT«42␤»
15:37 PerlJam oh!  I forgot about with/without  :)
15:37 psch ^^^ that's the number of free constants pool entries i got free
15:38 jnthn psch: I guess that gives us some breathing room :)
15:38 jnthn psch++
15:38 psch https://github.com/perl6/nqp/blob/m​aster/src/vm/jvm/runtime/org/perl6/​nqp/jast2bc/JASTCompiler.java#L205 <- replaced e.getKey() with "local_" + i
15:38 TimToady m: my $a = "omg"; with +$a -> $number { say $number } else { say "$_ not a number" }
15:38 camelia rakudo-moar cd7766: OUTPUT« not a number␤»
15:38 TimToady hmm, supposed to topicalize that else
15:38 psch - actually, with "local_" + i++...
15:38 jnthn with wouldn't topicalize the else too would it?
15:38 jnthn heh :)
15:38 psch jnthn: i don't know, i'll build nom HEAD and see what's around then...
15:38 TimToady supposed to, if the last thing was a with
15:39 jnthn TimToady: ah, k. Didn't know you'd decided to do it that way :)
15:39 psch jnthn: might be that we get enough for like a week or so of additions... :/
15:39 TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say "$_ not a number" }
15:39 camelia rakudo-moar cd7766: OUTPUT« not a number␤»
15:39 TimToady hmm, the explicit case is busted too
15:41 TimToady coulda sworn I had tests for that...
15:41 dalek specs: a99182a | jnthn++ | S06-routines.pod:
15:41 dalek specs: More formal conjectural mention of typed slurpies.
15:41 dalek specs:
15:41 dalek specs: And change example that just happened to use them without any notes
15:41 dalek specs: on their semantics.
15:41 dalek specs: review: https://github.com/perl6/specs/commit/a99182a649
15:42 lucasb_ evalbot/build-scripts/rebuild-rakudo.pl tries to build both moar and jvm in the same build run. Maybe split the two into separate processes so camelia-moar can be kept updated while the jvm issue isn't solved?
15:43 lucasb_ (I'm not certain if this is the actual script that builds things on camelia's server...)
15:45 TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say .WHAT }
15:45 camelia rakudo-moar cd7766: OUTPUT«(Failure)␤»
15:45 TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say .Str }
15:45 camelia rakudo-moar cd7766: OUTPUT«␤»
15:45 TimToady say wot?
15:45 TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say .gist }
15:45 camelia rakudo-moar cd7766: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '7⏏5omg' (indicated by 7⏏)␤  in block <unit> at /tmp/PoFdKrkwTn:1␤␤»
15:46 moritz I guess it .Str()s to the empty string because it's not a defined value
15:46 TimToady I guess the failure is "handled"
15:46 moritz and it doesn't throw because you already handled it by checking for definedness
15:46 TimToady seems like it'd still be worth a warning
15:47 TimToady m: my $a = "omg"; with +$a -> $number { say $number } else { say .gist }
15:47 camelia rakudo-moar cd7766: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '7⏏5omg' (indicated by 7⏏)␤  in block <unit> at /tmp/xiDJjxLdi_:1␤␤»
15:48 dalek roast: 3594f51 | jnthn++ | S06-signature/slurpy-params.t:
15:48 dalek roast: Clean up of typed slurpy parameter tests.
15:48 dalek roast:
15:48 dalek roast: We won't do them in 6.christmas, so various tests go away. Add tests
15:48 dalek roast: to cover the typed exception the compiler gives for the positional and
15:48 dalek roast: named case. We didn't look at the named case at all before, so this
15:48 dalek roast: also covers RT #120994.
15:48 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=120994
15:48 dalek roast: review: https://github.com/perl6/roast/commit/3594f51288
15:48 TimToady okay, at least the else is not busted
15:51 jnthn Should be under 70 xmas tickets now :)
15:52 mrf TimToady: Did you get an offer of a sponsored visit to london for LPW.
15:52 [ptc] \o/
15:53 jnthn Well, or down to 70 :)
15:53 pollei joined #perl6
15:55 kjs_ joined #perl6
15:56 psch m: say 0xffff - 0xe921
15:56 camelia rakudo-moar cd7766: OUTPUT«5854␤»
15:56 psch that's the total number we have free on nom HEAD
15:57 psch so we got ~300 entries since cd77669d
15:58 jnthn m: .say for gather take do given 1 { default { { a => 1, b => 2 } } }
15:58 camelia rakudo-moar cd7766: OUTPUT«a => 1, b => 2␤»
15:58 psch so we'd have about a month if that was a constant :P
15:58 jnthn m: .say for do given 1 { default { { a => 1, b => 2 } } }
15:58 camelia rakudo-moar cd7766: OUTPUT«a => 1␤b => 2␤»
15:58 psch err, no
15:58 jnthn m: .say for do given 1 { default { ${ a => 1, b => 2 } } }
15:58 camelia rakudo-moar cd7766: OUTPUT«a => 1␤b => 2␤»
15:58 psch i'm really bad at math it seems
15:58 jnthn m: .say for do given 1 { when True { ${ a => 1, b => 2 } } }
15:58 camelia rakudo-moar cd7766: OUTPUT«a => 1␤b => 2␤»
15:59 aundre joined #perl6
15:59 jnthn m: my $a = 1; .++ for do given 1 { when True { $a } }
15:59 camelia rakudo-moar cd7766: OUTPUT«Parameter '$a' expected a writable container, but got Int value␤  in block <unit> at /tmp/xbwILNVX3n:1␤␤»
15:59 psch there's 20 times 3 days, which is two months...
15:59 psch vOv
15:59 jnthn m: my $a = 1; .++ for do given 1 { $a }
15:59 camelia rakudo-moar cd7766: ( no output )
15:59 psch not like it really matters, because it'll hopefully not constantly increase at that rate
16:00 jnthn TimToady: Should when/default decontainerize?
16:00 jnthn TimToady: Related: should for?
16:00 jnthn At the moment we have a ticket complaing for doesn't and another ticket complaing when/default do :)
16:00 jnthn m: sub foo { my $s = 0; ($s += $_ for 1..3) }; say foo()
16:00 camelia rakudo-moar cd7766: OUTPUT«(6 6 6)␤»
16:01 colomon m: Numeric.new.log
16:01 camelia rakudo-moar cd7766: OUTPUT«Cannot call log(Numeric: ); none of these signatures match:␤    (Numeric:D $: Cool $base, *%_)␤    (Numeric:D $: Numeric $base, *%_)␤  in block <unit> at /tmp/Agi3RBsJsp:1␤␤»
16:01 jnthn That's the use case for for decont'ing, fwiw
16:01 colomon m: Numeric.new.Rat
16:01 camelia rakudo-moar cd7766: OUTPUT«Method 'Rat' not found for invocant of class 'Numeric'␤  in block <unit> at /tmp/84gzuLStpf:1␤␤»
16:01 lucasb_ Can I temporally remove jvm from --backends=moar,jvm in the evalbot build script? The commit can be reverted after jvm build is fixed. Anybody approves or opposes?
16:01 jnthn psch: Is your fix about to land? :)
16:01 psch jnthn: yeah, just making up a commit message right now
16:01 colomon m: dd Numeric.new
16:01 camelia rakudo-moar cd7766: OUTPUT«Numeric $var = Numeric.new␤»
16:02 psch i'd still say that we should decouple jvm and mvm for camelia
16:02 lucasb_ psch: I'm of the same opinion
16:02 lucasb_ but just deleting a word for now is easier :)
16:03 dalek nqp: 61f3e95 | peschwa++ | src/vm/jvm/runtime/org/perl6/n​qp/jast2bc/JASTCompiler.java:
16:03 dalek nqp: Name all locals the same.
16:03 dalek nqp:
16:03 dalek nqp: Due to the increase of Perl 6's CORE.setting, we're running into a constant
16:03 dalek nqp: pool size limitation during classfile generation. This gives us a bit more
16:03 dalek nqp: space by always naming all local variables "__local_\d+", and thus freeing up a
16:03 dalek nqp: few thousand constant pool entries.
16:03 dalek nqp: review: https://github.com/perl6/nqp/commit/61f3e95ec4
16:03 colomon m: Numeric.new.Int
16:03 camelia rakudo-moar cd7766: OUTPUT«Method 'Int' not found for invocant of class 'Numeric'␤  in block <unit> at /tmp/ImfAQlP0mf:1␤␤»
16:04 psch lucasb_: right now, waiting is even easier :)
16:04 donaldh joined #perl6
16:04 psch oh
16:04 psch NQP_REVISION... :S
16:05 jnthn psch: You have a Rakudo commit bit to do it?
16:05 TimToady jnthn: today I'm inclined to say no decont, on the theory that a DIHWIDT is better than a CGTFH (Can't Get There From Here)
16:05 psch jnthn: yes
16:05 TimToady but I'd entertain arguments on the other side
16:06 dalek rakudo/nom: 1e0b8db | peschwa++ | tools/build/NQP_REVISION:
16:06 dalek rakudo/nom: Bump NQP_REVISION to build R-J again.
16:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e0b8dbe09
16:06 psch oh hrm, "be able to" probably vOv
16:06 jnthn TimToady: Well, what's the idiom for writing the "for" example from the ticket? :)
16:06 jnthn TimToady: In that case a sequence I guess :P
16:07 jnthn m: sub foo { (for 1..3 { state $s += $_ }) }; say foo()
16:07 camelia rakudo-moar cd7766: OUTPUT«(6 6 6)␤»
16:07 jnthn TimToady: ^^ is another argument...in some direction :)
16:08 TimToady m: sub foo { my $s = 0; (($s += $_)<> for 1..3) }; say foo()
16:08 camelia rakudo-moar cd7766: OUTPUT«(1 3 6)␤»
16:08 TimToady m: sub foo { my $s = 0; (($s += $_) + 0 for 1..3) }; say foo()
16:08 camelia rakudo-moar cd7766: OUTPUT«(1 3 6)␤»
16:08 * jnthn is fine with that
16:08 TimToady but I don't really want to add a for-rw
16:08 jnthn It's not like people trip over this every day :)
16:08 jnthn Me either!
16:09 jnthn And you can always use map with a sub :)
16:09 jnthn Or just a more pure construct :)
16:09 TimToady ayup
16:10 TimToady .oO("Those who live by the stored die by the stored...")
16:11 jnthn :D
16:11 jnthn Thanks, I'll get these two rulings into RT/Rakudo/tests :)
16:11 jnthn .oO( If I keep knocking off the easy xmas RTs there'll only be hard ones left... )
16:12 TimToady did you scan last week's bugs for new xmaseses?
16:13 jnthn Not yet
16:13 jnthn I didn't really scan for new since I did the xmas list
16:13 jnthn Though I've picked off a few that mighta made it
16:13 * TimToady has personally sent in some that he thought would qualify, from time to time
16:15 kmel joined #perl6
16:15 virtualsue joined #perl6
16:15 jnthn I figure RT will have somehow recorded the date of my last pass through
16:16 jnthn So I'll know where to start from.
16:19 TimToady for the record, I'm planning to rule on qx, and not foist it off on you :)
16:20 dalek doc: 76f07c5 | (Zoffix Znet)++ | doc/Language/concurrency.pod:
16:20 dalek doc: Fix some typos
16:20 dalek doc: review: https://github.com/perl6/doc/commit/76f07c5266
16:20 jnthn ++TimToady ;)
16:21 b2gills I think 「qx」 made more sense in Perls before 6 since they don't have 「shell」 and 「run」 built in
16:21 boggard crazyquotes.
16:22 TimToady if we have qx it will likely default to run with «» parsing or so
16:22 TimToady but I think runout is ugly, and wrong from the user perspective
16:23 jnthn Yes, I knew that name'd not cut it :)
16:23 TimToady out is also wrong
16:23 TimToady 'cause the user is thinking of it as coming in
16:24 TimToady I don't think we can quite swing making run context dependent though to return the results when not in sink
16:24 TimToady since it has to return a result anyway
16:24 jnthn Yeah, that'd be too much magic
16:24 RabidGravy anyone successfully using travis-ci with a module that uses its own .so files?
16:24 TimToady so maybe a qx() sub to go with the qx//
16:24 TimToady though the q is wrongish
16:25 TimToady will do some internal bikeshedding on that
16:25 b2gills q:ww:run< >    q:shell< >
16:26 lucasb_ Is there an 'exec' in P6?
16:26 b2gills m: exec
16:26 camelia rakudo-moar 1e0b8d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3EyXZ9sBIz␤Undeclared routine:␤    exec used at line 1␤␤»
16:27 TimToady though NativeCall
16:27 TimToady *thr
16:27 lucasb_ hm, ok
16:27 donaldh psch: I'm just catching up with the class file too large issue.
16:27 donaldh psch: after reading lizmat++'s weekly report
16:27 timotimo donaldh: did you see we fixed it? :)
16:28 donaldh lizmat: yes, for now ;-)
16:29 donaldh psch: block lex values also take up a lot of space in the constant pool.
16:30 lucasb_ yeah, no need to disable jvm in evalbot. thanks psch++ and the others :)
16:30 Skarsnik Is there another ouput than html for --profile?
16:30 lucasb_ camelia is already updated
16:30 n0tjack joined #perl6
16:30 psch donaldh: not sure how those translate to bytecode, but they don't seem caught with the fix i pushed
16:31 donaldh psch: in the constant pool, they are a concatenation of package names and ids, etc. so are long unique constants.
16:31 psch donaldh: 'cause i'd assume there's more than ~6k block lex values
16:32 donaldh psch: I'm just mentioning them because it's an area I had considered refactoring.
16:34 psch donaldh: well, as mentioned, i'd guess we'll probably run into a full constant pool again in the next few months, assuming CORE keeps growing (which i think is fair, if not as fast as during the last few days)
16:35 psch donaldh: and considering that there's only some 24k constants that a accessed in the CORE.setting classfile, i'd guess block lex are quite many
16:35 donaldh There's ~10,000 block lex values averaging > 250 chars
16:35 psch donaldh: so i'd say if it fits go ahead with the refactor somewhat soonish
16:37 dalek rakudo/nom: 9621974 | jnthn++ | src/core/control.pm:
16:37 dalek rakudo/nom: when/default should not decontainerize.
16:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9621974605
16:37 dalek roast: 64b9814 | jnthn++ | S04-statements/when.t:
16:37 dalek roast: Tests for RT #115384 (when/default decont).
16:37 dalek roast: review: https://github.com/perl6/roast/commit/64b9814bff
16:37 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=115384
16:37 n0tjack when I'm on a Windows PC, is there a recommended or at least common editing environment?
16:37 donaldh psch: I'm thinking that BLVs could be serialized. The constants for package names and var names are already in the constant pool so the constant pool would shrink by > 2MB.
16:37 n0tjack all I really need is syntax higlighting, and I don't want to go through the hassle of installing VIM
16:38 jnthn n0tjack: Visual Studio Code, or Notepad++
16:38 Upasaka joined #perl6
16:38 donaldh psch: also thinking that the method annotations could be serialized too
16:38 n0tjack not familiar with VSC, I'll go Notepad++, thanks.  Any pointers to syntax files for it?
16:39 donaldh psch: because they appear to be quite slow to parse during classfile initialization.
16:39 psch i don't really have a thorough understanding of our serialization
16:39 donaldh psch: I looked at the CORE.setting class file ages ago but have not been able to spend any time on it.
16:40 b2gills .oO( my favorite editor was crimson edit, but that was a few years ago, before I started writing Perl 6 )
16:40 donaldh hence mentioning it here in case someone else has time to work on it.
16:40 timotimo donaldh: can you figure out why there's the literal string 768ECFB91FF8D3046E74BE1165F9984E57671A01 a whole bunch of times (in my case, it's 21181) in the class file?
16:41 timotimo we were thinking it could be the callsite for one of the wval calls or something?
16:41 n0tjack padre looks pretty good, gonna try that
16:41 psch i'm pretty sure it is the indy callsite for wval_noa
16:42 jnthn wval uses indy so it can resolve the constant once and then it should JIT like a Java static final, fwiw.
16:42 donaldh timotimo: Well I don't have that particular id. But I'm guessing it's the generated MD5 for the CORE.setting. So it's in all of the BLV constants.
16:43 timotimo BLV?
16:43 donaldh block lex value
16:43 psch jnthn: the id timotimo pasted is the constant that identifies the indy callsite
16:43 timotimo i got that id from strings foobar.class | sort | uniq -c | sort -n
16:43 timotimo m: say 21181 * "768ECFB91FF8D3046E74BE1165F9984E57671A01".chars
16:43 camelia rakudo-moar 1e0b8d: OUTPUT«847240␤»
16:43 donaldh To make life easier for yourself, use javap
16:44 timotimo m: say (21181 * "768ECFB91FF8D3046E74BE1165F9984E57671A01".chars) / 1024
16:44 camelia rakudo-moar 1e0b8d: OUTPUT«827.382813␤»
16:44 psch javap doesn't print the constant pool though
16:44 timotimo 827 kilobytes of references to that callsite :)
16:44 psch just those constants that are referenced
16:44 donaldh javap -v -classpath CORE.setting.jar D1BB016295AF34256AA40D0C975C77376BA56CE
16:44 mr_ron left #perl6
16:44 donaldh that constant is the classfile name inside my CORE.setting.jar
16:44 psch oh, maybe -v prints all of it?
16:45 donaldh Decompiles everything.
16:45 dalek roast: c42de8e | jnthn++ | S04-statement (2 files):
16:45 dalek roast: Tests covering decision on RT #77334.
16:45 dalek roast: review: https://github.com/perl6/roast/commit/c42de8e8a1
16:45 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=77334
16:45 donaldh well, not decomiple, but you know what I mean :-)
16:45 timotimo thank you for the javap hint
16:46 psch yeah, -v prints the constant pool
16:47 psch that i didn't know - i used javap to see which constants are referenced in the classfile, but xxd to look at the constant pool itself
16:47 donaldh I have BLV constants from #49126 to #59613
16:47 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=49126
16:48 brrt joined #perl6
16:49 Axord joined #perl6
16:50 raiph m: #`[W=wider, N=narrower] class W {}; class N is W { method N { W }; method W { N } }; sub f(N(W)) { 42 }; say f W # do I have to augment W to get a W to N bind coercion to work?
16:50 camelia rakudo-moar 1e0b8d: OUTPUT«Method 'N' not found for invocant of class 'W'␤  in sub f at /tmp/ItgkwWMqHA:1␤  in block <unit> at /tmp/ItgkwWMqHA:1␤␤»
16:51 jnthn OK, enough for now; bbl :)
16:51 psch 49122 to 59615 here if i understand correctly
16:51 psch that's not much more
16:51 psch the weirdest bit i saw was integers, from 32780 to 55xxx or something
16:51 psch pretty much all in a row
16:52 psch that's kind of wasteful, but probably neccessary..?
16:52 psch they're not in 1 step increments though
16:53 psch 46991 to 49115, only about 2k...
16:53 psch also, String and Utf8 duplicates
16:53 psch which might also have a solid and understandable reason, but still...
16:53 donaldh Oh, they're not duplicates.
16:53 RabidGravy ew, travis-ci has a way pickier version of gcc than I have here
16:53 donaldh The string just references the UTF-8
16:54 donaldh It's the way the constant pool works.
16:54 psch yeah, i assumed something like that
16:55 rurban joined #perl6
16:56 lucasb_ raiph: iiuc, I would put the coercion method in the base class, not the subclass
16:57 lucasb_ I think it would be nice if coercions like Foo(Bar) would work if Foo had a constructor .new(Bar)
16:58 Skarsnik Is there any way to speed us the creation of object? I use a C lib to parse html, the C lib take less than 200 ms to parse a 250ko file, but after I spend 2 sec to generate the associated XML::Document
17:02 dalek nqp: 0cec471 | coke++ | docs/release_guide.pod:
17:02 dalek nqp: 4 digit years
17:02 dalek nqp: review: https://github.com/perl6/nqp/commit/0cec4718b9
17:04 psch well, the string occuring over 20k times in nom HEAD definitely doesn't correspond to the name of name .class we have in install/
17:04 psch i'm less confident it's the indy callsite, because that's a different constant pool entry, actually
17:06 mayuresh joined #perl6
17:07 mayuresh hello :)
17:07 psch it's curious.  apparently it's used as argument for wval_noa as the caller, or for createsc as the handle
17:07 tokuhiro_ joined #perl6
17:09 n0tjack all the Perl editing environments on Windows are stagnant. Many of them haven't been updated in 4 years.
17:09 mayuresh n0tjack, what about vim for windows? :)
17:10 n0tjack Actually, I even went and installed Vim for Windows
17:10 mprelude joined #perl6
17:10 kmel i use Atom on Linux
17:10 n0tjack but then found out the p6 syntax highlighter assumes you're running on a Linux- or BSD (OSX) box
17:10 n0tjack and expects you to be able to type `make install`
17:10 mayuresh :)
17:10 kmel got out of the box perl 6 syntax highlighting
17:11 kmel i think it also works on windows
17:11 lucasb_ n0tjack: Can't you just copy the syntax file from github into the vim folder?
17:11 mayuresh yeah, atom has a windows port too.
17:11 n0tjack lucasb_: you'd think so
17:11 n0tjack but not according to the README.MD
17:11 n0tjack I wanted to use Padre, two birds with one stone, but it's a dead project
17:12 kmel but i still use notepad++ when on windows
17:12 n0tjack kmel: I don't see a notepad++ syntax highlighting file on perl6.org/whatever
17:12 [Coke] psch: you want me to close out RT #126461?
17:12 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=126461
17:12 n0tjack kmel: where did you get yours?
17:13 psch [Coke]: i suppose so, yeah
17:13 psch the issue is at least moved back a bit...
17:13 sufrostico joined #perl6
17:13 lucasb_ n0tjack: There is no need to follow the readme. just copy syntax/perl6.vim into the vim/syntax folder and it works. In my opinion, vim would be the best option.
17:13 kmel n0tjack: i meant generally i use n++ on windows. unfortunately no Perl 6
17:14 n0tjack lucasb_: I'll give it a shot, thanks.
17:14 mayuresh lucasb, i agree with you. :)
17:14 lucasb_ n0tjack, mayuresh :)
17:14 mayuresh vi is all that's needed, after-all i've got only 10 fingers! ;)
17:14 kmel n0tjack: but it would be a good idea to create one
17:14 n0tjack I'm also re-learning mIRC isn't as fun and useful as I remember it being
17:15 n0tjack kmel: my TODO list is too long to add that.
17:15 mayuresh n0tjack, has mirc become more noisy?
17:15 mayuresh it would just create a racket the last time (2 years back) i used it.
17:15 n0tjack mayuresh: mIRC hasn't changed since the late 90s. But my tastes and expectations have.
17:16 mayuresh n0tjack, been working under mac os x!
17:16 mayuresh :)
17:16 [Coke] RT: 1033; GLR: 4; NOM: 8; LTA: 88; WEIRD: 12; TESTS: 10; XMAS: 67
17:17 n0tjack mayuresh: Yes, but only recently. Been a Windows guy forever.  But I haven't had a need to use IRC in a long time - I'm here because this is how the p6 community organizes itself, and I want to be part of the p6 community.
17:17 mayuresh n0tjack, somehow, i am quite pleased with my ubuntu installation.
17:17 mayuresh it just works well, and looks darn pretty too!
17:17 mayuresh :)
17:18 n0tjack Glad to hear it; haven't Linux'd in a long time, but back then "pretty" would not have been in the top 5 adjectives I'd use to describe it.
17:18 mayuresh :D
17:18 n0tjack I am loving my Mac, where apps are well thought-out and easy-to-use, but I also get access to a full, real command shell
17:19 n0tjack Though relearning all the keyboard shortcuts was very painful
17:19 n0tjack still is
17:19 mayuresh :)
17:19 n0tjack I think Command+C and Command+V are the stupidest UX decisions I've seen in a decade.
17:19 mayuresh i heard they bundle "bash" with a mac os x installation?
17:19 n0tjack mayuresh: OSX is BSD under the covers.
17:19 mayuresh yeah, i know.
17:19 n0tjack so yes, it has bash
17:20 n0tjack and all the other goodies
17:20 mayuresh i heard that with a mac, you lose control, but gain command!  ;)
17:21 n0tjack oh my god that was horrible
17:21 n0tjack well done. mayuresh++
17:21 mayuresh :D
17:21 tadzik oh wow
17:25 RabidGravy ?
17:28 andreoss joined #perl6
17:28 domidumont joined #perl6
17:33 llfourn What's the best way to lazyily export symbols? So I want to export MyClass from one module to another -- but only want to require ::('MyModule') if it is used by the importer.
17:34 llfourn I think a Proxy object would work
17:34 llfourn but is there a cleverer way?
17:35 Skarsnik Should rakudo warn when you define twice a class?
17:35 llfourn m: class A { }; class A { };
17:35 camelia rakudo-moar 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MU2sCrFtXS␤Redeclaration of symbol A␤at /tmp/MU2sCrFtXS:1␤------> 3class A { }; class A7⏏5 { };␤    expecting any of:␤        generic role␤»
17:35 tokuhirom joined #perl6
17:36 mayuresh gah, that just killed the colors on my terminal.
17:36 Skarsnik It's maybe because I define the class in a module and it's redefined in another module?
17:36 mayuresh i'll have to quit and rejoin, everything has gone nastily red.
17:37 mayuresh joined #perl6
17:37 Skarsnik I have module A { class X is export {}} and in the main code use A; use X; and it does not complain
17:38 Skarsnik X is a already installed module
17:40 [Coke] m: say (2/6).WHAT; say (2/6).perl.EVAL.WHAT
17:40 camelia rakudo-moar 962197: OUTPUT«(Rat)␤(Rat)␤»
17:40 RabidGravy multiple module are fine
17:41 Skarsnik well the module also provide a class X
17:41 RabidGravy but the one you have is class A::X really
17:42 [Coke] m: say 'ö'.encode('ASCII') # RT #123673
17:42 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=123673
17:42 camelia rakudo-moar 962197: OUTPUT«Blob[uint8]:0x<3f>␤»
17:42 RabidGravy m: module A { class X { } }; class X { }
17:42 camelia rakudo-moar 962197: ( no output )
17:43 RabidGravy m: module A { class X { } }; class X { }; say A::X.new, X.new;
17:43 camelia rakudo-moar 962197: OUTPUT«X.newX.new␤»
17:43 RabidGravy they just know themselves by the short names
17:45 mayuresh i'll be right back ...
17:45 Skarsnik Maybe I should be clear on what I am trying to do x). I have Gumbo (a html parser). I want to replace the use of html::parser:xml (also a html parser) by providing a fake h:p:x class that use Gumbo. An example is like tricking module that use h:p:x (html::restrict) by using my gumbo base class
17:46 mayuresh joined #perl6
17:46 llfourn do you mean that you want Gumbo to use your fake class?
17:47 mayuresh irssi is really way better than ircii
17:47 mayuresh thanks mr. wall for the suggestion.
17:47 [Coke] RT #124120 - can people try to reproduce this on windows? If no one can repro it, we can close it out.
17:47 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=124120
17:48 [Coke] Skarsnik: the way to do that is to have both of you agree on a role to provide, I think.
17:49 Skarsnik llfourn, na the other way, imagine I have writed a script that use html::scrapper. html::scrapper use h:p:x (that is freaking slow). I want to be able to just write in my script something like : use Gumbo :fakehpx; and it take the place of hpx in html::scrapper
17:51 llfourn Skarsnik: ah I understand. Hmmmm...
17:51 retupmoca [Coke]: on my windows 10, '> perl6 -e "use Digest; say 1"' works fine (in both powershell and cmd.exe)
17:51 llfourn in perl5 it was easy because of all the globals
17:52 [Coke] retupmoca++ # does perl6 -e'my $σ0;'  work?
17:52 Skarsnik by slow I mean, it take 30 sec to parse 250ko of html where the C lib take 150 ms x)
17:53 raiph joined #perl6
17:53 retupmoca [Coke]: no errors with that either
17:53 [Coke] danke.
17:53 raiph m: #`[W=wider, N=narrower] class W {}; class N is W { method N { W }; method W { N } }; sub f(N(W)) { 42 }; use MONKEY-TYPING; augment class W { method N { N } }; say f W # lucasb_++ Thanks, I recall some no-need-to-augment-base-class coercion proposals but didn't recall one of them landing
17:53 camelia rakudo-moar 962197: OUTPUT«42␤»
17:54 [Coke] m: :10<1*2**-64>
17:54 camelia rakudo-moar 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sVMgh5Roxj␤Malformed radix number␤at /tmp/sVMgh5Roxj:1␤------> 3:10<1*2**7⏏5-64>␤    expecting any of:␤        number in radix notation␤»
17:55 [Coke] m: say 1*2**-64
17:55 camelia rakudo-moar 962197: OUTPUT«5.42101086242752e-20␤»
17:56 [Coke] m: enum E <Foo Bar>; sub x(Floo) {}
17:56 camelia rakudo-moar 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jInQTgRZ2n␤Invalid typename 'Floo' in parameter declaration.␤at /tmp/jInQTgRZ2n:1␤------> 3enum E <Foo Bar>; sub x(Floo7⏏5) {}␤»
17:56 llfourn Skarsnik: yep, there maybe some hack though..like hack the compunit resolver but I don't think there is an API for that yet.
17:57 ^elyse^ joined #perl6
17:57 kmel joined #perl6
17:57 [Coke] RT - down to 1030
17:57 RabidGravy Skarsnik, you can actually do "constant HTML::Parser::XML := Gumbo'
17:58 llfourn RabidGravy: but he needs to do it inside someone elses module unless I'm confused
17:58 [Coke] Or you can call your module the same thing.
17:58 [Coke] and then they can change a use statement, get your modified module instead of the slow one, and not have to do any MOP magic.
17:59 [Coke] (unlike p5, you can have two completely different implementations of the same module with the same name that differ by, say, implementor)
17:59 mayuresh coke, 'mop' == meta-object protocol!
17:59 [Coke] I am thinking we can close RT #77170 as DIHWIDT
17:59 synbot6 Link:  https://rt.perl.org/rt3/Publ​ic/Bug/Display.html?id=77170
17:59 [Coke] mayuresh, yes.
17:59 RabidGravy or, make a HTML::Parser::Any, fix the other modules to use that and have it instantiate the appropriate class ;-)
18:00 Skarsnik or maybe find a way to say these modules provide the same service. like the 4-5 modules for json? x)
18:01 RabidGravy there are specced things for doing this, don't know how concrete
18:03 [Coke] TimToady, jnthn: RT #112216 needs a design decision.
18:03 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=112216
18:04 Skarsnik hm doing: constant HTML::Parser::XML := Gumbo::HTML::Parser::XML; throw an error. it seem he does not like the ::
18:04 Skarsnik m: constant A::B::C := 1;
18:04 camelia rakudo-moar 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BmjztQm9VM␤Missing initializer on constant declaration␤at /tmp/BmjztQm9VM:1␤------> 3constant A:7⏏5:B::C := 1;␤»
18:05 llfourn m: constant A::B::C = 1;
18:05 camelia rakudo-moar 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GDOfQic3xV␤Missing initializer on constant declaration␤at /tmp/GDOfQic3xV:1␤------> 3constant A:7⏏5:B::C = 1;␤»
18:05 RabidGravy m: module A::B { constant C := 1 }
18:05 camelia rakudo-moar 962197: ( no output )
18:05 RabidGravy m: module A::B { constant C := 1 }; say A::B::C
18:05 camelia rakudo-moar 962197: OUTPUT«1␤»
18:06 [Coke] m: use Test; is("\c[LINE FEED]", "\c10", '\c[LINE FEED] works');
18:06 camelia rakudo-moar 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/p9ONBVo_aV␤Unrecognized character name LINE FEED␤at /tmp/p9ONBVo_aV:1␤------> 3use Test; is("\c[LINE FEED7⏏5]", "\c10", '\c[LINE FEED] works');␤»
18:06 [Coke] m: say "\c[COLON]"
18:06 camelia rakudo-moar 962197: OUTPUT«:␤»
18:09 mayuresh m: say "\c10"
18:09 camelia rakudo-moar 962197: OUTPUT«␤␤»
18:09 kjs_ joined #perl6
18:09 [Coke] m: use MONKEY_TYPING; augment slang Regex { token numish { \d+ } };
18:09 camelia rakudo-moar 962197: OUTPUT«===SORRY!===␤Could not find MONKEY_TYPING in any of:␤  file#/home/camelia/.perl6/2015.10-40-g9621974/lib␤  inst#/home/camelia/.perl6/2015.10-40-g9621974␤  file#/home/camelia/rakudo-inst-2/share/perl6/lib␤  file#/home/camelia/rakudo-inst-2/share/p…»
18:09 mayuresh so those little 'nl' stand for new-line?
18:10 [Coke] m: use MONKEY-TYPING; augment slang Regex { token numish { \d+ } };
18:10 camelia rakudo-moar 962197: OUTPUT«===SORRY!===␤QAST::Block with cuid cuid_1_1445969407.65868 has not appeared␤»
18:10 [Coke] mayuresh: yes.
18:10 [Coke] m: class A { }␤say "alive";
18:10 camelia rakudo-moar 962197: OUTPUT«alive␤»
18:11 [Coke] You can also use them when giving camelia code to run
18:11 mayuresh how?
18:11 mayuresh simply press "enter"?
18:11 mayuresh can't be!
18:12 [Coke] mayuresh: look at my last send.
18:12 [Coke] it has a ␤ after the class definition, avoiding the need for a ;
18:12 mayuresh i am looking at it, and all i see is that little 'nl'.
18:12 mayuresh how did you make that 'nl'?
18:13 mayuresh should i be pressing "shift+enter"?
18:13 [Coke] I cut and pasted it. You could also use whatever your OS/keyboard has for generating unicode.
18:13 mayuresh m: class A { }
18:13 camelia rakudo-moar 962197: ( no output )
18:13 [Coke] What OS are you using?
18:13 mayuresh say "alive";
18:13 mayuresh i am under linux (ubuntu) running irssi.
18:14 [Coke] mayuresh: it's a unicode character.
18:14 mayuresh oh!
18:14 mayuresh okay, now i get it.
18:14 [Coke] ok. perhaps one of our linux users can point you at a compose key.
18:14 mayuresh that would be nice. :)
18:14 [Coke] r: say "abcde" ~~ / | @(<a b bc cde>)+»/
18:14 raiph mayuresh: does cut/paste work?
18:14 camelia rakudo-{moar,jvm} 962197: OUTPUT«「cde」␤»
18:15 mayuresh
18:15 mayuresh looks like. :)
18:15 mayuresh m: class A { } ␤  say "alive";
18:15 camelia rakudo-moar 962197: OUTPUT«alive␤»
18:15 mayuresh :D
18:15 mayuresh gee, nice. :)
18:16 [Coke] r: use MONKEY_TYPING; augment class Cool { method foo (*@) { "foo" } }; Cool.compose; Int.compose; say Int.foo
18:16 FROGGS joined #perl6
18:16 camelia rakudo-moar 962197: OUTPUT«===SORRY!===␤Could not find MONKEY_TYPING in any of:␤  file#/home/camelia/.perl6/2015.10-40-g9621974/lib␤  inst#/home/camelia/.perl6/2015.10-40-g9621974␤  file#/home/camelia/rakudo-inst-2/share/perl6/lib␤  file#/home/camelia/rakudo-inst-2/share/p…»
18:16 camelia ..rakudo-jvm 962197: OUTPUT«===SORRY!===␤Could not find MONKEY_TYPING in any of:␤  file#/home/camelia/rakudo-i​nst-2/share/perl6/runtime␤  file#/home/camelia/rakudo-inst-2/share/perl6/lib␤  file#/home/camelia/rakudo-inst-2/share/nqp/lib␤  file#/home/camelia/.perl6/2015.10-40-…»
18:16 [Coke] r: use MONKEY-TYPING; augment class Cool { method foo (*@) { "foo" } }; Cool.compose; Int.compose; say Int.foo
18:16 camelia rakudo-{moar,jvm} 962197: OUTPUT«Method 'compose' not found for invocant of class 'Cool'␤  in block <unit> at /tmp/tmpfile:1␤␤»
18:16 FROGGS o/
18:17 mayuresh o/
18:17 [Coke] r: use MONKEY-TYPING; augment class Cool { method foo (*@) { "foo" } }; Cool.^compose; Int.^compose; say Int.foo
18:17 camelia rakudo-{moar,jvm} 962197: OUTPUT«foo␤»
18:17 mayuresh okay, so issuing an 'm' invokes the moarvm directly, and a 'r' is for putting the same through rakudo!
18:18 mayuresh but i thought the moarvm has it's own bytecode format! then how does it interpret stuff written in ascii?
18:18 sufrostico joined #perl6
18:18 [Coke] mayuresh: no, it's running rakudo-m
18:18 [Coke] whereas r does rakudo-m and rakudo-j
18:18 [Coke] j: #`[and this is just rakudo-j] say 3
18:18 camelia rakudo-jvm 962197: OUTPUT«3␤»
18:19 psch r: say $*VM
18:19 camelia rakudo-jvm 962197: OUTPUT«jvm (1.7)␤»
18:19 camelia ..rakudo-moar 962197: OUTPUT«moar (2015.10)␤»
18:19 mayuresh okay, i am kind-a lost, what are rakudo-m and rakudo-j?
18:19 mayuresh ah, m for moar, and j for jvm?
18:19 psch r: say $*PERL.compiler
18:20 camelia rakudo-{moar,jvm} 962197: OUTPUT«rakudo (2015.10.40.g.9621974)␤»
18:20 mayuresh that's rather cool. :)
18:20 psch mayuresh: exactly.  the compiler is rakudo in both cases, but the underlying vm is moar or jvm respectively
18:20 [Coke] r: &&::{}[];;
18:20 camelia rakudo-{moar,jvm} 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤    & used at line 1␤␤»
18:20 psch mayuresh: wouldn't be possible with an integrated execution environment ;)
18:20 mayuresh :D
18:20 [Coke] r: &::{}[];;
18:20 camelia rakudo-{moar,jvm} 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤    & used at line 1␤␤»
18:21 [Coke] r: ::{}[];;
18:21 camelia rakudo-{moar,jvm} 962197: ( no output )
18:21 [Coke] yay, can close that old ticket.
18:21 RabidGravy there was a ticket for that
18:21 RabidGravy ?
18:21 RabidGravy weirdos
18:21 mayuresh :)
18:22 nine RabidGravy: around here that's a compliment ;)
18:22 mayuresh :D
18:22 RabidGravy oh I know
18:23 jnthn nine: Is the Bool ~~ Int branch still blocking on me looking at it? :)
18:25 japhb joined #perl6
18:26 RabidGravy if I was to send a PR for rakudo to add .device and .inode to IO::Path there'd be all sorts of wailing an gnashing of teeth about it being Unix specific wouldn't there?
18:26 [Coke] jnthn: I looked briefly at c\[LINE FEED] - looks like we give codepoints names, but no easy way to have multiple names per point, eh?
18:26 [Coke] RabidGravy: yup
18:26 [Coke] Put it in a module.
18:27 RabidGravy it's in a module
18:27 RabidGravy that module spends most of its time broken
18:27 nine jnthn: psch++ fixed my weird Bool.^mro[0] !=== Bool issue in https://github.com/rakudo/​rakudo/commit/cc672654e8bd but there's still segfaults (oh yes :-/) in Bool.pick(*) and Bool.roll(*)
18:27 RabidGravy I need those for Linux::Fuser
18:38 zengargoyle typeing ␤ on linux - try Ctrl+Shift+U and see if a little box pops up with a little 'u' in it, then type 2424 and enter.
18:39 zengargoyle if ubuntu has that particular unicode input method configured.
18:39 mayuresh
18:39 mayuresh yeah, it does, work! :)
18:39 mayuresh thanks zegargoyle :)
18:39 zengargoyle there, now you can type any unicode if you can remember it's number
18:39 mayuresh yeah, looking up unicode charts now! ;)
18:40 zengargoyle also check out compose key, on my machine compose is configured as the windows key via a .Xmodmap file and windows+< and then < by itself does «
18:41 zengargoyle and there are a bunch of other compose+something+something mappings.
18:41 mayuresh coolness.
18:47 zengargoyle there's alsa a an RFC1345 input method you can install that uses &CC sorta like using compose.
18:49 dalek roast: 1145029 | FROGGS++ | S32-exceptions/misc.t:
18:49 dalek roast: add another test for: my Int a
18:49 dalek roast: review: https://github.com/perl6/roast/commit/1145029340
18:50 mayuresh मयुरेश  <- that's my name in devnagari script! :)
18:50 mayuresh zengargoyle, thanks a million for sharing that tip. :)
18:51 zengargoyle http://tools.ietf.org/html/rfc1345 gives an idea of what to try somethimes, or vim digraphs.
18:51 zengargoyle ah, see you've probably figured out enough.. :)
18:51 mayuresh :D
18:52 zengargoyle the compose mappings are pretty much a mystery to me aside from a few guessable ones and /usr/share/doc/libx11-dev/i18​n/compose/en_US.UTF-8.xml.gz which is a horrible read.
18:53 mayuresh hmnn, i found this link; http://unicode-table.com/en/#control-character
18:54 zengargoyle i'm not really sure where to find an actual list of compose things or setup new compose things.  mostly stick with the rfc & unicode methods myself.
18:56 zengargoyle to find unicode things, i usually cut and paste through `iconv -f utf8 -t utf16 | xxd` and look for the code. :)
18:56 mayuresh :)
18:57 [Coke] RT: down to 1028 tickets.
18:57 RabidGravy wahay!
18:59 mayuresh off-topic, but, are there any tolkien fans here-abouts?
19:00 mayuresh i am looking to get myself a copy of 'lotr' for the kindle.
19:00 mayuresh and can't find any with a good rating on amazon.com
19:01 mayuresh most seem to be messed up during the print-to-digital processing.
19:01 FROGGS mayuresh: I can't help you there
19:01 mayuresh froggs, no worries.
19:02 mayuresh btw, did you get any reply from marijn?
19:02 FROGGS mayuresh: not yet
19:02 mayuresh would advise you to be patient, he usually takes time.
19:02 FROGGS mayuresh: that was my plan :o)
19:02 mayuresh :)
19:03 mayuresh he's most responsive on twitter, @marijnjh
19:03 FROGGS I'm not though
19:03 mayuresh :)
19:04 FROGGS it's a frogs vs birds thing ;o)
19:04 nine I slowly get the impression, that loading a module is a kinda complicated process...
19:04 FROGGS nine: it is
19:05 * FROGGS probably has a patch for RT #125573
19:06 nine But I also get the feeling, that I understand more and more of it and how jnthn++ wants to untangle it :)
19:08 FROGGS for me it starts to get funny once you thought you understand bounded serialization and get your hands on reposession conflicts as well as trying to un- or re-own an object...
19:08 itz_stmuk mayuresh: I recently bought the kindle LOTR and it was OK .. there were very minor typos in the OCR but they were rare and it was obvious the correct version
19:09 mayuresh itz_stmuk, can you please share the link?
19:09 nine FROGGS: luckily I'm still poking around in the upper layers so I don't have to know anything about that ;)
19:10 FROGGS nine: yes, though we have to think about these problems very soon (for CURLI)
19:10 dalek roast: 9c56e42 | coke++ | integration/weird-errors.t:
19:10 dalek roast: add a test for RT #119999
19:10 dalek roast: review: https://github.com/perl6/roast/commit/9c56e427ff
19:10 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=119999
19:11 itz_stmuk mayuresh: http://www.amazon.co.uk/dp/B002RI91​76/ref=pe_385721_48721101_TE_M1T1DP
19:11 itz_stmuk you might be able to subst the co.uk by your local domain
19:11 nine FROGGS: well maybe by then I'll have learned enough to be of help
19:11 mayuresh itz_stmuk, cool, yes, i'll check it out.
19:11 mayuresh thanks :)
19:12 dalek rakudo/nom: 6063886 | FROGGS++ | lib/Test.pm:
19:12 dalek rakudo/nom: dont override potentially non-zero exit code
19:12 dalek rakudo/nom:
19:12 dalek rakudo/nom: This will fix RT #125573
19:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6063886343
19:12 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=125573
19:14 mayuresh itz_stmuk; just got myself the copy, thanks a million. :)
19:15 itz_stmuk np
19:17 [Coke] t/spec/S17-supply/syntax.t hanging on os x with test-jobs=10ish
19:22 dalek roast: 2dfcd85 | FROGGS++ | S29-context/die.t:
19:22 dalek roast: add test for die() + Test.pm
19:22 dalek roast: review: https://github.com/perl6/roast/commit/2dfcd85181
19:23 firstdayonthejob joined #perl6
19:23 FROGGS [Coke]: and it does not on my linux box with 4 test jobs
19:24 FROGGS .tell leont is there anything wrong with my patch here? https://github.com/rakudo/rakudo/commit/6063886343
19:24 yoleaux FROGGS: I'll pass your message to leont.
19:27 [Coke] FROGGS: I'm trying to see if I can use some xcode tool to attach the hung process and see what it's doing.
19:29 FROGGS [Coke]: I bet it is hanging somewhere in libuv... because that's where it hung before IIRC
19:29 xfix joined #perl6
19:32 mbrock joined #perl6
19:32 mayuresh coke: i think there's something called "instruments" under x-code which let's you do what you want to.
19:33 dalek rakudo/nom: 7d885ea | coke++ | src/ (2 files):
19:33 dalek rakudo/nom: Don't bother setting recursion limit
19:33 dalek rakudo/nom:
19:33 dalek rakudo/nom: It only ever did anything on the parrot VM.
19:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d885ea73d
19:33 [Coke] mayuresh: yes. but I have no idea how to attach it to a moar process and see anything useful.
19:34 [Coke] (I found moar, selected it as something I cared about, and then had no info on how to show anything happening. dtrace seems similarly complex). Doesn't matter, I killed the process now.
19:35 mayuresh code; which version of x-code are you using?
19:35 mayuresh i meant, coke!
19:35 mayuresh :)
19:35 mbrock left #perl6
19:36 [Coke] mayuresh: 7.1 (7b91b)
19:36 mayuresh dang.
19:36 mayuresh there used to be something called "spin control" in pre-4.2
19:36 mayuresh that could be used specifically for monitoring hang activity.
19:37 tokuhirom joined #perl6
19:38 kjs_ joined #perl6
19:41 mayuresh coke; i think they've introduced something called "address sanitizer" in v7.
19:43 mayuresh http://useyourloaf.com/blog/us​ing-the-address-sanitizer.html
19:44 itz_stmuk dtruss on OS X resembles linux systrace
19:44 itz_stmuk except you always have to be root
19:46 rangerprice joined #perl6
19:46 rangerprice hi
19:46 mayuresh hi :)
19:47 rangerprice :)
19:47 kmel ohai
19:48 sufrosti1o joined #perl6
19:50 mayuresh alrighty, it's past mid-night, and i need to hit bed.
19:50 mayuresh nice chatting with you all. :)
19:50 mayuresh coke, hope your problem gets resolved. :)
19:50 tokuhiro_ joined #perl6
19:50 mayuresh bye.
19:51 rindolf rangerprice: hi, sup?
19:52 rangerprice rindolf: hi, what do you mean with "sup" ?
19:52 PerlJam heh
19:52 rangerprice "support" ?
19:52 PerlJam rangerprice: he's asking if you would like to dine with him :)
19:52 rindolf rangerprice: sup is short for "What's up?"
19:53 PerlJam rangerprice: no, really, he's saying slangy ... that
19:53 sufrosti2o joined #perl6
19:53 rangerprice Oh okay
19:54 rangerprice rindolf: well well, you ?
19:54 rangerprice PerlJam: Hi there
19:54 PerlJam greetings
19:54 rindolf rangerprice: I'm fine - had another productive day.
19:54 rindolf rangerprice: and I reached an empty inbox again.
19:55 moritz ah, the good old "rm -rf", "read mail -- really fast"
19:55 rindolf moritz: heh.
19:57 PerlJam I wish my days at least /felt/ more productive whether they were or not
19:57 PerlJam Because even when I have a productive day, more often than not, it doesn't feel productive because of all the other things that happened
19:57 rangerprice hahaha, i remember when  i was on Arch Linux, and accidentally i typed that in my terminal: sudo rm * /
19:59 moritz rangerprice: be glad there was no -r in there
19:59 moritz (can still hurt a *lot*)
19:59 nine When our scoped variables or classes from a loaded module are not available in the used module, is that a sign that global merging failed?
20:00 nine s/in the used module/in the using module/
20:00 PerlJam while working with my team on a senior project in college, I tried to remove some spurious files that ended with .8 and I ended up typing "rm *.*" which nuked all of our C source code
20:00 rangerprice And after i installed OpenBSD, but OpenBSD is lack of support, so i re install Arch Linux and now this is my preferred OS
20:00 rangerprice PerlJam: hahahahahaaa
20:01 PerlJam the only "backup" we had was a print out from a few hours before.
20:01 AlexDaniel joined #perl6
20:01 PerlJam (and this was before RCS/CVS/whatever)
20:01 lizmat joined #perl6
20:02 PerlJam lizmat: o/
20:02 lizmat PerlJam o/
20:02 yoleaux 10:59Z <jnthn> lizmat: Intended; we assume subs are in the same language and so will always return us a value that doesn't need hll-mapping, but for method calls we always hll-map (at the callee side, so "is raw" doesn't change anything)
20:02 yoleaux 11:00Z <jnthn> lizmat: You can explicitly nqp::findmethod(A, 'a')(A) to avoid it. Alternatively, we could special-case calls on Rakudo::Internals to not code-gen a hllize, which would be the more pretty option in the code.
20:03 lizmat good *, #perl6!
20:03 jdv79 how would i do something like a "before set_value" like in moose?
20:04 PerlJam jdv79: you could .wrap the method perhaps.
20:04 lizmat jnthn: if you can tell me where we're hlllizing methods, I could take a stab at doing that for Rakudo::Internals
20:04 lizmat alternately, maybe we should just implement this as a class trait?
20:04 jdv79 but that's globally scoped, right?
20:05 jdv79 if i runtime mixin a role before the wrap() that would scope it down?
20:05 jdv79 seems likethere has to be a better way
20:05 nine answering my own question: yes, it is!
20:05 aindilis joined #perl6
20:06 PerlJam nine: what is "global merging" from your question?
20:07 nine PerlJam: merging the globals from the loaded module into the GLOBAL package as far as I understand the code
20:07 PerlJam ah.
20:08 psch hm, Moose' "before set_value" seems somewhat MOP-y to me, actually
20:08 PerlJam psch: Well, IIRC, it does come from Class::MOP
20:08 jdv79 it is
20:08 jdv79 trying to implement a "write once"
20:09 jdv79 and then hopefully someone who knows better can help
20:14 abaugher joined #perl6
20:19 jnthn lizmat: Going for rest now, but: src/Perl6/Actions.nqp:5720
20:19 lizmat jnthn: and the class attribute idea ?
20:20 lizmat good night jnthn  :-)
20:20 RabidGravy jdv79, you can use wrap() or in the case of the attribute, apply a role that provided the set_attribute, does whatever you want and then optionally calls nextsame/callsame to the original
20:20 jnthn lizmat: Also workable :)
20:20 lizmat okidoki
20:20 jnthn Just stick a property on the meta-object or so :)
20:20 lizmat gnight again!
20:21 jnthn cy'all tomorrow
20:21 jnthn 'night o/
20:21 RabidGravy toodlepip
20:21 jdv79 i tried the override approach but got somthing about a collisions method missing
20:21 jdv79 so i thought i'd move on to wrapping
20:21 jdv79 whatever is better in the end - i just want to get it working atm
20:22 kjs_ joined #perl6
20:25 Oatmeal joined #perl6
20:25 psch hmm
20:25 psch generated accessors for an Attribute unfortunately don't seem to go through {get,set}_value
20:26 kmel in the docs i can see that there is a distinction between sub and method
20:26 kmel what is the difference?
20:26 psch that was my MOP-y thought, just declare a WriteOnceAttribute is Attribute has $.written, override set_value to check for $.written and set $!written after the first writing to the value
20:26 jdv79 actually i'm not sure how to do this cause i need the attr name but its in a priv attr which is not accessible to a wrap from a role, right?
20:27 dalek rakudo/curli: 449de22 | (Stefan Seifert)++ | src/core/CompUnit (3 files):
20:27 dalek rakudo/curli: Migrate module loading code to CompUnit::Loader
20:27 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/449de220a3
20:27 psch but yeah, the accessor doesn't go through {get,set}_value, which means you'd have to override compose and add the check to the generated accesors
20:27 nine That was a surprisingly hard commit to do
20:27 psch jdv79: ^^
20:27 psch kmel: methods can't be declared without a surrounding class and have an implicit invocant
20:28 psch kmel: there might be more distinctions, but those come to mind
20:28 psch (where "can't" means "unless you scope them")
20:28 psch m: method foo { }
20:28 camelia rakudo-moar 7d885e: OUTPUT«Potential difficulties:␤    Useless declaration of a has-scoped method in mainline (did you mean 'my method foo'?)␤    at /tmp/vOqb7_wfPB:1␤    ------> 3method7⏏5 foo { }␤»
20:28 psch and, yeah, it's also just a potential difficulty...
20:28 psch so uhm, they can be declared, but *still* have an implicit invocant that looks at the surrounding class (if any)
20:28 rurban joined #perl6
20:29 jdv79 psch: what goes through {get,set}_value then?
20:29 psch jdv79: i have no idea, unfortunately
20:29 jdv79 i was getting a little concerned that my code doesn't run
20:29 jdv79 makes sense at least
20:30 psch https://github.com/rakudo/rakudo/b​lob/nom/src/core/Attribute.pm#L26
20:30 psch that's what you get when you do $foo.bar
20:30 psch those tiny little methods that just do getattrref_*
20:31 psch or getattr_*
20:31 kmel so when it comes to routines already provided by rakudo (say, elems, pop etc.) they all behave the same either sub or method
20:31 kmel ?
20:31 RabidGravy kmel, not all
20:31 psch kmel: &say and e.g. Any.say aren't declared in one spot, if that's what you mean
20:31 jdv79 uh.  so this is not trivial to implement
20:32 psch jdv79: i have a strong feeling it should be easier, but as it stands you'd have to override compose
20:32 jdv79 and that looks nightmareish
20:32 psch jdv79: well, that's just the nested ?? !! :)
20:33 kmel psch: i agree one may override the other (depending on which class)
20:34 kmel psch: let me rephrase my question. In other languages routines that return a value are different than routines that don't return but do something
20:34 kmel do we have that distinction here?
20:35 kmel hi RabidGravy
20:36 RabidGravy no, not really
20:37 kmel thanks RabidGravy. I should have explained earlier what I mean by "they're the same"
20:38 psch kmel: i'm not sure how you'd write a sub or method that returns void (e.g. actually nothing, and trying to assign from it is an error) and not "just" Nil
20:39 kmel psch: sub sayhi { say 'hi';}; sayhi;
20:39 kmel m: sub sayhi { say 'hi';}; sayhi;
20:39 camelia rakudo-moar 7d885e: OUTPUT«hi␤»
20:39 psch m: sub sayhi { say "hi"; }; say sayhi
20:39 camelia rakudo-moar 7d885e: OUTPUT«hi␤True␤»
20:39 psch kmel: that returns True
20:40 kmel m: sub returnhi {'hi';}; say returnhi;
20:40 camelia rakudo-moar 7d885e: OUTPUT«hi␤»
20:41 kmel In some languages there is a distinction between the 2 above routines
20:41 kmel although the end result is the same
20:42 n0tjack joined #perl6
20:42 kmel got my point?
20:42 psch kmel: no, i don't.  your &sayhi still returns something
20:43 psch kmel: so there's no distinction
20:43 tokuhirom joined #perl6
20:44 psch kmel: i know that void as a concept exists in other languages, or different forms of subroutines can be declared, like e.g. delphi procedures
20:44 psch kmel: but i don't see how your two examples show any kind of similar behavior
20:45 psch kmel: maybe that just means that we don't distinguish between subs that are designed to have their return value used and subs that aren't on a language level
20:46 kmel psch: yes
20:46 jdv79 how can i mix a role in to do stuff that requires priv vars in the instance?
20:47 jdv79 the copy and paste Proxy implementation of this feature is looking better and better
20:47 RabidGravy $foo does Role
20:48 jdv79 and $foo has priv attrs that the role can't touch
20:48 jdv79 compose and $!type for instance
20:48 geraud joined #perl6
20:48 jdv79 this may require a mop expert
20:49 kmel psch: honestly i don't see it as a must have. I was just making sure this is not the case of sub vs method
20:50 jdv79 is there anyone besides jnthn i could ask?
20:53 nine jdv79: what exactly are you trying to do?
20:53 bjz joined #perl6
20:53 jdv79 a "write once" attr trait
20:54 jdv79 i thought it would be easier but what do i know:)
20:55 nine why would you need to access private attributes for that?
20:55 rangerprice how i can apply a patch manually to a perl module downloaded via metacpan ?
20:55 jdv79 because it seems i need to redefine the compose method on Attribute to od it
20:55 jdv79 idk.  do you know of another way?
20:56 jdv79 right now i just copy and paste a Proxy snippet around with a die in the STORE if attr is already defined
20:57 jdv79 something like "has $.foo is w1" would be nicer
20:58 jdv79 rangerprice: metcpan is a p5 thing only so far
20:59 nine jdv79: I guess you'd have to add_method the write once accessor method before Attribute.compose runs
21:00 adhoc joined #perl6
21:01 nine jdv79: or maybe better: replace it afterwards, so you can still use it and avoid duplicating it
21:01 psch jdv79: https://gist.github.com/pe​schwa/cb8f5e954ba932e15c31
21:01 psch the else { } blocks can be modified to your liking, depending on what you'd like to have happen
21:01 kjs_ joined #perl6
21:01 psch jdv79: note that as-is you import the WriteOnceAttribute and *every* class has write-once attributes
21:02 psch jdv79: in the current scope, of course
21:04 jdv79 uh, i wanted it as an attr trait cause that's the cleanest, right?
21:04 jdv79 not at the class level
21:04 jdv79 but that's closer than i got at least
21:05 RabidGravy psch, ah *that's* who you set the attribute class ;-)
21:05 rangerprice jdv79: oh ok
21:05 psch jdv79: i'd have to think a lot to figure it out as a trait, this seemed fairly straight-forward... :S
21:05 yqt joined #perl6
21:06 psch jdv79: but, as you can see from my gist, mixing a role with a different compose into the traited Attribute that supplies its own $!type could probably work
21:06 jdv79 yeah i didn't try that
21:06 psch jdv79: as in, what you can see from my gist is that i'm not accessing Attribute's $!type, but declaring my own for WriteOnceAttribute
21:06 psch because private Attributes aren't inherited in the first place, iirc
21:07 psch whereas roles can access private Attributes from other roles..?
21:07 psch the latter i saw today, so maybe the former is wrong
21:07 psch m: class A { has $!foo = "baz" ; method bar { say $!foo } }; class B is A { }; B.new.bar
21:07 camelia rakudo-moar 7d885e: OUTPUT«baz␤»
21:07 psch yeah it is
21:08 lostinfog joined #perl6
21:08 jdv79 i'm not certain.  that part of the model isn't intuitive to me
21:08 psch m: class A { has $!foo = "baz" ; method bar { say $!foo } }; class B is A { method quux { say $!foo } }; B.new.bar
21:08 camelia rakudo-moar 7d885e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8G6PVTkhdp␤Attribute $!foo not declared in class B␤at /tmp/8G6PVTkhdp:1␤------> 3ass B is A { method quux { say $!foo } }7⏏5; B.new.bar␤    expecting any of:␤        horizontal whitespace␤    …»
21:08 psch no it's not wrong
21:08 psch the A-scoped &bar knows $!foo because it's A-scoped itself..?
21:09 jdv79 iirc $! vars are essentially lex scoped maybe
21:11 jdv79 also i'm not sure your side state would be a good idea
21:11 jdv79 since the mop probably reaches around that for something
21:11 jdv79 i thought just a defined check on the value slot would be good enouhg
21:11 jdv79 maybe too slow?  idk.
21:11 lizmat jdv79 psch private attributes are hidden from subclasses as they are from the rest of the world
21:11 psch S12:Introspection shows there's only one mnemonic for all those capital somethigns for classes :/
21:11 synbot6 Link: http://design.perl6.org/S12.h​tml#Introspection_shows_there
21:12 psch jdv79: the state variable is scoped to the accessor method
21:12 lizmat if a subclass really wants to access private attributes of a parent class, you will need to use nqp::getattr
21:12 jdv79 i thnk this may have to be my next question to jnthn
21:12 jdv79 yeah but who knows if there's another path to set it
21:12 psch jdv79: well, there is, with set_value
21:12 [Sno] joined #perl6
21:12 psch jdv79: but that's introspect-y
21:13 psch m: class A { has $.foo }; class B is A { }; say nqp::getattr(B.new, 'B', '$!foo') # lizmat..?
21:13 camelia rakudo-moar 7d885e: OUTPUT«P6opaque: no such attribute '$!foo'␤  in block <unit> at /tmp/nfrAvjRUrS:1␤␤»
21:13 psch m: class A { has $.foo }; class B is A { }; say nqp::getattr(B.new, 'A', '$!foo') # lizmat..?
21:13 camelia rakudo-moar 7d885e: OUTPUT«P6opaque: no such attribute '$!foo'␤  in block <unit> at /tmp/oB863GSlgr:1␤␤»
21:13 jdv79 the intent was "allow set if not already set"
21:13 _dolmen_ joined #perl6
21:13 jdv79 write once kinda captures that in a pure sense but not in the guys probably
21:13 lizmat psch: in your example, foo is public, so $.foo should work
21:14 jdv79 it about type
21:14 lizmat but suppose it is private:
21:14 jdv79 if i wanted to override Attribute.compose i would need access to $!type
21:14 gfldex m: my $s = Any.new but role { my $i = 42; method answer(){$i}; method new {!!!} }; $s.new.say;
21:14 camelia rakudo-moar 7d885e: OUTPUT«Any+{<anon|77407088>}.new␤»
21:15 psch jdv79: no, you can just add an attribute $!type to the subclass of Attribute
21:15 lizmat m: use nqp; class A { has $!foo }; class A is B { method bar { nqp::getattr(self,A,'$!foo' } }
21:15 camelia rakudo-moar 7d885e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/emV5Xmb_LE␤Redeclaration of symbol A␤at /tmp/emV5Xmb_LE:1␤------> 3nqp; class A { has $!foo }; class A is B7⏏5 { method bar { nqp::getattr(self,A,'$!f␤»
21:15 jdv79 yeah but i don't see how to scope that down liek i want
21:15 lizmat m: use nqp; class A { has $!foo }; class B is A { method bar { nqp::getattr(self,A,'$!foo' } }
21:15 camelia rakudo-moar 7d885e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NoGR8pXiQv␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/NoGR8pXiQv:1␤------> 3ethod bar { nqp::getattr(self,A,'$!foo' 7⏏5} }␤»
21:15 lizmat m: use nqp; class A { has $!foo }; class B is A { method bar { nqp::getattr(self,A,'$!foo') } }
21:15 camelia rakudo-moar 7d885e: ( no output )
21:15 lizmat psch: ^^^
21:16 gfldex m: my $s = Any.new but role { my $i = 42; method answer(){$i}; method new {!!!} }; my $b = $s.new; say $s.WHAT, $b.WHAT;
21:16 camelia rakudo-moar 7d885e: OUTPUT«(Any+{<anon|58717344>​})(Any+{<anon|58717344>})␤»
21:16 gfldex is $s.new comming from Any or the anon role?
21:16 psch lizmat: ooh, right.  the second arg to getattr is a type, not a Str
21:16 psch that's what i messed up locally
21:16 psch and brought here
21:17 psch jdv79: well, if you don't make my mistake you can also use getattr instead of adding the attr again
21:18 lizmat yeah, the 2nd parameter is the class of the attribute
21:18 psch m: class A { method new {!!!} }; A.new
21:18 camelia rakudo-moar 7d885e: OUTPUT«Stub code executed␤  in method new at /tmp/mIWMyeN4fr:1␤  in block <unit> at /tmp/mIWMyeN4fr:1␤␤»
21:18 lizmat as you can have 2 attributes of the same name (but of different classes) in an object
21:18 psch m: Any.new.new.new.new.new
21:18 camelia rakudo-moar 7d885e: ( no output )
21:18 psch gfldex: ^^^ with those two i'd say the new is from Any
21:19 lizmat it's from Mu, I think, though
21:19 psch m: Any.new.WHAT
21:19 camelia rakudo-moar 7d885e: ( no output )
21:19 jdv79 i just don't see how to scope it down; like i said
21:19 psch m: Any.new.WHAT.say
21:19 camelia rakudo-moar 7d885e: OUTPUT«(Any)␤»
21:19 psch jdv79: what does "scope it down" mean?
21:19 jdv79 to an attr trait
21:20 psch jdv79: oh.  well, the trait presumably applies to Attributes and mixing in a new compose method
21:20 jdv79 has $.foo is write_once;
21:20 psch jdv79: i'd thought you had figured that out already, sorry
21:20 jdv79 huh?  if i had figured that out i'd be done.
21:20 jdv79 maybe your definition of "that" is different
21:21 psch probably :)
21:21 psch my "that" is "writing a trait"
21:21 lizmat m: use nqp; class A { has $!foo }; class B is A { method bar { nqp::getattr(self,A,q/$!foo/) } }  # 2 attributes with same name in 1 B object
21:21 camelia rakudo-moar 7d885e: ( no output )
21:22 jdv79 my that is implementing a trait at the attr granularity
21:22 lizmat use nqp; class A { has $!foo }; class B is A { has $.foo; method bar { nqp::getattr(self,A,q/$!foo/) } }   # eh, this one  :-)
21:26 RabidGravy jdv79, that's the trait part https://gist.github.com/jonat​hanstowe/54f1e9ced5e9382b822d
21:26 psch hm, the example aren't particularly helpful
21:26 psch err, not examples
21:26 psch the trait_mods that are declared in traits.pm for Attribute don't help me to figure this out :P
21:26 psch that's what i wanted to say
21:27 psch the keys are like, right next to each
21:27 psch other
21:27 RabidGravy as demonstrating over-writing compose
21:27 psch m: https://gist.github.com/jonat​hanstowe/54f1e9ced5e9382b822d
21:27 camelia rakudo-moar 7d885e: OUTPUT«boo ␤42␤»
21:28 jdv79 yes i have all that.  but now in that Thing.compose don't i need $!type to do it correctly?
21:28 RabidGravy do what with $!type?
21:28 jdv79 i don't get what the diff types are
21:28 psch jdv79: you do need it, but you can either add 'has $!type' to your role, or use nqp::getattr() to access the $!type from Attribute
21:28 jdv79 what Attribute.compose does
21:28 psch jdv79: 0 is obj, 1 is int, 2 is num, 3 is str
21:29 RabidGravy I'd go dumber than that
21:29 jdv79 yeah but if i'm runtime mixing in my role on an instance of Attribute then having a seperate role attr won't work
21:30 RabidGravy callsame the compose then find the created method using find_method
21:30 RabidGravy then dick around with that
21:31 psch m: class A { method foo { } }; A.^add_method("foo", method { })
21:31 camelia rakudo-moar 7d885e: OUTPUT«Package 'A' already has a method 'foo' (did you mean to declare a multi-method?)␤  in any add_method at gen/moar/m-Metamodel.nqp:450␤  in block <unit> at /tmp/4au70_u7tS:1␤␤»
21:31 psch RabidGravy: probably runs into that then
21:31 RabidGravy no wrap it
21:31 RabidGravy :)
21:32 psch m: class A { method foo { } }; A.can('foo')[0].wrap(-> { say "ok" }); A.new.foo
21:32 camelia rakudo-moar 7d885e: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in block <unit> at /tmp/uap6Ufe2rP:1␤␤»
21:32 psch m: class A { method foo { } }; A.can('foo')[0].wrap(-> \fles { say "ok" }); A.new.foo
21:32 camelia rakudo-moar 7d885e: OUTPUT«ok␤»
21:32 psch yeah, i really should remember that about wrap
21:32 psch it actually replaces the method handle
21:32 psch or sub handle
21:32 psch routine handle, actually i suppose
21:39 ^elyse^ joined #perl6
21:45 psch hmm
21:46 psch &wrap actually is also somewhat difficult there
21:46 psch i mean, in compose
21:46 psch or maybe it's just me, again :P
21:47 psch 'cause i don't see a way to track changes per specific attribute seperately, if all attributes get their wrapper from the same place
21:47 psch well, with a hash i suppose... /:
21:50 rangerprice Can someone test the Net::Frame::Device metacpan module for me ? this module won't compile !
21:52 Begi1115 joined #perl6
21:52 RabidGravy is that a Perl 6 module?
21:53 lizmat joined #perl6
21:55 leont joined #perl6
21:57 rangerprice RabidGravy: no
21:58 RabidGravy cause you might be better off asking in #perl
21:58 adhoc joined #perl6
22:00 jdv79 hmm.  how can i get the value without calling get_value or myself;)
22:00 jdv79 its almost working.
22:01 jdv79 oh, nm
22:01 jdv79 i can't ready anyore
22:02 firstdayonthejob joined #perl6
22:03 kjs_ joined #perl6
22:05 RabidGravy good good :)
22:07 dalek rakudo/nom: e28c25b | lizmat++ | src/core/Any-iterable-methods.pm:
22:07 dalek rakudo/nom: Introduce .head($n)/.tail($n)
22:07 dalek rakudo/nom:
22:07 dalek rakudo/nom: Inspired by List::Slice, mentioned in
22:07 dalek rakudo/nom:
22:07 dalek rakudo/nom:   http://blogs.perl.org/users/preaction/2015/10/l​istslice---slice-like-operations-for-lists.html
22:07 dalek rakudo/nom:
22:07 dalek rakudo/nom: I figured we could use a .head and .tail as well in Perl 6.  Basically,
22:07 dalek rakudo/nom: the foo.head($n) is just another way of saying foo[^$n]: it should just
22:07 dalek rakudo/nom: reify the elements that are needed.  Although semantically foo.tail($n)
22:07 dalek rakudo/nom: is the same as foo[*-10..*], it *will* also reify all elements of the
22:07 dalek rakudo/nom: list, *but* it will only keep $n elements around to be passed on when
22:07 dalek rakudo/nom: the source list is exhausted.  This potentially uses a *lot* less memory.
22:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e28c25b343
22:07 llfourn joined #perl6
22:08 lizmat oops, s/-10/-$n/
22:09 pink_mist hope it's just the commit message that needed that correction :D
22:09 pink_mist (and not the code as well)
22:09 Zoffix_ joined #perl6
22:10 lizmat just the commit message
22:10 TEttinger joined #perl6
22:11 jdv79 https://gist.github.com/ano​nymous/6e0a148a351667b5d345
22:12 jdv79 can anyone hint what what i'm missing
22:12 jdv79 get_value() should get me the value but it is not:(
22:12 jdv79 clearly .perl has no trouble calling get_value() so it has to be something obvious i'm missing
22:13 raiph joined #perl6
22:13 pink_mist jdv79: doesn't A.new.foo create a new object each time, so it's the first time that specific object gets written to?
22:14 lizmat jdv79: wouldn't it be simpler to actually decont the attribute once you have written it?
22:14 lizmat then you wouldn't automatically be able to assign to it the next time
22:15 psch jdv79: what pink_mist says, you're creating multiple As
22:15 psch jdv79: each A starts with an undefined $.foo
22:15 lizmat this then would need to be done in the mutator generation ?
22:16 * psch .oO( "now generalize the solution to 1) class variables and 2) user-supplied amounts of write limitation" )
22:16 jdv79 pink_mist: thanks
22:16 jdv79 i knew it was codestare
22:17 jdv79 in the wrong place
22:18 jdv79 lizmat: i guess so.
22:19 jdv79 psch: is that useful?
22:20 jdv79 my use case is just being able to .= new while still being ro
22:20 lizmat jdv79: I guess if you look at the implementation of "is required", implementing a "writeonce" trait shouldn't be too high hanging fruit
22:20 lizmat well, perhaps write-once  :-)
22:21 pink_mist `is w1´ -> `is w(1)´
22:21 psch jdv79: i don't know, 1) might be somewhat useful, but 2) is probably academic
22:22 jdv79 lizmat: the thing with the decont solution is that aren't there other places that set the value?
22:22 jdv79 i don't care where its set from just that if it is set not more setting
22:22 pink_mist . o O ( `is w(-1)´ wonder what that would do )
22:22 jdv79 as is construction doesn't go through the accessors does it?
22:22 jdv79 *in
22:22 jdv79 or defaults
22:23 lizmat well, how can a public attribute be set?  by a mutator method that is automatically generated
22:23 lizmat or a custom mutator
22:23 lizmat in the latter case, all bets are off anyway, I would think
22:23 ilogger2 joined #perl6
22:23 lizmat just like private attributes of a class are not really private if you start using nqp or maybe the MOP
22:25 jdv79 yeah, i'll look into it later.  thanks.
22:25 jdv79 i don't know much about the mop or internals so too many assumptions i guess
22:25 RabidGravy but using those is like breaking the little sticker on the back of an electronic device
22:25 raiph joined #perl6
22:25 psch m: https://gist.github.com/pe​schwa/9e071976dab9eb63fd42
22:25 camelia rakudo-moar e28c25: OUTPUT«123␤Cannot assign more than once to a writeonce attribute␤  in block  at /tmp/ZHopN3NzD8:7␤  in any enter at gen/moar/m-Metamodel.nqp:3724␤  in block <unit> at /tmp/ZHopN3NzD8:24␤␤»
22:26 psch jdv79: unfortunately you're also breaking the get-ty part of the accessor
22:27 psch so it's more of a write-once-and-never-access-again Attribute... :/
22:27 pink_mist lol
22:27 psch that's common with my solution from before as well though, in hindsight
22:28 jdv79 yeah - i'll fix it later.  i was getting frustrated with my lack of speed getting the various bits in place
22:28 jdv79 i think its pub time atm thoug h
22:28 jdv79 thanks all!
22:29 psch .tell jdv79 there is a .set_readonly method on Attribute, which probably helps
22:29 yoleaux psch: I'll pass your message to jdv79.
22:30 zengargoyle how do you get at a module's un-exported subroutine for testing purposes?
22:32 dalek rakudo/nom: f558679 | lizmat++ | src/core/Any-iterable-methods.pm:
22:32 dalek rakudo/nom: Presize the list for tailed elements
22:32 dalek rakudo/nom:
22:32 dalek rakudo/nom: Should ensure fewer re-allocations
22:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f558679754
22:33 raiph joined #perl6
22:45 tokuhirom joined #perl6
22:48 raiph joined #perl6
22:53 Alina-malina joined #perl6
22:54 jdv79 https://gist.github.com/ano​nymous/fbbf8440a94f531e89a0 is the best i can do right now
22:54 yoleaux 22:29Z <psch> jdv79: there is a .set_readonly method on Attribute, which probably helps
22:55 jdv79 .tell psch i don't see that but i'm probably a few weeks old here.  thanks.
22:55 yoleaux jdv79: I'll pass your message to psch.
22:58 raiph joined #perl6
22:58 virtualsue joined #perl6
23:02 psch m: Attribute.^can('set_readonly').say
23:02 yoleaux 22:55Z <jdv79> psch: i don't see that but i'm probably a few weeks old here.  thanks.
23:02 camelia rakudo-moar f55867: OUTPUT«(<anon>)␤»
23:02 psch jdv79: it's there, declared in BOOTSTRAP.nqp, not Attribute.pm
23:04 zakharyas joined #perl6
23:05 kid51 joined #perl6
23:06 Begi joined #perl6
23:06 dalek doc: b84ffc0 | lizmat++ | doc/Type/Supply.pod:
23:06 dalek doc: Add more Supply.throttle documentation
23:06 dalek doc: review: https://github.com/perl6/doc/commit/b84ffc0d45
23:09 jdv79 m: say Attribute.^methods
23:09 camelia rakudo-moar f55867: OUTPUT«(<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> compose apply_handles get_value set_value container has-accessor readonly package inlined WHY set_why Str gist)␤»
23:10 jdv79 why is it not there?
23:10 llfourn joined #perl6
23:11 jdv79 but ok
23:12 Begi joined #perl6
23:12 diakopter mattn_jp: hi
23:14 lizmat m: .say for Attribute.HOW.^methods>>.name.grep( { /^set/ } ).sort.squish   # jdv79 because you need methods on the MOP object ?
23:14 camelia rakudo-moar f55867: OUTPUT«set_array_type␤set_auth␤set_autogen_proto␤​set_boolification_mode␤set_default_invoke_handler​␤set_default_parent_type␤set_hidden␤set_invocatio​n_attr␤set_invocation_handler␤set_is_mixin␤set_mi​xin_attribute␤set_multi_invocation_attrs␤se…»
23:15 jdv79 weird
23:17 psch m: .say for Attribute.HOW.^methods>>.name.grep( { /^set_readonly/ } ).sort.squish
23:17 camelia rakudo-moar f55867: ( no output )
23:18 psch it's is in .^methods, but the code object doesn't know that it's called set_readonly
23:18 psch s/is//
23:18 psch that's just the peg it's hang on in Attribute
23:18 psch probably due to circularity reasons
23:19 psch m: Attribute.^attributes[0].WHAT.say
23:19 camelia rakudo-moar f55867: OUTPUT«Method 'say' not found for invocant of class 'BOOTSTRAPATTR'␤  in block <unit> at /tmp/4KHp_u_k2C:1␤␤»
23:19 psch similar to that case, we'd need a BOOTSTRAPMETHOD to have it know it's name i think
23:19 BenGoldberg joined #perl6
23:20 virtualsue joined #perl6
23:21 ShimmerFairy I think preferably we'd like it if BOOTSTRAPATTR, NQPRoutine, and the like didn't leak through in Perl 6 :P (or alternately have them sufficiently P6-like that it's not too bothersome, namely having things like .gist)
23:24 diakopter m: module Foo { module Bar { say $?PACKAGE.WHO } } #118361
23:24 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=118361
23:24 camelia rakudo-moar f55867: OUTPUT«␤»
23:24 diakopter m: module Foo { module Bar { say $?PACKAGE } } #118361
23:24 synbot6 Link:  https://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=118361
23:24 camelia rakudo-moar f55867: OUTPUT«(Bar)␤»
23:34 diakopter m: module Foo { module Bar { say $?PACKAGE.WHO!Map::storage } }
23:34 camelia rakudo-moar f55867: OUTPUT«5===SORRY!5=== Error while compiling /tmp/afdiRRL1Pp␤Cannot call private method 'storage' on package Map because it does not trust Bar␤at /tmp/afdiRRL1Pp:1␤------> 3ule Bar { say $?PACKAGE.WHO!Map::storage7⏏5 } }␤    expecting any of:␤ …»
23:44 silug joined #perl6
23:47 lizmat good night, #perl6!
23:50 literal joined #perl6
23:53 lizmat_ joined #perl6
23:59 rangerprice joined #perl6

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

Perl 6 | Reference Documentation | Rakudo