»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 go|dfish left, go|dfish joined 00:01 labster_ is now known as labster 00:04 itz left 00:06 itz joined 00:11 itz_ joined 00:12 xenoterracide left, itz left 00:14 clkaoud__ joined 00:15 hobbified joined, brother| joined 00:16 sorear joined 00:17 flussenc1 joined 00:18 integral_ joined, integral_ left, integral_ joined, xenoterracide joined 00:19 avuserow joined 00:21 clkaoud_ left, sorear_ left, hobbs left, Guest49163 left, DELLtra left, brother left, xfix left, integral left, flussence left, clkaoud__ is now known as clkaoud_ 00:23 DELLtra joined, xfix joined, xfix left, xfix joined 00:25 flussenc1 is now known as flussence, flussence left, flussence joined 00:26 skarn joined 00:27 skarn is now known as Guest25352 00:32 DELLtra_ joined, DELLtra_ left 00:38 cognome left 00:45 DELLtra left 00:48 Px12 joined 00:54 xfix_ joined 00:55 ashleyde1 joined, Guest25352 left, daxim left, silug left, zoosha_ left, brother| left, xfix left, ashleydev left, fling left, zoosha joined, brother joined, fling_ joined, silug joined 00:57 daxim joined 01:00 ChoHag_ joined 01:01 zoosha_ joined 01:04 xenoterracide_ joined 01:05 integral joined, \00 left 01:06 Brock joined, skarn joined, brother| joined, vike left, sorear_ joined, awwaiid left, esaym153 left, skarn is now known as Guest36014, nebuchadnezzar left, woolfy left 01:07 camelia left, sivoais left, ChoHag left, xinming left, xenoterracide left, flussence left, Celelibi left, Celelibi joined, dj_goku left, integral_ left, telex left, Celelibi left, sorear left, zoosha left, brother left, hobbified left, woolfy1 joined, vike1 joined, flussenc1 joined, hobbs joined, Celelibi joined 01:08 hobbs left, hobbs joined, camelia joined 01:09 cognome joined, Px12 left 01:10 ChanServ sets mode: +v camelia, dj_goku joined 01:11 cognome left, telex joined 01:12 \00 joined 01:13 clkaoud__ joined 01:19 hobbified joined, vikeOne joined 01:20 hobbs left, flussenc1 left, vike1 left, woolfy1 left, clkaoud_ left, ilbot3 left, timotimo left, yogan_ left 01:21 clkaoud__ is now known as clkaoud_ 01:22 sivoais joined 01:26 baest_ joined, Sqirrel left 01:27 ilbot3 joined 01:28 eternaleye_ joined, flussence joined, woolfy1 joined, timotimo joined, yogan_ joined, FROGGS left 01:29 betterwo1ld joined, avuserow_ joined 01:30 alexghacker left, ashleydev joined 01:31 daxim_ joined, flussence left, flussence joined, firnsy_ joined, firnsy_ left, firnsy_ joined 01:32 eternaleye left, vikeOne left, fling_ left, avuserow left, muraiki left, baest left, jercos left, betterworld left, camelia left, Brock left, ChoHag_ left, ashleyde1 left, bloonix left, firnsy left, jtpalmer left, Pleiades` left, vike joined, ChoHag joined, jtpalmer joined, awwaiid joined, daxim left, fling joined, eternaleye_ is now known as eternaleye, fling left, fling joined, Pleiades` joined 01:33 cognome joined 01:35 vike left 01:36 alexghacker joined 01:37 jercos joined 01:38 cognome left 01:39 Guest74506 left 01:40 bowtie joined 01:41 bowtie is now known as Guest49613 01:47 alexghacker left 01:49 tony-oo joined
tony-oo timotimo: you in? 01:49
01:51 alexghacker joined
TimToady tony-oo: it's probably the wee hours of the morning there 01:51
02:02 rindolf joined
masak whee! 02:13
02:13 chenryn joined
masak belatedly makes the connection 'twixt en:"wee hours" and sv:"småtimmarna" 02:14
timotimo tony-oo: in bed in a few minutes :S 02:16
ttyl :)
02:17 kuroseki left
tony-oo ahh, 02:22
02:26 xenoterracide_ left 02:29 raiph joined 02:30 raiph left 02:33 ClarusCogitatio left, cognome joined 02:38 cognome left 02:40 xenoterracide_ joined 02:41 ClarusCogitatio joined 02:50 noganex joined 02:53 noganex_ left 02:56 colomon left 02:57 firnsy_ is now known as firnsy 03:02 xenoterracide_ left 03:08 xenoterracide_ joined 03:18 xenoterracide_ left 03:33 cognome joined 03:37 ClarusCogitatio left, ClarusCogitatio joined 03:38 cognome left 03:46 firefish5000 joined 03:54 telex left, xragnar left 03:55 ClarusCogitatio left 03:56 telex joined, xragnar joined 03:57 bjz left, ClarusCogitatio joined 04:00 BenGoldberg left 04:04 alexghacker left 04:09 alexghacker joined 04:22 xenoterracide_ joined 04:28 xenoterracide_ left 04:29 xenoterracide_ joined 04:32 Sqirrel joined 04:33 cognome joined 04:35 xenoterracide_ left 04:38 cognome left 04:42 mr-foobar left 04:46 Alina-malina joined 04:49 chenryn left 04:58 colomon joined, vike joined, bloonix joined, camelia joined, FROGGS joined, xinming joined, esaym153 joined 04:59 aborazmeh joined 05:00 aborazmeh left 05:03 hagiri joined 05:04 clkaoud_ left, clkaoud_ joined
hagiri TimToady 05:05
:)
05:15 hagiri left 05:17 erkan left 05:32 ggherdov_ left, pnu left 05:33 isacloud_____ left, cognome joined, clkaoud_ left
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:35
05:36 SamuraiJack joined 05:37 chenryn joined, cognome left
firefish5000 nvm. I just discovered that when Gram.parse($_, :rule<r1>) {...} either always matches, or doesn't work as I expected. 05:50
*' when Gram.parse($_, :rule<r1>) {...} ' # since 'that when' could be confusing. 05:52
05:56 mr-foobar joined 06:03 ClarusCogitatio left 06:06 ClarusCogitatio joined 06:08 alexghacker left, alexghacker joined 06:33 cognome joined 06:38 cognome left 06:53 gfldex joined 06:55 ClarusCogitatio left 06:57 ClarusCogitatio joined
firefish5000 learned that tokens and rules don't backtrack by default. All of his grammar problems faded away. 06:59
07:00 SamuraiJack left 07:04 xfix_ is now known as xfix, xfix left, xfix joined 07:09 bjz joined 07:16 clkaoud__ joined 07:17 ggherdov_ joined 07:18 pnu_ joined 07:23 Px12 joined 07:26 isacloud_____ joined 07:31 kaare_ joined 07:33 cognome joined 07:34 bjz left 07:35 bjz joined 07:38 cognome left 07:40 Px12 left, gfldex left, bjz_ joined 07:42 bjz left 07:49 kaare_ left, ivanshmakov joined 07:52 spider-mario joined, spider-mario left 07:54 spider-mario joined 07:55 brrt joined 07:57 brrt left, brrt joined 08:08 darutoko joined 08:10 Px12 joined 08:13 chenryn left 08:14 jaffa4 joined 08:15 \00 left 08:16 \00 joined
jaffa4 hi all 08:17
nine hi jaffa4
08:20 labster_ joined 08:24 grondilu_ joined, Px12 left, labster left, grondilu left, MilkmanDan left, labster_ is now known as labster, MilkmanDan joined 08:25 zoosha joined, xragnar left, zoosha_ left, xragnar joined 08:27 brrt left 08:28 itz_ left, itz joined, eternaleye left, Alina-malina left 08:29 eternaleye joined 08:31 isBEKaml joined, [Sno] left 08:32 [Sno] joined 08:33 cognome joined
grondilu_ still no video of YAPC::EU? 08:34
08:34 grondilu_ is now known as grondilu, grondilu left, grondilu joined
grondilu checked www.youtube.com/user/yapceu/videos 08:35
08:35 Px12 joined, Alina-malina joined 08:37 erkan joined
FROGGS grondilu: nothing P6ish at least 08:38
08:38 cognome left
isBEKaml Were there P6 events at YAPC::EU? 08:38
isBEKaml is admittedly quite behind... 08:39
nine isBEKaml: there were the usual couple of talks, yes. 08:40
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:41
08:44 chenryn joined
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:45
08:48 chenryn left
dalek volaj/cglobal: e56da91 | (Tobias Leich)++ | t/10-cglobals. (2 files):
add passing tests for C globals
08:51
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.
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 09:01 isBEKaml left, clkaoud__ left 09:02 ggherdov_ left 09:05 clkaoud__ joined, ggherdov_ joined 09:07 Rotwang joined 09:10 lizmat joined 09:11 woolfy joined, woolfy1 left, lizmat_ left 09:13 lizmat left, lizmat joined 09:20 clkaoud__ is now known as clkao, clkao is now known as clkaoud 09:21 Px12 left 09:23 chenryn joined 09:29 sqirrel_ joined 09:30 MilkmanDan left, japhb left, japhb_ joined 09:32 slavik left, woolfy left, MilkmanDan joined, lizmat left, slavik joined 09:33 firnsy left, firnsy joined, cognome joined 09:35 PZt left 09:38 chenryn left, cognome left
dalek line-Perl5: 7115127 | nine++ | lib/Inline/Perl5.pm6:
Pull out duplicated code from call and invoke
09:50
10:01 camelia left
dalek line-Perl5: f0da8be | nine++ | / (5 files):
Incompatible change: no longer treat all function calls as method calls

