Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-09-13

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 go|dfish joined #perl6
00:06 itz joined #perl6
00:11 itz_ joined #perl6
00:14 clkaoud__ joined #perl6
00:15 hobbified joined #perl6
00:15 brother| joined #perl6
00:16 sorear joined #perl6
00:17 flussenc1 joined #perl6
00:18 integral_ joined #perl6
00:18 integral_ joined #perl6
00:18 xenoterracide joined #perl6
00:19 avuserow joined #perl6
00:23 DELLtra joined #perl6
00:23 xfix joined #perl6
00:23 xfix joined #perl6
00:25 flussence joined #perl6
00:26 skarn joined #perl6
00:32 DELLtra_ joined #perl6
00:48 Px12 joined #perl6
00:55 zoosha joined #perl6
00:55 xfix_ joined #perl6
00:55 ashleyde1 joined #perl6
00:55 brother joined #perl6
01:07 fling_ joined #perl6
01:07 silug joined #perl6
01:07 daxim joined #perl6
01:07 ChoHag_ joined #perl6
01:07 woolfy1 joined #perl6
01:07 vike1 joined #perl6
01:07 flussenc1 joined #perl6
01:07 zoosha_ joined #perl6
01:07 xenoterracide_ joined #perl6
01:07 integral joined #perl6
01:07 Brock joined #perl6
01:07 skarn joined #perl6
01:07 brother| joined #perl6
01:07 sorear_ joined #perl6
01:07 Celelibi joined #perl6
01:07 hobbs joined #perl6
01:07 Celelibi joined #perl6
01:08 hobbs joined #perl6
01:08 camelia joined #perl6
01:09 cognome joined #perl6
01:23 flussence joined #perl6
01:27 ilbot3 joined #perl6
01:27 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:28 eternaleye_ joined #perl6
01:28 flussence joined #perl6
01:28 woolfy1 joined #perl6
01:28 timotimo joined #perl6
01:28 yogan_ joined #perl6
01:29 betterwo1ld joined #perl6
01:29 avuserow_ joined #perl6
01:30 ashleydev joined #perl6
01:31 daxim_ joined #perl6
01:31 flussence joined #perl6
01:31 firnsy_ joined #perl6
01:31 firnsy_ joined #perl6
01:32 vike joined #perl6
01:32 ChoHag joined #perl6
01:32 jtpalmer joined #perl6
01:32 awwaiid joined #perl6
01:32 fling joined #perl6
01:32 fling joined #perl6
01:32 Pleiades` joined #perl6
01:33 cognome joined #perl6
01:36 alexghacker joined #perl6
01:37 jercos joined #perl6
01:40 bowtie joined #perl6
01:49 tony-oo joined #perl6
01:49 tony-oo timotimo: you in?
01:51 alexghacker joined #perl6
01:51 TimToady tony-oo: it's probably the wee hours of the morning there
02:02 rindolf joined #perl6
02:13 masak whee!
02:13 chenryn joined #perl6
02:14 * masak belatedly makes the connection 'twixt en:"wee hours" and sv:"småtimmarna"
02:16 timotimo tony-oo: in bed in a few minutes :S
02:16 timotimo ttyl :)
02:22 tony-oo ahh,
02:29 raiph joined #perl6
02:33 cognome joined #perl6
02:40 xenoterracide_ joined #perl6
02:41 ClarusCogitatio joined #perl6
02:50 noganex joined #perl6
03:08 xenoterracide_ joined #perl6
03:33 cognome joined #perl6
03:37 ClarusCogitatio joined #perl6
03:46 firefish5000 joined #perl6
03:56 telex joined #perl6
03:56 xragnar joined #perl6
03:57 ClarusCogitatio joined #perl6
04:09 alexghacker joined #perl6
04:22 xenoterracide_ joined #perl6
04:29 xenoterracide_ joined #perl6
04:32 Sqirrel joined #perl6
04:33 cognome joined #perl6
04:46 Alina-malina joined #perl6
04:58 colomon joined #perl6
04:58 vike joined #perl6
04:58 bloonix joined #perl6
04:58 camelia joined #perl6
04:58 FROGGS joined #perl6
04:58 xinming joined #perl6
04:58 esaym153 joined #perl6
04:59 aborazmeh joined #perl6
05:03 hagiri joined #perl6
05:04 clkaoud_ joined #perl6
05:05 hagiri TimToady
05:05 hagiri :)
05:33 cognome joined #perl6
05:35 firefish5000 how would you parse something twice? for instance Gram.parse($_, :rule<r1>); Gram.parse($_, :rule<r2>); must I check in one go(not a problem, just curious)
05:36 SamuraiJack joined #perl6
05:37 chenryn joined #perl6
05:50 firefish5000 nvm. I just discovered that when Gram.parse($_, :rule<r1>) {...} either always matches, or doesn't work as I expected.
05:52 firefish5000 *' when Gram.parse($_, :rule<r1>) {...} ' # since 'that when' could be confusing.
05:56 mr-foobar joined #perl6
06:06 ClarusCogitatio joined #perl6
06:08 alexghacker joined #perl6
06:33 cognome joined #perl6
06:53 gfldex joined #perl6
06:57 ClarusCogitatio joined #perl6
06:59 * firefish5000 learned that tokens and rules don't backtrack by default. All of his grammar problems faded away.
07:04 xfix joined #perl6
07:09 bjz joined #perl6
07:16 clkaoud__ joined #perl6
07:17 ggherdov_ joined #perl6
07:18 pnu_ joined #perl6
07:23 Px12 joined #perl6
07:26 isacloud_____ joined #perl6
07:31 kaare_ joined #perl6
07:33 cognome joined #perl6
07:35 bjz joined #perl6
07:40 bjz_ joined #perl6
07:49 ivanshmakov joined #perl6
07:52 spider-mario joined #perl6
07:54 spider-mario joined #perl6
07:55 brrt joined #perl6
07:57 brrt left #perl6
07:57 brrt joined #perl6
08:08 darutoko joined #perl6
08:10 Px12 joined #perl6
08:14 jaffa4 joined #perl6
08:16 \00 joined #perl6
08:17 jaffa4 hi all
08:17 nine hi jaffa4
08:24 MilkmanDan joined #perl6
08:28 labster_ joined #perl6
08:28 grondilu_ joined #perl6
08:28 MilkmanDan joined #perl6
08:28 zoosha joined #perl6
08:28 xragnar joined #perl6
08:28 itz joined #perl6
08:29 eternaleye joined #perl6
08:31 isBEKaml joined #perl6
08:32 [Sno] joined #perl6
08:33 cognome joined #perl6
08:34 grondilu_ still no video of YAPC::EU?
08:34 grondilu joined #perl6
08:35 * grondilu checked https://www.youtube.com/user/yapceu/videos
08:35 Px12 joined #perl6
08:35 Alina-malina joined #perl6
08:35 Alina-malina joined #perl6
08:37 erkan joined #perl6
08:38 FROGGS grondilu: nothing P6ish at least
08:38 isBEKaml Were there P6 events at YAPC::EU?
08:39 * isBEKaml is admittedly quite behind...
08:40 nine isBEKaml: there were the usual couple of talks, yes.
08:41 nine What was different this year was the audience's reaction. It was much more "I want to try this" than before. It very much felt like a turning tide.
08:44 chenryn joined #perl6
08:45 isBEKaml Oh, that's great! Personally, I feel it's some time coming - there's a lot of talk about many programming languages - that's a good thing, it makes more people try things out.
08:51 dalek zavolaj/cglobal: e56da91 | (Tobias Leich)++ | t/10-cglobals. (2 files):
08:51 dalek zavolaj/cglobal: add passing tests for C globals
08:51 dalek zavolaj/cglobal: review: https://github.com/jnthn/zavolaj/commit/e56da91e84
08:54 FROGGS .tell jnthn I'd like to merge the cglobal branches of MoarVM/nqp/zavolaj - please review :o)
08:54 yoleaux FROGGS: I'll pass your message to jnthn.
08:55 FROGGS .tell jnthn and I'd like to talk about how to write to such a global/piece of mem with you (design wise)
08:55 yoleaux FROGGS: I'll pass your message to jnthn.
08:56 exixt joined #perl6
09:05 clkaoud__ joined #perl6
09:05 ggherdov_ joined #perl6
09:07 Rotwang joined #perl6
09:10 lizmat joined #perl6
09:11 woolfy joined #perl6
09:13 lizmat joined #perl6
09:26 chenryn joined #perl6
09:32 MilkmanDan joined #perl6
09:32 sqirrel_ joined #perl6
09:32 japhb_ joined #perl6
09:32 MilkmanDan joined #perl6
09:32 slavik joined #perl6
09:33 firnsy joined #perl6
09:33 cognome joined #perl6
09:50 dalek Inline-Perl5: 7115127 | nine++ | lib/Inline/Perl5.pm6:
09:50 dalek Inline-Perl5: Pull out duplicated code from call and invoke
09:50 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/7115127d00
10:01 dalek Inline-Perl5: f0da8be | nine++ | / (5 files):
10:01 dalek Inline-Perl5: Incompatible change: no longer treat all function calls as method calls
10:01 dalek Inline-Perl5:
10:01 dalek Inline-Perl5: Previously it depended on the first parameter if a P5 function would be called
10:01 dalek Inline-Perl5: as function or as method. We now treat functions and methods differently.
10:01 dalek Inline-Perl5: $p5.call is now used only for functions.
10:01 dalek Inline-Perl5: $p5.invoke is now used for all methods, i.e. package methods and object methods.
10:01 dalek Inline-Perl5:
10:01 dalek Inline-Perl5: This commit also reverses the first two parameters to invoke so they are now
10:01 dalek Inline-Perl5: package/object, name which should be much more natural.
10:01 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/f0da8be1ad
10:03 eternaleye joined #perl6
10:06 erkan joined #perl6
10:16 ilbot3 joined #perl6
10:16 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
10:16 Alina-malina joined #perl6
10:17 lizmat joined #perl6
10:17 eternaleye joined #perl6
10:18 camelia joined #perl6
10:30 moritz nine: btw t/inherit.t fails without p5 Moose being installed
10:31 moritz nine: should I rewrite it to not use Moose?
10:31 lizmat joined #perl6
10:32 moritz nine: or test a simple 'use Moose;' first, and skip the rest of the tests if it fails?
10:32 woolfy joined #perl6
10:33 moritz nine: oh, I see you added it intentially ; then the second version seems to make more sense
10:33 cognome joined #perl6
10:34 nine moritz: it also fails with Moose installed :( No idea how this slipped past me. Can only attribute it to having written it 10 minutes before going to bad. I'd normally never commit failing tests to a master branch...
10:35 nine moritz: the Moose accessor rightfully complains about the object not being a Hashref (it's a wrapped Perl 6 object). I'm working on a solution right now.
10:38 chenryn joined #perl6
10:43 moritz nine: and it seems that p5 exceptions aren't trappable in Perl 6 :(
10:43 nine moritz: not yet. But that should be rather straight forward to implement.
10:44 moritz nine: so my idea to use  try $i.run('require Moose'); if $! { skip ...; exit }
10:44 moritz ah, good
10:44 nine I've done the same with Python exceptions in Inline::Python
10:44 lizmat_ joined #perl6
10:44 nine For now that should probably be if $i.run('eval "require Moose"'; $@) { skip ...; exit }
10:48 dalek Inline-Perl5: 97d9e90 | nine++ | p5helper.c:
10:48 dalek Inline-Perl5: Store the P6 object array index in priv instead of the SV
10:48 dalek Inline-Perl5:
10:48 dalek Inline-Perl5: This is preparation for making subclassing Moose objects actually work.
10:48 dalek Inline-Perl5: Storing the index in priv allows us to use any P5 value as base for
10:48 dalek Inline-Perl5: wrapped Perl 6 objects as we don't use it for unwrapping anymore.
10:48 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/97d9e905fe
10:52 dalek Inline-Perl5: 94ff3b7 | moritz++ | t/inherit.t:
10:52 dalek Inline-Perl5: Guard test against missing p5 Moose
10:52 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/94ff3b7a52
10:54 pnu_ joined #perl6
10:54 SHODAN joined #perl6
11:02 moritz woah, 'cpanm Moose' installed 45 distributions
11:02 moritz I kinda think it used to be far less
11:07 nwc10 what is this - Rakudo startup is getting too fast, so now we're trying to restore the balance by *also* loading Moose :-)
11:07 nwc10 (yes, I read enough scrollback to see that it's a bit more awesome than that)
11:08 moritz btw time perl6-m -c -e '' => 0.178s  vs. time perl6-m -e '' => 0m0.236s
11:09 moritz so there's a signficant overhead in compiling the empty string
11:10 moritz on an unrelated note, I've seen various profiler outputs recently with very low GC time (like, less than 5% or 10%). That makes me happy.
11:14 jaffa4 What can I proto I need to write if I would like to meke multi subs accessable to the code outside the class? can you give me an example?
11:15 moritz nqp-m: constant i = 42;
11:15 camelia nqp-moarvm: OUTPUT«Confused at line 2, near "constant i"␤   at gen/moar/stage2/NQPHLL.nqp:481  (/home/p6eval/rakudo-inst-1/language​s/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913  (/home/p6eval/rakudo-inst-1/language​s/nqp/lib/nqp.moarvm:comp_unit:872)␤ fro…»
11:15 moritz nqp-m: constant i := 42;
11:15 camelia nqp-moarvm: OUTPUT«Confused at line 2, near "constant i"␤   at gen/moar/stage2/NQPHLL.nqp:481  (/home/p6eval/rakudo-inst-1/language​s/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913  (/home/p6eval/rakudo-inst-1/language​s/nqp/lib/nqp.moarvm:comp_unit:872)␤ fro…»
11:20 jaffa4 m: proto sub open(|$) {*}
11:20 camelia rakudo-moar 34cf7a: OUTPUT«Obsolete use of | or \ with sigil on param $␤»
11:25 jnthn jaffa4: Would be our proto foo(|) {*} in the simplest case I guess. The "our" is the signficant thing if you want to make it visilbe as TheClass::foo(...)
11:25 yoleaux 08:54Z <FROGGS> jnthn: I'd like to merge the cglobal branches of MoarVM/nqp/zavolaj - please review :o)
11:25 yoleaux 08:55Z <FROGGS> jnthn: and I'd like to talk about how to write to such a global/piece of mem with you (design wise)
11:27 jaffa4 ok
11:28 jnthn FROGGS: OK,will see what energy I have after dinner/nightseeing :)
11:30 FROGGS jnthn: agreed, first some food :o)
11:30 jaffa4 Where are you?
11:31 kaare_ joined #perl6
11:31 jnthn Hong Kong
11:32 colomon joined #perl6
11:33 jaffa4 What event is over there?
11:33 cognome joined #perl6
11:33 jaffa4 jnthn
11:37 nine jaffa4: he's ther for a consultancy gig
11:37 kurahaupo joined #perl6
11:38 nine jaffa4: in China that is
11:38 jaffa4 what is gig?
11:38 moritz "job"
11:39 jnthn jaffa4: Here for a dayjob assignment. :)
11:39 jnthn Well, just over the border in China, actually. In Hong Kong for a weekend break.
11:39 chenryn joined #perl6
11:40 jaffa4 What do you have to do? what is the topic?
11:43 ClarusCogitatio joined #perl6
11:44 jnthn jaffa4: Can't say much about it really; under NDA...
11:44 jnthn Can say it's had aspects of open source stuff, some application of compiler technology/ideas, even a little language design :)
11:44 jnthn But not more than that. :)
11:45 jaffa4 ok
11:46 masak (we're hiring!)
11:46 jaffa4 What are you hiring?
11:46 masak (especially Perl 6 devs!)
11:46 jaffa4 who is we?
11:46 masak http://edument.se/
11:47 jaffa4 Do you work for them now?
11:47 masak that's our employer, yes.
11:47 grondilu std: sub random { .5 - rand }; say random xx 3;
11:47 camelia std 53b3ca6: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'xx' used at line 1�Check failed�FAILED 00:01 125m�»
11:48 grondilu std: sub term:<random> { .5 - rand }; say random xx 3;
11:48 camelia std 53b3ca6: OUTPUT«ok 00:01 129m␤»
11:48 masak jnthn is employee 001. I am employee 002.
11:48 SHODAN joined #perl6
11:48 lizmat joined #perl6
11:48 jaffa4 Are you Swedish?
11:49 masak half of us are. :)
11:49 * grondilu wonders who's 007 and if he has licence to kill :)
11:49 * masak .oO( license to kill -9 )
11:49 jaffa4 last time I wrote them they told me I do not live in Sweden.
11:49 masak which is technically correct; you don't.
11:50 jaffa4 as a reason for rejection
11:50 masak yeah, we do have some expectation of proximity.
11:50 masak both jnthn and I have moved to the province the company is based in, in order to be close to the mothership.
11:51 jaffa4 Have you found a flat easily?
11:52 masak define "easily". both of us have a place to live, and both of us found it after some searching, but not too much.
11:52 masak I think the home market in southern Sweden is pretty OK.
11:52 jaffa4 witin 2 weeks?
11:53 woolfy1 joined #perl6
11:53 masak now, don't do anything rash here... :P
11:53 masak dinner &
11:53 lizmat_ joined #perl6
11:55 jaffa4 What city are you located in?
11:55 jaffa4 Why do you need Perl6 developers?
12:01 spider-mario joined #perl6
12:05 lizmat_ .oO( who doesn't? ;)
12:16 Celelibi joined #perl6
12:22 pmurias joined #perl6
12:22 pmurias hi
12:25 ClarusCogitatio joined #perl6
12:25 djanatyn joined #perl6
12:28 FROGGS_ joined #perl6
12:29 chenryn joined #perl6
12:33 cognome joined #perl6
12:34 brrt joined #perl6
12:38 lizmat_ joined #perl6
12:41 jaffa4 m: multi sub b () returns Bool { return True;} ; multi sub b returns Int { return 1; } ; my Int $c = b();
12:41 camelia rakudo-moar 34cf7a: OUTPUT«Ambiguous call to 'b'; these signatures all match:␤:( --> Bool)␤:( --> Int)␤  in sub b at /tmp/_hMriARg4x:1␤  in block <unit> at /tmp/_hMriARg4x:1␤␤»
12:42 lizmat jaffa4: what did you expect ?
12:42 jaffa4 I do not know it could decide
12:42 lizmat two subs that don't expect any input arguments
12:42 lizmat MMD does not take return values into account (yet) afaik
12:43 jaffa4 so should it work?
12:43 lizmat jnthn may be able to elaborate on this later
12:44 moritz lizmat: and it never will, because it's not computable, in the general case
12:44 lizmat but in jaffa's example, it *could* intrespect
12:44 lizmat *ntro
12:44 lizmat at *that* callsite
12:45 lizmat but I guess this goes against composability
12:45 jaffa4 and what si that?
12:45 lizmat and going against composability is a big nono
12:45 lizmat e.g. S17:26
12:45 synopsebot Link: http://perlcabal.org/syn/S17.html#line_26
12:46 lizmat hmmm... seems the spec may need some elaboration about composability
12:46 lizmat http://en.wikipedia.org/wiki/Composability   # perhaps better
12:51 pmurias if I have a panda using project how do I run the tests?
12:52 * lizmat doesn't have a lot a experience with panda, so can't tell offhand
12:52 nine lizmat: it seems kina hard to find a good definition of composability on the net.
12:54 khisanth_ joined #perl6
12:57 [Sno] joined #perl6
12:57 pmurias so if I want to ran tests for panda or Inline::Perl5 what should I do?
12:57 FROGGS lizmat: two years ago jnthn said that it will never take the return type and the LHS into account
12:58 FROGGS pmurias: PERL6LIB=lib prove -e perl6 t
12:58 moritz pmurias: I know that 'panda install .' will run the tests, but it also installs
12:58 moritz FROGGS: that won't build the C parts
12:58 FROGGS hmmm
12:58 kaare_ joined #perl6
12:58 pmurias FROGGS: and that sucks a lot as it will compile the module again and again for every test
12:59 FROGGS arn't there panda-build and panda-test binaries?
12:59 FROGGS well, scripts
13:08 cognome joined #perl6
13:09 rindolf Hi all.
13:09 rindolf Happy Shalom Saturday! Sup?
13:11 nine Damn Perl5!
13:11 nine It seems like you cannot have two references blessed into two different packages pointing to the same hash.
13:12 vendethiel o/
13:14 moritz nine: it's not the reference that's blessed, it's the actual thing
13:14 moritz nine: it's just that blessing and method calls only work through references
13:16 nine The docs always talk about "blessed references" which is highly misleading.
13:17 moritz I know
13:17 moritz it's really "reference to blesed <thingy>"
13:18 * diakopter learned something
13:18 diakopter [again?]
13:19 lizmat as long as it's not the same thing you keep learning again, that's ok  :-)
13:21 colomon joined #perl6
13:25 mberends joined #perl6
13:28 pmurias perl6 -Ilib blib bin/panda - should use the precompiled module from blib first (instead of the installed ones?)
13:28 xenoterracide_ joined #perl6
13:30 chenryn joined #perl6
13:30 FROGGS pmurias: you have to pass -Iblib, no?
13:31 vendethiel masak: oh, you're hiring p6 devs now :p?
13:32 pmurias FROGGS: I'm passing -Iblib, but it doesn't seem to work
13:33 moritz pmurias: I think panda spawns a new process, so it might not preserve -I options
13:33 moritz pmurias: you could set PERL6LIB though
13:36 pmurias ahh, bin/panda-build . doesn't use the panda from the current working directory
13:42 MikeFair joined #perl6
13:43 * pmurias has to quick a temper to deal with panda today, and goes back to nqp-js ;)
13:44 vendethiel yay :p
13:47 awwaiid m: sub postfix:<%> { $^a / 100 } ; 5%
13:47 camelia rakudo-moar 34cf7a: ( no output )
13:47 awwaiid m: sub postfix:<%> { $^a / 100 } ; say 5%
13:47 camelia rakudo-moar 34cf7a: OUTPUT«0.05␤»
13:47 awwaiid muahaha
13:48 FROGGS m: sub postfix:<%> { $^a / 100 } ; say 5%; say 5 % 2 # that is what I think is awesome :o)
13:48 camelia rakudo-moar 34cf7a: OUTPUT«0.05␤1␤»
13:48 FROGGS m: say 5 +% 2
13:48 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ChNtdBh_Tqâ�¤Two terms in a rowâ�¤at /tmp/ChNtdBh_Tq:1â�¤------> [32msay 5 +% [33mâ��[31m2[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤  â€¦Â»
13:48 FROGGS I guess... ~% does not make much sense, does it?
13:48 awwaiid ~% ?
13:49 FROGGS "foofoofoobar" ~% "foo" # "bar"
13:49 FROGGS *g*
13:49 awwaiid yeah, being able to parse 5% vs 5 % 2 is nice, but it still annoys me that it depends on whitespace to do it
13:49 awwaiid is that like string-mod?
13:50 FROGGS awwaiid: I am very pedantic when it comes to code formatting anyway, so it is fine for me
13:50 awwaiid I forgot what ~ meant for a minute :)
13:50 FROGGS awwaiid: yes :o)
13:50 awwaiid m: sub postfix:<%> { $^a / 100 } ; my $x = 5 ; say $x%
13:50 camelia rakudo-moar 34cf7a: OUTPUT«0.05␤»
13:50 telex joined #perl6
13:50 awwaiid that's where it starts being funny. But I guess I might do ($x)% to make it clear
13:51 brrt joined #perl6
13:51 nine YES!
13:52 nine Subclassing Moose classes seems to work for real now. Now I just have to clean it this up.
13:52 awwaiid oh interesting -- so before I define percentage, I can do 5%3 (no space). But after I must add the space to disambiguate. Smart.
13:52 vendethiel wow, nice, nine
13:55 Juerd joined #perl6
13:55 Maddingue joined #perl6
13:55 tokuhirom joined #perl6
13:55 danaj joined #perl6
13:55 charsbar__ joined #perl6
13:55 yakudza joined #perl6
13:55 flussence joined #perl6
13:55 dj_goku joined #perl6
13:55 dj_goku joined #perl6
13:55 sivoais joined #perl6
13:55 ashleydev joined #perl6
13:56 daxim_ joined #perl6
13:56 avuserow_ joined #perl6
13:56 u-ou joined #perl6
13:56 Pleiades` joined #perl6
13:56 hoelzro_ joined #perl6
13:57 dalek zavolaj/cglobal: ed66509 | (Tobias Leich)++ | t/09-nativecast.t:
13:57 dalek zavolaj/cglobal: remove test about old pointer->pointer cast
13:57 dalek zavolaj/cglobal: review: https://github.com/jnthn/zavolaj/commit/ed66509c1a
13:57 Guest49793 left #perl6
13:57 dylanwh joined #perl6
13:58 simcop2387 joined #perl6
14:00 awwaiid sub prefix:<\$>($n) { say "$n dollars" } ; \$5
14:00 awwaiid m: sub prefix:<\$>($n) { say "$n dollars" } ; \$5
14:00 camelia rakudo-moar 34cf7a: OUTPUT«5 dollars␤»
14:01 no-doz joined #perl6
14:01 awwaiid oh better than that
14:01 awwaiid m: sub prefix:<$$>($n) { say "$n dollars" } ; my $x = 5 ; $$$x
14:02 camelia rakudo-moar 34cf7a: OUTPUT«5 dollars␤»
14:08 Ven joined #perl6
14:11 dalek Inline-Perl5: c8424ae | nine++ | / (3 files):
14:11 dalek Inline-Perl5: Allow subclassed P5 objects to access their own data (fixes Moose test).
14:11 dalek Inline-Perl5:
14:11 dalek Inline-Perl5: A P5 object passed back from P6 is again wrapped to allow subclassing and
14:11 dalek Inline-Perl5: dispatching method calls from P5 to P6. But the wrapped object was a
14:11 dalek Inline-Perl5: completely new scalar and the original object was hidden from P5 methods.
14:11 dalek Inline-Perl5:
14:11 dalek Inline-Perl5: Re-bless the original P5 object instead. This allows its methods to access
14:11 dalek Inline-Perl5: the object's data while still allowing the P6 class to overwrite methods.
14:11 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/c8424ae9cf
14:11 dalek Inline-Perl5: 059ed42 | nine++ | / (3 files):
14:11 dalek Inline-Perl5: Re-bless P5 object only once to Perl6::Object
14:11 dalek Inline-Perl5:
14:11 dalek Inline-Perl5: No need to bless it every time we pass it back to P5. Just do it once in the
14:11 dalek Inline-Perl5: constructor of the subclass like we would do it in plain normal P5 code.
14:11 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/059ed42a3d
14:11 timotimo mhhh
14:22 kjs_ joined #perl6
14:26 ChoHag joined #perl6
14:26 awwaiid joined #perl6
14:26 colomon joined #perl6
14:26 jtpalmer joined #perl6
14:26 khisanth_ joined #perl6
14:26 ClarusCogitatio joined #perl6
14:26 pmurias joined #perl6
14:26 [Sno] joined #perl6
14:26 rindolf joined #perl6
14:26 bjz joined #perl6
14:26 fling joined #perl6
14:26 woolfy joined #perl6
14:27 slavik joined #perl6
14:27 moritz star-m: say 42
14:27 camelia star-m 2014.08: OUTPUT«42␤»
14:27 Alina-malina joined #perl6
14:27 MikeFair joined #perl6
14:27 timotimo yay!
14:28 awwaiid what is star-m?
14:28 moritz star with MoarVM backend
14:28 yakudza joined #perl6
14:28 mberends joined #perl6
14:28 moritz star: say 42
14:28 camelia star-{m,p} 2014.08: OUTPUT«42␤»
14:28 awwaiid what is m, just Rakudo with no star?
14:29 moritz correct
14:29 awwaiid cool
14:29 moritz (and you can use 'sm' and 'sp' instead of 'star-m' and 'star-p'; bad jokes welcome!)
14:29 moritz s: say 42
14:29 moritz dunno if that's wired up
14:30 moritz seems not
14:31 mr-foobar joined #perl6
14:39 carlin IO::Socket::Async has the same segfault send()ing after close() that IO::Socket::INET had
14:41 panchiniak joined #perl6
14:42 Sqirrel joined #perl6
14:42 moritz for that one, I don't know how to fix it correctly
14:43 moritz I wonder if IO::Socket::INET should use the same connect/listen splitup instead of .new
14:44 lizmat is there a way in Perl 6 to find out whether rakudo was started with --ll-exception ?
14:48 BenGoldberg joined #perl6
14:50 panchiniak left #perl6
14:52 virtualsue joined #perl6
14:52 nine moritz: I'd like to put the BUILD and fallback from t/inherit.t into a parametric role like this: https://gist.github.com/niner/82d8ec90363f6dc2b7f3  But I cannot get rid of the "Bar" there. Do you have an idea how to write that?
14:56 xfix joined #perl6
14:58 moritz nine: ::?CLASS or something exists
14:58 lizmat joined #perl6
14:58 moritz nine: yes, ::?CLASS, try that
14:59 moritz and I'd call it Perl5Parent
14:59 moritz (the role, that is)
15:00 cognome joined #perl6
15:01 nine moritz: No such method 'dispatch:<.^>' for invocant of type 'Bar'
15:01 itz is there a Storable equivalent yet? or is it just EVAL stuff?
15:01 nine Maybe because Bar does not yet exist when the parametric role is instantiated?
15:02 lizmat itz: I'm hoping someone will make an interface for Sereal
15:03 moritz nine: that's likely the problem, yes
15:03 moritz nine: it's probably time we implement a proper fallback mechanism, not the .^add_fallback hack
15:05 nine Would make things easier, yes.
15:10 exixt joined #perl6
15:11 lizmat_ joined #perl6
15:11 moritz TimToady: I'm trying to understand the CANDOM mechansim
15:11 moritz TimToady: and I don't understand the examples for declaring methods or submethods
15:11 moritz multi method CANDO ($self: Code, $name, *%args)
15:11 moritz multi submethod CANDO ($self: Item, $name, *%args)
15:12 moritz I thought the type argument should be of the returned object
15:12 moritz so IMHO it should be
15:12 moritz multi method CANDO($self: Method, $name, *%args)
15:12 moritz multi method CANDO($self: Submethod, $name, *%args)
15:13 moritz nope, can't work either
15:13 moritz the caller can't know if a method or a submethod is returned
15:13 moritz but returning an Item (not that it would exist otherwise the current spec) can't work when a Method is expected
15:17 moritz rather
15:17 moritz multi method CANDO(Methd, $name, *%args)
15:17 moritz or
15:17 moritz multi submethod CANDO(Methd, $name, *%args) # if it's not to be inherited
15:19 * lizmat_ finally figured out why panda fails when precomping modules with @*INC being lazy
15:20 lizmat it only happens if the file being precomped has a "use" statement in it
15:23 xenoterracide_ joined #perl6
15:24 nine Works now! class Bar does Inline::Perl5::Perl5Parent['Foo'] { method bar { return "Perl6!"; } }
15:24 MikeFair joined #perl6
15:25 dalek Inline-Perl5: ea07fd0 | nine++ | / (2 files):
15:25 dalek Inline-Perl5: Move code for subclassing P5 classes to a role
15:25 dalek Inline-Perl5:
15:25 dalek Inline-Perl5: Use it like:
15:25 dalek Inline-Perl5: class Bar does Inline::Perl5::Perl5Parent['Foo'] { ... }
15:25 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/ea07fd0fff
15:25 moritz nine++ !
15:25 nine moritz: does my solution look somewhat sane?
15:26 moritz nine: $!parent = $perl5.invoke('Foo', 'new');
15:26 moritz nine: should be $package instead of 'Foo'
15:29 MikeFair joined #perl6
15:29 dalek Inline-Perl5: 97921eb | nine++ | / (2 files):
15:29 dalek Inline-Perl5: Actually use the role's parameter as name of the P5 package
15:29 dalek Inline-Perl5:
15:29 dalek Inline-Perl5: Thanks to moritz++ for spotting this error.
15:29 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/97921ebbeb
15:29 moritz nine: I don't like adding .^add_fallback at BUILD time, it's mixing metaphers
15:30 nine moritz: is there another way?
15:30 moritz nine: I'm not sure yet, experimenting
15:30 moritz nine: but BUILD runs any time the class is instantiated
15:31 nine That's why I have the $fallback_added so the fallback only gets added once per class using the role.
15:31 moritz nine: is that per parametric role instance?
15:31 Khisanth joined #perl6
15:32 nine moritz: seems like. I tested it and it worked. But I've no idea if its coincidence or spec.
15:32 moritz nine: did you test it for two different classes in the same process?
15:32 nine Hence my question if it is sane :)
15:32 nine moritz: yes, that's why there's the Baz class in the tests
15:33 lizmat $ perl6 -e '"bar".IO.spurt("use Test"); my $c =t.new("bar"); $c.precomp'
15:33 lizmat ===SORRY!===
15:33 lizmat Missing serialize REPR function for REPR VMThread
15:33 lizmat jnthn:  ^^^ any suggestions ?
15:36 lizmat fwiw, this is with d05d411e968b3408420bbc7b02c1248f3dc005de applied
15:36 lizmat bringing down startup time to:
15:36 lizmat $ time perl6 -e1
15:36 lizmat real0m0.145s
15:36 moritz nine: ok, by avoiding .^, one can bring the add_fallback to the mainline of the role
15:37 moritz nine: ::?CLASS.HOW.add_fallback(::?CLASS, -> $, $ { True },
15:37 dolmen joined #perl6
15:37 moritz ... )
15:37 lizmat as opposed to now:
15:37 lizmat $ time perl6 -e1
15:37 lizmat real0m0.195s
15:38 lizmat so this would be a 0.05 second gain on startup
15:38 lizmat or about 25%
15:39 moritz nine: also I wonder if $.perl5 shouldn't be a parametric role argument too
15:39 moritz nine: because there's no need to store one per instance of the class
15:39 dalek Inline-Perl5: d52eb59 | nine++ | lib/Inline/Perl5.pm6:
15:39 dalek Inline-Perl5: Add the fallback of Perl5Parent classes at compile time.
15:39 dalek Inline-Perl5:
15:39 dalek Inline-Perl5: This gets rid of the $fallback_added workaround.
15:39 dalek Inline-Perl5: Thanks to moritz++ for suggesting!
15:39 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/d52eb59340
15:40 Ven joined #perl6
15:40 nine moritz: but $.perl5 is a runtime thing.
15:40 moritz nine: :(
15:40 nine It's something the user of the subclass has to provide, not the author.
15:40 * moritz wonders if roles can provide class attributes
15:40 nine But I don't have to store it anyway. I'm only using it in BUILD
15:42 BenGoldberg What if the user of the subclass wants to have a .perl5 which does something else, for some other purpose?
15:42 dalek Inline-Perl5: c7521f2 | moritz++ | lib/Inline/Perl5.pm6:
15:42 dalek Inline-Perl5: git rid of $!perl5 attribute, nine++
15:42 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/c7521f2490
15:42 moritz BenGoldberg: it would be friendlier to calls it PERL5, because all-caps names are reserved
15:43 nine I'm more worried about $.parent. Now _that_ is a common name...
15:44 dalek Inline-Perl5: f3e846f | nine++ | lib/Inline/Perl5.pm6:
15:44 dalek Inline-Perl5: No need to make $.parent rw.
15:44 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/f3e846ff19
15:45 nine moritz: what do you think about https://github.com/niner/Inline-Perl5/issues/4 ?
15:46 Px12 joined #perl6
15:51 moritz nine: I'm torn
15:51 moritz nine: it's cute, but I think in some places is too cute, and something we might regret later on
15:51 moritz in particular
15:51 moritz p5 :print('hello world\n');
15:51 moritz that seems wrong
15:53 moritz the sugar for run might OK
15:54 grondilu m: say $++ xx 3
15:54 camelia rakudo-moar 34cf7a: OUTPUT«0 1 2␤»
15:54 grondilu m: say ($ = 0)++ xx 3
15:54 camelia rakudo-moar 34cf7a: OUTPUT«0 0 0␤»
15:54 grondilu m: say (state$ = 0)++ xx 3
15:54 camelia rakudo-moar 34cf7a: OUTPUT«0 1 2␤»
15:58 BenGoldberg m: say (state $ )++ xx 3
15:58 camelia rakudo-moar 34cf7a: OUTPUT«0 1 2␤»
15:59 moritz nine: all in all I'd rather have a different method for providing sugar than making the object invocable
15:59 guru joined #perl6
15:59 moritz it's hard to say exactly why, but I fear it's too much magic, and falls into the "you think this is cute today" category
16:00 moritz nine: but, one could always define (and export) a p5 helper function that provides the sugar, and keeps an Inline::Perl5 object in a state variable
16:00 moritz nine: or something like that
16:00 cognome joined #perl6
16:01 mst joined #perl6
16:01 moritz I'm going to comment in the ticket
16:02 BenGoldberg Provide a way for the user to declare that a specifi method is a perl5 method, using similar syntax to how NativeCall does it for C functions.
16:03 timotimo hm. how long do our function/method names get?
16:03 timotimo m: eval "sub f{"o" x 1000} () { }"
16:03 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Aj9xF9vv8Hâ�¤Undeclared routine:â�¤    eval used at line 1â�¤â�¤Â»
16:03 timotimo m: EVAL "sub f{"o" x 1000} () { }"
16:03 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling EVAL_0â�¤Missing blockâ�¤at EVAL_0:1â�¤------> [32moooooooooooooooooooooooooooooooooooo () [33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        pref…»
16:03 pmurias nine: t/p6_object_destructor.t hangs here
16:03 timotimo m: EVAL "sub f{"o" x 1000} { }"
16:03 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling EVAL_0â�¤Missing blockâ�¤at EVAL_0:1â�¤------> [32mooooooooooooooooooooooooooooooooooooooo [33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        pref…»
16:03 timotimo m: EVAL "sub f{"o" x 100} { }"
16:03 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling EVAL_0â�¤Missing blockâ�¤at EVAL_0:1â�¤------> [32mooooooooooooooooooooooooooooooooooooooo [33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        pref…»
16:04 timotimo m: EVAL "sub f{"o" x 10} { }"
16:04 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling EVAL_0â�¤Missing blockâ�¤at EVAL_0:1â�¤------> [32msub foooooooooo [33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤    â€¦Â»
16:04 timotimo oh derp
16:04 timotimo m: EVAL "sub f{"o" x 10} \{ \}"
16:04 camelia rakudo-moar 34cf7a: ( no output )
16:04 timotimo m: EVAL "sub f{"o" x 10000} \{ \}"
16:04 camelia rakudo-moar 34cf7a: ( no output )
16:04 timotimo m: EVAL "sub f{"o" x 10000000} \{ \}"
16:04 camelia rakudo-moar 34cf7a: ( no output )
16:04 BenGoldberg m: EVAL "sub f{"o" x 10000} \{ \}"; say 'alive';
16:04 camelia rakudo-moar 34cf7a: OUTPUT«alive␤»
16:04 BenGoldberg std: EVAL "sub f{"o" x 10000} \{ \}"; say 'alive';
16:04 camelia std 53b3ca6: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of curly brackets; in Perl 6 please use square brackets at /tmp/j85PMSfqeL line 1:�------> [32mEVAL "sub f{"o" x 10000} \{[33m�[31m \}"; say 'alive';[0m�Parse failed�FAILED 00:01 123m�»
16:05 timotimo .. huh?
16:05 pmurias nine: shouldn't Inline::Perl5 be exposed by EVAL?
16:05 BenGoldberg std: EVAL "sub f{"o" x 1} \{ \}"; say 'alive';
16:05 camelia std 53b3ca6: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of curly brackets; in Perl 6 please use square brackets at /tmp/agAFtEIIhT line 1:�------> [32mEVAL "sub f{"o" x 1} \{[33m�[31m \}"; say 'alive';[0m�Parse failed�FAILED 00:01 123m�»
16:05 * BenGoldberg shrugs.
16:06 timotimo nine: when we allow Inline::Perl5 to become a bit more tied to rakudo internals (maybe through an optional piece of code), we could allow use DBIx::Class:from<Perl5Inline> or something like that :)
16:06 SamuraiJack joined #perl6
16:08 dalek Inline-Perl5: ee8bdfd | moritz++ | lib/Inline/Perl5.pm6:
16:08 dalek Inline-Perl5: save some method calls in DESTROY
16:08 dalek Inline-Perl5:
16:08 dalek Inline-Perl5: how did it even work, assigning to non-rw attributes?
16:08 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/ee8bdfdc08
16:08 timotimo 100_000_000 os makes rakudo swap quite a bit ...
16:08 timotimo wow.
16:09 timotimo after about a minute of TIME+ in htop it actually executes the sub
16:09 dalek Inline-Perl5: 052e0cf | nine++ | / (2 files):
16:09 dalek Inline-Perl5: Add use method
16:09 dalek Inline-Perl5:
16:09 dalek Inline-Perl5: Now the user doesn't have to run() a block just to load a P5 module.
16:09 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/052e0cf243
16:09 timotimo ~4.5gb of ram with the 100_000_001 chars long sub name
16:10 nine moritz: thanks for fixing my beginner mistakes
16:10 nine pmurias: you need a very very fresh rakudo for t/p6_object_destructor.t since it's testing the DESTROY support that jnthn++ only recently added.
16:12 nine moritz: I'd much rather remove reasons for the user to use run() like with the new use() method than sugaring over it.
16:13 nine pmurias: what do you mean by "exposed by EVAL"?
16:16 pmurias perl6: EVAL :lang<perl5>, 'say "hi"';
16:16 pmurias perl6: EVAL :lang<perl6>, 'say "hi"';
16:16 camelia rakudo-moar 34cf7a: OUTPUT«No compiler available for language 'perl5'␤  in sub EVAL at src/gen/m-CORE.setting:777␤  in block <unit> at /tmp/tmpfile:1␤␤»
16:16 camelia ..rakudo-parrot 34cf7a: OUTPUT«No compiler available for language 'perl5'␤  in sub EVAL at gen/parrot/CORE.setting:779␤  in sub EVAL at gen/parrot/CORE.setting:774␤  in block <unit> at /tmp/tmpfile:1␤␤»
16:16 camelia ..rakudo-jvm 34cf7a: OUTPUT«No compiler available for language 'perl5'␤  in sub EVAL at gen/jvm/CORE.setting:759␤  in block <unit> at /tmp/tmpfile:1␤␤»
16:16 camelia ..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: System.IO.FileNotFoundException: Could not load file or assembly 'Perl5Interpreter' or one of its dependencies. The system cannot find the file specified.␤File name: 'Perl5Interpreter'␤  at System.AppDomain.Load (System.String…»
16:16 camelia rakudo-{parrot,jvm,moar} 34cf7a, niecza v24-109-g48a8de3: OUTPUT«hi␤»
16:17 moritz m: say nqp::compreg('perl6').cli-arguments.perl
16:17 camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!===␤No registered operation handler for 'compreg'␤»
16:17 ClarusCogitatio joined #perl6
16:17 moritz m: say nqp::getcomp('perl6').cli-arguments.perl
16:17 camelia rakudo-moar 34cf7a: OUTPUT«Cannot find method 'perl': no method cache and no .^find_method␤  in method perl at src/gen/m-CORE.setting:7623␤  in block <unit> at /tmp/MY24x4xpqb:1␤␤»
16:18 denis_boyun joined #perl6
16:18 moritz m: say nqp::join(', ', nqp::getcomp('perl6').cli-arguments)
16:18 camelia rakudo-moar 34cf7a: OUTPUT«This type does not support elems␤  in block <unit> at /tmp/iKrKfMoE0r:1␤␤»
16:18 moritz lizmat: ^^ something like that should work for getting all command line arguments, including those passed to the compiler (for finding out about --ll-exception)
16:19 moritz lizmat: I just don't know how to marshall the low-level list to p6
16:20 moritz m: say nqp::hllizefor(nqp::getcom​p('perl6').cli-arguments, 'perl6').perl
16:20 camelia rakudo-moar 34cf7a: OUTPUT«Cannot find method 'perl': no method cache and no .^find_method␤  in method perl at src/gen/m-CORE.setting:7623␤  in block <unit> at /tmp/mdaexmzvZV:1␤␤»
16:20 moritz m: say nqp::hllizefor(nqp::getcom​p('perl6').cli-arguments, 'perl6').^name
16:20 camelia rakudo-moar 34cf7a: OUTPUT«Parcel␤»
16:20 diakopter *CRY*
16:20 moritz m: my @a = nqp::hllizefor(nqp::getcom​p('perl6').cli-arguments, 'perl6')
16:20 camelia rakudo-moar 34cf7a: ( no output )
16:20 moritz m: my @a = nqp::hllizefor(nqp::getcom​p('perl6').cli-arguments, 'perl6'); say @a.perl
16:20 camelia rakudo-moar 34cf7a: OUTPUT«Cannot find method 'perl': no method cache and no .^find_method␤  in method perl at src/gen/m-CORE.setting:9386␤  in block <unit> at /tmp/6BPnV2OrAz:1␤␤»
16:21 moritz oh, it's probably an element of that array that's the problem
16:21 moritz m: for nqp::hllizefor(nqp::getcom​p('perl6').cli-arguments, 'perl6') -> str $x { say $x }
16:21 camelia rakudo-moar 34cf7a: OUTPUT«/tmp/6xIZsRDX0u␤»
16:22 pmurias rakudo's EVAL should be fixed as it expects very specific thing from .compile
16:26 moritz public service announcement: host07 is being retired in favor of host08.perl6.com. Folks with an account on host07 should now be able to log in to host08, and the homes have been rsync'ed over
16:26 moritz please everybody migrate your stuff (like services), complain about wrong permissions, missing software etc.
16:27 diakopter moritz++++
16:29 moritz [Coke], colomon, jnthn, hoelzro_, ingy, leont, timotimo: ^^
16:39 abraxxa joined #perl6
16:39 masak moritz++
16:39 abraxxa nine: any news on DBIish::Oracle?
16:41 nine abraxxa: haven't heard from you about the outcome of replacing those CArray params
16:42 abraxxa nine: with what?
16:45 abraxxa so the error comes when i pass 0 as the fourth argument
16:46 hoelzro moritz: thanks for the notice
16:47 moritz hoelzro: please check if your login works on host08, and if the permissions of files in your home dir are correct
16:47 abraxxa nine: Connect failed with error OCIEnvNlsCreate failed with errcode = -1
16:47 zakharyas joined #perl6
16:48 abraxxa nine: when i pass OpaquePointers instead of 0s
16:48 moritz abraxxa: sounds like progress (no error from nativecall anymore)
16:48 abraxxa moritz: yes
16:48 hoelzro moritz: I won't be able to check right now, but I can check tomorrow night
16:48 hoelzro I wasn't a big user of host07 =)
16:49 dalek Inline-Perl5/is_p5_function_trait: f5d565c | nine++ | / (2 files):
16:49 dalek Inline-Perl5/is_p5_function_trait: Implement a trait for declaring functions as Perl 5 subs
16:49 dalek Inline-Perl5/is_p5_function_trait:
16:49 dalek Inline-Perl5/is_p5_function_trait: This allows using Perl 5 subs as if they were normal Perl 6 ones.
16:49 dalek Inline-Perl5/is_p5_function_trait: review: https://github.com/niner/Inl​ine-Perl5/commit/f5d565c236
16:49 nine moritz: what do you think about this? ^^^
16:50 japhb_ (startup time optimizers)++  # Even from NFS, the perl6 REPL snaps ready before I take my finger off the enter key
16:50 abraxxa time to implement OCIErrorGet
16:50 nine abraxxa: ok, passing OpaquePointer instead of a literal 0 seems to be better anyway as it's the way to say NULL in Perl 6. In C 0 == NULL
16:51 abraxxa nine: thanks, i was missing this bit of information
16:51 abraxxa but i think i had it that way in the beginning
16:51 moritz nine: nice, but dangerous
16:52 moritz nine: the Perl5::Inline object needs to be available at compile time; dunno how well that will work for precompiled modules
16:52 moritz s/for/in/
16:52 cognome joined #perl6
16:54 nine moritz: everything would be simpler if Inline::Perl5 was a singleton created at compile time. But right now using multiple independent Perl 5 interpreters works and I'd rather not give it up too quickly.
16:54 abraxxa if something is a pointer to some datatype like sb4        *errcodep, i still need to only use OpaquePointer, right?
16:54 nine abraxxa: yes
16:54 abraxxa nine: thanks
16:54 moritz nine: maybe we could have default, singlton p5 interpreter, and the ability to specify others on deman
16:54 dalek Inline-Perl5: 4f2bc16 | nine++ | README.md:
16:54 dalek Inline-Perl5: Update README to reflect latest development
16:54 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/4f2bc1658d
16:57 moritz nine: though my brain currently feels like a mushroom, so don't trust anything I say right now
16:58 diakopter fungusbrain++
17:01 * moritz has fun debugging niecza build failures
17:02 moritz I guess I should read the REAMDE, or something
17:02 gfldex joined #perl6
17:02 moritz NIECZA_KEEP_IL=1 mono boot/run/Niecza.exe --obj-dir=run -C CORE
17:02 moritz no object of size 1694526976
17:02 moritz and then a C# backtrace
17:02 japhb .oO( NO!  Don't do that!  You might *LEARN SOMETHING*.  And then where would you be?  You know, besides "less frustrated".... )
17:03 japhb moritz: ISTR Niecza occasionally required changes for newer mono releases.  But that's kindof a vague memory at this point.  :-/
17:04 abraxxa nine: i'd suggest naming the instance variable $p5
17:04 xragnar joined #perl6
17:07 liztormato joined #perl6
17:08 liztormato nine: Perhaps a $*PERL5 to contain the default, like $*SCHEDULER?
17:11 xragnar joined #perl6
17:13 abraxxa how do i dereference a pointer to a string?
17:15 timotimo http://libdrc.org/index.html - oooh fun
17:15 dalek Inline-Perl5: 5647464 | nine++ | README.md:
17:15 dalek Inline-Perl5: Document all currently supported features with examples in the README
17:15 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/564746416d
17:22 * rindolf was quieted on #perl today by mst no less.
17:22 rindolf Or s/no less/no more/
17:23 [Sno] joined #perl6
17:25 Guest36014 joined #perl6
17:26 molaf joined #perl6
17:30 Ben_Goldberg joined #perl6
17:30 Ben_Goldberg joined #perl6
17:31 abraxxa now my test segfaults
17:32 ivan`` joined #perl6
17:33 xragnar joined #perl6
17:37 xenoterracide_ joined #perl6
17:51 nine PerlJam: there, I documented some :) https://github.com/niner/Inline-Perl5
17:52 cognome joined #perl6
17:55 orafu joined #perl6
17:55 carlin hmm, Inline::Perl5 doesn't like threads
17:56 nine carlin: surprise :)
17:56 nine carlin: what did you try?
17:57 rindolf carlin: what is the origin of your nickname?
17:57 carlin nine: https://gist.github.com/ca​rbin/90fd2b2bda6f6ef4bae2
17:57 carlin rindolf: it's my name
17:58 vendethiel :p
17:58 vendethiel I love when that is the answer
17:59 liztormato left #perl6
18:00 tadzik :D
18:00 rindolf carlin: ah, there's also George Carlin who was an actor and a comedian.
18:02 SamuraiJack joined #perl6
18:10 dalek Inline-Perl5: 91eae37 | nine++ | p5helper.c:
18:10 dalek Inline-Perl5: Make Inline::Perl5 a bit more thread safe.
18:10 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/91eae37a7b
18:10 xragnar joined #perl6
18:11 nine carlin: as much as it scares me. With this fix your example works for me.
18:12 alexghacker joined #perl6
18:13 carlin nine++ # that was quick!
18:14 brrt joined #perl6
18:15 jaffa4 nine: star trek?
18:16 nine jaffa4: feels like :)
18:17 diakopter seven of
18:17 mberends deep space nine
18:17 nine If it were for that I'd probably be called five ;)
18:18 molaf_ joined #perl6
18:24 nebuchadnezzar joined #perl6
18:25 moritz seven of five? :-)
18:25 xfix left #perl6
18:33 brrt no, five of seven
18:33 brrt a.k.a hugh
18:34 abraxxa nine: do you how i can get a pointer to a string which i can access from Perl with NativeCall?
18:34 moritz https://twitter.com/freenodestaff freenode recommend that everybody change their passwords, since a server might have been compromised
18:35 xragnar joined #perl6
18:35 FROGGS lizmat: you got you answer about --ll-exception?
18:35 xenoterracide_ joined #perl6
18:36 FROGGS m: say %*COMPILING<%?OPTIONS>
18:36 camelia rakudo-moar 34cf7a: OUTPUT«"encoding" => "utf8", "setting" => "RESTRICTED", "transcode" => "ascii iso-8859-1"␤»
18:36 zakharyas1 joined #perl6
18:36 moritz I can't compile std.pm6 on perl 5.18.2
18:37 moritz Compiled ./Cursor.pm6
18:37 moritz ===SORRY!===
18:37 moritz Preceding context expects a term, but found infix = instead at STD.pm6 line 2787:
18:37 moritz ------>                 $*CURLEX.<$?SIGNATURE> ~⏏= '(' ~ substr(self.orig, $startpos, $¢.
18:37 moritz Parse failed
18:37 moritz (plus I get lots of deprecation warnings)
18:37 FROGGS that sounds "fun" to debug :/
18:42 moritz well, fuck. No niecza and no std on host08
18:42 Alina-malina joined #perl6
18:47 diakopter why no std
18:48 moritz diakopter: https://github.com/perl6/std/issues/8
18:48 Ven joined #perl6
18:50 alexghacker joined #perl6
18:50 jepeway joined #perl6
18:52 cognome joined #perl6
18:54 Ven eh
18:54 Ven the LTM explanations in s05 are ... juicy, but a bit "too much:
18:55 moritz Ven: they are meant for compiler writers, not users :-)
18:55 Ven moritz: well, I'm pretty sure that's my only choice to try and explain it in the tutorial ;)
18:55 Ven I need to be torn apart between both worlds
18:56 xragnar joined #perl6
18:56 moritz Ven: well, for a tutorial, you don't need to go too much into the details
18:56 Ven right.
18:57 Ven But I still need a descriptive enough explanation of LTM :)
18:57 Ven and I need to know the really juicy bits to explain them
18:57 moritz Ven: also, http://perlgeek.de/en/arti​cle/longest-token-matching tries to explain it a bit more
18:57 gtodd joined #perl6
18:57 Ven i.e. for `"foo" \d+`, how "long" is that for p6?
18:58 moritz as many characters as it matches
18:58 Ven oh.
18:58 Ven so, basically, it tries all the alternatives before deciding, so long it can proves they don't have side-effects?
18:58 dalek rakudo-star-daily: eb2d658 | coke++ | log/ (14 files):
18:58 dalek rakudo-star-daily: today (automated commit)
18:58 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/eb2d6585c6
18:58 dalek perl6-roast-data: 36b1e8e | coke++ | / (5 files):
18:58 dalek perl6-roast-data: today (automated commit)
18:58 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/36b1e8eeda
18:59 Ven because, well, if they don't have side-effects, you can just retry them as many time as you want?
18:59 moritz Ven: more like, it tries all (declarative) alternatives at once
18:59 moritz in a single pass
19:00 moritz (though not with parallely executed right now, but with an NFA)
19:00 Ven it doesn't matter if they're tried at once or not
19:00 moritz right
19:00 raiph joined #perl6
19:01 jepeway howdy
19:01 Ven but am I right when I say it only tries the one that don't have (decidably) side effects?
19:01 Ven o/, jepeway
19:01 jepeway \o Ven
19:01 * jepeway has been puzzling on RT#122319 and seeks colloquoy w/ folk who care re: timezones
19:01 * synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122319
19:02 moritz Ven: did you see the link I just gave you?
19:02 Ven well yes
19:02 moritz Ven: the LTM only applies to the declarative prefix
19:02 jepeway s/uo/u/, dang it
19:02 Ven which basically sums up to "yes"
19:02 moritz Ven: so it's even more restrictive than "no side effect"
19:02 Ven recursion is undecidable :p
19:03 moritz [a || b] is declarative, but not part of the declarative prefix
19:03 Ven right
19:03 raiph .ask Ulti Were your 8-22 and 9-11 BioPerl profile reports for the exact same codebase?
19:03 yoleaux raiph: I'll pass your message to Ulti.
19:03 moritz s/declarative/free of side effects/
19:04 TimToady the a counts, but not the b
19:04 jepeway anybody 'round who has messed about with timezones in p6? (retupmoca, japhb, carlin, masak)
19:04 dalek zavolaj: 2cc378d | (Tobias Leich)++ | t/09-nativecast.t:
19:04 dalek zavolaj: remove test about old pointer->pointer cast
19:04 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/2cc378d133
19:05 dalek star: ace19de | (Tobias Leich)++ | modules/zavolaj:
19:05 dalek star: update zavolaj's revision
19:05 dalek star: review: https://github.com/rakudo/star/commit/ace19de641
19:06 MikeFair__ joined #perl6
19:06 Ven TimToady: in [a || b] ?
19:06 Ven I'll probably not explain as much tho
19:07 brrt is there a current blog aggegrator for perl6?
19:08 nwc10 brrt: http://pl6anet.org/
19:08 brrt yay
19:08 * moritz updates the article
19:09 PZt joined #perl6
19:10 bjz joined #perl6
19:10 brrt hmm.. i'm thinking of a problem that i'm pretty sure i can tackle in perl6 - making (numerical) models
19:10 brrt case in point: climate models
19:11 brrt currently we do that in excel
19:11 brrt excel is ok with regards to numerical, not so ok with regards to clarity and/or rigour
19:13 jepeway hrm.  guess not.
19:17 xragnar joined #perl6
19:18 Ven m: say 'a' ~~ / <[ a ' ' ]> /; # I still get biten by that.
19:18 camelia rakudo-moar 34cf7a: OUTPUT«Potential difficulties:â�¤    Repeated character (') unexpectedly found in character classâ�¤    at /tmp/65qLYFOTvq:1â�¤    ------> [32msay 'a' ~~ / <[33mâ��[31m[ a ' ' ]> /; # I still get biten by tha[0mâ�¤ï½¢aï½£â�¤â�¤Â»
19:19 TimToady precisely why we added the message :)
19:20 Ven Right :D.
19:20 TimToady bites much harder (or is it softer?) otherwise
19:22 Pleiades` joined #perl6
19:22 camelia joined #perl6
19:23 moritz m: say 'slooow'
19:24 Ven moritz: you broke camelia . congrats.
19:24 camelia rakudo-moar 34cf7a: OUTPUT«slooow␤»
19:25 moritz Ven: I don't know why, but the first execution on a new camelia instance always takes ages. Nothing new, I fear
19:26 moritz m: say 'fast now'
19:26 camelia rakudo-moar 34cf7a: OUTPUT«fast now␤»
19:26 Ven booting it up :p?
19:26 moritz there isn't much code that needs booting up :/
19:27 xragnar joined #perl6
19:27 Ven a camelia is long to wake up
19:27 cognome joined #perl6
19:27 Ven we should have used an otter
19:27 Ven those don't oversleep
19:28 PerlJam nine++
19:29 moritz botterfly!
19:30 pmurias at least it's not a botfly
19:31 moritz j: say 42
19:31 camelia rakudo-jvm 34cf7a: OUTPUT«Error while reading '/home/p6eval_eval/p6eval-token': No such file or directory at /home/p6eval/jvm-rakudo/eval-client.pl line 10.␤»
19:31 colomon carlin++ # reading timotimo++'s summary of last week
19:32 moritz j: say 42
19:32 camelia rakudo-jvm 34cf7a: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
19:32 Ven Oo
19:33 * moritz hates hates hates the j evalserver
19:34 sqirrel_ joined #perl6
19:34 Ven moritz: looks like it hates us back :)
19:35 * Ven is still writing some regexes explanations thingies...
19:37 xragnar_ joined #perl6
19:39 dwarring joined #perl6
19:40 diakopter j: say 42
19:40 camelia rakudo-jvm 34cf7a: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
19:42 BooK joined #perl6
19:44 jepeway looks like RT#122319 and RT#122702 might be duplicates.
19:44 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122319
19:45 jepeway hey, does synopsebot just spot the first RT?
19:46 lizmat FROGGS: yes, that's the answer I looked for
19:46 xragnar joined #perl6
19:46 lizmat I tried to pass on --ll-exception in the call to Panda::Builder
19:46 moritz FROGGS++ # better answer than I gave
19:46 Ven jepeway: yep. though, it  got smarter very recently :)
19:46 FROGGS ahh
19:46 Ven ( moritz++ I believe)
19:46 lizmat but apparently it is already in a subprocess without it
19:47 FROGGS I usually just modify the source :o)
19:47 jepeway Ven: heh.
19:47 lizmat I wanted something more permanent  :-)
19:47 moritz maybe we should introduce an env variable like PERL5OPT
19:48 Ven there really are a lot to p6regexes
19:48 Ven I actually considered doing ANOTHER side-tutorial just for them :p.
19:49 moritz oh yes, it's a fascinating language
19:49 Ven you mean dialect.. err slang... err
19:50 * Ven wonders how he can shows readers the wonders of subsets :p
19:53 avuserow_ joined #perl6
19:56 xragnar joined #perl6
19:56 dalek rakudo/nom: 2ad5b8e | (Elizabeth Mattijsen)++ | src/core/CompUnit.pm:
19:56 dalek rakudo/nom: Pass on --ll-exception in precomping process
19:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2ad5b8e3e4
19:58 jepeway well, so...I'm thinking that timezones should be objects with an .Int method, per S32/Temporal, along with a .Str methods that (somehow) map to DST rules a la Olson/IANA
20:01 jepeway questions, though: do you delegate to the OS for the rules? do you bundle Olson with NQP?  do you hook to Olson via NativeCall?  or do you re-implement Olson in pure p6?
20:03 PerlJam jepeway: you don't do that last one without a good reason.
20:04 * dwarring looking at some of the advent tests that have been hanging/aborting on parrot over the last few days
20:05 dwarring https://github.com/coke/perl6-roast-data/blo​b/master/log/rakudo.parrot_summary.out#L3813
20:05 jepeway PerlJam: whyso? (asked non-confrontationally, mind you)
20:06 dwarring i've uses this technique for capturing $*OUT in a few places: https://gist.github.com/dwa​rring/12c1e32440a8aea43337
20:06 PerlJam jepeway: because it's not a wheel that's worth re-inventing /just/ so it can be in P6  (IMHO)
20:06 * moritz agrees 100% with PerlJam++
20:06 dwarring starting hanging on line: return $output.lines
20:07 dwarring over the last few days
20:07 dwarring just on parrot
20:07 moritz dwarring: could you bisect the commit that caused it?
20:10 jepeway make sense to me, certainly.
20:10 dwarring moritz: should I look at git bisect?
20:10 moritz dwarring: yes
20:10 * dwarring looks
20:10 * lizmat has done something with IO::Handle.lines in the past days
20:11 moritz dwarring: you can try 65db2a6df4ffb08e3eb1d5fc68563ce2dc6c455e - it should be a good commit (but please verify first)
20:14 dwarring I guess I can bisect integration/advent2009-day07.t - this is one of the failing tests
20:15 jepeway so, better to have nqp do the integrating? or better via zavolaj (that's native call, right?)
20:20 denis_boyun_ joined #perl6
20:20 PerlJam jepeway: I imagine that using NativeCall would be sufficient.  (at least until we run on a non-POSIX system)
20:22 PerlJam jepeway: or ... if you want to bundle it as part of the setting, that could tip the balance away from NativeCall.
20:22 PerlJam (but I don't really see a *need* to include the Olson database as part of the setting  :)
20:23 jepeway PerlJam: quick explanation of "setting", please?
20:24 djanatyn joined #perl6
20:24 PerlJam jepeway: the "built-in" things that Rakudo provides to programmars
20:24 * jepeway understood setting to be p6 code and so thought NativeCall would be needed even there
20:28 jepeway setting == code in src/core ?
20:30 lizmat yes, as concatenated in src/gen/m-CORE.setting for compilation when building Rakudo on Moar
20:31 TimToady abstractly, the setting is a lexical scope outside of your main program
20:32 TimToady m: say UNIT::OUTER === SETTING
20:32 camelia rakudo-moar 34cf7a: OUTPUT«False␤»
20:32 TimToady hmm
20:32 TimToady n: say UNIT::OUTER === SETTING
20:32 camelia niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
20:33 jepeway m: say SETTING.WHAT
20:33 TimToady m: say UNIT::OUTER::OUTER === SETTING
20:33 camelia rakudo-moar 34cf7a: OUTPUT«(UNIT)␤»
20:33 camelia rakudo-moar 34cf7a: OUTPUT«False␤»
20:34 TimToady m: say UNIT::OUTER === CORE
20:34 camelia rakudo-moar 34cf7a: OUTPUT«False␤»
20:34 TimToady well, something not right there
20:35 TimToady m: say SETTING === CORE
20:35 camelia rakudo-moar 34cf7a: OUTPUT«False␤»
20:35 dalek rakudo/nom: 21a2a4e | (Elizabeth Mattijsen)++ | src/core/Thread.pm:
20:35 dalek rakudo/nom: Lazily initialize $*THREAD
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/21a2a4eda0
20:35 * lizmat takes an early night
20:36 TimToady m: say OUTER
20:36 camelia rakudo-moar 34cf7a: OUTPUT«(OUTER)␤»
20:36 Ven joined #perl6
20:36 TimToady m: say SETTING:: === CORE::
20:36 camelia rakudo-moar 34cf7a: OUTPUT«False␤»
20:37 lizmat m: say CORE::.keys ~~ SETTING::.keys
20:37 camelia rakudo-moar 34cf7a: OUTPUT«False␤»
20:37 lizmat $ perl6 -e 'say CORE::.keys ~~ SETTING::.keys'
20:37 lizmat True
20:37 TimToady probably in restricted setting
20:37 lizmat huh?
20:37 lizmat ah, yes
20:37 TimToady so I wouldn't expect CORE === SETTING
20:38 lizmat indeed
20:38 lizmat sleep&
20:38 * PerlJam forgot that he could have done S99:setting
20:38 * synopsebot Link: http://perlcabal.org/syn/S99.html#setting
20:39 * PerlJam wanders off to get some food
20:41 vendethiel m: ping?
20:41 camelia rakudo-moar 34cf7a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Fou1TPgtD8â�¤Two terms in a rowâ�¤at /tmp/Fou1TPgtD8:1â�¤------> [32mping[33mâ��[31m?[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤        infix…»
20:46 jepeway good eats, PerlJam
20:50 jepeway so, I s'pose I should start out with a TimeZone module based off Olson reached via NativeCall, then.
20:52 xenoterracide_ joined #perl6
20:54 jepeway and should the tests for S32:temporal that muck about with DST-ness move elsewhere as 'not really spec'ed, yet?'
20:55 vendethiel let's not go down the "implement everything in C" path :(
20:55 BenGoldberg Or you could use Inline::Perl5, and use DateTime::Timezone ;)
20:56 jepeway BenGoldberg: thought of that, but also thought TZ support was pretty basic and ought not require a p5 runtime for rakudo
20:57 jepeway vendethiel: PerlJam & moritz both seem to think poorly of a pure p6 implementation (see backscroll)
20:58 vendethiel I'm just saying :/
20:58 jepeway oh, understood.
20:58 BenGoldberg Or, you could use perlito to compile DateTime/Timezone.pm from perl5 to perl6 :)
20:58 vendethiel in every language I've seen go down that path (and I've seen several),it's always made it a mess to have multiple implems
20:59 jepeway bg: okay, now you're getting weird :)
20:59 vendethiel admittedly, these language have their API C-side.
20:59 jepeway ven: yeah, feels kinda parrot-y
20:59 timotimo sup
20:59 vendethiel jepeway: I've only been there for a few month, can't tell :p
20:59 vendethiel o/ timotimo
20:59 BenGoldberg Actually, compiling from perl5 to perl6 is not a bad solution... at least as a starting point.
21:00 timotimo what have i missed today?
21:00 vendethiel timotimo: you missed me. I know it
21:00 timotimo you are not a thing
21:01 timotimo you
21:01 timotimo are a person
21:01 BenGoldberg timotimo, Unrelated to perl6, you might have missed that one of freenode's servers may have been hacked; people are being advised to change their paswords.
21:01 vendethiel timotimo: I'm pretty sure "missing somebody" is a saying ;-)
21:01 timotimo oh
21:01 timotimo yes, but i asked "what have i missed"
21:02 timotimo thankfully i have a throw-away password for my freenode identify
21:02 timotimo so i don't have to change it in more than one place
21:03 BenGoldberg On a more On Topic subject, nine has gotten Inline::Perl5 working pretty well.
21:03 vendethiel ^
21:03 timotimo i looked into irc a few times over the day and i saw some nine++ commits every time :))
21:07 BenGoldberg So, what's your opinion on the following:  Given that there exists a perl5 implementation of timezones, what would be best for perl6: writing timezone handling from scratch, or using Inline::Perl5 to use the already written code, or using Perlito to compile the perl5 code to perl6?
21:09 BenGoldberg Actually, that question could apply to anything on CPAN :)
21:10 jepeway yes, it would.
21:11 timotimo from scratch
21:11 timotimo we shouldn't require people to install perl5
21:12 vendethiel ^
21:12 BenGoldberg Using perlito wouldn't require that the user install perl5, though; only the developer would.
21:13 jepeway I think p5's DateTime::TimeZone changes whenever a tz rule changes, so a one time translation wouldn't work well...and I bet adding perlito as a build depenedency might be no fun.
21:13 jepeway doable, though, surely.
21:15 jepeway timotimo: why from scratch (asked neutrally)?  moritz & PerlJam don't seem to dig a from scratch impl (see backscroll).
21:16 * jepeway off to noms
21:17 cognome joined #perl6
21:36 silug_ joined #perl6
21:36 gtodd1 joined #perl6
21:36 baest joined #perl6
21:37 noganex_ joined #perl6
21:38 ashleyde1 joined #perl6
21:38 alexghacker1 joined #perl6
21:38 jepeway_ joined #perl6
21:38 daxim__ joined #perl6
21:38 FROGGS_ joined #perl6
21:39 abraxxa1 joined #perl6
21:40 colomon joined #perl6
21:41 [Coke] moritz: host08 is missing javac.
21:44 [Coke] host08++ is a beefier box
21:45 Woodi joined #perl6
21:48 [Coke] moritz: installing...
21:51 dolmen joined #perl6
21:52 cognome joined #perl6
21:54 abraxxa1 OCI (Oracle Call Interface) relies heavily on returning values from functions by reference and it seems NativeCall can't handle that
22:04 telex joined #perl6
22:11 zoosha_ joined #perl6
22:11 jepeway joined #perl6
22:11 jtpalmer_ joined #perl6
22:11 hoelzro_ joined #perl6
22:11 jercos_ joined #perl6
22:11 betterworld joined #perl6
22:12 telex joined #perl6
22:15 Alina-malina joined #perl6
22:16 Woodi joined #perl6
22:17 virtualsue_ joined #perl6
22:18 japhb joined #perl6
22:18 noganex joined #perl6
22:19 ivanshmakov joined #perl6
22:20 vike1 joined #perl6
22:20 charsbar___ joined #perl6
22:21 esaym joined #perl6
22:22 xinming_ joined #perl6
22:22 ChoHag_ joined #perl6
22:25 ClarusCogitatio_ joined #perl6
22:25 eternaleye_ joined #perl6
22:25 davido__ joined #perl6
22:28 yakudza joined #perl6
22:29 bloonix joined #perl6
22:33 jepeway timotimo: so why a from scratch p6 implementation of Olson? as opposed to NativeCall to Olson or so?
22:35 timotimo jepeway: i didn't give it much thought actually :(
22:35 timotimo i don't know why something so basic shouldn't be ported completely
22:35 timotimo to become a native perl6 module
22:36 jepeway ah.
22:36 jepeway something along that line of reasoning lead me to think it perhaps belongs at the NQP level.
22:37 [Sno] joined #perl6
22:37 jepeway the "something so basic" line, I mean.
22:38 timotimo oh?
22:39 timotimo i would say it can be perl6 code, but utilise nqp functions and be micro-optimized
22:40 jepeway was thinking, eg, that a shim between how OS thinks of timezones and what p6 will think of them would benefit from all the knowledge nqp has of the OS.
22:41 aindilis joined #perl6
22:42 jepeway and so tz would be an nqp thing.  but I bet that just means I don't really understand what does/doesn't belong in nqp.
22:43 timotimo that may be the case
22:43 labster_ joined #perl6
22:43 timotimo did you look at what parts of rakudo are nqp and which are perl6?
22:44 jepeway nope, haven't.
22:44 timotimo ah, ok
22:44 jepeway well, less an "nqp thing" and more "a p6 thing implemented with some tz-specific primitives."
22:44 timotimo right
22:46 timotimo getting objects from nqp-world into perl6-world is sometimes a bit of a hassle
22:46 timotimo for one, nqp obects don't redive from Mu o
22:46 timotimo derive* from Mu or Any
22:46 timotimo m: use Perl6::Compiler:from<NQP>; my $a = Perl6::Compiler.new();
22:46 camelia rakudo-moar 21a2a4: ( no output )
22:46 timotimo oh
22:46 timotimo well, seems like the :from<NQP> approach makes that stuff work properly
22:47 Maddingu1 joined #perl6
22:47 [Sno]_ joined #perl6
22:48 jepeway so, p6 -> nqp -> Olson?  or p6 -> nqp -> operating system?
22:49 spider-mario_ joined #perl6
22:49 timotimo er, i'm not sure what that's supposed to mean?
22:49 charsbar____ joined #perl6
22:49 betterwo1ld joined #perl6
22:49 simcop2387_ joined #perl6
22:50 timotimo the thing that makes it awesome, but a little trickier to understand is that both nqp and perl6 code use the same object model (6model) and bytecode
22:50 noganex_ joined #perl6
22:50 Brock joined #perl6
22:50 timotimo and when you see nqp::FOO that's not necessarily "something implemented in nqp code", but usually an almost direct mapping to a VM instruction
22:51 timotimo if you'd like to explore that topic some more, i can show you a few examples
22:51 jepeway cool, i'm all ears...er...eyes.
22:51 timotimo :)
22:52 gfldex_ joined #perl6
22:52 cognome joined #perl6
22:53 davido___ joined #perl6
22:53 timotimo https://github.com/perl6/nqp/blob/master/sr​c/vm/moar/QAST/QASTOperationsMAST.nqp#L1576 this is what it looks like when you have a primitive instruction in your VM and you want to expose it as a nqp::blahblah
22:53 Alina-malina joined #perl6
22:53 timotimo since MoarVM was built when NQP was already pretty mature, the names match up between nqp::foobar and the foobar instruction
22:53 \00 joined #perl6
22:53 FROGGS_ joined #perl6
22:54 timotimo looking for a good example in parrot ATM, a moment please
22:55 jepeway so, nqp::foobar is how p6 calls into the VM to execute the foobar instruction?  mapping achieved by QAST::MASTOperations.add_core_moarop_mapping?
22:55 ClarusCogitatio joined #perl6
22:55 timotimo https://github.com/perl6/nqp/blob/master​/src/vm/parrot/QAST/Operations.nqp#L1646 - here you can see that the same opcode in parrot (but with different "type signatures") map to different nqp:: ops
22:55 * jepeway waits patiently, tho eagerly, it must be said
22:55 timotimo er
22:55 timotimo i wrote that the wrong way around
22:56 timotimo er
22:56 timotimo i wrote it the *right* way around
22:56 timotimo sorry for the confusion
22:56 jepeway s'okay
22:56 timotimo another way to implement an nqp:: opcode is to directly compile the op to a piece of low-level-AST (so to speak)
22:57 timotimo on parrot we have the PIRT, which is like the parrot intermediate representation tree or something
22:57 timotimo and on moarvm we have the MAST, the Moar Abstract Syntax Tree (at least i think that's what it stands for)
22:57 raiph joined #perl6
22:57 timotimo looking for a simple one right now
22:58 timotimo most have many, many lines of code
22:59 timotimo https://github.com/perl6/nqp/blob/master/sr​c/vm/moar/QAST/QASTOperationsMAST.nqp#L1950 - this is very simple, but not terribly enlightening
22:59 * jepeway looking
22:59 timotimo so if you use nqp::sprintf(ARGUMENTS HERE), it gets translated into nqp::gethllsym("nqp", "sprintf")(ARGUMENTS HERE)
23:00 timotimo this one is better: https://github.com/perl6/nqp/blob/master/sr​c/vm/moar/QAST/QASTOperationsMAST.nqp#L2092
23:00 timotimo nqp: say(nqp::tclc("hello world"))
23:00 camelia nqp-parrot: OUTPUT«Error while compiling op tclc (source text: "nqp::tclc(\"hello world\")"): No registered operation handler for 'tclc'␤current instr.: 'as_post' pc 60408 (gen/parrot/stage2/QAST.pir:21552) (gen/parrot/stage2/QAST.nqp:3865)␤»
23:00 camelia ..nqp-jvm: OUTPUT«(signal )»
23:00 camelia ..nqp-moarvm: OUTPUT«Hello world␤»
23:00 timotimo o_O
23:00 timotimo nqp: say("hello")
23:00 camelia nqp-{moarvm,parrot}: OUTPUT«hello␤»
23:00 camelia ..nqp-jvm: OUTPUT«(signal )#␤»
23:01 timotimo apparently nqp-jvm is unhappy (maybe because no javac is installed?)
23:01 timotimo any questions so far?
23:02 timotimo i don't actually know where i wanted to lead you next :S
23:02 jepeway not yet.  still staring.
23:03 timotimo feel free to shoot any questions my way
23:03 timotimo i'm sure this is lots of new stuff to take in
23:04 jepeway so, in that last one, nqp::die works b/c the binding has already been established, and that particular .add_core_op is establishing a mapping for tclc?
23:04 jepeway (yes, it is a lot)
23:05 timotimo add_core_moarop_mapping means there's an instruction inside MoarVM called "die" that we can use directly to offer nqp::die
23:06 timotimo add_core_op lets us give the compiler a little piece of code to run whenever a specific nqp:: op is encountered in the source that's to be compiled
23:06 timotimo it expects us to return a mast, which is why we call $qastcomp.as_mast (qastcomp just means "QAST Compiler")
23:06 jepeway ok.  so why gethllsym in sprintf but none in tclc?
23:06 timotimo QAST trees are much simpler to write than MAST code
23:07 timotimo i can show you that, too
23:07 jepeway eep.  i'll try to follow.
23:07 timotimo https://github.com/perl6/nqp/blob​/master/src/HLL/sprintf.nqp#L414 this line registers the "hll symbol" called "sprintf"
23:07 timotimo the sub printf directly above that line is the "implementation" of sprintf that every instance of nqp:: will call into at run time
23:08 timotimo "hll symbols" is an interesting mechanism that goes back to the fact that we have to handle code from multiple different languages in the same VM
23:09 timotimo one example is the boxing types
23:09 timotimo nqp: say(nqp::boxtype_i())
23:09 camelia nqp-jvm: OUTPUT«(signal )»
23:10 camelia ..nqp-parrot: OUTPUT«Error while compiling op boxtype_i (source text: "nqp::boxtype_i()"): No registered operation handler for 'boxtype_i'␤current instr.: 'as_post' pc 60408 (gen/parrot/stage2/QAST.pir:21552) (gen/parrot/stage2/QAST.nqp:3865)␤»
23:10 camelia ..nqp-moarvm: OUTPUT«No registered operation handler for 'boxtype_i'␤   at gen/moar/stage2/QAST.nqp:1406  (/home/p6eval/rakudo-inst-2/languages​/nqp/lib/QAST.moarvm:compile_op:64)␤ from gen/moar/stage2/QAST.nqp:5011  (/home/p6eval/rakudo-inst-2/langua​ges/nqp/lib/QAST.moarvm:compile…»
23:10 timotimo hmm.
23:10 timotimo not quite
23:11 timotimo anyway; we have to derive every object in Perl 6 code from Mu (and Any), but we don't have that in NQP code
23:11 jepeway ok.
23:11 timotimo i fear i'm explaining little things ALL OVER the place :S
23:12 jepeway eh, it's helping me, even so. timotimo++
23:12 timotimo all this is probably only interesting for you if you want to become a core developer %)
23:13 jepeway have the inclination to do so, might have the talent, but doubt I've the time.  which is why I wanted some LHF to start with and, through FROGGS, found the TZ stuff.
23:15 timotimo ah
23:15 timotimo that's a good approach
23:16 timotimo i got sucked into core development becäuse i wanted to use junctions and they were slooooow
23:16 timotimo so i got introduced to the Optimizer.nqp in rakudo
23:17 jepeway oh, so gethllsym is done for every binding into a language that isn't p6 when building an AST fragment?
23:17 ClarusCogitatio joined #perl6
23:17 jepeway getting into a lang via its optimizer doesn't strike me as LHF, nosirree.
23:17 timotimo that's not quite it
23:18 timotimo the optimizer is surprisingly comfortable to hack in; except we took like 2 minutes just to parse CORE.setting ...
23:18 timotimo on moarvm that takes about 24 seconds nowadays
23:18 jepeway ok, can you keep explaining?
23:18 timotimo sure
23:18 timotimo the hllsym stuff is for attaching different values (objects which could also be functions, like in the sprintf case) to the same name and have the values differ by "currently active language"
23:19 timotimo it is not specific to the compilation stage
23:19 timotimo for example:
23:19 timotimo src/vm/moar/ModuleLoaderVMConfig.nqp
23:19 timotimo 15:            $file := nqp::gethllsym('perl6', 'ModuleLoader').absolute_path($file);
23:20 timotimo oh, actually, gethllsym allows you to specify the hll you're refering to
23:20 timotimo there's also getcurhllsym or something i believe
23:20 timotimo that's the one that looks at the "currently active language"
23:20 jepeway ah.
23:20 timotimo fortunately i didn't have to understand the hllsym mechanism for anything i've been coding so far
23:20 timotimo i could just regard it as a "place to stash some things"
23:20 timotimo hmm, what's next  i wonder
23:21 jepeway ok. going afk for a bit.
23:22 timotimo OK
23:27 timotimo well, if you want to work on TZ stuff, your best bet may be working inside the core setting
23:28 timotimo in which you write perl6 code, but depending on how early your code file is included you may lack a whole lot of classes, subs, operators, traits, ...
23:28 raiph left #perl6
23:29 timotimo and it's quite performance-sensitive; recent improvements to startup time have stressed making expensive-to-calculate things only calculate their value when they are first used
23:50 timotimo i think i'll drive home now; perhaps i'll stay tired enough to sleep, but maybe i'll be more awake than i have been all day as soon as i see my bed >_<
23:50 xragnar joined #perl6
23:51 BenGoldberg joined #perl6
23:52 cognome joined #perl6
23:56 fling left #perl6

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

Perl 6 | Reference Documentation | Rakudo