»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:00 intrigue left 00:03 intrigue joined, Alina-malina left 00:11 Alina-malina joined
colomon do we have the C++ interface working yet? 00:19
psch colomon: github.com/rakudo/rakudo/blob/nom/...l/11-cpp.t passes at least mostly, iirc 00:21
colomon psch++ 00:23
looks like it all passes on my machine 00:24
00:25 Hor|zon joined, skids joined 00:30 Hor|zon left
lizmat P6 Weekly: p6weekly.wordpress.com/2015/10/27/...niceville/ 00:31
get it while they're good!
00:31 Actualeyes joined
lizmat and with that, I wish #perl6! a good night! 00:32
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)␤»
gfldex m: no strict; $lizmat++ x 44; # o.0
camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "x" in expression "++ x 44" in sink context (line 1)␤»
00:34 colomon left 00:35 lizmat left 00:40 spider-mario left 00:41 adhoc left, kid51 joined 00:42 tokuhirom joined 00:44 colomon joined
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)␤»
psch that's somewhat LTA
i mean, with the ++
m: $++ x 4 00:46
camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "x" in expression "++ x 4" in sink context (line 1)␤»
gfldex m: my $i = $++; say $i; 00:49
camelia rakudo-moar cd7766: OUTPUT«0␤»
gfldex what's a $++ and who put it into my perl? o.O
psch gfldex: shorthand for (state $)++
00:49 BenGoldberg joined 00:50 BenGoldberg left
psch m: sub lizmat is rw { $ }; lizmat++ xx 4; say lizmat 00:52
camelia rakudo-moar cd7766: OUTPUT«4␤»
psch err, i hope that's not pinging on her end... :S
or belling, or \a-ing or somesuch
gfldex you can increment me instead if you like 00:53
psch heh, i demonstrated what i meant to, but thanks gfldex++ :)
00:54 ab6tract left
flussence given the lack of nick-highlighting for those lines, there's no need to worry about pinging :) 00:58
(handy feature to have, that)
gfldex i found it in design.perl6.org/S02.html#Names 01:00
but i knew what i was looking for. That's a mean trap for a novice Perl 6 learner
psch flussence: i guess you're right. most clients only highlight the own nick on the beginning of the line, don't they 01:01
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:02
01:04 raiph left
ShimmerFairy my client would've highlighted that, fwiw :) 01:11
01:21 raiph joined 01:26 Hor|zon joined, sufrostico left 01:31 Hor|zon left
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␤␤»
gfldex i'm leaning towards LTA
01:41 ingy joined
AlexDaniel gfldex: hmmm I think there was some similar bug… 01:44
gfldex i will dig for the RT tomorrow 01:45
AlexDaniel gfldex: rt.perl.org/Public/Bug/Display.html?id=125902
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…»
psch it's a parsing muck-up somewhere, yeah 01:48
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␤␤»
psch traits between type and var make the grammar confused
02:02 leont left 02:03 Zoffix joined 02:13 chenryn joined 02:15 kid51 left, dayangkun joined 02:23 secwang joined 02:27 Hor|zon joined 02:32 Hor|zon left 02:34 secwang left 02:45 rangerprice joined
rangerprice hi 02:45
03:05 vike left 03:18 ParsonsNose joined 03:20 rangerprice left 03:23 yeahnoob joined 03:27 vike joined 03:28 Hor|zon joined 03:32 Hor|zon left 03:38 llfourn joined 03:53 chenryn left 04:00 ShimmerFairy left 04:06 khw left 04:07 softmoth left 04:13 ShimmerFairy joined, skids left
ShimmerFairy m: package A::B { constant C = 42 }; say A::B::C 04:28
camelia rakudo-moar cd7766: OUTPUT«42␤»
ShimmerFairy m: package A::B { constant C = 42 }; say A::<B>::<C>
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␤»
ShimmerFairy ^ any idea why that doesn't work?
04:28 quester joined 04:29 Hor|zon joined
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 Hor|zon left, chenryn joined 04:42 AlexDaniel left 04:58 Fluor left 04:59 Fluor joined 05:03 Fluor left 05:07 Fluor joined 05:17 adu joined 05:20 adu left 05:25 aborazmeh joined, aborazmeh left, aborazmeh joined 05:26 raiph left 05:30 Hor|zon joined 05:35 Hor|zon left 05:50 softmoth joined 05:51 skogs joined 05:52 xfix joined 05:55 softmoth left 06:00 dayangkun_ joined 06:02 dayangkun left 06:10 skogs left 06:21 darutoko joined 06:29 chenryn left 06:31 Hor|zon joined 06:33 chenryn joined 06:35 _dolmen_ joined 06:36 Hor|zon left 06:48 bjz joined 06:56 bjz left, bjz joined 06:58 domidumont joined
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:01
yoleaux nine: I'll pass your message to jnthn.
07:02 domidumont left 07:04 domidumont joined 07:07 telex left 07:08 domidumont left 07:12 geraud left
[Tux] test 50000 39.855 39.739 07:15
test-t 50000 39.578 39.463
07:16 telex joined 07:17 domidumont joined 07:21 Actualeyes left 07:24 Actualeyes joined 07:27 telex left 07:29 lizmat joined 07:32 Hor|zon joined 07:34 _dolmen_ left 07:35 FROGGS joined 07:37 Hor|zon left 07:38 softmoth joined 07:41 bjz left 07:42 bjz joined, RabidGravy joined, softmoth left 07:49 rurban joined 07:50 risou is now known as risou_awy 07:51 risou_awy is now known as risou, chenryn left 07:57 lizmat left 07:59 abraxxa joined 08:00 chenryn joined
dalek kudo/nom: 4bdc880 | usev6++ | src/Perl6/Grammar.nqp:
Look for all terminators in case of missing sigil

Completes fix for RT #120831
08:02
kudo/nom: 438d786 | FROGGS++ | src/Perl6/Grammar.nqp:
Merge pull request #563 from usev6/rt120831

Look for all terminators and EOF in case of missing sigil
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=120831
08:05 [Sno] left
cosimo [Coke]: ok, I thought http_proxy support was indeed implemented. Do you have a test case at hand? 08:11
08:18 aborazmeh left 08:19 ely-se joined 08:20 telex joined
RabidGravy yes it is, though not for an https connection 08:21
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:23
cosimo RabidGravy: I think I can do better than that 08:24
RabidGravy cool 08:25
cosimo RabidGravy: you should now be allowed to push to my perl6-cache-memcached repo
RabidGravy :) Yeah got it 08:26
08:26 aborazmeh joined, aborazmeh left, aborazmeh joined
RabidGravy cheers! 08:27
cosimo and thanks
08:28 telex left
RabidGravy thanks for making it in the first place 08:28
08:30 rindolf joined 08:32 kmel_ joined 08:33 Hor|zon joined, telex joined 08:34 Actualeyes left 08:37 [Sno] joined
cosimo kebab-case I had never heard before 08:37
08:38 Hor|zon left 08:40 leont joined 08:41 lizmat joined 08:42 kmel_ left
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!
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?
ChoHag Yes.
moritz ChoHag: if yes, "for" will not iterate over it
ChoHag Is the best kind of answer always another question? 08:45
moritz ChoHag: I'd recommend putting it into an @-sigiled variable
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…»
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
lizmat if it does Iterable, it is expected to have an iterator method, and for will call it
moritz lizmat: I'm pretty sure that's not true
m: my $a = [1, 2, 3]; for $a { say 42 }
camelia rakudo-moar cd7766: OUTPUT«42␤»
moritz m: my $a = [1, 2, 3]; for $a { say 42 }; say $a ~~ Iterable 08:47
camelia rakudo-moar cd7766: OUTPUT«42␤True␤»
ChoHag lizmat: It certainly seems towork that way.
moritz ... unless it's inside a scalar container
m: my \a = [1, 2, 3]; for a { say 42 };
camelia rakudo-moar cd7766: OUTPUT«42␤42␤42␤»
08:47 Actualeyes joined
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
So, not that I need to in this instance, but is there a way to ensure that Iterator's results aren't cached?
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?
lizmat if you don't want it cached, you could implement your own .cache method that doesn't do anything, I think
lizmat admits to not quite being awake yet 08:50
moritz method cache { self }
ChoHag Hmm. How do I force a $-sigilled variable to treated as though it's @-sigilled without re-sigilling it? 08:51
And does sigilling have one or two ells?
moritz m: my $a := [1, 2, 3]; for $a { say 42 }
camelia rakudo-moar cd7766: OUTPUT«42␤42␤42␤»
moritz ChoHag: you bind to it. Though I'm not sure that's a good idea
lizmat
.oO( isn't that sigillizing ? )
08:52
moritz contrary to what folks believe, sigils do carry meaning in Perl 6
ChoHag Sorry, not make the variable pretend it's @-sigilled, just treat it in one specific instance as though it is.
moritz *some folks
and it's best to use the appropriate sigil
you can also do
ChoHag Like I naiively thought for @($haha-I'm-a-list) { ... } did.
moritz m: my $a = [1, 2, 3]; for @$a { say 42 }
camelia rakudo-moar cd7766: OUTPUT«42␤42␤42␤»
moritz yes, that works 08:53
ChoHag Not here. Must be because my object's weird.
moritz deweirdify it :-)
ChoHag It's actually a Str but with a role that does Positional and Iterable.
moritz in German we call that "Eierlegende Wollmilchsau" 08:54
en.wiktionary.org/wiki/eierlegende_Wollmilchsau
08:55 leont left
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.
What I'm doing does make a sort of sense. I hope. 08:56
I'll know when I've done it.
If. 08:58
09:02 dakkar joined
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
09:02 zakharyas joined
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
Also: Mmmm. Furry bacon.
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␤»
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
azawawi hi #perl6 09:09
09:09 aborazmeh left, Hor|zon joined
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
oh 09:10
gfldex ChoHag: some changes are documented, some are not. It depends on the document and the thing.
azawawi github.com/azawawi/perl6-selenium-...s/chrome.t # Automated chrome UI testing in Perl 6 :)
Timbus well.. that's putting it in the array as the first element isn't it?
RabidGravy azawawi++ # go go go!
ChoHag Apparently. 09:11
Timbus you might want $to.list there
azawawi RabidGravy: thx :)
Timbus oh but you cant seem to listify your ubject huh.. I missed that. well then.. 09:12
azawawi any update on module version support in panda or Zef like PAUSE/CPAN 09:14
?
timotimo ohai happy perl people 09:15
azawawi timotimo: hey there
lizmat azawawi: irclog.perlgeek.de/perl6/2015-10-27#i_11437939
azawawi reads it
09:16 xinming left
azawawi lizmat: cool 09:16
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␤␤»
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 ?
yoleaux lizmat: I'll pass your message to jnthn.
ChoHag So @something is literally a list, not an object which happens to be listy. 09:19
Right?
lizmat .tell jnthn it works with my/our subs: not working with class method is holding back internal sub -> Rakudo::Internals migration
yoleaux lizmat: I'll pass your message to jnthn.
09:19 lizmat left
azawawi can we use 'NETWORK_TESTING=1 or 0' in HTTP::UserAgent? 09:20
i feel it is the right way for tests requiring network testing 09:21
i know in Perl land there is NO_NETWORK_TESTING and NETWORK_TESTING
09:22 diana_olhovik_ joined, quester left
azawawi the assumption that tests can access the internet freely is wrong in restricted corporate environments 09:22
timotimo oh lord 09:25
does the "named arguments inside a method call inside a return call" problem still exist?
09:26 softmoth joined 09:29 Begi1114 joined 09:31 softmoth left, lizmat joined
lizmat timotimo: doesn't ring a bell to me 09:32
timotimo return Blah.new(:$foo, :$bar); -- gives "the default constructor for Blah only takes named arguments" 09:34
my $c = Blah.new(:$foo, :$bar); return $c; -- works
09:35 tokuhiro_ joined 09:36 xfix left 09:39 tokuhiro_ left
azawawi what's the best module to port to Perl 6 land to handle Zip files? 09:41
timotimo totally build a gui automation thing to drive a WinRAR instance! 09:42
09:43 bjz_ joined
RabidGravy azawawi, probably Archive::Zip 09:43
09:43 xinming joined 09:44 bjz left
azawawi im reading its cpan ratings :) 09:44
one thing i noticed that it is not intuitive... members vs the concept of files
RabidGravy well it seems to be the thing that most of the things on CPAN depend on 09:45
azawawi cool
it depends on Zlib
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
azawawi the API is not that user friendly 09:46
a good mdule API is one that you can use to accomplish your given task in like 5 minutes 09:47
RabidGravy it depends on what that task is 09:48
azawawi RabidGravy: see metacpan.org/source/PHRED/Archive-...extract.pl
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
kebab-cased API... yummy :) 09:50
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:51
mrf No reason you can't get a bit of both. 09:52
The core functions people are likely to use a lot (Archive and Extract) should be fairly simple to grok
RabidGravy but I'd go a separate module for that 09:53
mrf RabidGravy: why?
DrForr contemplates gyro-case. Somehow I visualize lots of parentheses and whitespace.
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
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
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?
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.
azawawi timotimo: if it can read JARS and firefox XPIs, it would be enough for me atm :)
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:58 yeahnoob left
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?
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
e.g. Archive::Zip. Archive::Zip::File in the same distribution 10:00
10:00 diana_olhovik__ joined
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
mrf RabidGravy: Clearly I misinterpretted you. I was under the impression you were arguing for seperate distributions
azawawi Travis CI rocks (docs.travis-ci.com/user/gui-and-hea...browsers/) :) 10:01
10:01 diana_olhovik_ left
RabidGravy no, just a separation of concerns 10:01
mrf RabidGravy: then I completely agree
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:03
10:06 espadrine joined
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:06
as most likely you're going to end up using zlib anyway 10:07
azawawi true 10:08
RabidGravy strangely, it appears (or at least ldd tells me,) that the "unzip" here uses libbz2
azawawi starts working on it :)
10:09 Upasaka left
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:10
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:12 rindolf left
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?
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 10:16 diana_olhovik__ left, bjz_ left
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:16
Odud I'm trying to install a module using panda, I can see it in modules.perl6.org/ but it doesn't show up when I do panda list? 10:17
10:17 bjz joined, chenryn left
RabidGravy anyway, more important things like checking out a south asian sweet shop for divali gifts call 10:17
have fun
azawawi so basically Travis CI comes with PhantomJS (headless web-kit based browser testing) and firefox (via X virtual frame buffer). Cool :) 10:18
10:18 kjs_ joined
azawawi travis-ci.org/azawawi/perl6-seleni...4099#L1348 # firefox webdriver is being tested now via Travis CI :) 10:20
10:21 RabidGravy left 10:28 rarara_ left
dalek c: 97bcfa4 | lizmat++ | doc/Type/Supply.pod:
Some work on documenting Supply.throttle