Previously it depended on the first parameter if a P5 function would be called as function or as method. We now treat functions and methods differently.
  $p5.call is now used only for functions.
  $p5.invoke is now used for all methods, i.e. package methods and object methods.
This commit also reverses the first two parameters to invoke so they are now package/object, name which should be much more natural.
10:01
10:01 eternaleye left 10:03 eternaleye joined 10:05 erkan left 10:06 erkan joined 10:09 eternaleye left 10:15 ilbot3 left, Alina-malina left 10:16 ilbot3 joined, Alina-malina joined 10:17 lizmat joined, eternaleye joined 10:18 camelia joined 10:20 ChanServ sets mode: +v camelia 10:22 lizmat left 10:28 sqirrel_ left
moritz nine: btw t/inherit.t fails without p5 Moose being installed 10:30
nine: should I rewrite it to not use Moose? 10:31
10:31 lizmat joined
moritz nine: or test a simple 'use Moose;' first, and skip the rest of the tests if it fails? 10:32
10:32 woolfy joined
moritz nine: oh, I see you added it intentially ; then the second version seems to make more sense 10:33
10:33 cognome joined
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:34
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:35
10:38 cognome left, chenryn joined
moritz nine: and it seems that p5 exceptions aren't trappable in Perl 6 :( 10:43
10:43 chenryn left
nine moritz: not yet. But that should be rather straight forward to implement. 10:43
moritz nine: so my idea to use try $i.run('require Moose'); if $! { skip ...; exit } 10:44
ah, good
nine I've done the same with Python exceptions in Inline::Python
10:44 lizmat_ joined
nine For now that should probably be if $i.run('eval "require Moose"'; $@) { skip ...; exit } 10:44
10:46 lizmat left
dalek line-Perl5: 97d9e90 | nine++ | p5helper.c:
Store the P6 object array index in priv instead of the SV

