»ö« 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 1Check failedFAILED 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.051» | ||
FROGGS | m: say 5 +% 2 | ||
camelia | rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling /tmp/ChNtdBh_TqTwo terms in a rowat /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/Aj9xF9vv8HUndeclared routine: eval used at line 1» | ||
timotimo | m: EVAL "sub f{"o" x 1000} () { }" | ||
camelia | rakudo-moar 34cf7a: OUTPUT«===SORRY!=== Error while compiling EVAL_0Missing blockat 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_0Missing blockat 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_0Missing blockat 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_0Missing blockat 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 failedFAILED 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 failedFAILED 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/Fou1TPgtD8Two terms in a rowat /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
|