WIP, more later today during the lulls at OSCON Europe
10:29
lizmat afk for a few hours&
10:30 lizmat left 10:32 Upasaka joined
Odud ah, needed a panda update first, now found and installed 10:34
10:35 kid51 joined 10:37 rindolf joined 10:43 lucasb_ joined 10:50 zakharyas left 10:51 zakharyas joined
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
10:56 chenryn joined, zakharyas1 joined 10:57 zakharyas left
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”.
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 :)
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 ?
09:19Z <lizmat> jnthn: it works with my/our subs: not working with class method is holding back internal sub -> Rakudo::Internals migration
jnthn lucasb_: And yeah, we should figure out a way to scale the number of people who can do such uploads to be > 1 :)
lucasb_ jnthn++, cool! 10:58
jnthn nine++ # working on implementing the compunit design \o/
10:58 zakharyas1 left 10:59 zakharyas joined
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.
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.
azawawi mrf: pkware.cachefly.net/webdocs/casest...PPNOTE.TXT # zip file spec
mrf: 4.1.3 "... Compression method 8 (Deflate) is the method used by default by most ZIP compatible application programs. ..." 11:02
11:02 eone joined, spider-mario joined 11:03 mathw_ is now known as mathw 11:10 Odud left
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 left, ParsonsNose joined 11:14 softmoth joined
timotimo i mean ... that's how it's defined, but is that right? 11:16
11:19 softmoth left, ely-se left
jnthn MoarVM 2015.10 release now at www.moarvm.org/releases/MoarVM-2015.10.tar.gz 11:21
11:21 TEttinger left
nine m: my subset PosInt of Int:D where * > 0; my PosInt $i = PosInt; say $i.defined; 11:22
camelia rakudo-moar cd7766: OUTPUT«False␤»
nine jnthn: your use of a subset of a :D type in your gist has opened up a can of questions like ^^^
jnthn: the bug in Metamodel::DefiniteHOW it uncovered is already fixed 11:23
11:23 weihan joined
nine jnthn: though neither FROGGS++ nor I are sure if the fix is actually correct :) 11:23
jnthn Well, given PosInt is a type object, that should probably complain... :) 11:24
11:28 pmurias joined
pmurias jnthn: the list of test files 'node nqp-bootstrapped.js' passes: paste.debian.net/318326 11:29
jnthn Wow 11:30
pmurias++
pmurias++ for expanding NQP's test coverage too :)
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 eone left
jnthn is also disturbed by a lack of inlining in the profile he's looking at 11:32
timotimo yes, lack of inlining's also a thing i've been seeing more and more often 11:33
11:37 adhoc_ joined 11:39 kid51 left
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>
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 ...
jnthn timotimo: Well, looking at spesh_log by now :) 11:42
timotimo mrf: i don't think so
jnthn mrf: No
mrf Why. What is teh rational.
timotimo mrf: you'd have a $<bar><baz> if it did capture, but the . throws out the $<bar> completely
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.
FROGGS jnthn: it is nice that you are back :o)
timotimo then you can successively { make $<...> } and use $<foo>.ast
jnthn mrf: You're aware of actions? :)
11:43 abraxxa left
mrf jnthn: I am ish 11:43
jnthn mrf: Those let you decouple the data structure you build from the grammar structure.
mrf I am aware of the concept of actions.
jnthn mrf: Which would probably help
11:44 colomon left
timotimo jnthn: do we actually generate a bit of code into our methods/subs to do the failure-returning/type-check thing? 11:44
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
mrf timotimo: ah ok
11:46 rurban left
jnthn timotimo: Yeah, but I need to work out exactly what/why 11:47
11:48 ely-se joined 11:50 tokuhiro_ joined, khw joined 11:51 colomon joined 11:52 sufrostico joined 11:55 tokuhiro_ left, chenryn left, abraxxa joined 11:57 Jo_ joined 11:58 Jo_ left 12:01 adhoc_ is now known as adhoc 12:11 loren joined 12:13 dayangkun_ left
masak hi, #perl6 12:15
yoleaux 26 Oct 2015 13:46Z <lizmat> masak: hejki told us to say hi to you at EuroOSCON
masak hej, hejki :)
DrForr UGT, masak. 12:16
pmurias masak: hi 12:17
masak is working on 007 tonight
ShimmerFairy "*sigh* For the last time, Bond, this equipment is all very expensive. I really don't think you're getting this." 12:18
DrForr Bummer, you missed yesterday's release date :) 12:19
masak :)
we've decided to go and watch the movie while we're still in .cn
with luck, it'll be subtitled, not dubbed
DrForr I should check to see if there's an IMAX in Lyon. 12:20
timotimo which "the" movie are we talking about?
is there a new james bond movie?
DrForr Spectre, I assume.
masak aye 12:21
DrForr Pathe' Carre de Soie. 12:22
Bummer, Nov. 11th. 12:23
masak oh? then maybe it hasn't premiered here either... 12:28
tadzik hejki :)
DrForr watches the trailer.
tadzik I still haven't watched the "old" bond movie 12:29
with blond bond
12:29 kjs_ left
masak tadzik: there's, like, three of them 12:29
DrForr 'the "old" bond movie' is somewhat ambiguous :) 12:30
tadzik oh, time flies :)
oha that "old" between quotes will cost you a lot in the future, tadzik
masak tadzik: you could just read the 007 README.md instead *boom dssh*
tadzik well, with Daniel Craig or so
masak: I think I did :)
masak well, no need to watch the movie then
tadzik oha: the old part, or the between quotes part?
oha tadzik, that, too
tadzik . o O ( I feared a "yes" answer )
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 :)
DrForr Well, given /Quantum of Solace/ that's not entirely unreasonable. 12:32
dalek oblem_solver_tutorial: 55bece5 | lichtkind++ | chapter/text1.md:
updated overview chapter 1
tadzik hey, I only watched star trek to understand the jokes that you oslians made on #is 12:34
keep pestering me and I'll have to watch the bonds too! :P
12:35 Begi1115 joined 12:36 Begi1114 left
jdv79 is there an equiv for .? for a private meth? 12:43
masak jdv79: no, I don't think so 12:44
flussence
.oO( ‽ )
jdv79 self.?pubmeth but self!?privmeth
masak jdv79: guess you can always MOP it
timotimo um, isn't .? for when you don't know if a method exists
jdv79 yes but what if its private
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
so there *is* some sense to that
masak I'd like to call y'all's attention to tonight's 007 oddity: a proposed melt() built-in: github.com/masak/007/issues/61
jdv79 i'll just workaround it then 12:45
12:45 kaare_ joined 12:47 rurban joined
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
camelia rakudo-moar cd7766: OUTPUT«OH HAI␤»
masak huh. :) 12:48
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/
timotimo yes! 12:51
with client *and* server parts!
12:51 bjz left 12:52 kjs_ joined
flussence scratches one thing off my ever-growing list of things that get endlessly procrastinated on... 12:52
12:55 RabidGravy joined
masak tokuhirom++ # making Perl 6 a lot more interesting 12:58
jnthn Any thoughts on rt.perl.org/Ticket/Display.html?id=126459 ?
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. 12:59
(The issue is nothing to do with die/fail and everything to do with the exit call in the CATCH, fwiw) 13:00
RabidGravy yeah, I'd go with documenting the behaviour 13:02
13:03 softmoth joined, kmel joined
masak jnthn: it's not immediate to me that LEAVE has the same claim to running on exit() as END does 13:03
jnthn: LEAVE has some kind of guaranteed-ness about it *if* the program is still executing normally 13:04
13:04 CIAvash left
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:04
[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
masak RabidGravy: ...and smooched? 13:06
jnthn: didn't we have an exit in a module at some point at $client? :P
(someone else's code, that is)
jnthn Probably :P 13:07
jdv79 timotimo: yes.
13:07 softmoth left
timotimo OK 13:08
13:10 Begi1115 left
RabidGravy masak, smooched is an option 13:11
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:13
timotimo so we should call it "defenestrate" instead of "exit"? 13:15
13:15 azawawi left
pink_mist throw-out-the-back-entrance 13:16
psch so the CATCH outside of &f delays the exception unwinding until after it's finished? 13:17
because S04 says "at every block exit time (even stack unwinds from exceptions)" for LEAVE
timotimo it has to, doesn't it?
13:17 sufrostico left
psch i'm just asking to understand correctly :) 13:17
masak m: constant foo = say("OH HAI"); BEGIN { say "yep" } 13:18
camelia rakudo-moar cd7766: OUTPUT«OH HAI␤yep␤»
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
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
13:19 sufrostico joined
tadzik hmm, does anyone remember a piece of documentation of sorts that explained grammars giving URI parsing as an example? 13:19
I think it might've been moritz++'s site, but perlgeek.de looks down
masak m: say "and then there was runtime"; role R { say "OH HAI" }; class C does R {}
camelia rakudo-moar cd7766: OUTPUT«OH HAI␤and then there was runtime␤»
psch tadzik: the wikibook has URL 13:20
en.wikibooks.org/wiki/Perl_6_Progr...g/Grammars
dalek p: 5db12c0 | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Don't allow quantifying anchors.

They're certain to be zerowidth, so it almost always indicates a mistake.
jnthn psch: We don't unwind the stack until *after* the CATCH block has been left
psch tadzik: and essays.ajs.com/2010/05/writing-perl...odule.html has URI
jnthn psch: That is, the CATCH is in the dynamic scope of the die
masak m: say "run"; class C { say "!" }
camelia rakudo-moar cd7766: OUTPUT«run␤!␤»
jnthn (On the stack top)
masak huh :)
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" }
camelia rakudo-moar cd7766: OUTPUT«role␤run␤class␤»
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
jnthn Also means you have the dynamic scope where the exception took place.
masak m: say "run"; role R { say "role" }; for ^3 { class C does R { say "class" } }
camelia rakudo-moar cd7766: OUTPUT«role␤run␤class␤class␤class␤»
psch jnthn: okay, i think that means i understood it mostly correctly :) 13:22
dalek kudo/nom: d5786ca | jnthn++ | tools/build/NQP_REVISION:
Bump for error on quantifying anchors.
ast: c49587f | jnthn++ | S05-metachars/line-anchors.t:
Tests for RT #126438.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126438
13:22 Begi1115 joined
jnthn That was an easy RT at least :) 13:23
13:27 brrt joined 13:30 AlexDaniel joined 13:32 tokuhirom left 13:34 carlin left 13:35 risou is now known as risou_awy, aindilis left 13:36 risou_awy is now known as risou, tokuhiro_ joined 13:37 bjz joined, skids joined
[Coke] jnthn++ #moarvm tarball. Thanks! 13:40
13:40 tokuhiro_ left
RabidGravy cosimo, yay! travis-ci.org/cosimo/perl6-cache-memcached 13:40
13:40 bjz_ joined 13:41 loren left 13:42 bjz left 13:46 jdv79 left
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
timotimo luckily we don't expect user code to be as big as the setting is right now
so we can probably do something to partition the core setting 13:48
pmurias arbitrary limitations suck
jnthn *sigh* JVM :/
We've already hit and worked around a bunch of limitations.
psch pmurias: yeah, especially considering the classfile field that holds the size is actually 32bit afair, but still limits at 2**16
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
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
jnthn And pack the lot into the JAR 13:49
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
although figuring out how, when and where to split is gonna be fun 13:51
but again, in a special case it should be workable
jnthn *nod*
Ugh
What's actually too large? 13:52
Number of methods?
Or the amount of bytecode?
psch the latter
jnthn bah
psch "The value of the code_length item must be less than 65536."
it bails with a "Classfile too large" RTE
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?
*of code?
(until recently)
jnthn can't believe that...
psch jnthn: i think code_length is number of ins, not bytes
timotimo we may be hitting some degenerate case or something
FROGGS perhaps 65536 frames or something similar? 13:54
psch i'm gonna check the classfile for cd77669d09d38e5ddb89ee8f6c8392bacebdf829 (which still compiled) for the value the classfile spec is talking about 13:55
just to verify that's actually what's behind this
"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:56
ilmari docs.oracle.com/javase/specs/jvms/s...vms-4.html says it's bytes 13:57
docs.oracle.com/javase/specs/jvms/s...jvms-4.7.3 specifically
that's a for a single method
psch mhm, i might've been misreading a lot, it seems 13:58
in my defense, actually reading through the whole standard... well :P
so it's probably not code_length, but an actual limit on the classfile, which is specified elsewhere..?
dalek p: 8c1fe86 | jnthn++ | src/HLL/Grammar.nqp:
Fix whitespace.
13:59
p: a23e6c1 | jnthn++ | src/HLL/Grammar.nqp:
Add missing non-assoc check as found in STD.