This is preparation for making subclassing Moose objects actually work. Storing the index in priv allows us to use any P5 value as base for wrapped Perl 6 objects as we don't use it for unwrapping anymore.
10:48
line-Perl5: 94ff3b7 | moritz++ | t/inherit.t:
Guard test against missing p5 Moose
10:52
10:52 pnu_ left 10:54 pnu_ joined, SHODAN joined
moritz woah, 'cpanm Moose' installed 45 distributions 11:02
I kinda think it used to be far less
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
(yes, I read enough scrollback to see that it's a bit more awesome than that)
moritz btw time perl6-m -c -e '' => 0.178s vs. time perl6-m -e '' => 0m0.236s 11:08
so there's a signficant overhead in compiling the empty string 11:09
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:10
11:13 SHODAN left 11:14 lizmat_ left
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:14
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/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:872)␤ fro…»
moritz nqp-m: constant i := 42;
camelia nqp-moarvm: OUTPUT«Confused at line 2, near "constant i"␤ at gen/moar/stage2/NQPHLL.nqp:481 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:872)␤ fro…»
11:16 Rotwang left
jaffa4 m: proto sub open(|$) {*} 11:20
camelia rakudo-moar 34cf7a: OUTPUT«Obsolete use of | or \ with sigil on param $␤»
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)
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)
jaffa4 ok 11:27
jnthn FROGGS: OK,will see what energy I have after dinner/nightseeing :) 11:28
FROGGS jnthn: agreed, first some food :o) 11:30
jaffa4 Where are you?
11:31 kaare_ joined, colomon left
jnthn Hong Kong 11:32
11:32 colomon joined
jaffa4 What event is over there? 11:33
11:33 cognome joined
jaffa4 jnthn 11:33
nine jaffa4: he's ther for a consultancy gig 11:37
11:38 kurahaupo joined
nine jaffa4: in China that is 11:38
11:38 cognome left
jaffa4 what is gig? 11:38
moritz "job"
jnthn jaffa4: Here for a dayjob assignment. :) 11:39
Well, just over the border in China, actually. In Hong Kong for a weekend break.
11:39 chenryn joined
jaffa4 What do you have to do? what is the topic? 11:40
11:40 ClarusCogitatio left 11:41 mberends left 11:43 ClarusCogitatio joined
jnthn jaffa4: Can't say much about it really; under NDA... 11:44
11:44 chenryn left
jnthn Can say it's had aspects of open source stuff, some application of compiler technology/ideas, even a little language design :) 11:44
But not more than that. :)
jaffa4 ok 11:45
masak (we're hiring!) 11:46
jaffa4 What are you hiring?
11:46 firefish5000 left
masak (especially Perl 6 devs!) 11:46
jaffa4 who is we?
masak edument.se/
jaffa4 Do you work for them now? 11:47
masak that's our employer, yes.
grondilu std: sub random { .5 - rand }; say random xx 3;
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'xx' used at line 1␤Check failed␤FAILED 00:01 125m␤»
grondilu std: sub term:<random> { .5 - rand }; say random xx 3; 11:48
camelia std 53b3ca6: OUTPUT«ok 00:01 129m␤»
masak jnthn is employee 001. I am employee 002.
11:48 SHODAN joined, lizmat joined
jaffa4 Are you Swedish? 11:48
masak half of us are. :) 11:49
grondilu wonders who's 007 and if he has licence to kill :)
masak .oO( license to kill -9 )
jaffa4 last time I wrote them they told me I do not live in Sweden.
masak which is technically correct; you don't. 11:50
jaffa4 as a reason for rejection
masak yeah, we do have some expectation of proximity.
both jnthn and I have moved to the province the company is based in, in order to be close to the mothership.
jaffa4 Have you found a flat easily? 11:51
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
I think the home market in southern Sweden is pretty OK.
jaffa4 witin 2 weeks?
11:53 woolfy1 joined
masak now, don't do anything rash here... :P 11:53
dinner &
11:53 woolfy left, lizmat_ joined
jaffa4 What city are you located in? 11:55
Why do you need Perl6 developers?
11:55 lizmat left 11:59 spider-mario left 12:01 spider-mario joined 12:04 kaare_ left
lizmat_
.oO( who doesn't? ;)
12:05
12:06 lizmat_ is now known as lizmat 12:14 mr-foobar left, Celelibi left 12:16 Celelibi joined 12:22 pmurias joined
pmurias hi 12:22
12:24 ClarusCogitatio left, djanatyn left 12:25 ClarusCogitatio joined, djanatyn joined 12:27 FROGGS left 12:28 FROGGS_ joined, FROGGS_ is now known as FROGGS 12:29 chenryn joined 12:33 chenryn left, cognome joined 12:35 brrt joined 12:38 lizmat_ joined, cognome left 12:39 lizmat left 12:41 lizmat_ is now known as lizmat
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␤␤»
lizmat jaffa4: what did you expect ? 12:42
jaffa4 I do not know it could decide
lizmat two subs that don't expect any input arguments
MMD does not take return values into account (yet) afaik
jaffa4 so should it work? 12:43
lizmat jnthn may be able to elaborate on this later
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
*ntro
at *that* callsite
but I guess this goes against composability 12:45
jaffa4 and what si that?
lizmat and going against composability is a big nono
e.g. S17:26
synopsebot Link: perlcabal.org/syn/S17.html#line_26
lizmat hmmm... seems the spec may need some elaboration about composability 12:46
en.wikipedia.org/wiki/Composability # perhaps better
12:47 dwarring left 12:50 brrt left
pmurias if I have a panda using project how do I run the tests? 12:51
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 12:56 [Sno] left 12:57 Khisanth left, [Sno] joined
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
pmurias: PERL6LIB=lib prove -e perl6 t 12:58
moritz pmurias: I know that 'panda install .' will run the tests, but it also installs
FROGGS: that won't build the C parts
FROGGS hmmm
12:58 kaare_ joined
pmurias FROGGS: and that sucks a lot as it will compile the module again and again for every test 12:58
FROGGS arn't there panda-build and panda-test binaries? 12:59
well, scripts
13:08 cognome joined
rindolf Hi all. 13:09
Happy Shalom Saturday! Sup?
nine Damn Perl5! 13:11
It seems like you cannot have two references blessed into two different packages pointing to the same hash.
vendethiel o/ 13:12
moritz nine: it's not the reference that's blessed, it's the actual thing 13:14
nine: it's just that blessing and method calls only work through references
nine The docs always talk about "blessed references" which is highly misleading. 13:16
moritz I know 13:17
it's really "reference to blesed <thingy>"
diakopter learned something 13:18
[again?]
lizmat as long as it's not the same thing you keep learning again, that's ok :-) 13:19
13:19 colomon left 13:21 colomon joined 13:25 mberends joined
pmurias perl6 -Ilib blib bin/panda - should use the precompiled module from blib first (instead of the installed ones?) 13:28
13:28 xenoterracide_ joined 13:30 chenryn joined
FROGGS pmurias: you have to pass -Iblib, no? 13:30
vendethiel masak: oh, you're hiring p6 devs now :p? 13:31
pmurias FROGGS: I'm passing -Iblib, but it doesn't seem to work 13:32
moritz pmurias: I think panda spawns a new process, so it might not preserve -I options 13:33
pmurias: you could set PERL6LIB though
pmurias ahh, bin/panda-build . doesn't use the panda from the current working directory 13:36
13:42 MikeFair joined
pmurias has to quick a temper to deal with panda today, and goes back to nqp-js ;) 13:43
vendethiel yay :p 13:44
awwaiid m: sub postfix:<%> { $^a / 100 } ; 5% 13:47
camelia ( no output )
awwaiid m: sub postfix:<%> { $^a / 100 } ; say 5%
camelia rakudo-moar 34cf7a: OUTPUT«0.05␤»
awwaiid muahaha
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␤»
FROGGS m: say 5 +% 2
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling /tmp/ChNtdBh_Tq␤Two terms in a row␤at /tmp/ChNtdBh_Tq:1␤------> say 5 +% ⏏2␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ …»
FROGGS I guess... ~% does not make much sense, does it?
13:48 telex left
awwaiid ~% ? 13:48
FROGGS "foofoofoobar" ~% "foo" # "bar" 13:49
*g*
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
is that like string-mod?
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 :)
FROGGS awwaiid: yes :o)
awwaiid m: sub postfix:<%> { $^a / 100 } ; my $x = 5 ; say $x%
camelia rakudo-moar 34cf7a: OUTPUT«0.05␤»
13:50 telex joined
awwaiid that's where it starts being funny. But I guess I might do ($x)% to make it clear 13:50
13:51 brrt joined
nine YES! 13:51
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.
vendethiel wow, nice, nine
13:55 ivan`` left, Juerd left, hoelzro left, charsbar__ left, danaj left, simcop2387 left, dylanwh left, tokuhirom left, Maddingue left, yakudza left, no-doz left, Juerd joined, Maddingue joined, tokuhirom joined, Pleiades` left, flussence left, daxim_ left, ashleydev left, avuserow_ left, sivoais left, dj_goku left, charsbar__ joined, danaj joined, yakudza joined, flussence joined, dj_goku joined, dj_goku left, dj_goku joined, sivoais joined, ashleydev joined 13:56 daxim_ joined, avuserow_ joined, u-ou joined, Pleiades` joined, cibs left, u-ou is now known as Guest49793 13:57 hoelzro_ joined
dalek volaj/cglobal: ed66509 | (Tobias Leich)++ | t/09-nativecast.t:
remove test about old pointer->pointer cast
13:57
13:57 Guest49793 left, dylanwh joined 13:58 simcop2387 joined
awwaiid sub prefix:<\$>($n) { say "$n dollars" } ; \$5 14:00
m: sub prefix:<\$>($n) { say "$n dollars" } ; \$5
camelia rakudo-moar 34cf7a: OUTPUT«5 dollars␤»
14:01 no-doz joined
awwaiid oh better than that 14:01
m: sub prefix:<$$>($n) { say "$n dollars" } ; my $x = 5 ; $$$x 14:02
camelia rakudo-moar 34cf7a: OUTPUT«5 dollars␤»
14:08 Ven joined
dalek line-Perl5: c8424ae | nine++ | / (3 files):
Allow subclassed P5 objects to access their own data (fixes Moose test).

A P5 object passed back from P6 is again wrapped to allow subclassing and dispatching method calls from P5 to P6. But the wrapped object was a completely new scalar and the original object was hidden from P5 methods.
Re-bless the original P5 object instead. This allows its methods to access the object's data while still allowing the P6 class to overwrite methods.
14:11
line-Perl5: 059ed42 | nine++ | / (3 files):
Re-bless P5 object only once to Perl6::Object