Prevents things like ++$foo++ from compiling.
ilmari constant_pool_count, fields_count, methods_count and attributes_count are 16bit
13:59 aborazmeh joined, aborazmeh left, aborazmeh joined
dalek kudo/nom: 58029ca | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for non-assoc error.
14:00
pmurias psch: isn't code_length a per method limit?
dalek ast: 5988574 | jnthn++ | S03-operators/precedence.t:
Test for RT #125210.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125210
psch pmurias: yeah, ilmari++ hinted at that. i've apparently misread that 14:01
jnthn There's one more off the xmas list :)
psch it's a pity the jvm doesn't tell which constant exactly was exceeded, if that's the problem
14:02 g4 joined
timotimo ah, so you're grabbing the last one that still compiles and look at which value is closest to some arbitrary limit 14:02
14:03 jdv79 joined, tokuhiro_ joined, tokuhiro_ left, tokuhiro_ joined
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.
psch 0000000: cafe babe 0000 0033 ff9f 0100 2831 4331
ff9f looks bad :P
timotimo the ff9f part?
pmurias timotimo: grepping the jvm source code could show you the exact value
timotimo ugh :) :)
psch as in, it's the constant pool count 14:05
timotimo what kinds of things land in there? 14:06
it's not just integers and strings, right?
14:06 azawawi joined
jnthn Callsite descriptors too iirc 14:06
And type descriptors
azawawi hi
14:06 aborazmeh left
timotimo hum. 14:07
psch timotimo: well, the constant pool starts right after the count in the file
azawawi first attempt at unzipping a zipped archive github.com/azawawi/scripts/blob/master/unzip.p6 # currently displaying file headers, not uncompressing but we're nearly there :)
psch timotimo: and it has type descriptors, method descriptors, P6-level attribute names 14:08
and lots other, too...
like, names of serialized files
timotimo so we should re-name attributes so that some classes can re-use those names :D
14:08 softmoth joined
psch that could work, yes... :P 14:09
timotimo ugh
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
especially 'cause we're using strings in nqp mostly to write bytecode, which needs descriptors
timotimo can you give us a dump of those?
or rather 14:11
tell us how to dump those strings :)
[Coke] RT: 1040, LTA: 89; weird: 12, NOM: 8; tests: 10; xmas: 72
timotimo may not be such a good idea to upload a gigantic bunch of strings like that 14:12
[Coke] glr: 4
timotimo also, perhaps we want to shorten the bytecode-only strings
14:12 kmel left
[Coke] segfault: 10 14:12
psch timotimo: uhm, i'm using xxd 14:13
timotimo oh, it's that easy?
just unzip the .jar and xxd?
psch timotimo: yeah, xxd the .class
timotimo first i gotta have one at all :| 14:15
cd77669d09d38e5ddb89ee8f6c8392bacebdf829 is the one i'm going to make
psch yeah, that's the one i have here
timotimo good
masak lol, I blogged! strangelyconsistent.org/blog/macros...el-is-hard 14:16
PerlJam masak++ (if nothing else, for the title :) 14:17
psch m: 0xfffe - 0xff9f
camelia rakudo-moar cd7766: OUTPUT«WARNINGS:␤Useless use of "-" in expression "0xfffe - 0xff9f" in sink context (line 1)␤»
psch m: say 0xfffe - 0xff9f
masak heh :)
camelia rakudo-moar cd7766: OUTPUT«95␤»
gfldex masak: can i read that now or do i have to wait until the future becomes the present?
psch this also means that e8d7577b662a1ab85d9ed080d3a8eff56036b016 adds at least 96 constant pool entries...
that feels somewhat much
PerlJam gfldex: the future is already the past! you're too late!
masak: "DeLoeran" ? 14:18
masak ugh. fixing.
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
masak PerlJam++ 14:19
14:21 andreoss joined
PerlJam adds "macros are gnarly" to his imaginary masak quote file 14:21
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
psch oh
well, classes with the same descriptor are already shared 14:27
14:27 andreoss left
psch and for codegen we don't really use many strings that aren't descriptors 14:27
timotimo hmm
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
like, up to ~200
psch and pres_topic_*s too 14:30
14:30 spacebat left
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
i thought those are per QAST::Block?
pmurias maybe replacing some strings with integers would help?
timotimo !HANDLER_*, too 14:31
dalek kudo/nom: bd2d5c4 | jnthn++ | src/core/Capture.pm:
Fix .perl on Capture with no valid $!list part.
kudo/nom: 5cfda30 | jnthn++ | src/core/List.pm:
Prevent creation of Capture from lazy list.

Rather than just hanging (which was a slight improvement from the pre-GLR behavior, which was to give back an empty Capture, meaning you could get silent bogus matches on an empty array unpack in a signature). Thus this addresses RT #123581. In a future Perl 6, we may find a way to allow Capture to contain infinite things. But not for 6.christmas.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123581
psch mhm, "don't use $_" and "don't give int constants meaningful names" would probably help quite a bit
timotimo fatalizee_*, too
i wonder why we're getting such high numbers
14:32 Aggressively_Alp joined, raiph joined
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
jnthn: i think so, yeah
jnthn wonders if we actually need to preserve those down to bytecode level
I mean, we don't in Moar
14:33 tokuhirom joined
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: github.com/Skarsnik/perl6-gumbo 14:33
psch ugh
jnthn They're just for identification during compilation; so far as we care beyond that we can call then local_0, local_1, etc.
psch jnthn: doesn't that mean pre-codegen inlining..?
jnthn psch: No
psch oh, or just calling them the same, yeah that would work too
jnthn psch: Right :)
timotimo that's for the Perl6::Optimizer to do
psch err uhm
no, it doesn't help
jnthn psch: Could even fix it in the bytecode generation
Oh? 14:34
psch wait, it does
misthought there
14:34 lichtkind joined
psch if all the locals are numbered the same 14:34
of course it helps
as in, every block starts his locals at 0
14:34 azawawi left
timotimo probably also not terribly hard to implement 14:34
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 github.com/perl6/ecosystem/blob/ma.../META.list
timotimo though sometimes the local names have a tiny bit more information in them
jnthn timotimo: On MoarVM we already don't preserve that info
timotimo ...oh?
jnthn timotimo: In the bytecode locals just have indexes.
Since local = register
14:35 ParsonsNose left
timotimo indeed! 14:35
dalek ast: 54f672b | jnthn++ | S02-types/capture.t:
Tests for RT #123581, plus one other bug.
14:36
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123581
Skarsnik RabidGravy, thx, how I do that? Git is very confusing for me.
psch so that's replacing all the (overly) meaningful arguments to QAST::Node.unique() with "local", right?
timotimo either that or do it "in post"
jnthn psch: no no, just those for *locals*
psch uhm, right 14:37
14:37 sciurius joined, tokuhirom left
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
76 calls to Node.unique, fwiw
masak 'night, #perl6
RabidGravy Skarsnik, fork, the github.com/perl6/ecosystem. clone your fork locally, make the change, push to your fork, make Pull Request in github
in summary 14:38
jnthn psch: Around github.com/perl6/nqp/blob/master/s....java#L205 I think
14:39 ely-se left
dakkar mrf: gist.github.com/dakkar/07b3c50bdf899421489c 14:40
14:41 ely-se joined, Aggressively_Alp left
Skarsnik RabidGravy, thx for the help :) 14:47
14:48 brrt left
psch hm, neither pres_topic_* nor fatalizee_* actually appear in the decompiled classfile 14:48
as in, nothing is loaded via those strings 14:49
i guess that just confirms that they're local to a given method
14:50 Actualeyes left
timotimo how do you mean "nothing is loaded"? 14:50
dalek p: a513828 | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
[js] Set the method_cache on a knowhow metaobj to make nqp::can work.
14:51
p: fa7a2d5 | (Pawel Murias)++ | t/nqp/90-findmethod.t:
Test nqp::can/nqp::findmethod on the knowhow instance and metainstance.
p: b100410 | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
[js] Make nqp::can work on the knowhow attribute metaobjects. Implement add_method on the knowhow metaobject.
psch timotimo: ldc #\d+
timotimo: i.e. load constant
timotimo oh 14:52
psch timotimo: other cases load a constant and e.g. invoke it as method
timotimo so the constants are there, but not used at all?
psch or constructor or whathaveyou
timotimo: it looks like that, yeah
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
i expect a 75% decrease in constant pool size
just from holding pagedown on strings blah.class | less
psch 24282 constants are actually loaded 14:54
so maybe not 75%, but around 50% might be possible
timotimo how many of those constants are going to be sharing names later on?
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 kjs_ left
psch i'd guess it's BOOTSTRAP 14:57
timotimo i expect it's a reference to another compunit
hoelzro o/ #perl6 14:58
jnthn wval probably
timotimo but why is the whole string in there rather than just a reference to the string constant pool?
jnthn timotimo: It is, I'd guess?
RabidGravy Skarsnik, there's a couple of things not quite right with your META.info
jnthn timotimo: And they all refer to the same constant, and your dumper is derefing it?
RabidGravy comments on the PR
timotimo 21181 768ECFB91FF8D3046E74BE1165F9984E57671A01
Skarsnik Yes, I just saw the 'comment'
timotimo jnthn: the dumper is "strings" :)
RabidGravy cool
timotimo jnthn: strings doesn't know anything about references 14:59
dalek ast: 20171ea | jnthn++ | S09-typed-arrays/hashes.t:
Tests to codify behavior in RT #118031.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=118031
timotimo interestingly, the core setting jar is still only 3.5 megabytes big
well, it's compressed 15:00
the classfile itself is 11M, which is comparable to moar's core setting, i think 15:01
dalek osystem: eb01a52 | (Sylvain Colinet)++ | META.list:
Add Gumbo to ecosystem

See github.com/Skarsnik/perl6-gumbo
osystem: da708c9 | RabidGravy++ | META.list:
Merge pull request #84 from Skarsnik/master

Add Gumbo to ecosystem
timotimo almost the same size, actually
psch timotimo: xxd doesn't only show the constant pool, fwiw
or strings either, fwiw
timotimo i know 15:02
i'm wondering why that string appears over and over and over again
and i'm surprised that strings on the core setting for moarvm shows 01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZAabcdefghijklmnopqrstuvwxyza showing up like 15 times in a row
pmurias timotimo: looks like something from the regex engine 15:03
15:03 sufrostico left
timotimo nah, look 15:03
0 appears at the beginning and end
pmurias hoelzro: hi
timotimo as do a and A
hoelzro o/ pmurias
timotimo i think it's for our handling of ..
15:03 CIAvash joined
timotimo m: m: say "ay" .. "bc" 15:04
camelia rakudo-moar cd7766: OUTPUT«"ay".."bc"␤»
timotimo m: m: say @("ay" .. "bc")
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)␤»
timotimo ^- this i mean
moar's core setting strings output is dominated by cuid_[incrementing_number]_[same_thing_over_and_over] 15:05
15:05 ParsonsNose joined
psch timotimo: 768ECFB91FF8D3046E74BE1165F9984E57671A01 is an argument to takedispatcher 15:05
not sure why it actually appears, instead of the const pool ref
15:05 telex left
psch that's probably some kind of bytecode internal... stuff 15:05
timotimo is that an op the jvm has? 15:06
psch err
misread
15:06 telex joined
psch it's an argument to invokeDynamic... 15:06
that makes sense, actually. the dynamic callsite gets is name from the constant pool iirc
so 768ECFB91FF8D3046E74BE1165F9984E57671A01 is probably the callsite for wval_noa 15:07
and that gets called a lot
timotimo ah, could be
15:07 Axord left
timotimo but ... if the dynamic callsite gets its name from the constant pool, why does that long string appear literally in the code? 15:08
15:09 chenryn left
timotimo is this something we can control at all? 15:09
psch no 15:10
timotimo in that case, i'll shut up
no need to waste time on that
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
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
mostly alt_nfa_*, a few ANON_VAR_, and whatever_code_
15:13 mr_ron joined
psch alt_nfa_* is interesting 15:13
timotimo hm, are those not refering to serialized objects?
psch maybe, yeah
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
hoelzro pmurias: awesome! I see that others have been lending their expertise on JS stuff here lately =)
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)␤»
mr_ron what does the ::( ) do and where is it documented?
moritz it's a symbol lookup by name 15:16
mr_ron thanks
moritz dunno if that's documented on perl6/doc anywhere
pmurias hoelzro: konobi has suggested improving the hackish way nqp-js interacts with the npm 15:18
hoelzro yeah? I saw konobi talking a lot with you about it 15:19
which is great, because my knowledge of that ecosystem is Nil =/
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"?
camelia ( no output )
FROGGS jnthn: ^^
jnthn FROGGS: Could be a "potential difficulty" if it's an onlystar proto maybe but it's not automatically wrong 15:23
15:23 andreoss joined
FROGGS ahhh, yes, onlystar vs not... 15:23
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
15:25 ParsonsNose left, chenryn left
jnthn So a ban feels too strong to me 15:25
15:25 abaugher left
jnthn I'm not even sure it's worth the code in the compiler to warn, tbh. 15:25
Just document this behavior in the docs for protos 15:26
And tests to codify it
Begi1115 Is it possible to secure an input ? I excpet only a int gist.github.com/Emeric54/786503acdf9a99a4b25f I ex
15:26 abaugher joined
dalek kudo/nom: 78ea30a | jnthn++ | src/ (2 files):
Complain over typed *%h at compile time.

Makes things consistent with typed *@a. Also introduced a typed exception to cover the two cases and used it.
15:27
psch Begi1115: you can add "$nombre ~~ Int" as first condition to the if in a conjunction
lucasb_ m: say '<-- revision' 15:29
camelia rakudo-moar cd7766: OUTPUT«<-- revision␤»
lucasb_ ^^ camelia is 3 days outdated?
jnthn lucasb_: May be when the JVM build busted
lucasb_ hmm
jnthn psch++ is looking into that already :)
15:30 FROGGS left
RabidGravy Skarsnik, Gumbo now on modules.perl6.org/ 15:31
Skarsnik Thx :)
15:33 pmurias left
Begi1115 psch : $number -> (Str), so it will not works (?) 15:34
15:34 tokuhirom joined
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␤»
PerlJam Begi1115: use $nombre.Numeric and have a CATCH block to do whatever you want when it's not numeric
Begi1115: (as an alternative)
psch: I think he's saying that he'll only ever get a Str from prompt() 15:36
psch oh
i thought &prompt calls &val
m: say 0xff9f - 0xe76c 15:37
camelia rakudo-moar cd7766: OUTPUT«6195␤»
jnthn m: my $a = "omg"; with +$a -> $number { say $number } else { say "$a not a number" }
camelia rakudo-moar cd7766: OUTPUT«omg not a number␤»
jnthn m: my $a = 42; with +$a -> $number { say $number } else { say "$a not a number" }
camelia rakudo-moar cd7766: OUTPUT«42␤»
PerlJam oh! I forgot about with/without :)
psch ^^^ that's the number of free constants pool entries i got free
jnthn psch: I guess that gives us some breathing room :) 15:38
psch github.com/perl6/nqp/blob/master/s....java#L205 <- replaced e.getKey() with "local_" + i
jnthn psch++
TimToady m: my $a = "omg"; with +$a -> $number { say $number } else { say "$_ not a number" }
camelia rakudo-moar cd7766: OUTPUT« not a number␤»
TimToady hmm, supposed to topicalize that else
psch - actually, with "local_" + i++...
jnthn with wouldn't topicalize the else too would it?
heh :)
15:38 tokuhirom left
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
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... :/
TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say "$_ not a number" }
camelia rakudo-moar cd7766: OUTPUT« not a number␤»
TimToady hmm, the explicit case is busted too
coulda sworn I had tests for that... 15:41
dalek ecs: a99182a | jnthn++ | S06-routines.pod:
More formal conjectural mention of typed slurpies.