No need to bless it every time we pass it back to P5. Just do it once in the constructor of the subclass like we would do it in plain normal P5 code.
timotimo mhhh
14:12 Guest49613 is now known as bowtie, bowtie is now known as Guest92022, Guest92022 is now known as bowtie_ 14:22 kjs_ joined 14:25 yakudza left 14:26 MikeFair left, mberends left, colomon left, [Sno] left, khisanth_ left, ClarusCogitatio left, pmurias left, woolfy1 left, Alina-malina left, slavik left, bjz_ left, Sqirrel left, rindolf left, fling left, awwaiid left, ChoHag left, jtpalmer left, ChoHag joined, awwaiid joined, colomon joined, jtpalmer joined, khisanth_ joined, ClarusCogitatio joined, pmurias joined, [Sno] joined, rindolf joined, bjz joined, fling joined, woolfy joined 14:27 slavik joined
moritz star-m: say 42 14:27
camelia star-m 2014.08: OUTPUT«42␤»
14:27 Alina-malina joined, MikeFair joined
timotimo yay! 14:27
awwaiid what is star-m? 14:28
moritz star with MoarVM backend
14:28 yakudza joined, mberends joined
moritz star: say 42 14:28
camelia star-{m,p} 2014.08: OUTPUT«42␤»
awwaiid what is m, just Rakudo with no star?
moritz correct 14:29
awwaiid cool
moritz (and you can use 'sm' and 'sp' instead of 'star-m' and 'star-p'; bad jokes welcome!)
s: say 42
dunno if that's wired up
seems not 14:30
14:31 mr-foobar joined
carlin IO::Socket::Async has the same segfault send()ing after close() that IO::Socket::INET had 14:39
14:39 MikeFair left 14:41 panchiniak joined 14:42 Sqirrel joined
moritz for that one, I don't know how to fix it correctly 14:42
I wonder if IO::Socket::INET should use the same connect/listen splitup instead of .new 14:43
lizmat is there a way in Perl 6 to find out whether rakudo was started with --ll-exception ? 14:44
14:48 BenGoldberg joined 14:50 panchiniak left 14:52 virtualsue joined
nine moritz: I'd like to put the BUILD and fallback from t/inherit.t into a parametric role like this: gist.github.com/niner/82d8ec90363f6dc2b7f3 But I cannot get rid of the "Bar" there. Do you have an idea how to write that? 14:52
14:56 cognome left, xfix left, xfix joined 14:58 lizmat left
moritz nine: ::?CLASS or something exists 14:58
14:58 lizmat joined
moritz nine: yes, ::?CLASS, try that 14:58
and I'd call it Perl5Parent 14:59
(the role, that is)
15:00 cognome joined
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?
nine Maybe because Bar does not yet exist when the parametric role is instantiated?
lizmat itz: I'm hoping someone will make an interface for Sereal 15:02
15:02 exixt left
moritz nine: that's likely the problem, yes 15:03
nine: it's probably time we implement a proper fallback mechanism, not the .^add_fallback hack
nine Would make things easier, yes. 15:05
15:10 exixt joined 15:11 lizmat_ joined
moritz TimToady: I'm trying to understand the CANDOM mechansim 15:11
TimToady: and I don't understand the examples for declaring methods or submethods
15:11 brrt left
moritz multi method CANDO ($self: Code, $name, *%args) 15:11
multi submethod CANDO ($self: Item, $name, *%args)
15:11 Ven left 15:12 lizmat left
moritz I thought the type argument should be of the returned object 15:12
so IMHO it should be
multi method CANDO($self: Method, $name, *%args)
15:12 xenoterracide_ left
moritz multi method CANDO($self: Submethod, $name, *%args) 15:12
nope, can't work either 15:13
the caller can't know if a method or a submethod is returned
but returning an Item (not that it would exist otherwise the current spec) can't work when a Method is expected
rather 15:17
multi method CANDO(Methd, $name, *%args)
or
multi submethod CANDO(Methd, $name, *%args) # if it's not to be inherited
lizmat_ finally figured out why panda fails when precomping modules with @*INC being lazy 15:19
15:19 lizmat_ is now known as lizmat
lizmat it only happens if the file being precomped has a "use" statement in it 15:20
15:23 xenoterracide_ joined
nine Works now! class Bar does Inline::Perl5::Perl5Parent['Foo'] { method bar { return "Perl6!"; } } 15:24
15:24 MikeFair joined
dalek line-Perl5: ea07fd0 | nine++ | / (2 files):
Move code for subclassing P5 classes to a role

Use it like: class Bar does Inline::Perl5::Perl5Parent['Foo'] { ... }
15:25
moritz nine++ !
nine moritz: does my solution look somewhat sane?
moritz nine: $!parent = $perl5.invoke('Foo', 'new'); 15:26
nine: should be $package instead of 'Foo'
15:27 MikeFair left 15:29 MikeFair joined
dalek line-Perl5: 97921eb | nine++ | / (2 files):
Actually use the role's parameter as name of the P5 package

Thanks to moritz++ for spotting this error.
15:29
moritz nine: I don't like adding .^add_fallback at BUILD time, it's mixing metaphers
nine moritz: is there another way? 15:30
moritz nine: I'm not sure yet, experimenting
nine: but BUILD runs any time the class is instantiated
nine That's why I have the $fallback_added so the fallback only gets added once per class using the role. 15:31
15:31 khisanth_ left
moritz nine: is that per parametric role instance? 15:31
15:31 Khisanth joined
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?
nine Hence my question if it is sane :)
moritz: yes, that's why there's the Baz class in the tests
lizmat $ perl6 -e '"bar".IO.spurt("use Test"); my $c =t.new("bar"); $c.precomp' 15:33
===SORRY!===
Missing serialize REPR function for REPR VMThread
jnthn: ^^^ any suggestions ?
fwiw, this is with d05d411e968b3408420bbc7b02c1248f3dc005de applied 15:36
bringing down startup time to:
$ time perl6 -e1
real0m0.145s
moritz nine: ok, by avoiding .^, one can bring the add_fallback to the mainline of the role 15:37
nine: ::?CLASS.HOW.add_fallback(::?CLASS, -> $, $ { True },
15:37 dolmen joined
moritz ... ) 15:37
lizmat as opposed to now:
$ time perl6 -e1
real0m0.195s
so this would be a 0.05 second gain on startup 15:38
or about 25%
moritz nine: also I wonder if $.perl5 shouldn't be a parametric role argument too 15:39
nine: because there's no need to store one per instance of the class
dalek line-Perl5: d52eb59 | nine++ | lib/Inline/Perl5.pm6:
Add the fallback of Perl5Parent classes at compile time.