And change example that just happened to use them without any notes on their semantics.
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:42
(I'm not certain if this is the actual script that builds things on camelia's server...) 15:43
TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say .WHAT } 15:45
camelia rakudo-moar cd7766: OUTPUT«(Failure)␤»
TimToady m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say .Str }
camelia rakudo-moar cd7766: OUTPUT«␤»
TimToady say wot?
m: my $a = "omg"; with +$a -> $number { say $number } else -> $_ { say .gist }
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␤␤»
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"
moritz and it doesn't throw because you already handled it by checking for definedness
TimToady seems like it'd still be worth a warning
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 ast: 3594f51 | jnthn++ | S06-signature/slurpy-params.t:
Clean up of typed slurpy parameter tests.

We won't do them in 6.christmas, so various tests go away. Add tests to cover the typed exception the compiler gives for the positional and named case. We didn't look at the named case at all before, so this also covers RT #120994.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=120994
TimToady okay, at least the else is not busted
15:50 tokuhiro_ left 15:51 weihan left
jnthn Should be under 70 xmas tickets now :) 15:51
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 15:56 kjs_ joined
psch m: say 0xffff - 0xe921 15:56
camelia rakudo-moar cd7766: OUTPUT«5854␤»
psch that's the total number we have free on nom HEAD
so we got ~300 entries since cd77669d 15:57
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␤»
psch so we'd have about a month if that was a constant :P
jnthn m: .say for do given 1 { default { { a => 1, b => 2 } } }
camelia rakudo-moar cd7766: OUTPUT«a => 1␤b => 2␤»
psch err, no
jnthn m: .say for do given 1 { default { ${ a => 1, b => 2 } } }
camelia rakudo-moar cd7766: OUTPUT«a => 1␤b => 2␤»
psch i'm really bad at math it seems
jnthn m: .say for do given 1 { when True { ${ a => 1, b => 2 } } }
camelia rakudo-moar cd7766: OUTPUT«a => 1␤b => 2␤»
15:59 aundre joined
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␤␤»
psch there's 20 times 3 days, which is two months...
vOv
jnthn m: my $a = 1; .++ for do given 1 { $a }
camelia ( no output )
psch not like it really matters, because it'll hopefully not constantly increase at that rate
jnthn TimToady: Should when/default decontainerize? 16:00
TimToady: Related: should for?
At the moment we have a ticket complaing for doesn't and another ticket complaing when/default do :)
m: sub foo { my $s = 0; ($s += $_ for 1..3) }; say foo()
camelia rakudo-moar cd7766: OUTPUT«(6 6 6)␤»
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␤␤»
jnthn That's the use case for for decont'ing, fwiw
colomon m: Numeric.new.Rat
camelia rakudo-moar cd7766: OUTPUT«Method 'Rat' not found for invocant of class 'Numeric'␤ in block <unit> at /tmp/84gzuLStpf:1␤␤»
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?
jnthn psch: Is your fix about to land? :)
psch jnthn: yeah, just making up a commit message right now
colomon m: dd Numeric.new
camelia rakudo-moar cd7766: OUTPUT«Numeric $var = Numeric.new␤»
psch i'd still say that we should decouple jvm and mvm for camelia 16:02
16:02 aundre left
lucasb_ psch: I'm of the same opinion 16:02
but just deleting a word for now is easier :)
dalek p: 61f3e95 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTCompiler.java:
Name all locals the same.