This gets rid of the $fallback_added workaround. Thanks to moritz++ for suggesting!
15:40 kjs_ left, Ven joined
nine moritz: but $.perl5 is a runtime thing. 15:40
moritz nine: :(
nine It's something the user of the subclass has to provide, not the author.
moritz wonders if roles can provide class attributes
nine But I don't have to store it anyway. I'm only using it in BUILD
BenGoldberg What if the user of the subclass wants to have a .perl5 which does something else, for some other purpose? 15:42
dalek line-Perl5: c7521f2 | moritz++ | lib/Inline/Perl5.pm6:
git rid of $!perl5 attribute, nine++
moritz BenGoldberg: it would be friendlier to calls it PERL5, because all-caps names are reserved
nine I'm more worried about $.parent. Now _that_ is a common name... 15:43
dalek line-Perl5: f3e846f | nine++ | lib/Inline/Perl5.pm6:
No need to make $.parent rw.
15:44
nine moritz: what do you think about github.com/niner/Inline-Perl5/issues/4 ? 15:45
15:46 Px12 joined 15:48 xenoterracide_ left
moritz nine: I'm torn 15:51
nine: it's cute, but I think in some places is too cute, and something we might regret later on
in particular
p5 :print('hello world\n');
that seems wrong
the sugar for run might OK 15:53
grondilu m: say $++ xx 3 15:54
camelia rakudo-moar 34cf7a: OUTPUT«0 1 2␤»
grondilu m: say ($ = 0)++ xx 3
camelia rakudo-moar 34cf7a: OUTPUT«0 0 0␤»
grondilu m: say (state$ = 0)++ xx 3
camelia rakudo-moar 34cf7a: OUTPUT«0 1 2␤»
BenGoldberg m: say (state $ )++ xx 3 15:58
camelia rakudo-moar 34cf7a: OUTPUT«0 1 2␤»
moritz nine: all in all I'd rather have a different method for providing sugar than making the object invocable 15:59
15:59 guru joined, guru is now known as ajr_
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 15:59
16:00 cognome left
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
nine: or something like that
16:00 cognome joined 16:01 mst left, mst joined
moritz I'm going to comment in the ticket 16:01
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:02
timotimo hm. how long do our function/method names get? 16:03
m: eval "sub f{"o" x 1000} () { }"
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling /tmp/Aj9xF9vv8H␤Undeclared routine:␤ eval used at line 1␤␤»
timotimo m: EVAL "sub f{"o" x 1000} () { }"
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling EVAL_0␤Missing block␤at EVAL_0:1␤------> oooooooooooooooooooooooooooooooooooo () ⏏<EOL>␤ expecting any of:␤ statement list␤ prefix or term␤ pref…»
pmurias nine: t/p6_object_destructor.t hangs here
timotimo m: EVAL "sub f{"o" x 1000} { }"
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling EVAL_0␤Missing block␤at EVAL_0:1␤------> ooooooooooooooooooooooooooooooooooooooo ⏏<EOL>␤ expecting any of:␤ statement list␤ prefix or term␤ pref…»
timotimo m: EVAL "sub f{"o" x 100} { }"
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling EVAL_0␤Missing block␤at EVAL_0:1␤------> ooooooooooooooooooooooooooooooooooooooo ⏏<EOL>␤ expecting any of:␤ statement list␤ prefix or term␤ pref…»
timotimo m: EVAL "sub f{"o" x 10} { }" 16:04
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling EVAL_0␤Missing block␤at EVAL_0:1␤------> sub foooooooooo ⏏<EOL>␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤ …»
timotimo oh derp
m: EVAL "sub f{"o" x 10} \{ \}"
camelia ( no output )
timotimo m: EVAL "sub f{"o" x 10000} \{ \}"
camelia ( no output )
timotimo m: EVAL "sub f{"o" x 10000000} \{ \}"
camelia ( no output )
BenGoldberg m: EVAL "sub f{"o" x 10000} \{ \}"; say 'alive';
camelia rakudo-moar 34cf7a: OUTPUT«alive␤»
BenGoldberg std: EVAL "sub f{"o" x 10000} \{ \}"; say 'alive';
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Unsupported use of curly brackets; in Perl 6 please use square brackets at /tmp/j85PMSfqeL line 1:␤------> EVAL "sub f{"o" x 10000} \{⏏ \}"; say 'alive';␤Parse failed␤FAILED 00:01 123m␤»
timotimo .. huh? 16:05
pmurias nine: shouldn't Inline::Perl5 be exposed by EVAL?
16:05 cognome left
BenGoldberg std: EVAL "sub f{"o" x 1} \{ \}"; say 'alive'; 16:05
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Unsupported use of curly brackets; in Perl 6 please use square brackets at /tmp/agAFtEIIhT line 1:␤------> EVAL "sub f{"o" x 1} \{⏏ \}"; say 'alive';␤Parse failed␤FAILED 00:01 123m␤»
BenGoldberg shrugs.
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
16:06 SamuraiJack joined
dalek line-Perl5: ee8bdfd | moritz++ | lib/Inline/Perl5.pm6:
save some method calls in DESTROY

how did it even work, assigning to non-rw attributes?
16:08
timotimo 100_000_000 os makes rakudo swap quite a bit ...
wow.
after about a minute of TIME+ in htop it actually executes the sub 16:09
dalek line-Perl5: 052e0cf | nine++ | / (2 files):
Add use method

Now the user doesn't have to run() a block just to load a P5 module.
timotimo ~4.5gb of ram with the 100_000_001 chars long sub name
nine moritz: thanks for fixing my beginner mistakes 16:10
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.
moritz: I'd much rather remove reasons for the user to use run() like with the new use() method than sugaring over it. 16:12
pmurias: what do you mean by "exposed by EVAL"? 16:13
16:14 ClarusCogitatio left
pmurias perl6: EVAL :lang<perl5>, 'say "hi"'; 16:16
perl6: EVAL :lang<perl6>, 'say "hi"';
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␤␤»
..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␤␤»
..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␤␤»
..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…»
rakudo-{parrot,jvm,moar} 34cf7a, niecza v24-109-g48a8de3: OUTPUT«hi␤»
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
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
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␤␤»
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)
lizmat: I just don't know how to marshall the low-level list to p6 16:19
m: say nqp::hllizefor(nqp::getcomp('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␤␤»
moritz m: say nqp::hllizefor(nqp::getcomp('perl6').cli-arguments, 'perl6').^name
camelia rakudo-moar 34cf7a: OUTPUT«Parcel␤»
diakopter *CRY*
moritz m: my @a = nqp::hllizefor(nqp::getcomp('perl6').cli-arguments, 'perl6')
camelia ( no output )
moritz m: my @a = nqp::hllizefor(nqp::getcomp('perl6').cli-arguments, 'perl6'); say @a.perl
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␤␤»
moritz oh, it's probably an element of that array that's the problem 16:21
m: for nqp::hllizefor(nqp::getcomp('perl6').cli-arguments, 'perl6') -> str $x { say $x }
camelia rakudo-moar 34cf7a: OUTPUT«/tmp/6xIZsRDX0u␤»
pmurias rakudo's EVAL should be fixed as it expects very specific thing from .compile 16:22
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
please everybody migrate your stuff (like services), complain about wrong permissions, missing software etc.
diakopter moritz++++ 16:27
moritz [Coke], colomon, jnthn, hoelzro_, ingy, leont, timotimo: ^^ 16:29
16:39 abraxxa joined
masak moritz++ 16:39
abraxxa nine: any news on DBIish::Oracle?
nine abraxxa: haven't heard from you about the outcome of replacing those CArray params 16:41
abraxxa nine: with what? 16:42
16:45 hoelzro_ is now known as hoelzro
abraxxa so the error comes when i pass 0 as the fourth argument 16:45
hoelzro moritz: thanks for the notice 16:46
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
abraxxa nine: when i pass OpaquePointers instead of 0s 16:48
moritz abraxxa: sounds like progress (no error from nativecall anymore)
abraxxa moritz: yes
hoelzro moritz: I won't be able to check right now, but I can check tomorrow night
I wasn't a big user of host07 =)
dalek line-Perl5/is_p5_function_trait: f5d565c | nine++ | / (2 files):
Implement a trait for declaring functions as Perl 5 subs

This allows using Perl 5 subs as if they were normal Perl 6 ones.
16:49
nine moritz: what do you think about this? ^^^
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 japhb_ is now known as japhb
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:50
abraxxa nine: thanks, i was missing this bit of information 16:51
but i think i had it that way in the beginning
moritz nine: nice, but dangerous
nine: the Perl5::Inline object needs to be available at compile time; dunno how well that will work for precompiled modules 16:52
s/for/in/
16:52 cognome joined 16:53 denis_boyun left
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?
nine abraxxa: yes
abraxxa nine: thanks
moritz nine: maybe we could have default, singlton p5 interpreter, and the ability to specify others on deman
dalek line-Perl5: 4f2bc16 | nine++ | README.md:
Update README to reflect latest development
16:56 cognome left
moritz nine: though my brain currently feels like a mushroom, so don't trust anything I say right now 16:57
diakopter fungusbrain++ 16:58
moritz has fun debugging niecza build failures 17:01
I guess I should read the REAMDE, or something 17:02
17:02 gfldex joined
moritz NIECZA_KEEP_IL=1 mono boot/run/Niecza.exe --obj-dir=run -C CORE 17:02
no object of size 1694526976
and then a C# backtrace
japhb
.oO( NO! Don't do that! You might *LEARN SOMETHING*. And then where would you be? You know, besides "less frustrated".... )
17:03 xragnar left
japhb moritz: ISTR Niecza occasionally required changes for newer mono releases. But that's kindof a vague memory at this point. :-/ 17:03
abraxxa nine: i'd suggest naming the instance variable $p5 17:04
17:04 xragnar joined 17:07 liztormato joined
liztormato nine: Perhaps a $*PERL5 to contain the default, like $*SCHEDULER? 17:08
17:10 xragnar left 17:11 dolmen left, xragnar joined
abraxxa how do i dereference a pointer to a string? 17:13
timotimo libdrc.org/index.html - oooh fun 17:15
dalek line-Perl5: 5647464 | nine++ | README.md:
Document all currently supported features with examples in the README
rindolf was quieted on #perl today by mst no less. 17:22
Or s/no less/no more/
17:22 [Sno] left 17:23 [Sno] joined 17:25 Guest36014 left, Guest36014 joined 17:26 molaf joined 17:27 Guest36014 is now known as skarn 17:30 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
abraxxa now my test segfaults 17:31
17:32 ivan`` joined, xragnar left 17:33 xragnar joined, SamuraiJack left 17:37 xenoterracide_ joined
nine PerlJam: there, I documented some :) github.com/niner/Inline-Perl5 17:51
17:52 cognome joined 17:55 orafu joined
carlin hmm, Inline::Perl5 doesn't like threads 17:55
nine carlin: surprise :) 17:56
carlin: what did you try?
rindolf carlin: what is the origin of your nickname? 17:57
carlin nine: gist.github.com/carbin/90fd2b2bda6f6ef4bae2
17:57 cognome left
carlin rindolf: it's my name 17:57
17:58 orafu left
vendethiel :p 17:58
I love when that is the answer
17:59 liztormato left
tadzik :D 18:00
rindolf carlin: ah, there's also George Carlin who was an actor and a comedian.
18:01 Sqirrel left 18:02 SamuraiJack joined 18:04 xragnar left 18:05 alexghacker left
dalek line-Perl5: 91eae37 | nine++ | p5helper.c:
Make Inline::Perl5 a bit more thread safe.
18:10
18:10 xragnar joined
nine carlin: as much as it scares me. With this fix your example works for me. 18:11
18:12 alexghacker joined
carlin nine++ # that was quick! 18:13
18:14 brrt joined
jaffa4 nine: star trek? 18:15
nine jaffa4: feels like :) 18:16
diakopter seven of 18:17
mberends deep space nine
nine If it were for that I'd probably be called five ;)
18:18 molaf_ joined 18:21 molaf left 18:24 nebuchadnezzar joined
moritz seven of five? :-) 18:25
18:25 xfix left 18:27 Ven left 18:33 xragnar left
brrt no, five of seven 18:33
a.k.a hugh
abraxxa nine: do you how i can get a pointer to a string which i can access from Perl with NativeCall? 18:34
moritz twitter.com/freenodestaff freenode recommend that everybody change their passwords, since a server might have been compromised
18:35 xragnar joined
FROGGS lizmat: you got you answer about --ll-exception? 18:35
18:35 xenoterracide_ left, xenoterracide_ joined
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
moritz I can't compile std.pm6 on perl 5.18.2 18:36
Compiled ./Cursor.pm6 18:37
===SORRY!===
Preceding context expects a term, but found infix = instead at STD.pm6 line 2787:
------> $*CURLEX.<$?SIGNATURE> ~⏏= '(' ~ substr(self.orig, $startpos, $¢.
Parse failed
18:37 zakharyas left
moritz (plus I get lots of deprecation warnings) 18:37
FROGGS that sounds "fun" to debug :/
18:39 Alina-malina left, alexghacker left 18:40 jlaire_ is now known as jlaire
moritz well, fuck. No niecza and no std on host08 18:42
18:42 Alina-malina joined 18:43 btyler left
diakopter why no std 18:47
moritz diakopter: github.com/perl6/std/issues/8 18:48
18:48 Ven joined 18:50 alexghacker joined, jepeway joined 18:52 cognome joined
Ven eh 18:54
the LTM explanations in s05 are ... juicy, but a bit "too much:
18:55 [Sno] left, xragnar left
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 ;)
I need to be torn apart between both worlds
18:56 xragnar joined
moritz Ven: well, for a tutorial, you don't need to go too much into the details 18:56
Ven right.
18:56 cognome left
Ven But I still need a descriptive enough explanation of LTM :) 18:57
and I need to know the really juicy bits to explain them
moritz Ven: also, perlgeek.de/en/article/longest-token-matching tries to explain it a bit more
18:57 gtodd joined, avuserow_ left
Ven i.e. for `"foo" \d+`, how "long" is that for p6? 18:57
moritz as many characters as it matches 18:58
Ven oh.
so, basically, it tries all the alternatives before deciding, so long it can proves they don't have side-effects?
dalek kudo-star-daily: eb2d658 | coke++ | log/ (14 files):
today (automated commit)
rl6-roast-data: 36b1e8e | coke++ | / (5 files):
today (automated commit)
Ven because, well, if they don't have side-effects, you can just retry them as many time as you want?
moritz Ven: more like, it tries all (declarative) alternatives at once
in a single pass
(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
moritz right
19:00 raiph joined
jepeway howdy 19:01
Ven but am I right when I say it only tries the one that don't have (decidably) side effects?
o/, jepeway
jepeway \o Ven
jepeway has been puzzling on RT#122319 and seeks colloquoy w/ folk who care re: timezones
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122319
moritz Ven: did you see the link I just gave you? 19:02
Ven well yes
moritz Ven: the LTM only applies to the declarative prefix
jepeway s/uo/u/, dang it
Ven which basically sums up to "yes"
moritz Ven: so it's even more restrictive than "no side effect"
Ven recursion is undecidable :p
moritz [a || b] is declarative, but not part of the declarative prefix 19:03
Ven right
raiph .ask Ulti Were your 8-22 and 9-11 BioPerl profile reports for the exact same codebase?
yoleaux raiph: I'll pass your message to Ulti.
moritz s/declarative/free of side effects/
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)
dalek volaj: 2cc378d | (Tobias Leich)++ | t/09-nativecast.t:
remove test about old pointer->pointer cast
ar: ace19de | (Tobias Leich)++ | modules/zavolaj:
update zavolaj's revision
19:05
19:06 MikeFair__ joined, gtodd is now known as gtodd_
Ven TimToady: in [a || b] ? 19:06
19:06 xenoterracide_ left
Ven I'll probably not explain as much tho 19:06
19:06 chenryn left 19:07 MikeFair left
brrt is there a current blog aggegrator for perl6? 19:07
19:08 gtodd_ is now known as gtodd
nwc10 brrt: pl6anet.org/ 19:08
brrt yay
moritz updates the article
19:09 bjz left, PZt joined 19:10 bjz joined
brrt hmm.. i'm thinking of a problem that i'm pretty sure i can tackle in perl6 - making (numerical) models 19:10
case in point: climate models
currently we do that in excel 19:11
excel is ok with regards to numerical, not so ok with regards to clarity and/or rigour
19:11 xragnar left
jepeway hrm. guess not. 19:13
19:17 Pleiades` left, xragnar joined
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␤ ------> say 'a' ~~ / <⏏[ a ' ' ]> /; # I still get biten by tha␤「a」␤␤»
19:19 brrt left
TimToady precisely why we added the message :) 19:19
Ven Right :D. 19:20
TimToady bites much harder (or is it softer?) otherwise
19:22 camelia left, Pleiades` joined, camelia joined
moritz m: say 'slooow' 19:23
19:23 jaffa4 left
Ven moritz: you broke camelia . congrats. 19:24
19:24 ChanServ sets mode: +v camelia
camelia rakudo-moar 34cf7a: OUTPUT«slooow␤» 19:24
19:25 darutoko left, xragnar left
moritz Ven: I don't know why, but the first execution on a new camelia instance always takes ages. Nothing new, I fear 19:25
m: say 'fast now' 19:26
camelia rakudo-moar 34cf7a: OUTPUT«fast now␤»
Ven booting it up :p?
moritz there isn't much code that needs booting up :/
19:27 xragnar joined
Ven a camelia is long to wake up 19:27
19:27 cognome joined
Ven we should have used an otter 19:27
those don't oversleep
PerlJam nine++ 19:28
moritz botterfly! 19:29
pmurias at least it's not a botfly 19:30
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.␤»
colomon carlin++ # reading timotimo++'s summary of last week
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.␤»
Ven Oo
moritz hates hates hates the j evalserver 19:33
19:34 sqirrel_ joined, SamuraiJack left
Ven moritz: looks like it hates us back :) 19:34
Ven is still writing some regexes explanations thingies... 19:35
19:37 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 19:39 dwarring joined
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:41 BooK left 19:42 BooK joined
jepeway looks like RT#122319 and RT#122702 might be duplicates. 19:44
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122319
jepeway hey, does synopsebot just spot the first RT? 19:45
19:45 xragnar left
lizmat FROGGS: yes, that's the answer I looked for 19:46
19:46 xragnar joined
lizmat I tried to pass on --ll-exception in the call to Panda::Builder 19:46
moritz FROGGS++ # better answer than I gave
Ven jepeway: yep. though, it got smarter very recently :)
FROGGS ahh
Ven ( moritz++ I believe)
lizmat but apparently it is already in a subprocess without it
FROGGS I usually just modify the source :o) 19:47
jepeway Ven: heh.
lizmat I wanted something more permanent :-)
moritz maybe we should introduce an env variable like PERL5OPT
Ven there really are a lot to p6regexes 19:48
I actually considered doing ANOTHER side-tutorial just for them :p.
moritz oh yes, it's a fascinating language 19:49
Ven you mean dialect.. err slang... err
Ven wonders how he can shows readers the wonders of subsets :p 19:50
19:53 avuserow_ joined 19:55 xragnar left 19:56 xragnar joined
dalek kudo/nom: 2ad5b8e | (Elizabeth Mattijsen)++ | src/core/CompUnit.pm:
Pass on --ll-exception in precomping process
19:56
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 19:58
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:01
PerlJam jepeway: you don't do that last one without a good reason. 20:03
20:04 xragnar left
dwarring looking at some of the advent tests that have been hanging/aborting on parrot over the last few days 20:04
github.com/coke/perl6-roast-data/b....out#L3813 20:05
jepeway PerlJam: whyso? (asked non-confrontationally, mind you)
dwarring i've uses this technique for capturing $*OUT in a few places: gist.github.com/dwarring/12c1e32440a8aea43337 20:06
PerlJam jepeway: because it's not a wheel that's worth re-inventing /just/ so it can be in P6 (IMHO)
moritz agrees 100% with PerlJam++
dwarring starting hanging on line: return $output.lines
over the last few days 20:07
just on parrot
moritz dwarring: could you bisect the commit that caused it?
jepeway make sense to me, certainly. 20:10
dwarring moritz: should I look at git bisect?
moritz dwarring: yes
dwarring looks
lizmat has done something with IO::Handle.lines in the past days
moritz dwarring: you can try 65db2a6df4ffb08e3eb1d5fc68563ce2dc6c455e - it should be a good commit (but please verify first) 20:11
20:13 zakharyas1 left
dwarring I guess I can bisect integration/advent2009-day07.t - this is one of the failing tests 20:14
jepeway so, better to have nqp do the integrating? or better via zavolaj (that's native call, right?) 20:15
20:20 denis_boyun_ joined
PerlJam jepeway: I imagine that using NativeCall would be sufficient. (at least until we run on a non-POSIX system) 20:20
jepeway: or ... if you want to bundle it as part of the setting, that could tip the balance away from NativeCall. 20:22
(but I don't really see a *need* to include the Olson database as part of the setting :)
jepeway PerlJam: quick explanation of "setting", please? 20:23
20:24 djanatyn left, djanatyn joined
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
setting == code in src/core ? 20:28
lizmat yes, as concatenated in src/gen/m-CORE.setting for compilation when building Rakudo on Moar 20:30
TimToady abstractly, the setting is a lexical scope outside of your main program 20:31
m: say UNIT::OUTER === SETTING 20:32
camelia rakudo-moar 34cf7a: OUTPUT«False␤»
TimToady hmm
n: say UNIT::OUTER === SETTING
camelia niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
20:33 Ven left
jepeway m: say SETTING.WHAT 20:33
TimToady m: say UNIT::OUTER::OUTER === SETTING
camelia rakudo-moar 34cf7a: OUTPUT«(UNIT)␤»
rakudo-moar 34cf7a: OUTPUT«False␤»
TimToady m: say UNIT::OUTER === CORE 20:34
camelia rakudo-moar 34cf7a: OUTPUT«False␤»
TimToady well, something not right there
m: say SETTING === CORE 20:35
camelia rakudo-moar 34cf7a: OUTPUT«False␤»
dalek kudo/nom: 21a2a4e | (Elizabeth Mattijsen)++ | src/core/Thread.pm:
Lazily initialize $*THREAD
lizmat takes an early night
TimToady m: say OUTER 20:36
camelia rakudo-moar 34cf7a: OUTPUT«(OUTER)␤»
20:36 Ven joined
TimToady m: say SETTING:: === CORE:: 20:36
camelia rakudo-moar 34cf7a: OUTPUT«False␤»
lizmat m: say CORE::.keys ~~ SETTING::.keys 20:37
camelia rakudo-moar 34cf7a: OUTPUT«False␤»
lizmat $ perl6 -e 'say CORE::.keys ~~ SETTING::.keys'
True
TimToady probably in restricted setting
lizmat huh?
ah, yes
TimToady so I wouldn't expect CORE === SETTING
lizmat indeed 20:38
sleep&
20:38 kaare_ left
PerlJam forgot that he could have done S99:setting 20:38
synopsebot Link: perlcabal.org/syn/S99.html#setting
PerlJam wanders off to get some food 20:39
vendethiel m: ping? 20:41
camelia rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling /tmp/Fou1TPgtD8␤Two terms in a row␤at /tmp/Fou1TPgtD8:1␤------> ping⏏?␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix…»
20:45 rindolf left 20:46 cognome left
jepeway good eats, PerlJam 20:46
20:49 denis_boyun_ left
jepeway so, I s'pose I should start out with a TimeZone module based off Olson reached via NativeCall, then. 20:50
20:51 ajr_ left 20:52 xenoterracide_ joined
jepeway and should the tests for S32:temporal that muck about with DST-ness move elsewhere as 'not really spec'ed, yet?' 20:54
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 ;)
jepeway BenGoldberg: thought of that, but also thought TZ support was pretty basic and ought not require a p5 runtime for rakudo 20:56
vendethiel: PerlJam & moritz both seem to think poorly of a pure p6 implementation (see backscroll) 20:57
vendethiel I'm just saying :/ 20:58
jepeway oh, understood.
BenGoldberg Or, you could use perlito to compile DateTime/Timezone.pm from perl5 to perl6 :)
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
jepeway bg: okay, now you're getting weird :) 20:59
vendethiel admittedly, these language have their API C-side.
jepeway ven: yeah, feels kinda parrot-y
timotimo sup
vendethiel jepeway: I've only been there for a few month, can't tell :p
o/ timotimo
BenGoldberg Actually, compiling from perl5 to perl6 is not a bad solution... at least as a starting point.
timotimo what have i missed today? 21:00
vendethiel timotimo: you missed me. I know it
timotimo you are not a thing
you 21:01
are a person
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.
vendethiel timotimo: I'm pretty sure "missing somebody" is a saying ;-)
timotimo oh
yes, but i asked "what have i missed"
thankfully i have a throw-away password for my freenode identify 21:02
so i don't have to change it in more than one place
BenGoldberg On a more On Topic subject, nine has gotten Inline::Perl5 working pretty well. 21:03
vendethiel ^
timotimo i looked into irc a few times over the day and i saw some nine++ commits every time :))
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:07
Actually, that question could apply to anything on CPAN :) 21:09
jepeway yes, it would. 21:10
timotimo from scratch 21:11
we shouldn't require people to install perl5
vendethiel ^ 21:12
BenGoldberg Using perlito wouldn't require that the user install perl5, though; only the developer would.
21:12 SHODAN left
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
doable, though, surely.
21:13 xenoterracide_ left
jepeway timotimo: why from scratch (asked neutrally)? moritz & PerlJam don't seem to dig a from scratch impl (see backscroll). 21:15
jepeway off to noms 21:16
21:17 cognome joined 21:19 colomon left 21:21 mberends left 21:22 cognome left 21:36 silug_ joined, gtodd1 joined, baest joined 21:37 noganex_ joined 21:38 ashleyde1 joined, alexghacker1 joined, jepeway_ joined, daxim__ joined, FROGGS_ joined 21:39 abraxxa1 joined 21:40 colomon joined
[Coke] moritz: host08 is missing javac. 21:41
21:44 sqirrel_ left
[Coke] host08++ is a beefier box 21:44
21:45 alexghacker left, jepeway left, abraxxa left, daxim_ left, ashleydev left, FROGGS left, MilkmanDan left, noganex left, baest_ left, gtodd left, silug left, Woodi_ left, Woodi joined
[Coke] moritz: installing... 21:48
21:51 dolmen joined 21:52 cognome joined
abraxxa1 OCI (Oracle Call Interface) relies heavily on returning values from functions by reference and it seems NativeCall can't handle that 21:54
21:54 abraxxa1 is now known as abraxxa 21:57 cognome left, telex left 21:59 abraxxa left 22:02 raiph left 22:03 BenGoldberg left 22:04 telex joined 22:11 zoosha_ joined, jepeway joined, jtpalmer_ joined, hoelzro_ joined, jercos_ joined, betterworld joined, telex left 22:12 telex joined 22:14 Alina-malina left, jepeway_ left, betterwo1ld left, Woodi left, hoelzro left, jercos left, ivanshmakov left, jtpalmer left, japhb left 22:15 Alina-malina joined 22:16 Woodi joined, zoosha left 22:17 virtualsue_ joined 22:18 japhb joined, noganex joined 22:19 ivanshmakov joined 22:20 vike1 joined, charsbar___ joined 22:21 esaym joined, virtualsue_ left 22:22 xinming_ joined, ChoHag_ joined 22:25 ClarusCogitatio_ joined, dolmen left, eternaleye_ joined 22:26 davido__ joined 22:27 noganex_ left, ClarusCogitatio left, virtualsue left, yakudza left, ChoHag left, charsbar__ left, eternaleye left, vike left, bloonix left, xinming left, esaym153 left, eternaleye_ is now known as eternaleye 22:28 yakudza joined 22:29 bloonix joined
jepeway timotimo: so why a from scratch p6 implementation of Olson? as opposed to NativeCall to Olson or so? 22:33
timotimo jepeway: i didn't give it much thought actually :( 22:35
i don't know why something so basic shouldn't be ported completely
to become a native perl6 module
jepeway ah. 22:36
something along that line of reasoning lead me to think it perhaps belongs at the NQP level.
22:37 [Sno] joined
jepeway the "something so basic" line, I mean. 22:37
timotimo oh? 22:38
i would say it can be perl6 code, but utilise nqp functions and be micro-optimized 22:39
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:40
22:41 aindilis` left, aindilis joined
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:42
timotimo that may be the case 22:43
22:43 labster_ joined
timotimo did you look at what parts of rakudo are nqp and which are perl6? 22:43
jepeway nope, haven't. 22:44
timotimo ah, ok
jepeway well, less an "nqp thing" and more "a p6 thing implemented with some tz-specific primitives."
22:44 ClarusCogitatio_ left, labster left, labster_ is now known as labster
timotimo right 22:44
getting objects from nqp-world into perl6-world is sometimes a bit of a hassle 22:46
for one, nqp obects don't redive from Mu o
derive* from Mu or Any
m: use Perl6::Compiler:from<NQP>; my $a = Perl6::Compiler.new();
camelia ( no output )
timotimo oh
well, seems like the :from<NQP> approach makes that stuff work properly
22:47 Maddingu1 joined, [Sno]_ joined
jepeway so, p6 -> nqp -> Olson? or p6 -> nqp -> operating system? 22:48
22:49 spider-mario_ joined
timotimo er, i'm not sure what that's supposed to mean? 22:49
22:49 charsbar____ joined, betterwo1ld joined, simcop2387_ joined
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
22:50 noganex_ joined, Brock joined, spider-mario left
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:50
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.
timotimo :)
22:51 spider-mario_ is now known as spider-mario 22:52 gfldex_ joined, cognome joined 22:53 simcop2387 left, Maddingue left, Ven left, awwaiid left, charsbar___ left, davido__ left, FROGGS_ left, Alina-malina left, betterworld left, [Sno] left, noganex left, gfldex left, \00 left, davido___ joined
timotimo github.com/perl6/nqp/blob/master/s....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
22:53 simcop2387_ is now known as simcop2387, Alina-malina joined, [Sno]_ is now known as [Sno]
timotimo since MoarVM was built when NQP was already pretty mature, the names match up between nqp::foobar and the foobar instruction 22:53
22:53 \00 joined, FROGGS_ joined
timotimo looking for a good example in parrot ATM, a moment please 22:54
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
22:55 ClarusCogitatio joined
timotimo github.com/perl6/nqp/blob/master/s....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 Px12 left
timotimo er 22:55
i wrote that the wrong way around
er 22:56
i wrote it the *right* way around
sorry for the confusion
jepeway s'okay
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 cognome left
timotimo on parrot we have the PIRT, which is like the parrot intermediate representation tree or something 22:57
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
timotimo looking for a simple one right now 22:57
most have many, many lines of code 22:58
github.com/perl6/nqp/blob/master/s....nqp#L1950 - this is very simple, but not terribly enlightening 22:59
jepeway looking
timotimo so if you use nqp::sprintf(ARGUMENTS HERE), it gets translated into nqp::gethllsym("nqp", "sprintf")(ARGUMENTS HERE)
this one is better: github.com/perl6/nqp/blob/master/s....nqp#L2092 23:00
nqp: say(nqp::tclc("hello world"))
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)␤»
..nqp-jvm: OUTPUT«(signal )»
..nqp-moarvm: OUTPUT«Hello world␤»
timotimo o_O
nqp: say("hello")
camelia nqp-{moarvm,parrot}: OUTPUT«hello␤»
..nqp-jvm: OUTPUT«(signal )#␤»
timotimo apparently nqp-jvm is unhappy (maybe because no javac is installed?) 23:01
any questions so far?
i don't actually know where i wanted to lead you next :S 23:02
jepeway not yet. still staring.
timotimo feel free to shoot any questions my way 23:03
i'm sure this is lots of new stuff to take in
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
(yes, it is a lot)
timotimo add_core_moarop_mapping means there's an instruction inside MoarVM called "die" that we can use directly to offer nqp::die 23:05
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
it expects us to return a mast, which is why we call $qastcomp.as_mast (qastcomp just means "QAST Compiler")
jepeway ok. so why gethllsym in sprintf but none in tclc?
timotimo QAST trees are much simpler to write than MAST code
i can show you that, too 23:07
jepeway eep. i'll try to follow.
timotimo github.com/perl6/nqp/blob/master/s...f.nqp#L414 this line registers the "hll symbol" called "sprintf"
the sub printf directly above that line is the "implementation" of sprintf that every instance of nqp:: will call into at run time
"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:08
one example is the boxing types 23:09
nqp: say(nqp::boxtype_i())
camelia nqp-jvm: OUTPUT«(signal )» 23:10
..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)␤»
..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/languages/nqp/lib/QAST.moarvm:compile…»
timotimo hmm.
not quite
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.
timotimo i fear i'm explaining little things ALL OVER the place :S
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 davido___ left, ClarusCogitatio left
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:13
timotimo ah 23:15
that's a good approach 23:16
i got sucked into core development becäuse i wanted to use junctions and they were slooooow
so i got introduced to the Optimizer.nqp in rakudo
jepeway oh, so gethllsym is done for every binding into a language that isn't p6 when building an AST fragment? 23:17
23:17 ClarusCogitatio joined
jepeway getting into a lang via its optimizer doesn't strike me as LHF, nosirree. 23:17
timotimo that's not quite it
the optimizer is surprisingly comfortable to hack in; except we took like 2 minutes just to parse CORE.setting ... 23:18
on moarvm that takes about 24 seconds nowadays
jepeway ok, can you keep explaining?
timotimo sure
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"
it is not specific to the compilation stage 23:19
for example:
src/vm/moar/ModuleLoaderVMConfig.nqp
15: $file := nqp::gethllsym('perl6', 'ModuleLoader').absolute_path($file);
oh, actually, gethllsym allows you to specify the hll you're refering to
there's also getcurhllsym or something i believe 23:20
that's the one that looks at the "currently active language"
jepeway ah.
timotimo fortunately i didn't have to understand the hllsym mechanism for anything i've been coding so far
i could just regard it as a "place to stash some things"
hmm, what's next i wonder
jepeway ok. going afk for a bit. 23:21
timotimo OK 23:22
well, if you want to work on TZ stuff, your best bet may be working inside the core setting 23:27
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
23:28 raiph left
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:29
23:34 gfldex_ left 23:46 bjz left, spider-mario left
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
23:50 xragnar joined 23:51 BenGoldberg joined 23:52 cognome joined 23:56 fling left, cognome left