Due to the increase of Perl 6's CORE.setting, we're running into a constant pool size limitation during classfile generation. This gives us a bit more space by always naming all local variables "__local_\d+", and thus freeing up a few thousand constant pool entries.
16:03
colomon m: Numeric.new.Int 16:04
camelia rakudo-moar cd7766: OUTPUT«Method 'Int' not found for invocant of class 'Numeric'␤ in block <unit> at /tmp/ImfAQlP0mf:1␤␤»
psch lucasb_: right now, waiting is even easier :)
16:04 donaldh joined
psch oh 16:04
NQP_REVISION... :S
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)
psch jnthn: yes
TimToady but I'd entertain arguments on the other side
dalek kudo/nom: 1e0b8db | peschwa++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to build R-J again.
16:06
psch oh hrm, "be able to" probably vOv
16:06 rurban left
jnthn TimToady: Well, what's the idiom for writing the "for" example from the ticket? :) 16:06
TimToady: In that case a sequence I guess :P
m: sub foo { (for 1..3 { state $s += $_ }) }; say foo() 16:07
camelia rakudo-moar cd7766: OUTPUT«(6 6 6)␤»
jnthn TimToady: ^^ is another argument...in some direction :)
TimToady m: sub foo { my $s = 0; (($s += $_)<> for 1..3) }; say foo() 16:08
camelia rakudo-moar cd7766: OUTPUT«(1 3 6)␤»
TimToady m: sub foo { my $s = 0; (($s += $_) + 0 for 1..3) }; say foo()
camelia rakudo-moar cd7766: OUTPUT«(1 3 6)␤»
jnthn is fine with that
TimToady but I don't really want to add a for-rw
jnthn It's not like people trip over this every day :)
Me either!
And you can always use map with a sub :) 16:09
Or just a more pure construct :)
TimToady ayup
.oO("Those who live by the stored die by the stored...")
16:10
jnthn :D 16:11
Thanks, I'll get these two rulings into RT/Rakudo/tests :)
.oO( If I keep knocking off the easy xmas RTs there'll only be hard ones left... )
TimToady did you scan last week's bugs for new xmaseses? 16:12
jnthn Not yet 16:13
I didn't really scan for new since I did the xmas list
Though I've picked off a few that mighta made it
16:13 ely-se left
TimToady has personally sent in some that he thought would qualify, from time to time 16:13
16:15 kmel joined, virtualsue joined
jnthn I figure RT will have somehow recorded the date of my last pass through 16:15
So I'll know where to start from. 16:16
TimToady for the record, I'm planning to rule on qx, and not foist it off on you :) 16:19
dalek c: 76f07c5 | (Zoffix Znet)++ | doc/Language/concurrency.pod:
Fix some typos
16:20
jnthn ++TimToady ;)
16:20 spider-mario left
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.
TimToady if we have qx it will likely default to run with «» parsing or so 16:22
but I think runout is ugly, and wrong from the user perspective
jnthn Yes, I knew that name'd not cut it :) 16:23
TimToady out is also wrong
'cause the user is thinking of it as coming in
I don't think we can quite swing making run context dependent though to return the results when not in sink 16:24
since it has to return a result anyway
jnthn Yeah, that'd be too much magic
RabidGravy anyone successfully using travis-ci with a module that uses its own .so files?
TimToady so maybe a qx() sub to go with the qx//
though the q is wrongish
will do some internal bikeshedding on that 16:25
b2gills q:ww:run< > q:shell< >
lucasb_ Is there an 'exec' in P6? 16:26
b2gills m: exec
camelia rakudo-moar 1e0b8d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3EyXZ9sBIz␤Undeclared routine:␤ exec used at line 1␤␤»
TimToady though NativeCall 16:27
*thr
lucasb_ hm, ok
donaldh psch: I'm just catching up with the class file too large issue.
psch: after reading lizmat++'s weekly report
timotimo donaldh: did you see we fixed it? :)
donaldh lizmat: yes, for now ;-) 16:28
psch: block lex values also take up a lot of space in the constant pool. 16:29
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?
lucasb_ camelia is already updated
16:30 n0tjack joined
psch donaldh: not sure how those translate to bytecode, but they don't seem caught with the fix i pushed 16:30
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:31 Upasaka left
donaldh psch: I'm just mentioning them because it's an area I had considered refactoring. 16:32
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:34
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
psch donaldh: so i'd say if it fits go ahead with the refactor somewhat soonish
dalek kudo/nom: 9621974 | jnthn++ | src/core/control.pm:
when/default should not decontainerize.
16:36
ast: 64b9814 | jnthn++ | S04-statements/when.t:
Tests for RT #115384 (when/default decont).
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=115384
n0tjack when I'm on a Windows PC, is there a recommended or at least common editing environment?
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.
n0tjack all I really need is syntax higlighting, and I don't want to go through the hassle of installing VIM
jnthn n0tjack: Visual Studio Code, or Notepad++ 16:38
16:38 Upasaka joined
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?
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
donaldh psch: I looked at the CORE.setting class file ages ago but have not been able to spend any time on it.
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.
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?
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
psch i'm pretty sure it is the indy callsite for wval_noa
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.
timotimo BLV? 16:43
donaldh block lex value
psch jnthn: the id timotimo pasted is the constant that identifies the indy callsite
timotimo i got that id from strings foobar.class | sort | uniq -c | sort -n
m: say 21181 * "768ECFB91FF8D3046E74BE1165F9984E57671A01".chars
camelia rakudo-moar 1e0b8d: OUTPUT«847240␤»
donaldh To make life easier for yourself, use javap
timotimo m: say (21181 * "768ECFB91FF8D3046E74BE1165F9984E57671A01".chars) / 1024 16:44
camelia rakudo-moar 1e0b8d: OUTPUT«827.382813␤»
psch javap doesn't print the constant pool though
timotimo 827 kilobytes of references to that callsite :)
psch just those constants that are referenced
donaldh javap -v -classpath CORE.setting.jar D1BB016295AF34256AA40D0C975C77376BA56CE
16:44 mr_ron left, domidumont left
donaldh that constant is the classfile name inside my CORE.setting.jar 16:44
psch oh, maybe -v prints all of it?
donaldh Decompiles everything. 16:45
16:45 andreoss left
dalek ast: c42de8e | jnthn++ | S04-statement (2 files):
Tests covering decision on RT #77334.
16:45
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=77334
donaldh well, not decomiple, but you know what I mean :-)
timotimo thank you for the javap hint
psch yeah, -v prints the constant pool 16:46
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
donaldh I have BLV constants from #49126 to #59613 16:47
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=49126
16:48 brrt joined 16:49 Axord joined
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␤␤»
jnthn OK, enough for now; bbl :) 16:51
psch 49122 to 59615 here if i understand correctly
that's not much more
the weirdest bit i saw was integers, from 32780 to 55xxx or something
pretty much all in a row
that's kind of wasteful, but probably neccessary..? 16:52
they're not in 1 step increments though
46991 to 49115, only about 2k... 16:53
16:53 brrt left
psch also, String and Utf8 duplicates 16:53
which might also have a solid and understandable reason, but still...
donaldh Oh, they're not duplicates.
RabidGravy ew, travis-ci has a way pickier version of gcc than I have here
donaldh The string just references the UTF-8
It's the way the constant pool works. 16:54
psch yeah, i assumed something like that
16:55 rurban joined
lucasb_ raiph: iiuc, I would put the coercion method in the base class, not the subclass 16:56
I think it would be nice if coercions like Foo(Bar) would work if Foo had a constructor .new(Bar) 16:57
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 16:58
dalek p: 0cec471 | coke++ | docs/release_guide.pod:
4 digit years
17:02
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
i'm less confident it's the indy callsite, because that's a different constant pool entry, actually
17:06 mayuresh joined
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
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? :)
n0tjack Actually, I even went and installed Vim for Windows 17:10
17:10 mprelude joined
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
and expects you to be able to type `make install`
mayuresh :)
kmel got out of the box perl 6 syntax highlighting
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?
mayuresh yeah, atom has a windows port too.
n0tjack lucasb_: you'd think so
but not according to the README.MD
I wanted to use Padre, two birds with one stone, but it's a dead project
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
[Coke] psch: you want me to close out RT #126461?
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126461
n0tjack kmel: where did you get yours?
17:12 tokuhiro_ left
psch [Coke]: i suppose so, yeah 17:13
the issue is at least moved back a bit...
17:13 sufrostico joined
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
n0tjack lucasb_: I'll give it a shot, thanks. 17:14
mayuresh lucasb, i agree with you. :)
lucasb_ n0tjack, mayuresh :)
mayuresh vi is all that's needed, after-all i've got only 10 fingers! ;)
kmel n0tjack: but it would be a good idea to create one
n0tjack I'm also re-learning mIRC isn't as fun and useful as I remember it being
kmel: my TODO list is too long to add that. 17:15
mayuresh n0tjack, has mirc become more noisy?
it would just create a racket the last time (2 years back) i used it.
n0tjack mayuresh: mIRC hasn't changed since the late 90s. But my tastes and expectations have.
mayuresh n0tjack, been working under mac os x! 17:16
:)
[Coke] RT: 1033; GLR: 4; NOM: 8; LTA: 88; WEIRD: 12; TESTS: 10; XMAS: 67
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.
it just works well, and looks darn pretty too!
:)
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
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
Though relearning all the keyboard shortcuts was very painful 17:19
still is
mayuresh :)
n0tjack I think Command+C and Command+V are the stupidest UX decisions I've seen in a decade.
mayuresh i heard they bundle "bash" with a mac os x installation?
n0tjack mayuresh: OSX is BSD under the covers.
mayuresh yeah, i know.
n0tjack so yes, it has bash
and all the other goodies 17:20
mayuresh i heard that with a mac, you lose control, but gain command! ;)
n0tjack oh my god that was horrible 17:21
well done. mayuresh++
mayuresh :D
tadzik oh wow
RabidGravy ? 17:25
17:28 andreoss joined, domidumont joined 17:30 sufrostico left
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:33
I think a Proxy object would work 17:34
but is there a cleverer way?
17:34 lucasb_ left
Skarsnik Should rakudo warn when you define twice a class? 17:35
llfourn m: class A { }; class A { };
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
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?
mayuresh i'll have to quit and rejoin, everything has gone nastily red.
17:36 mayuresh left 17:37 mayuresh joined
Skarsnik I have module A { class X is export {}} and in the main code use A; use X; and it does not complain 17:37
17:38 kmel left
Skarsnik X is a already installed module 17:38
17:39 donaldh left 17:40 andreoss left, tokuhirom left
[Coke] m: say (2/6).WHAT; say (2/6).perl.EVAL.WHAT 17:40
camelia rakudo-moar 962197: OUTPUT«(Rat)␤(Rat)␤»
RabidGravy multiple module are fine
Skarsnik well the module also provide a class X 17:41
RabidGravy but the one you have is class A::X really
[Coke] m: say 'ö'.encode('ASCII') # RT #123673 17:42
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123673
camelia rakudo-moar 962197: OUTPUT«Blob[uint8]:0x<3f>␤»
RabidGravy m: module A { class X { } }; class X { }
camelia ( no output )
17:42 raiph left
RabidGravy m: module A { class X { } }; class X { }; say A::X.new, X.new; 17:43
camelia rakudo-moar 962197: OUTPUT«X.newX.new␤»
RabidGravy they just know themselves by the short names
17:44 n0tjack left
mayuresh i'll be right back ... 17:45
17:45 mayuresh left
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:45
17:46 mayuresh joined
llfourn do you mean that you want Gumbo to use your fake class? 17:46
mayuresh irssi is really way better than ircii 17:47
thanks mr. wall for the suggestion.
[Coke] RT #124120 - can people try to reproduce this on windows? If no one can repro it, we can close it out.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124120
[Coke] Skarsnik: the way to do that is to have both of you agree on a role to provide, I think. 17:48
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:49
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)
llfourn in perl5 it was easy because of all the globals
[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
retupmoca [Coke]: no errors with that either 17:53
[Coke] danke.
17:53 abraxxa left
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␤»
[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␤»
[Coke] m: say 1*2**-64 17:55
camelia rakudo-moar 962197: OUTPUT«5.42101086242752e-20␤»
[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) {}␤»
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, kmel joined
[Coke] RT - down to 1030 17:57
RabidGravy Skarsnik, you can actually do "constant HTML::Parser::XML := Gumbo'
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.
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.
(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!
[Coke] I am thinking we can close RT #77170 as DIHWIDT
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=77170
[Coke] mayuresh, yes.
RabidGravy or, make a HTML::Parser::Any, fix the other modules to use that and have it instantiate the appropriate class ;-)
Skarsnik or maybe find a way to say these modules provide the same service. like the 4-5 modules for json? x) 18:00
RabidGravy there are specced things for doing this, don't know how concrete 18:01
18:01 japhb left 18:03 rurban left
[Coke] TimToady, jnthn: RT #112216 needs a design decision. 18:03
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=112216
18:04 AlexDaniel left
Skarsnik hm doing: constant HTML::Parser::XML := Gumbo::HTML::Parser::XML; throw an error. it seem he does not like the :: 18:04
18:04 zakharyas left
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;␤»
llfourn m: constant A::B::C = 1; 18:05
18:05 dakkar left
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 }
camelia ( no output )
RabidGravy m: module A::B { constant C := 1 }; say A::B::C
camelia rakudo-moar 962197: OUTPUT«1␤»
[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');␤»
[Coke] m: say "\c[COLON]"
camelia rakudo-moar 962197: OUTPUT«:␤»
18:08 kjs_ left
mayuresh m: say "\c10" 18:09
camelia rakudo-moar 962197: OUTPUT«␤␤»
18:09 kjs_ joined
[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…»
mayuresh so those little 'nl' stand for new-line?
[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␤»
[Coke] mayuresh: yes.
18:10 llfourn left
[Coke] m: class A { }␤say "alive"; 18:10
camelia rakudo-moar 962197: OUTPUT«alive␤»
[Coke] You can also use them when giving camelia code to run 18:11
mayuresh how?
simply press "enter"?
can't be!
[Coke] mayuresh: look at my last send. 18:12
it has a ␤ after the class definition, avoiding the need for a ;
mayuresh i am looking at it, and all i see is that little 'nl'.
how did you make that 'nl'?
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.
mayuresh m: class A { }
camelia ( no output )
[Coke] What OS are you using?
mayuresh say "alive";
i am under linux (ubuntu) running irssi.
[Coke] mayuresh: it's a unicode character. 18:14
mayuresh oh!
okay, now i get it.
[Coke] ok. perhaps one of our linux users can point you at a compose key.
mayuresh that would be nice. :)
[Coke] r: say "abcde" ~~ / | @(<a b bc cde>)+»/
raiph mayuresh: does cut/paste work?
camelia rakudo-{moar,jvm} 962197: OUTPUT«「cde」␤»
mayuresh 18:15
looks like. :)
m: class A { } ␤ say "alive";
camelia rakudo-moar 962197: OUTPUT«alive␤»
mayuresh :D
gee, nice. :)
[Coke] r: use MONKEY_TYPING; augment class Cool { method foo (*@) { "foo" } }; Cool.compose; Int.compose; say Int.foo 18:16
18:16 FROGGS joined
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
..rakudo-jvm 962197: OUTPUT«===SORRY!===␤Could not find MONKEY_TYPING in any of:␤ file#/home/camelia/rakudo-inst-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-…»
[Coke] r: use MONKEY-TYPING; augment class Cool { method foo (*@) { "foo" } }; Cool.compose; Int.compose; say Int.foo
camelia rakudo-{moar,jvm} 962197: OUTPUT«Method 'compose' not found for invocant of class 'Cool'␤ in block <unit> at /tmp/tmpfile:1␤␤»
FROGGS o/
mayuresh o/ 18:17
[Coke] r: use MONKEY-TYPING; augment class Cool { method foo (*@) { "foo" } }; Cool.^compose; Int.^compose; say Int.foo
camelia rakudo-{moar,jvm} 962197: OUTPUT«foo␤»
mayuresh okay, so issuing an 'm' invokes the moarvm directly, and a 'r' is for putting the same through rakudo!
but i thought the moarvm has it's own bytecode format! then how does it interpret stuff written in ascii? 18:18
18:18 sufrostico joined
[Coke] mayuresh: no, it's running rakudo-m 18:18
whereas r does rakudo-m and rakudo-j
18:18 firstdayonthejob left
[Coke] j: #`[and this is just rakudo-j] say 3 18:18
camelia rakudo-jvm 962197: OUTPUT«3␤»
psch r: say $*VM 18:19
camelia rakudo-jvm 962197: OUTPUT«jvm (1.7)␤»
..rakudo-moar 962197: OUTPUT«moar (2015.10)␤»
mayuresh okay, i am kind-a lost, what are rakudo-m and rakudo-j?
ah, m for moar, and j for jvm?
psch r: say $*PERL.compiler
camelia rakudo-{moar,jvm} 962197: OUTPUT«rakudo (2015.10.40.g.9621974)␤» 18:20
mayuresh that's rather cool. :)
psch mayuresh: exactly. the compiler is rakudo in both cases, but the underlying vm is moar or jvm respectively
[Coke] r: &&::{}[];;
camelia rakudo-{moar,jvm} 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ & used at line 1␤␤»
psch mayuresh: wouldn't be possible with an integrated execution environment ;)
mayuresh :D
[Coke] r: &::{}[];;
camelia rakudo-{moar,jvm} 962197: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ & used at line 1␤␤»
[Coke] r: ::{}[];; 18:21
camelia ( no output )
[Coke] yay, can close that old ticket.
RabidGravy there was a ticket for that
?
weirdos
mayuresh :)
nine RabidGravy: around here that's a compliment ;) 18:22
mayuresh :D
RabidGravy oh I know
jnthn nine: Is the Bool ~~ Int branch still blocking on me looking at it? :) 18:23
18:25 japhb joined
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?
RabidGravy: yup
Put it in a module.
RabidGravy it's in a module 18:27
that module spends most of its time broken
nine jnthn: psch++ fixed my weird Bool.^mro[0] !=== Bool issue in github.com/rakudo/rakudo/commit/cc672654e8bd but there's still segfaults (oh yes :-/) in Bool.pick(*) and Bool.roll(*)
RabidGravy I need those for Linux::Fuser
18:32 espadrine left
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:38
if ubuntu has that particular unicode input method configured. 18:39
mayuresh
yeah, it does, work! :)
thanks zegargoyle :)
zengargoyle there, now you can type any unicode if you can remember it's number
mayuresh yeah, looking up unicode charts now! ;)
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:40
and there are a bunch of other compose+something+something mappings. 18:41
mayuresh coolness.
18:43 kjs_ left
zengargoyle there's alsa a an RFC1345 input method you can install that uses &CC sorta like using compose. 18:47
dalek ast: 1145029 | FROGGS++ | S32-exceptions/misc.t:
add another test for: my Int a
18:49
mayuresh मयुरेश <- that's my name in devnagari script! :) 18:50
zengargoyle, thanks a million for sharing that tip. :)
zengargoyle tools.ietf.org/html/rfc1345 gives an idea of what to try somethimes, or vim digraphs. 18:51
ah, see you've probably figured out enough.. :)
mayuresh :D
zengargoyle the compose mappings are pretty much a mystery to me aside from a few guessable ones and /usr/share/doc/libx11-dev/i18n/compose/en_US.UTF-8.xml.gz which is a horrible read. 18:52
mayuresh hmnn, i found this link; unicode-table.com/en/#control-character 18:53
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:54
to find unicode things, i usually cut and paste through `iconv -f utf8 -t utf16 | xxd` and look for the code. :) 18:56
mayuresh :)
[Coke] RT: down to 1028 tickets. 18:57
RabidGravy wahay!
mayuresh off-topic, but, are there any tolkien fans here-abouts? 18:59
i am looking to get myself a copy of 'lotr' for the kindle. 19:00
and can't find any with a good rating on amazon.com
most seem to be messed up during the print-to-digital processing. 19:01
FROGGS mayuresh: I can't help you there
mayuresh froggs, no worries.
btw, did you get any reply from marijn? 19:02
FROGGS mayuresh: not yet
mayuresh would advise you to be patient, he usually takes time.
FROGGS mayuresh: that was my plan :o)
mayuresh :)
he's most responsive on twitter, @marijnjh 19:03
FROGGS I'm not though
mayuresh :)
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...
FROGGS nine: it is
FROGGS probably has a patch for RT #125573 19:05
nine But I also get the feeling, that I understand more and more of it and how jnthn++ wants to untangle it :) 19:06
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
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 ;)
FROGGS nine: yes, though we have to think about these problems very soon (for CURLI) 19:10
dalek ast: 9c56e42 | coke++ | integration/weird-errors.t:
add a test for RT #119999
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=119999
itz_stmuk mayuresh: www.amazon.co.uk/dp/B002RI9176/ref=..._TE_M1T1DP 19:11
you might be able to subst the co.uk by your local domain
nine FROGGS: well maybe by then I'll have learned enough to be of help
mayuresh itz_stmuk, cool, yes, i'll check it out.
thanks :)
dalek kudo/nom: 6063886 | FROGGS++ | lib/Test.pm:
dont override potentially non-zero exit code

This will fix RT #125573
19:12
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125573
mayuresh itz_stmuk; just got myself the copy, thanks a million. :) 19:14
itz_stmuk np 19:15
19:15 CIAvash left
[Coke] t/spec/S17-supply/syntax.t hanging on os x with test-jobs=10ish 19:17
19:19 raiph left
dalek ast: 2dfcd85 | FROGGS++ | S29-context/die.t:
add test for die() + Test.pm
19:22
19:23 firstdayonthejob joined
FROGGS [Coke]: and it does not on my linux box with 4 test jobs 19:23
.tell leont is there anything wrong with my patch here? github.com/rakudo/rakudo/commit/6063886343 19:24
yoleaux FROGGS: I'll pass your message to leont.
[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:27
FROGGS [Coke]: I bet it is hanging somewhere in libuv... because that's where it hung before IIRC 19:29
19:29 xfix joined 19:32 mbrock joined
mayuresh coke: i think there's something called "instruments" under x-code which let's you do what you want to. 19:32
dalek kudo/nom: 7d885ea | coke++ | src/ (2 files):
Don't bother setting recursion limit

It only ever did anything on the parrot VM.
19:33
[Coke] mayuresh: yes. but I have no idea how to attach it to a moar process and see anything useful.
(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:34
mayuresh code; which version of x-code are you using? 19:35
i meant, coke!
:)
19:35 mbrock left
[Coke] mayuresh: 7.1 (7b91b) 19:36
mayuresh dang.
there used to be something called "spin control" in pre-4.2
that could be used specifically for monitoring hang activity.
19:37 tokuhirom joined 19:38 kjs_ joined 19:41 tokuhirom left
mayuresh coke; i think they've introduced something called "address sanitizer" in v7. 19:41
useyourloaf.com/blog/using-the-addr...tizer.html 19:43
itz_stmuk dtruss on OS X resembles linux systrace 19:44
except you always have to be root
19:46 rangerprice joined
rangerprice hi 19:46
mayuresh hi :)
rangerprice :) 19:47
kmel ohai
19:48 sufrosti1o joined
mayuresh alrighty, it's past mid-night, and i need to hit bed. 19:50
nice chatting with you all. :)
coke, hope your problem gets resolved. :)
19:50 tokuhiro_ joined
mayuresh bye. 19:50
19:51 mayuresh left
rindolf rangerprice: hi, sup? 19:51
rangerprice rindolf: hi, what do you mean with "sup" ? 19:52
PerlJam heh
rangerprice "support" ?
PerlJam rangerprice: he's asking if you would like to dine with him :)
rindolf rangerprice: sup is short for "What's up?"
PerlJam rangerprice: no, really, he's saying slangy ... that 19:53
19:53 sufrosti2o joined
rangerprice Oh okay 19:53
rindolf: well well, you ? 19:54
PerlJam: Hi there
PerlJam greetings
rindolf rangerprice: I'm fine - had another productive day.
rangerprice: and I reached an empty inbox again.
19:55 domidumont left
moritz ah, the good old "rm -rf", "read mail -- really fast" 19:55
rindolf moritz: heh.
PerlJam I wish my days at least /felt/ more productive whether they were or not 19:57
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
rangerprice hahaha, i remember when i was on Arch Linux, and accidentally i typed that in my terminal: sudo rm * /
moritz rangerprice: be glad there was no -r in there 19:59
(can still hurt a *lot*)
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?
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
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
PerlJam: hahahahahaaa
PerlJam the only "backup" we had was a print out from a few hours before. 20:01
20:01 AlexDaniel joined
PerlJam (and this was before RCS/CVS/whatever) 20:01
20:01 lizmat joined
PerlJam lizmat: o/ 20:02
lizmat PerlJam o/
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)
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.
lizmat good *, #perl6! 20:03
jdv79 how would i do something like a "before set_value" like in moose?
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
alternately, maybe we should just implement this as a class trait?
jdv79 but that's globally scoped, right?
if i runtime mixin a role before the wrap() that would scope it down? 20:05
seems likethere has to be a better way
nine answering my own question: yes, it is!
20:05 aindilis joined
PerlJam nine: what is "global merging" from your question? 20:06
nine PerlJam: merging the globals from the loaded module into the GLOBAL package as far as I understand the code 20:07
PerlJam ah.
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
jdv79 it is
trying to implement a "write once"
and then hopefully someone who knows better can help 20:09
20:09 kjs_ left 20:13 abaugher left 20:14 abaugher joined
jnthn lizmat: Going for rest now, but: src/Perl6/Actions.nqp:5720 20:19
lizmat jnthn: and the class attribute idea ?
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 darutoko left
jnthn lizmat: Also workable :) 20:20
lizmat okidoki
jnthn Just stick a property on the meta-object or so :)
lizmat gnight again!
jnthn cy'all tomorrow 20:21
'night o/
RabidGravy toodlepip
jdv79 i tried the override approach but got somthing about a collisions method missing
so i thought i'd move on to wrapping
whatever is better in the end - i just want to get it working atm
20:22 kjs_ joined 20:25 Oatmeal joined
psch hmm 20:25
generated accessors for an Attribute unfortunately don't seem to go through {get,set}_value
kmel in the docs i can see that there is a distinction between sub and method 20:26
what is the difference?
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
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?
dalek kudo/curli: 449de22 | (Stefan Seifert)++ | src/core/CompUnit (3 files):
Migrate module loading code to CompUnit::Loader
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
nine That was a surprisingly hard commit to do
psch jdv79: ^^
kmel: methods can't be declared without a surrounding class and have an implicit invocant
kmel: there might be more distinctions, but those come to mind 20:28
(where "can't" means "unless you scope them")
m: method foo { }
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 { }␤»
psch and, yeah, it's also just a potential difficulty...
so uhm, they can be declared, but *still* have an implicit invocant that looks at the surrounding class (if any)
20:28 rurban joined
jdv79 psch: what goes through {get,set}_value then? 20:29
20:29 FROGGS left
psch jdv79: i have no idea, unfortunately 20:29
jdv79 i was getting a little concerned that my code doesn't run
makes sense at least
psch github.com/rakudo/rakudo/blob/nom/...ute.pm#L26 20:30
that's what you get when you do $foo.bar
those tiny little methods that just do getattrref_*
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 rindolf left
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
jdv79 uh. so this is not trivial to implement
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
psch jdv79: well, that's just the nested ?? !! :)
kmel psch: i agree one may override the other (depending on which class) 20:33
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
do we have that distinction here?
hi RabidGravy 20:35
RabidGravy no, not really 20:36
kmel thanks RabidGravy. I should have explained earlier what I mean by "they're the same" 20:37
20:37 Begi1115 left
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:38
kmel psch: sub sayhi { say 'hi';}; sayhi; 20:39
m: sub sayhi { say 'hi';}; sayhi;
camelia rakudo-moar 7d885e: OUTPUT«hi␤»
psch m: sub sayhi { say "hi"; }; say sayhi
camelia rakudo-moar 7d885e: OUTPUT«hi␤True␤»
psch kmel: that returns True
kmel m: sub returnhi {'hi';}; say returnhi; 20:40
camelia rakudo-moar 7d885e: OUTPUT«hi␤»
kmel In some languages there is a distinction between the 2 above routines 20:41
although the end result is the same
20:42 n0tjack joined
kmel got my point? 20:42
psch kmel: no, i don't. your &sayhi still returns something
kmel: so there's no distinction 20:43
20:43 tokuhirom joined
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
kmel: but i don't see how your two examples show any kind of similar behavior
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:45
kmel psch: yes 20:46
20:46 n0tjack left
jdv79 how can i mix a role in to do stuff that requires priv vars in the instance? 20:46
20:46 [Sno] left
jdv79 the copy and paste Proxy implementation of this feature is looking better and better 20:47
RabidGravy $foo does Role
20:48 tokuhirom left
jdv79 and $foo has priv attrs that the role can't touch 20:48
compose and $!type for instance
20:48 geraud joined
jdv79 this may require a mop expert 20:48
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:49
jdv79 is there anyone besides jnthn i could ask? 20:50
20:53 bjz_ left, kjs_ left
nine jdv79: what exactly are you trying to do? 20:53
20:53 bjz joined
jdv79 a "write once" attr trait 20:53
i thought it would be easier but what do i know:) 20:54
20:54 firstdayonthejob left
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 ?
jdv79 because it seems i need to redefine the compose method on Attribute to od it
idk. do you know of another way?
right now i just copy and paste a Proxy snippet around with a die in the STORE if attr is already defined 20:56
something like "has $.foo is w1" would be nicer 20:57
rangerprice: metcpan is a p5 thing only so far 20:58
20:59 adhoc left
nine jdv79: I guess you'd have to add_method the write once accessor method before Attribute.compose runs 20:59
21:00 adhoc joined
nine jdv79: or maybe better: replace it afterwards, so you can still use it and avoid duplicating it 21:01
psch jdv79: gist.github.com/peschwa/cb8f5e954ba932e15c31
the else { } blocks can be modified to your liking, depending on what you'd like to have happen
21:01 kjs_ joined
psch jdv79: note that as-is you import the WriteOnceAttribute and *every* class has write-once attributes 21:01
jdv79: in the current scope, of course 21:02
jdv79 uh, i wanted it as an attr trait cause that's the cleanest, right? 21:04
not at the class level
but that's closer than i got at least
RabidGravy psch, ah *that's* who you set the attribute class ;-) 21:05
rangerprice jdv79: oh ok
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
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
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
because private Attributes aren't inherited in the first place, iirc
whereas roles can access private Attributes from other roles..? 21:07
the latter i saw today, so maybe the former is wrong
m: class A { has $!foo = "baz" ; method bar { say $!foo } }; class B is A { }; B.new.bar
camelia rakudo-moar 7d885e: OUTPUT«baz␤»
psch yeah it is
21:08 lostinfog joined
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
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␤ …»
psch no it's not wrong
the A-scoped &bar knows $!foo because it's A-scoped itself..?
jdv79 iirc $! vars are essentially lex scoped maybe 21:09
21:09 bjz left 21:10 yqt left
jdv79 also i'm not sure your side state would be a good idea 21:11
since the mop probably reaches around that for something
i thought just a defined check on the value slot would be good enouhg
maybe too slow? idk.
lizmat jdv79 psch private attributes are hidden from subclasses as they are from the rest of the world
psch S12:Introspection shows there's only one mnemonic for all those capital somethigns for classes :/
synbot6 Link: design.perl6.org/S12.html#Introspec...hows_there
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
jdv79 i thnk this may have to be my next question to jnthn
yeah but who knows if there's another path to set it
psch jdv79: well, there is, with set_value
21:12 [Sno] joined
psch jdv79: but that's introspect-y 21:12
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␤␤»
psch m: class A { has $.foo }; class B is A { }; say nqp::getattr(B.new, 'A', '$!foo') # lizmat..?
camelia rakudo-moar 7d885e: OUTPUT«P6opaque: no such attribute '$!foo'␤ in block <unit> at /tmp/oB863GSlgr:1␤␤»
jdv79 the intent was "allow set if not already set"
21:13 _dolmen_ joined
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
jdv79 it about type 21:14
lizmat but suppose it is private:
jdv79 if i wanted to override Attribute.compose i would need access to $!type
gfldex m: my $s = Any.new but role { my $i = 42; method answer(){$i}; method new {!!!} }; $s.new.say;
camelia rakudo-moar 7d885e: OUTPUT«Any+{<anon|77407088>}.new␤»
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' } }
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␤»
jdv79 yeah but i don't see how to scope that down liek i want
lizmat m: use nqp; class A { has $!foo }; class B is A { method bar { nqp::getattr(self,A,'$!foo' } }
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} }␤»
lizmat m: use nqp; class A { has $!foo }; class B is A { method bar { nqp::getattr(self,A,'$!foo') } }
camelia ( no output )
lizmat psch: ^^^
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>})␤»
gfldex is $s.new comming from Any or the anon role?
psch lizmat: ooh, right. the second arg to getattr is a type, not a Str
that's what i messed up locally
and brought here
jdv79: well, if you don't make my mistake you can also use getattr instead of adding the attr again 21:17
lizmat yeah, the 2nd parameter is the class of the attribute 21:18
psch m: class A { method new {!!!} }; A.new
camelia rakudo-moar 7d885e: OUTPUT«Stub code executed␤ in method new at /tmp/mIWMyeN4fr:1␤ in block <unit> at /tmp/mIWMyeN4fr:1␤␤»
lizmat as you can have 2 attributes of the same name (but of different classes) in an object
psch m: Any.new.new.new.new.new
camelia ( no output )
psch gfldex: ^^^ with those two i'd say the new is from Any
21:19 ^elyse^ left
lizmat it's from Mu, I think, though 21:19
psch m: Any.new.WHAT
camelia ( no output )
jdv79 i just don't see how to scope it down; like i said
psch m: Any.new.WHAT.say
camelia rakudo-moar 7d885e: OUTPUT«(Any)␤»
psch jdv79: what does "scope it down" mean?
jdv79 to an attr trait
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;
psch jdv79: i'd thought you had figured that out already, sorry
jdv79 huh? if i had figured that out i'd be done.
maybe your definition of "that" is different
psch probably :) 21:21
my "that" is "writing a trait"
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
camelia ( no output )
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:24 skids left 21:26 xfix left
RabidGravy jdv79, that's the trait part gist.github.com/jonathanstowe/54f1...e9382b822d 21:26
psch hm, the example aren't particularly helpful
err, not examples
the trait_mods that are declared in traits.pm for Attribute don't help me to figure this out :P
that's what i wanted to say
the keys are like, right next to each 21:27
other
RabidGravy as demonstrating over-writing compose
psch m: gist.github.com/jonathanstowe/54f1...e9382b822d
camelia rakudo-moar 7d885e: OUTPUT«boo ␤42␤»
21:27 sufrosti1o left, sufrosti2o left, kaare_ left 21:28 sufrostico left
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?
jdv79 i don't get what the diff types are
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
jdv79 what Attribute.compose does
psch jdv79: 0 is obj, 1 is int, 2 is num, 3 is str
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
RabidGravy callsame the compose then find the created method using find_method 21:30
then dick around with that
21:31 lizmat left
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␤␤»
psch RabidGravy: probably runs into that then
RabidGravy no wrap it
:)
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␤␤»
psch m: class A { method foo { } }; A.can('foo')[0].wrap(-> \fles { say "ok" }); A.new.foo
camelia rakudo-moar 7d885e: OUTPUT«ok␤»
psch yeah, i really should remember that about wrap
it actually replaces the method handle
or sub handle
routine handle, actually i suppose
21:34 ChoHag left 21:39 ^elyse^ joined 21:40 pyrimidine left 22:23 ilogger2 joined, ChanServ sets mode: +v ilogger2
lizmat just like private attributes of a class are not really private if you start using nqp or maybe the MOP 22:24
jdv79 yeah, i'll look into it later. thanks. 22:25
i don't know much about the mop or internals so too many assumptions i guess
RabidGravy but using those is like breaking the little sticker on the back of an electronic device
22:26 raiph joined
psch m: gist.github.com/peschwa/9e071976dab9eb63fd42 22:26
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␤␤»
psch jdv79: unfortunately you're also breaking the get-ty part of the accessor
so it's more of a write-once-and-never-access-again Attribute... :/ 22:27
pink_mist lol
psch that's common with my solution from before as well though, in hindsight
jdv79 yeah - i'll fix it later. i was getting frustrated with my lack of speed getting the various bits in place 22:28
i think its pub time atm thoug h
thanks all!
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.
zengargoyle how do you get at a module's un-exported subroutine for testing purposes? 22:30
dalek kudo/nom: f558679 | lizmat++ | src/core/Any-iterable-methods.pm:
Presize the list for tailed elements

Should ensure fewer re-allocations
22:32
22:32 raiph left 22:33 raiph joined 22:45 tokuhirom joined 22:48 raiph left, raiph joined 22:49 tokuhirom left 22:53 Alina-malina joined 22:54 raiph left
jdv79 gist.github.com/anonymous/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
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, virtualsue joined
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.
camelia rakudo-moar f55867: OUTPUT«(<anon>)␤»
psch jdv79: it's there, declared in BOOTSTRAP.nqp, not Attribute.pm
23:04 zakharyas joined 23:07 kid51 joined, Begi joined
dalek c: b84ffc0 | lizmat++ | doc/Type/Supply.pod:
Add more Supply.throttle documentation
23:07
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)␤»
jdv79 why is it not there? 23:10
23:10 llfourn joined
jdv79 but ok 23:11
23:11 Begi left 23:12 Begi joined
diakopter mattn_jp: hi 23:12
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_invocation_attr␤set_invocation_handler␤set_is_mixin␤set_mixin_attribute␤set_multi_invocation_attrs␤se…»
23:15 llfourn left
jdv79 weird 23:15
psch m: .say for Attribute.HOW.^methods>>.name.grep( { /^set_readonly/ } ).sort.squish 23:17
camelia ( no output )
psch it's is in .^methods, but the code object doesn't know that it's called set_readonly 23:18
s/is//
that's just the peg it's hang on in Attribute
probably due to circularity reasons
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 virtualsue left
psch similar to that case, we'd need a BOOTSTRAPMETHOD to have it know it's name i think 23:19
23:19 BenGoldberg joined 23:20 virtualsue joined
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:21
diakopter m: module Foo { module Bar { say $?PACKAGE.WHO } } #118361 23:24
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=118361
camelia rakudo-moar f55867: OUTPUT«␤»
23:24 virtualsue left
diakopter m: module Foo { module Bar { say $?PACKAGE } } #118361 23:24
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=118361
camelia rakudo-moar f55867: OUTPUT«(Bar)␤»
23:25 raiph left 23:26 Begi left 23:33 zakharyas left
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
lizmat good night, #perl6! 23:47
23:49 literal left 23:50 literal joined 23:53 lizmat_ joined 23:54 lizmat_ is now known as lizmat 23:55 lizmat left 23:59 rangerprice joined