»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 kboga left 00:24 frettled joined 00:29 fgomez left 00:32 xinming_ joined 00:34 xinming left 00:36 libertyprime left, libertyprime joined 00:40 libertyprime left, libertyprime joined, tokuhiro_ joined 00:46 libertyprime left 00:47 libertyprime joined 00:49 fgomez joined 00:52 Guest35719 left 00:53 libertyprime left, libertyprime joined 01:01 scott_ joined, scott_ is now known as Guest37845 01:04 libertyprime left, libertyprime joined 01:10 libertyprime left, libertyprime joined 01:11 libertyprime left, libertyprime joined 01:13 japhb left 01:17 libertyprime left, libertyprime joined
sorear What's the no object at index stuff that everyone using Rakudo seems to have run into? 01:19
01:40 wooden left 01:43 libertyprime left, libertyprime joined 01:49 libertyprime left 01:50 itz left, benabik joined 01:52 libertyprime joined 01:53 _jaldhar joined 01:57 itz joined
diakopter sorear: quiet evening I guess 02:02
02:05 leprevost joined
sorear diakopter: here, sure 02:05
02:14 fgomez left 02:21 fgomez joined
diakopter .u 2380 02:30
phenny U+2380 INSERTION SYMBOL (⎀)
colomon n: say "≺".ord 02:31
p6eval niecza v18-2-gea3d97a: OUTPUT«8826␤»
colomon n: say "≺".ord.hex
p6eval niecza v18-2-gea3d97a: OUTPUT«Unhandled exception: Unable to resolve method hex in type Int␤ at /tmp/krg6Df4E75 line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3911 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3912 (module-CORE @ 558) ␤ at /home/p6e…
colomon n: say "≺".ord.fmt("%X") 02:32
p6eval niecza v18-2-gea3d97a: OUTPUT«227A␤»
diakopter .u 23CF
phenny U+23CF EJECT SYMBOL (⏏)
diakopter .u 263B o_O 02:33
phenny diakopter: U+0032 U+0036 U+0033 U+0042 U+0020 U+006F U+005F U+004F
diakopter .u 263B
phenny U+263B BLACK SMILING FACE (☻)
diakopter .u 26A7 02:36
phenny U+26A7 MALE WITH STROKE AND MALE AND FEMALE SIGN (⚧)
02:42 tokuhiro_ left
diakopter .u 1F72E 02:46
phenny diakopter: Sorry, no results for '1F72E'.
diakopter o_O
.u antimony
phenny diakopter: Sorry, no results for 'antimony'.
diakopter maybe a later unicode db than phenny has 02:47
.u YPOGEGRAMMENI 02:49
phenny U+037A GREEK YPOGEGRAMMENI (ͺ)
02:51 kurahaupo joined, kurahaupo left 02:53 rafl left 02:55 cbk left, cbk joined 02:56 cbk left, cbk joined, cbk left
diakopter phenny: : ask TimToady what does NFG do with combining characters 02:56
sorear diakopter: you mean naked combiners? 02:57
diakopter what's that mean
sorear just a combiner, nothing before it 02:58
diakopter oh, so a combiner is meant to combine with the preceding char?
sorear yes
diakopter in NFG does that get a synthetic codepoint
sorear and NFG treats them as a unit
diakopter ok 02:59
I noticed niecza has unidata. does it do NFG?
sorear no
too many questions about how it works 03:00
diakopter what does it use unitdata for
unidata
03:01 thou joined
sorear <:Script<Hiragana>> 03:01
03:07 mikemol left 03:17 thou left 03:25 alvis joined 03:51 tyatpi left 04:05 tyatpi joined 04:20 skids left 04:25 adu joined 04:41 crab2313 joined 04:44 dakkar joined 04:57 twinshadow joined 05:12 birdwindupbird joined 05:33 mucker joined, leprevost left 05:36 kaleem joined
moritz good morning everybody 05:58
06:00 crab2313 left
adu morning :) 06:04
06:08 am0c joined
moritz jnthn: I get maximum recursion depth exceeded when trying to compile rakudo's setting on altnfa 06:14
some stringy bootstrap issue called from BUILDALL 06:19
sorear o/ moritz 06:21
moritz \o sorear 06:22
06:33 daemon joined 06:38 kaleem left
jnthn moritz: wtf 06:47
phenny jnthn: 06 Jun 23:33Z <kboga> tell jnthn The altnfa test output you requested (nqp test & rakudo spectest) with ICU: gist.github.com/2885393
jnthn kboga++ and I managed to build it fine.
Did you have altnfa branch of NQP also?]
moritz jnthn: I only had the nqp altnfa branch; didn't notice there was on in rakudo too :/ 06:51
jnthn oh :)
phew
jnthn was worried we were gonna have to track down a reallyh weird platform bug...
moritz + 'v' <?before \d+> {} <vnum>+ % '.' ('+')? 06:54
doesn't LTM end after <?before> anyway?
jnthn ah, yes 06:55
I just moved the {} :)
But it could go away.
Nice catch.
06:55 adu left
moritz testing again with altnfa rakudo branch 06:56
06:56 kaleem joined
moritz ok, it built 07:02
07:04 mucker left
tadzik built here too, but can't test it, gotta go to $work now 07:05
07:05 am0c left
jnthn moritz: OK. Would be good to know if the S32-exceptions failure is just due to not having some commits from nom 07:07
Feel free to investigate/tweak whatever in there really though...I won't get another chance to hack on it until this evening. 07:09
I'm hopeful it can be merged by the weekend, and I can use weekend tuits on precomp bits 07:10
moritz yes, S32-exceptions passes on altnfa+newest nom 07:13
so, three single tests and one test file fail, two passing TODOs 07:15
07:15 brrt joined
jnthn moritz: gist? 07:17
moritz jnthn: perlpunks.de/paste/show/4fd05608.5ba.25b 07:19
jnthn wonders what the rx.t one is about 07:22
The Pod ones could be hard to tracfk down given that the Pod tests fail in many ways on Windows due to line ending issues 07:24
Anyway, small number of failures is encouraging. 07:25
moritz r: say so 'bazaar' ~~ /:ratchet a* /'
p6eval rakudo e75a0a: OUTPUT«===SORRY!===␤Confused␤at /tmp/0Ng2iQtOUl:1␤»
moritz r: say so 'bazaar' ~~ /:ratchet a* / 07:26
p6eval rakudo e75a0a: OUTPUT«True␤»
moritz r: say so 'bazaar' ~~ /:ratchet a* a /
p6eval rakudo e75a0a: OUTPUT«False␤»
moritz counted the tests manually to see what test 19 is, so might be off 07:27
jnthn Oddness, if that is the one... 07:29
07:33 Sweet_Lady joined
Sweet_Lady :) 07:34
moritz jnthn: fwiw reordering the pod rules to have deleted_raw before delimited means we don't parsefail S26-documentation/05-comment.t 07:36
jnthn: but it's still misparsed (for example creates Pod::Block instead of Pod::Comment)
r: say so 'xyzabcde' ~~ /( ab | abc ): de/ 07:39
p6eval rakudo e75a0a: OUTPUT«False␤»
07:39 estrai left
moritz no wonder that altnfa gives a different result there :-) 07:39
because it doesn't need to backtrack to match 'abc' right away 07:40
so, test bug in rx.t, not rakudobug
07:41 pjcj joined
dalek ast: 91498c8 | moritz++ | S05-mass/rx.t:
[rx.t] fix test that assumed non-LTM
07:42
07:42 estrai joined
dalek kudo/altnfa: 4ebbdbd | moritz++ | lib/Test.pm:
[Test] fix diag in failed isa_ok
07:43
kudo/altnfa: 4545eb9 | moritz++ | src/Perl6/Grammar.pm:
reorder pod parsing rules
moritz I think the real problem is that that those pod rules aren't written for LTM 07:44
might not be too hard to fix 07:46
tadzik++ followed masak++'s advice to not use | in a compiler that doesn't do LTM
switching some of the || to | might help
moritz experiments with it
07:49 Sweet_Lady left
dalek kudo/altnfa: 9194077 | moritz++ | src/Perl6/Grammar.pm:
try to make Pod parsing a bit more LTM friendly
08:04
moritz perlpunks.de/paste/show/4fd0609b.5bd.33d current status
08:07 gfldex left
tadzik gosh, what a crazy day 08:07
08:08 tyatpi left
moritz tadzik: hm, what's up? 08:10
tadzik went to the office today 08:12
apparently, the fact that it's a national holiday means that nobody's there, and the first person coming will trigger an alarm
which results in suprising events 08:13
moritz did the police come? 08:14
tadzik fortunately, no 08:15
I went downstairs to surrender myself to the security and called my boss and everything was fine
but I'n still a bit shakey 08:16
dalek kudo/altnfa: a85033e | moritz++ | src/Perl6/Grammar.pm:
fix "=for comment" parsing
08:18
tadzik so, what's with || and |? 08:20
moritz tadzik: basically the pod-parsing code you wrote is only compatible with rakudo-as-it-was-then, not with per-spec LTM rules 08:22
|| ends LTM
so for example you had rules like 08:23
'=' <?before END> <identifier>
and
'=' [ 'code' || 'comment' ]
erm, <!before END>, sorry
and when matched again =comment, both have an LTM prefix of just '=' 08:24
because both look-aheads and || end LTM
so =comment parses the next line as pod, not as a comment (with proper LTM, and taking the first match) 08:25
fortunately it seems that most or all of that is easy to fix
I'm just worried about stuff that doesn't have (much) test coverage 08:26
like =for END
I have all the pod tests passing locally 08:27
dalek kudo/altnfa: a1dde83 | moritz++ | src/Perl6/Grammar.pm:
LTMify pod_block:sym<abbreviated_raw>

fixes the remaining failures in S26-documentation/05-comment.t
moritz now waiting for a full spectest to finish
tadzik I see
I'll be home in a sec and will look through this 08:31
08:35 alvis` joined 08:37 alvis left 08:45 snearch joined 08:46 snearch left, snearch joined 08:47 snearch left, snearch joined, snearch left 08:48 snearch joined 08:49 snearch left
moritz tadzik: fwiw ./perl6 --doc S26-documentation.pod produces some uninitialization warnings 08:49
tadzik I'll look into that
moritz tadzik: and after the "Formatting codes" headline, "Config<-5693295032812305051>"
tadzik eek
gimme a sec to rebuild
moritz (that's altnfa branch, fwiw)
tadzik right 08:50
08:50 snearch joined
moritz hm, I get the uninitialized value warnings even in nom 08:51
and the Config<...> thing too
tadzik oh
I'll look into that anyway 08:52
and rerun emmentaler meanwhile
I guess Pod::To::anything shouldn't stringify Config blocks in any case 08:55
moritz jnthn: all tests pass for nom-merged-into altnfa 08:59
three test failures in t/qregex/01-qregex.t though 09:01
the first two might be ssimply wrong with current LTM semantics 09:04
09:12 cosimo joined
dalek kudo/altnfa: 1683397 | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Avoid stringifying Pod::Config blocks
09:13
tadzik should've been on nom probably, but that'll be the same soon anyway, I think 09:14
I see nothing suspicious about S26 now
moritz still get warnings in the conversion process 09:15
use of uninitialized value of type Any in string context in sub table2text at lib/Pod/To/Text.pm:64
tadzik oh yeah, I have those too. Investigating 09:16
moritz my $ret = $pod.config<caption> ~ "\n" // '';
should probably just be
tadzik hmm
moritz my $ret = ($pod.config<caption> // '') ~ "\n";
tadzik you may want to omit \n if there's no caption
so I'll just settle for an if I think 09:17
moritz my $ret = ''; 09:18
$ret ~= $pod.config<caption> ~ "\n" if defined $pod.config<caption>;
better?
tadzik I wrote it with an if upfront, and now checking if it's better :) 09:19
parsing takes about 30 seconds here
yep, it's clean now 09:20
and I have some spectest failures
moritz tadzik: I'll leave it to you then
tadzik gist.github.com/2887818
okay
dalek kudo/altnfa: 18d51ba | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Avoid uninitialized variable warnings
09:21
moritz tadzik: does the filestat thing pass for you on nom?
S32-exceptions/misc.t goes away when nom is merged in 09:22
dalek nda: 269d68c | tadzik++ | ext/JSON/Tiny/Grammar.pm:
Update JSON in ext
nda: cca4739 | tadzik++ | lib/Panda/Builder.pm:
Improve module compilation ordering, add some debugging output
tadzik moritz: it passes sometimes
oh, that one was unpushed too? Gah
09:24 kresike joined
kresike hello all you happy perl6 people 09:24
brrt hello kresike 09:25
moritz \o kresike, brrt
kresike hello moritz, brrt o/
09:32 mucker joined 09:37 brrt1 joined 09:38 brrt left
tadzik 52 modules ok, 49 not ok (101 total) 09:58
on altnfa
that's better than on nom, or at laest better than last results
oh, it's just that this time URI compiled well 10:00
so it's a green light from emmentaler as well
10:01 Chillance joined
moritz tadzik: will you reply to Marc on p6u? 10:05
tadzik I will
I should get myself a Star I guess 10:06
star: use Bailador; say 1
p6eval star 2012.05: OUTPUT«1␤» 10:07
tadzik hmm, it did work at some point in time
oh, that's not star in the email
10:07 PacoAir joined 10:08 mtk left
tadzik Star should have the newest bailador already installed 10:08
eiro: ping
eiro tadzik, pong
tadzik eiro: regarding your p6u email and gist.github.com/2873177
eiro: Star should be shipping the newest Bailador, did you check if it Just Works? 10:09
the only thing that comes to my mind is that Rakudo may pick the already-installed bailador over the one it's currently compiling
eiro no ...
tadzik star: use Bailador; say 1 10:10
p6eval star 2012.05: OUTPUT«1␤»
eiro > perl6 -MBailador -e1
===SORRY!===
No object at index 84
:) is it a valid test ? :)
tadzik what if you cleanup ~/.perl6 before?
yes, it is :)
eiro rm -rf ~/.perl6 ~/.panda ?
tadzik or just ~/.perl6
eiro ok 10:11
> rm -rf ~/.perl6
[12:11] mc@sigb-commun-test:/home/mc
> perl6 -MBailador -e1
===SORRY!===
Error while importing from '0': no EXPORT sub, but you provided positional argument in the 'use' statement
tadzik whoa
moritz: ?
eiro: how about 'perl6 -e "use Bailador; 1"'? 10:12
10:12 mtk joined
eiro no more error :) 10:12
tadzik *relief* ;)
eiro so -M flag doesn't work :)
tadzik It would be depressing if we shipped broken Bailador
10:13 wolverian joined
tadzik maybe it didn't work in Star, I think it does now 10:13
istr moritz++ fixing it
eiro sure! that's why i check those kind of things *before* fpw :)
tadzik so the problem we have to resolve is installing new Bailador over already installed one, somewhat
moritz I fixed it the day after the star release :/ 10:14
10:19 Guest37845 left, GlitchMr joined
eiro arf ... and there is no more star before fpw 10:20
10:21 UncleFester6 joined
eiro any kludge ? 10:21
moritz well, just don't use -M
eiro ( like a violent find |xags rm on Bailador's dir ? )
UncleFester6 tadzik: ping
moritz ah wait, we're talking about different things now, I fear
eiro moritz, i was talking about installing a new version of bailador 10:22
someone can tell me what's wrong ?
moritz, yep :)
tadzik UncleFester6: pong
eiro i was on the tadzik assertion "so the problem we have to resolve is installing new Bailador over already installed one, somewhat" 10:23
moritz eiro: well, you can always install a rakudo from git and install pand yourself
and before rm -rf ~/.perl6/lib ~/.panda/src
eiro *i* can ... my goal is to ship perl6 as a real langage at next fpw
so i want something simple
moritz well, you could also make a new star release
eiro what about:
tadzik well, we can always build an alternative star or an alternative rakudo distribution 10:24
bailakudo, or something ;P
even if it was a simple script that installs rakudo, bootstraps panda, installs bailador
UncleFester6 I ran ufo against panda, reproduced the 'no object' error, and came up with a workaround that may give insight into fixing the problem.
tadzik then recompiles modules after updating rakudo
UncleFester6: oh, great, please tell
UncleFester6 After running make on the ufo makefile for panda, I ran "panda install Acme::Meow" and got the "no object" error. 10:25
tadzik so panda installed correctly, but doesn't work? 10:26
UncleFester6 Then I ran the following little script and it went away: find blib/lib -name '*.pir' -exec touch {} \;
tadzik yeah 10:27
then you have no precompilation, and it's exactly precompilation that causes the problems
at some point in time panda was not precompiling modules, for it caused more problems than it was worth
UncleFester6 why do you say I have not pre-compilation?
tadzik oh, -exec touch 10:28
I'm running -delete with find far too often
so it's about .pirs being older than .pms
that's interesting
eiro ok ... is there a tag which is "something non broken after last star" in rakudo ?
tadzik I'll try to reproduce that with URI
eiro: the nom HEAD is usually something non-broken
eiro (is master stable enougth ? )
tadzik there's no master 10:29
we're all equal
eiro ok
haha
tadzik ;)
UncleFester6: ooh. I can reproduce that 10:30
UncleFester6 I think the ufo makefile is creating .pm and .pir with too close timestamps causing confusion ...
tadzik UncleFester6: good catch
definitely
so copying to blib is the problem 10:31
or rakudo's using > rather than >= somewhere
nope, it's >= everywhere
I'll check the timings
benabik if it's copying alphabetically it's doing pir before pm. 10:32
tadzik it's mostly random-ish I guess
look: gist.github.com/2888096 10:33
oh wait, there're no pirs there
ooooh
it's first compililing pirs *into blib*
and then copying pms *into blib*
no wonder they're newer
but sometimes just old enough for it to still work 10:34
eiro got to go ... but we have to find a solution before fpw
tadzik agreed
UncleFester6: okay, I think I can easily fix that for panda, but I lack makefile-fu to fix that for ufo 10:35
UncleFester6 That's all I have for now ... good luck ... 10:36
10:36 UncleFester6 left
tadzik yeah, that nails it: gist.github.com/2888110 10:37
toplevel .pir is new enough, but its children aren't 10:38
so, from ModuleLoader point of view, we have new enough URI when loading it, but too old dependencies, so it breaks horribly
moritz well, the ufo repo has a TODO file
somebody "just" needs to rewrite the emitting part 10:39
tadzik I think I have it
gist.github.com/2888119 should fix it 10:40
it's now copying pms first, then compiling pirs
moritz it's a good first step 10:41
tadzik that solves the second TODO part 10:42
okay, that fixed everything for me 10:43
moritz push! 10:44
10:44 not_gerd joined
tadzik nnnnnnggg 10:44
not_gerd jumps into the discussion
I think a better fix is to replace cp with cp -p in github.com/masak/ufo/blob/master/bin/ufo 10:45
tadzik pushed
dalek must've not noticed
moritz not_gerd: a better fix is to declare proper dependencies between the modules, and compile and copy them in order 10:47
that would also fix recompilation when one module is touched
not_gerd sure, but that's more effort
moritz and parallel make
not_gerd I think I'ne *never* used a double colon make rule 10:51
10:52 Chillance left 10:53 Chillance joined
tadzik hmm. Now ufo copies to blib in the right order, but what about install? 10:55
not_gerd tadzik: there's also install -p ;)
tadzik ok, that one is fine
:) 10:56
true
not_gerd I think I know how to fix it properly, btw - but I'll first find something to eat...
tadzik wonders if panda should install anything else than .pirs 10:57
and ufo, for that matter 10:59
not as a solution to the problem
moritz well, in the future rakudo might want to manage precompilation itself
dalek ast: db39919 | (Solomon Foster)++ | S03-operators/bag.t:
Add tests for msubset and msuperset.
11:08
estrai tadzik: btw, are planning to add --ignore-test-failures or anything similar? 11:12
11:12 icwiener joined
tadzik estrai: I think --notests is something on github issues 11:12
what's your use case?
oh, I think it's even implemented 11:13
see github.com/tadzik/panda/commit/1b86a1171d37e4
estrai was a while ago but it was HTTP::Client that had failing tests
tadzik --notests should work
estrai oh, lovely, thanks
11:14 am0c joined
dalek nda: 30a73ca | tadzik++ | lib/Panda/Installer.pm:
Install .pms before .pirs, add some debugging output as well
11:15
11:17 slavik1 left 11:19 slavik1 joined 11:20 am0c left 11:24 JimmyZ joined 11:28 icwiener left 11:31 [hds] joined 11:32 am0c joined
lumi_ Wouldn't it be simpler to make $(BLIB)/%.pir :: $(BLIB)/%.pm ? 11:32
colomon ping moritz 11:33
not_gerd lumi_: you need to discern between %.pm and %.pm6 11:34
I'm on it ;)
colomon is trying to figure out what the RT 69178 code in repeat.t actually means...
lumi_ not_gerd: OK :) My make-fu is pretty weak 11:37
not_gerd: Are you trying to do the dependencies as well?
not_gerd lumi_: yes, I'm claning up the whole thing (:= instead of =, : instead of ::, proper dependencies,...) 11:40
^cleaning
GlitchMr How can I insert Unicode character by name in Perl 6? 11:41
11:42 kboga joined
kboga hi #perl6 11:42
11:45 mucker left 11:47 mucker joined
lumi_ GlitchMr: "\c[name]" ? 11:48
11:50 cosimo left 11:52 cosimo joined
GlitchMr Also, is it possible to have something like s/a/b/r in Perl 6? 11:54
So instead of replacing variable, substitution is returned? 11:55
11:55 icwiener joined
felher n: my $x = "aa"; say $x.subst(/./, "blar"); say $x; 11:56
p6eval niecza v18-2-gea3d97a: OUTPUT«blara␤aa␤»
felher @ GlitchMr 11:57
I have no idea if there is a s/x/y form for that :)
dalek ecza: 556574c | (Solomon Foster)++ | lib/CORE.setting:
Add msubset and msuperset operators, clean up a glitch in infix:<(&)>.
12:02
GlitchMr paste.uk.to/f3f21d03 12:04
Is there any way to avoid this niecza warning?
(I guess I'm doing something improperly or somethinG)
(ok, dealt with it by removing multi) 12:05
12:07 am0c left
not_gerd what's a good test case for ufo? 12:14
tadzik URI for example
12:15 thou joined, snearch left 12:18 tokuhiro_ joined 12:19 grondilu joined, not_gerd left
grondilu Is it possible to have polymorphism on the return value? 12:19
p6: multi foo returns Int { 42 }; multi foo returns Str { "hello" }; say ~foo 12:20
p6eval niecza v18-2-gea3d97a: OUTPUT«Unhandled exception: Cannot call &foo; none of these signatures match:␤ Any␤ Any␤ at /tmp/xZIJeR32pj line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3911 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3912 (module-CO…
..pugs: OUTPUT«42␤»
..rakudo e75a0a: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:()␤:()␤␤ in block <anon> at /tmp/DOzvSSG5N6:1␤␤»
12:20 crab2313 joined
grondilu see what I mean? 12:21
GlitchMr Unhandled exception: Niecza.Serialization.ThawException: dated sources
what?
grondilu, "hello" but 42
nr: sub foo { "hello" but 42 }; say ~foo; say +foo; 12:22
p6eval rakudo e75a0a: OUTPUT«hello␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏hello' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:9415␤ in sub say at src/gen/CORE.setting:6962␤ in block <anon> at /tmp/vs9i6_wvSW:1␤␤»
..niecza v18-2-gea3d97a: OUTPUT«hello␤Unhandled exception: Cannot parse number: hello␤ at /home/p6eval/niecza/lib/CORE.setting line 1402 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3474 (ANON @ 11) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3476 (NumSyntax.str2num @ 5)…
GlitchMr nr: sub foo { 42 but "hello" }; say ~foo; say +foo;
p6eval rakudo e75a0a, niecza v18-2-gea3d97a: OUTPUT«hello␤hello␤»
GlitchMr ...
ok... it won't work
grondilu Or more basically how do I know the context of the call inside a subroutine? 12:23
12:32 am0c joined 12:39 mucker left
moritz grondilu: you can't dispatch by return type 12:39
r: multi f returns Str { 's' }; multi f returns Int { 1 }; say &f.candidates.grep({.returns === Int}).() 12:41
p6eval rakudo e75a0a: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'List'␤ in <anon> at src/gen/BOOTSTRAP.pm:811␤ in any <anon> at src/gen/BOOTSTRAP.pm:807␤ in block <anon> at /tmp/4otlsC07iP:1␤␤»
moritz r: multi f returns Str { 's' }; multi f returns Int { 1 }; say &f.candidates.grep({.returns === Int}).[0]()
p6eval rakudo e75a0a: OUTPUT«1␤»
moritz r: multi f returns Str { 's' }; multi f returns Int { 1 }; say &f.candidates.grep({.returns === Str}).[0]()
p6eval rakudo e75a0a: OUTPUT«s␤»
dalek osystem: ae67ee7 | GlitchMr++ | META.list:
Add Acme::Addslashes to module list
12:43
pmichaud good morning, #perl6
felher o/ 12:44
moritz good am, pm 12:45
crab2313 o/
tadzik hehe, Acme::Addslashes 12:50
hello pmichaud
12:53 not_gerd joined
not_gerd tadzik: github.com/masak/ufo/pull/3 12:54
GlitchMr Proper port of addslashes() would be possible, but addslashes() in PHP is worst idea ever.
It's useful for nothing.
tadzik it's quite funny 12:55
this unicode slash is actually overwriting all the characters, yes?
GlitchMr Yes
It's port of Perl 5 version of Acme::Addslashes
tadzik safe enough ;)
GlitchMr In PHP, preg_replace('//e') uses addslashes() causing security issues.
12:56 dakkar left
tadzik not_gerd: I'm not quite fluent in Makefiles, so I'd rather leave the review to someone who knows what it does :) 12:56
GlitchMr It's so bad that they want to deprecate it - wiki.php.net/rfc/remove_preg_repla...l_modifier
12:56 kaleem left
GlitchMr It escapes \, ' and ". The problem is that with single quotes it escapes " without reason. With double quotes, your application is hacked as it doesn't escape $. 12:57
[Coke] yawns. 12:58
not_gerd also, I'm not sure that it's really necesary to copy the *.pm files to blib 12:59
and I believe the lib6 versions are missing from P6LIB 13:00
I can fix that, but I'd like to get some input first
GlitchMr I should implement magic_quotes_gpc in Acme::Addslashes which would apply addslashes() on every @ARGV value... 13:02
not_gerd phenny: tell masak re ufo: I don't think it's necessary to copy the *.pm/*.pm6 files to blib/; also, lib6/ is missing from P6LIB 13:03
phenny not_gerd: I'll pass that on when masak is around.
moritz not_gerd: what exactly does github.com/masak/ufo/pull/3 do? 13:06
13:06 grondilu left 13:11 Patterner left 13:13 Psyche^ joined, Psyche^ is now known as Patterner 13:17 mikemol joined
felher just looked at the new S32::Exceptions. 13:23
moritz++ #wow.
frettled moritz++ indeed, that's quite a bit of work. 13:26
jnthn So, aside from the couple of tests in nqp's t/qregex, is there anything that blocks merging altnfa? 13:30
13:31 skids joined
tadzik not that I know of 13:31
emmentaler has a clean run
well, as clean as on nom
13:34 am0c left
jnthn OK, great 13:34
13:35 sergot joined
jnthn What's the latest on the precompilation? 13:35
sergot hi o/
jnthn I only had time to sorta scan the backlog but it looked like progress...
tadzik jnthn: it seems that we've nailed the issue, both with ufo and panda 13:37
I'll show you the gist of it
jnthn: gist.github.com/2888110
URI.pir is copied after URI.pm, but for the rest of them the .pm is newer
jnthn youch
that'd blow it
tadzik so it starts loading precompiled URI, but then fails for it cannot find a valid precompiled deps
ufo and panda are now both fixed
jnthn I'm still going to put something into Rakudo to make it complain in a more helpful way though 13:38
dang, I'd been racking my branes trying to figure out where on earth I could have a uninitialized bit of memory or something that would cause non-determinism...
tadzik :|
UncleFester6++ for finding that one
jnthn UncleFester6++ indeed. and I guess tadzik++ and moritz++ for fixing the issue; sorry if I missed anyone else 13:39
jnthn gets back to the teaching
13:51 tyatpi joined 13:53 bluescreen10 joined 14:07 not_gerd left 14:08 betterworld left
TimToady moritz: negative lookaheads are not supposed to end LTM 14:24
pmichaud I'm getting close to merging the new .map code; just trying to nail down a couple of things with .tree first 14:29
14:30 mtk left 14:31 kresike left 14:32 mtk joined, mtk left 14:37 mtk joined 14:41 mtk left 14:43 crab2313 left
felher pmichaud: if i may ask: What is the new .map code good for? Speed? New features? ... 14:43
pmichaud bugfixes and speed
felher pmichaud: okay, thnx :)
pmichaud++
pmichaud mostly bugfixes dealing with laziness. but initial testing also shows it to be about 20% faster than the previous code, at least for 1..BIGNUM loops. 14:44
should be faster for most everything dealing with iteration and lists
felher cool :) 14:45
14:46 betterworld joined 14:48 mtk joined
TimToady pmichaud: does gather/take cache the current gather target, or does take run up the stack every time looking? 14:49
pmichaud I don't quite understand the question.
moritz I guess TimToady imagines a different control flow than what is actually implemented 14:50
pmichaud take throws an exception that is then caught by the handler installed by the gather
TimToady hmm 14:51
pmichaud the handler then does the right thing with the value, and resumes after the exception when we need another one
TimToady okay, so the efficiency of a deeply nested take will depend on exceptions currently 14:52
pmichaud it's about the same level of overhead as a 'return' 14:53
or 'next' / 'last'
moritz would it be possible for the list iterator to pass a return continuation which is invoked by &take? 14:54
TimToady if you think of the handler more as a buffer manager, then it could be passed down to the take and called directly
14:54 tokuhiro_ left
TimToady and then buffer policy could potentially flow downward too 14:55
pmichaud you still have to suspend execution and resume later, though.
TimToady sure, but I think of that as filling a buffer, like a pipe
so one could have a buffer with a single entry, or many 14:56
PerlJam notices that #perl6 is speaking some other language that superficially looks like english again ;)
sorear GlitchMr: all compile time warnings can be suppressed with #OK pattern 14:57
like #OK not used
pmichaud TimToady: I'll think about it some more. What you're saying doesn't really fit my mental picture at the moment. 14:59
sorear good * #perl6
pmichaud and I'm really wanting to get this other .map stuff merged into trunk; I feel like I've been working on it too long already.
PerlJam TimToady: your description of gather/take sounds like Perl would need to carry this "buffer manager" thing around in every dynamic scope reachable from inside the gather whether it was used or not just in case there's a take down there some where. 15:00
moritz +1 to merging when without regressions
pmichaud yeah, .tree is the only thing I have left to handle.
and the existing .tree code is a little suboptimal
PerlJam TimToady: or ... it seems like "control" is coming from the wrong direction. 15:01
moritz pmichaud: that's not surprising, considering that I barely understood lists when I did it :-) 15:02
pmichaud moritz: yeah; and tree should be much simpler with the new .map stuff anyway 15:03
TimToady well, my original idea was simply that there may be an optimization that keeps from having to traverse the dynamic stack on every take, is all
an exception-based model seems to preclude that optmization 15:04
pmichaud at some point the block containing the take has to be suspended and resumed. The only way I know to do that at the moment is with an exception.
15:05 kaare_ joined
jnthn Teaching done for the day :) 15:06
pmichaud: I'm gonna merge altnfa this evening, unless you have any objects?
(like..."I want to merge my branch first! :P") 15:07
er, objections :)
There's no spectest regressions and no CORE.setting changes.
pmichaud jnthn: no objections; I just hope it doesn't cause conflicts with my branches. My time is really not my own these days; I'm having to work on .map stuff in 20-30 minute packets. 15:08
jnthn pmichaud: I find that very unlikely
moritz well, all the rakudo changes are in Grammar.pm, iirc
jnthn Right
pmichaud anything in Actions.pm ?
moritz with some mostly unrelated small matches in Test.pm and Pod::To::Text
jnthn And the NQP ones are all in nqp.ops, QRegex, etc.
pmichaud: Rakudo's Actions.pm?
No.
pmichaud well, my NQP changes are in nqp.ops and nqp pmcs
jnthn pmichaud: Yeah, but in nqp.ops I only changed the NFA runner. 15:09
pmichaud: I guess you did not touch that?
pmichaud any noticable performance improvements from altnfa, ooc?
(I didn't touch the nfa runner. I don't expect merge conflicts with altnfa, no.)
jnthn pmichaud: Not had chance to measure...
15:09 [hds] left
pmichaud jnthn: okay, was just curious. 15:09
jnthn It felt about the same.
pmichaud anyway, don't hold the altnfa branch on my account. 15:10
jnthn I'll measure it more properly tomorrow
15:10 adu joined
jnthn Once I'm home with my normal dev machine where I know the original timings 15:10
I know I can optimize things a bit more. I suspect it's about break-even at the moment.
It trims more branches, but it may make alternations a bit more costly at present.
Mostly due to invocation overhead. 15:11
Anyways, back to hotel, bbl
pmichaud I'm still seeing nice performance improvements in .map, and there should be a lot more with this latest set of changes. I've been able to eliminate a number of intermediate Parcels and ListIters when doing iterations
jnthn Nice!
pmichaud++
pmichaud and then when we get the QRPA stuff in place, it should really be a lot faster for iteration of all types
s/lot//
jnthn \o/ 15:12
really hotel o
o/
15:12 gfldex joined 15:13 spider-mario joined
pmichaud TimToady: do you have several instances where takes are deeply nested, ooc? 15:18
15:19 tyatpi left 15:22 birdwindupbird left
pmichaud anyway, I can kinda envision a model where when we need 100 elements from a gather/take, we only throw an exception after obtaining the 100th, instead of throwing 100 exceptions 15:23
15:26 cbk joined
TimToady well, tree flatteners will recurse to the depth of the tree 15:28
pmichaud okay, that's a very good example 15:29
TimToady for good parallelism, I'd hope for a queue that can be drained on the front even while adding things to the end of the queue
pmichaud we don't have good threading in parrot, though.
TimToady is just thinking ahead
pmichaud yes, when we get to something that can really be more parallel, it would work a lot more like a pipe. 15:30
even in the case of tree flatteners, though, I kind of expect the take to have to look up the stack for a dynamic var or something
I suppose we could compile-time detect the existence of take and short-circuit that lookup.... but compile-time on that feels wrong. 15:31
TimToady well, readonly dynamic vars can propagate downward in general as an optimization
like ENV gets passed to processes
and rw dynvars can at least pass down a reference to the actual location 15:32
pmichaud making dynvars propagate downward sounds like a general optimization to be done, maybe.
yes, if our dynvars automatically propogated downward, it'd be simpler to avoid some lookups. 15:33
*avoid some looking up the stack
TimToady otoh, doing that on every call is a problem, so it'd be more like a caching on first use
pmichaud right, I was thinking "on every call" might be icky. getting a dynvar lookup to cache might be very interesting, though 15:34
TimToady and maybe only when we know there's a heavy loop
pmichaud could perhaps build a dynvar cache into the lexpad
dalek ast: b59ac72 | (Solomon Foster)++ | S04-statements/repeat.t:
Fudge for Niecza.
15:35
pmichaud anyway, 100 dynvar lookups would definitely be cheaper than 100 exception throw/resumes, so I'll still look into that optimization at some point.
TimToady not meaning to distract you (much) :)
15:37 JimmyZ left
colomon n: { a => 4, b => 2, c => 3 } !≼ { a => 4, b => 2 } 15:38
p6eval niecza v18-5-g556574c: ( no output )
colomon n: say { a => 4, b => 2, c => 3 } !≼ { a => 4, b => 2 }
p6eval niecza v18-5-g556574c: OUTPUT«True␤»
adu I would like to observe 15:43
it seems like Parrot is the life-blood of Rakudo 15:44
15:44 JimmyZ joined
pmichaud adu: not sure what you mean by that 15:44
TimToady well, if you consider Rakudo to be a kind of mosquito, I guess
but a mosquito could bite something else 15:45
adu I'm trying to contrast with a trend I've seen here
TimToady or maybe Rakudo is a vampire...
tadzik well, Rakudo is not something I see in a mirror 15:46
adu lol
TimToady but offhand, I'd say it's more like Rakudo is the lifeblood of Parrot 15:47
adu hmm
the trend that Parrot developers take a long time to incorporate the spec into Parrot, while it ends up in Rakudo much sooner
so you're saying if it wasn't for Rakudo, then Parrot would die? 15:48
TimToady I suspect so
adu interesting
my analogy just exploded
sorear pmichaud: isn't take often lexical?
pmichaud sorear: lexotic, yes.
at least, I think it was that way at one time. 15:49
TimToady lexotic is a way to *identify* the proper gather, but the mechanism is otherwise identical
either a take is lexotic, and knows the identity of its gather, or it's dynamic, and uses the first dynamically surrounding gather 15:50
but even if lexotic, the gather must be looked up dynamically 15:51
the identity just says where to stop that dynamic lookup
instead of the first gather 15:52
(the lexotic must be looked up dynamically because a given gather might occur multiple times in the dynamic context due to recursion) 15:53
looking at it the other way around, all takes look for a gather that matches, but a non-lexotic take will wildcard to the first non-lexotic gather 15:54
or another way to say that is all non-lexotic gather/take share the same identity
sorear in niecza once the proper gather is identified, switching control flow is constant time 15:55
PerlJam TimToady: is there a way for a take to target a specific gather? (say if there was a gather within a gather within a gather?
)
sorear (but... finding the gather requires a stalk walk since lexoticity isn't implemented for this)
TimToady sorear: but do you have to re-identify on the next "take"
pmichaud afk
sorear TimToady: once it's properly lexical, the only identification required will be a lexical fetch 15:56
TimToady okay, as long as re-entering the gather produces a different target for the lexotic take 15:57
cognominal_ tadzik, I have problem build panda gist.github.com/2889638
building Panda, it complains wrongly about changes in my git clone.
TimToady wanders off to fight with the Indian Visa website yet again... 15:58
tadzik cognominal_: rm -rf ~/.panda/src/panda
cognominal_ ok, thx 15:59
tadzik I wonder if it's a good idea to keep those repos
it tends to cause such problems from time to time
cognominal_ now you say it, I remember I have seen it before 16:00
16:01 brrt1 left 16:02 thelazydeveloper joined, tyatpi joined
PerlJam really needs to play with Perl 6 more so that it doesn't seem like such a strange animal sometimes 16:03
16:06 JimmyZ left 16:09 icwiener left
moritz [Coke]: perlgeek.de/blog-en/perl-6/2012-loc...tions.html # to answer your question about l10n hooks 16:09
cognominal_ installing SVG::Plot gives Virtual call %.run-modes may not be used on partially constructed objects 16:12
PerlJam moritz++
tadzik cognominal_: are you sure your SVG::Plot is up-to-date? 16:13
felher moritz++
moritz cognominal_: sounds more like CGI::Application to me than SVG::Plot
felher moritz: ... of almost all lookups in Perl6, once [can?] "override"...
moritz at least I wouldn't know why SVG::Plot needs run modes
felher *one
sorear moritz++ blogging 16:14
cognominal_ that was a transitive install, let me check where it failed?
moritz felher: should be "one can override" 16:15
felher: fixing
felher++
felher :)
16:17 pupoque joined
moritz cognominal_: I've fixed CGI::Application now 16:18
cognominal_: or to be precise, only the tests needed fixing
cognominal_ ok, thx 16:19
[Coke] moritz++ #l10n 16:26
16:28 timonator left
moritz what's the difference between = and := in Makefiles? 16:35
sorear info make Flavors 16:36
if you have GNU make documentation available
moritz that shows me the same as 'man make' 16:38
which doesn't explain the Makefile format at all
sorear www.gnu.org/software/make/manual/ht...ml#Flavors 16:39
apparently, you don't have the GNU make documentation installed.
moritz thakns 16:40
sorear probably because of the Debian GFDL kerfluffle... it's in non-free/dc
/doc
moritz -O-fun
gist.github.com/2890020 # this is how (IMHO) generated Makefiles by ufo should look like 16:53
Juerd s/how/what/ 16:55
Or s/ like//
[Coke] moritz: $(shell) # bad. 16:56
moritz [Coke]: that line is a mathom and can go away
[Coke] also "cp"...
do we need extutils? 16:57
moritz maybe
or we can generate a different Makefile on windows
[Coke] Just don't want jnthn to be left out.
moritz I'm pretty sure that with my proposed makefiles he's less left out than before 16:58
[Coke] I think ExtUtils::Command would be slightly better, as it's then reusable.
moritz because it doesn't rely on gnu make specific :=
[Coke] (right, I'm not comparing this to the original, i'm sure it's a step up.)
moritz I have now factored it out into a $(CP) variable, that way it'll be easier to change toward something like EU::Command 16:59
[Coke] ah, yes, excellent.
Do we want a different name in p6?
(for the module?) 17:00
[Coke] also needs to make a redis client module.
moritz no idea; I'm not yet ready to shave the yak that isn't born yet :-)
jnthn uh-oh, I'm being mentioned... :) 17:03
[Coke] still needs (to generate?) a document that says "if you are developing a new module, use this infrastructure. If you're trying to install one, use this." 17:05
jnthn oh...makefile stuff 17:08
Well, we probably don't want to depend on a Perl 5 ExtUtils, but invoking a Perl 6 to do a copy operation portably seems fine. 17:09
moritz well yes, we were talking about a p6 version of ExtUtils
jnthn oh! :) 17:10
wtf
er
wfm
...gah, that's the second time I've typo'd wfm as wtf
I'm pretty sure ufo doens't work out on Windows today 17:11
So anything that makes it more working is an improvement.
moritz r: class Module { }; say Module.new.perl 17:13
p6eval rakudo e75a0a: OUTPUT«Module.new()␤»
17:20 NamelessTee joined
[Coke] I will hack on EU:C unless someone beats me to it. 17:23
moritz ++[Coke]
[Coke] (and I can't start for at least another 6 hours or so. ;)
moritz I'm hacking on ufo right now, and pland to keep doing that for a while
tadzik [Coke]: did you see Shell::Command 17:25
?
[Coke] nope. 17:26
"my work here is done"
tadzik :)
it's faaar from complete
[Coke] it's not on modules.perl6.org/
so, no, missed it completely.
tadzik it's hidden in File::Tools, which may be less than awesome
see github.com/tadzik/perl6-File-Tools...Command.pm
kboga p6: my grammar G { method s_m(*%n) { say(%n<a b c>) }; token TOP { <s_m(|{:a<1>, :c<3>}, :b<2>)> }}; G.s_m(|{:a<1>, :c<3>}, :b<2>); G.parse(''); 17:28
p6eval pugs: OUTPUT«123␤*** No such method in class G: "&parse"␤ at /tmp/q7lAOWY5vc line 1, column 129-140␤»
..niecza v18-5-g556574c: OUTPUT«1 2 3␤1 2 3␤Unhandled exception: Submatch to be bound to s_m returned a Bool instead of a Cursor, violating the submatch protocol.␤ at /tmp/PG5bnNm6S2 line 1 (G.TOP @ 11) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2884 (Grammar.parse @ 5) ␤ at /tmp/P…
..rakudo e75a0a: OUTPUT«1 2 3␤Too many positional parameters passed; got 2 but expected 1␤ in method s_m at /tmp/ztcgqnx4pa:1␤ in regex TOP at /tmp/ztcgqnx4pa:1␤ in method parse at src/gen/CORE.setting:9647␤ in block <anon> at /tmp/ztcgqnx4pa:1␤␤»
kboga rakudo doesn't seem to do slurpy subrules? 17:29
moritz kboga: it looks like the call itself worked fine 17:30
[Coke] tadzik: ok. Danke.
moritz kboga: but the return value confuses rakudo
kboga yes, but there is a difference between the output in rakudo & niecza
moritz kboga: niecza's error message is much better here
kboga I'm not sure, could it be that rakudo is not slurping there? 17:31
moritz oh
kboga as it thinks its getting 2 arguments
parameters*
moritz r: sub f(*%h) { say %h.perl }; f |{:a(1), :b(2)}, :c(3)
p6eval rakudo e75a0a: OUTPUT«("a" => 1, "b" => 2, "c" => 3).hash␤»
moritz right, it seems to not flatten everything into named arguments from within rules 17:32
kboga uhu, i noticed that in nqp
same thing happens there
Should I submit a bug report? 17:34
moritz yes please 17:35
jnthn argh. A crash...has corrupted my Rakudo git repo :/ 17:36
jnthn wonders if there's a way to recover from that short of re-cloning
tadzik git fsck? 17:37
jnthn git fsck just emits: 17:38
fatal: loose object 0f0d68f87227add51fca1ad2b39cba809829c0bf (stored in .git/obj
ects/0f/0d68f87227add51fca1ad2b39cba809829c0bf) is corrupt
tadzik :/ 17:39
sorear jnthn: Delete it 17:41
?
moritz wow, I've never had something like that
jnthn sorear: Yeah, then same happens with another object :/
yeha, it's pretty fucked
ergh...chkdsk reports disk corruption too 17:43
Yeah, OK. New laptop time is gonna be soon.
Also, altnfa merge is gonna be after dinner... 17:44
kboga nqp: my grammar G { method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) }; token TOP { <s_m(|hash(:a<1>, :c<3>), :b<2>)> }}; G.s_m(|hash(:a<1>, :c<3>), :b<2>); G.parse('');
p6eval nqp: OUTPUT«123␤too many positional arguments: 2 passed, 1 expected␤current instr.: 's_m' pc 375 ((file unknown):139800375) (/tmp/y44rxr6gb3:1)␤»
kboga p6: my grammar G { method s_m(*%n) { say(%n<a>, %n<b>, %n<c>) }; token TOP { <s_m(|hash(:a<1>, :c<3>), :b<2>)> }}; G.s_m(|hash(:a<1>, :c<3>), :b<2>); G.parse('');
p6eval rakudo e75a0a: OUTPUT«123␤Too many positional parameters passed; got 2 but expected 1␤ in method s_m at /tmp/8T2uwgsfFl:1␤ in regex TOP at /tmp/8T2uwgsfFl:1␤ in method parse at src/gen/CORE.setting:9647␤ in block <anon> at /tmp/8T2uwgsfFl:1␤␤»
..pugs: OUTPUT«123␤*** No such method in class G: "&parse"␤ at /tmp/bXbKwkd2nI line 1, column 150-161␤»
..niecza v18-5-g556574c: OUTPUT«123␤123␤Unhandled exception: Submatch to be bound to s_m returned a Bool instead of a Cursor, violating the submatch protocol.␤ at /tmp/7_PoQBaBXR line 1 (G.TOP @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2884 (Grammar.parse @ 5) ␤ at /tmp/7_PoQB…
kboga ok, this runs on both :)
now to find out how to submit a bug report 17:45
moritz for rakudo, send an email to [email@hidden.address]
for nqp, github.com/perl6/nqp/issues/new 17:46
kboga thanks moritz++ 17:47
I was attempting to change HLL::Grammar's "method O" to take a slurpy hash instead of taking a string and it works now, with an extra call to hash(), to avoid the flattening bug. 17:50
as in STD & niecza 17:51
TimToady if we're gonna have ≼ for sets/bags, we should have it for all before/after, methinks
unless the semantics differ
jnthn kboga: Such a patch will only make it in after some benchmarking to see it's impact.
kboga: Which I expect may not be good.
kboga ofcourse :)
jnthn NQP needs constant hashes first, i think. 17:52
kboga but its fun to try nevertheless
jnthn Aye. In general, all of the PIR to NQP stuff is good to do, but probably an NQP optimizer has to come before some of it. And that wants QAST and NQP to get native lexicals. 17:53
17:53 alester joined
kboga yea, that'd be awesome 17:53
TimToady colomon: the use of ≼ for bags seems to preclude its us for general before/after comparison 17:55
*use
kboga I believe that my pull request (Q:PIR to nqp) slows parsing the core setting by about 3% on average
rakudo's core setting* 17:56
jnthn Included EXPR being translated to NQP?
kboga yep
jnthn OK, that's not quite so bad as I'd imagined.
moritz that's surprisingly little
jnthn Yeah. 17:57
I was expecting towards 10% or so
OK, I'm hungry...gonna go eat, then I'll deal with the last couple of nqp/altnfa tests that need some attention, then merge :)
bbi1h
TimToady colomon: in other words, it seems wrongish to me to turn ≼ into an Any,Any coercive operator 17:58
n: say 'a' ≼ 'b' 17:59
p6eval niecza v18-5-g556574c: OUTPUT«False␤»
sorear what's that new operator?
TimToady unless it is the case that mathmeticians use ≼ only for bags... 18:00
kboga gist.github.com/2890446 (a few speed comparisons concerning the Q:PIR to nqp branch)
TimToady sorear: irclog.perlgeek.de/perl6/2012-06-07#i_5694400 18:01
apparently being used for "bag subset"
kboga (The last 2 Q:PIR to nqp ones were after that last cleanup commit) 18:02
[Coke] .phenny ≼
phenny: .u ≼
[Coke] sighs.
sorear .u ≼
phenny U+227C PRECEDES OR EQUAL TO (≼)
[Coke] phenny does not have "help" for those times when I forgot how to talk to him. 18:03
ah, it's just a box here. Danke.
moritz [Coke]: wiki.perl6.org/phenny 18:04
[Coke] aloha, phenny docs? 18:06
clearly the answer is write my own bot. ;)
PerlJam in Perl 6 18:09
GlitchMr nr: multi sub infix:«<<»(TextWriter $file, Str $text) is equiv(&infix:«~<») { $file.print($text); return $file; }; $*OUT << "Hello, world!" 18:10
p6eval niecza v18-5-g556574c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'infix:«~<»' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at…
..rakudo e75a0a: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 2, near " $file, St"␤»
GlitchMr I know that problem is with "is equiv(&infix:«~<»)"
What am I doing wrong?
moritz rakudo doesn't do 'is equiv' 18:11
and niecza doesn't know about ~<
n: say 1 ~< 2
p6eval niecza v18-5-g556574c: OUTPUT«Unhandled exception: Buffer bitops NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 1402 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3299 (infix:<~<> @ 4) ␤ at /tmp/Ze3KveBXfV line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting…
sorear moritz: it has ~<, it just contains a single die statement 18:12
moritz: so I'm not really sure what's going wrong 18:13
moritz n: &infix:«~>»
p6eval niecza v18-5-g556574c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'infix:«~>»' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at…
sorear n: &infix:<< ~< >>
p6eval niecza v18-5-g556574c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'infix:<< ~< >>' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤…
sorear I guess it's not being properly unescaped here 18:14
GlitchMr: this warrants a bug report
pmichaud back for a bit 18:15
sorear o/ pmichaud
GlitchMr Just wondering, &infix:<*> should be identical to &infix:«*»? 18:16
sorear Yes 18:18
n: &infix:«*»
p6eval niecza v18-5-g556574c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'infix:«*»' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at …
colomon TimToady: objection to the operator name itself, or just to making it Any, Any? 18:19
GlitchMr github.com/sorear/niecza/issues/131
Is it good enough bug report? 18:20
colomon std: reduce(&infix:<<*>>, 1, 3, 5)
p6eval std f179a1b: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'infix:<<*>>' used at line 1␤Check failed␤FAILED 00:00 45m␤» 18:21
colomon std: reduce(&infix:<*>, 1, 3, 5)
p6eval std f179a1b: OUTPUT«ok 00:00 45m␤»
18:21 geekosaur left, shachaf left, shachaf joined
[Coke] wiki.perl6.org. click on Login. Enter login info. ... still says "Login / Get an account" 18:24
colomon GlitchMr: I reckon so. 18:25
[Coke] edit a page. preview -ok. save. no errors. view. ... edit not visible.
18:26 geekosaur joined
moritz [Coke]: that's weird 18:26
[Coke] if I enter the wrong userid/password, it doesn't give me an error, but prompts me to login again. correct information, I leave the login screen. 18:27
too eager caching?
moritz maybe
18:27 shachaf left
sorear GlitchMr: good enough yeah 18:28
18:28 shachaf joined
[Coke] AHA 18:28
moritz: you MUST enter a description. however, there is NO error diagnostic to tell you this.
moritz [Coke]: eeks 18:29
[Coke] what fonts are people using for hacking on perl6? I tend to see a lot of unrendered characters go through here.
also: ttp://wiki.perl6.org/fonts
pmichaud Coke: I'm using urxvt with "Monospace" font (more) 18:30
sorear the other day I told someone in another channel that I had no Kannada fonts and they responded by telling me how to configure utf-8 in irssi and screen
pmichaud That appears to be a standard font shipped with kubuntu.
sorear was quite frustrating
18:31 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 18:32 shachaf left
colomon GlitchMr: are there tests for that in roast? 18:32
18:33 shachaf joined
pmichaud [Coke]: not sure how to find out how Kubuntu is mapping "Monospace" to an actual font name or font file, though. 18:34
moritz I've pushed my changes to branch 'less-smart-more-correct' in ufo 18:35
it works here, in that I can parallel-make JSON::Tiny, and install it
todo: installing scripts
pmichaud [Coke]: it appears to be "Droid Sans Mono" on my system; istr that I've also had good success with "Deja Vu Sans Mono" in the past. Hope this helps. 18:36
the relevant line from my .Xdefaults: URxvt*font: xft:Monospace:pixelsize=12:antialias=true 18:37
[Coke] pmichaud: not me, since I'm not on kubuntu, but will post those to the wiki. 18:38
pmichaud yes, I just saw the page. Good post :)
spider-mario I use DejaVu fonts, yeah 18:40
Sans Mono for programming
and Sans for IRC
[Coke] spider-mario: os? 18:41
spider-mario arch linux 18:42
and KDE SC
[Coke] SC?
spider-mario that’s what they call the software they produce now 18:43
KDE refers to the community
KDE SC (Software Compilation) is the software they create
moritz Serialization Context! 18:44
ok, my ufo branch now also handles installing scripts
spider-mario it includes Plasma Workspaces, KDE Framework (soon to be renamed to KDE Libraries), KDE Applications
moritz please test it!
spider-mario I meant KDE Platform, not Framework
and it will be renamed to KDE Frameworks 18:45
18:52 Telgalizer joined, cognominal_ left 18:53 cognominal joined
dalek ecza: e52d6c3 | (Solomon Foster)++ | lib/CORE.setting:
Dial back msubset and msuperset to only work on Baggy objects.
18:58
18:59 simcop2387 left
dalek kudo/map2: 2125adb | pmichaud++ | src/core/ (2 files):
Add the new MapIter implementation; faster .map, lazier.
19:00
rakudo/map2: 099f360 | pmichaud++ | src/ (2 files):
rakudo/map2: Fix FIRST phasers to work again.
19:00 dalek left
pmichaud sorry, dalek. 19:00
tadzik :)
19:00 dalek joined, ChanServ sets mode: +v dalek 19:02 simcop2387 joined
dalek p: 25c0b53 | pmichaud++ | / (3 files):
Add initial version of QRPA, a quicker ResizablePMCArray implementation.
19:02
p: 27720d1 | pmichaud++ | src/PAST/NQP.pir:
Add (temporary) nqp::qlist() to construct QRPA instead of RPA lists.
p: 98f6a4e | pmichaud++ | / (4 files):
Add nqp::islist().
p: fad75ad | pmichaud++ | src/pmc/qrpa.pmc:
QRPA: Update comment in QRPA.set_integer_native to be a little more accurate.
p: b4d08d1 | pmichaud++ | / (6 files):
Merge branch 'qrpa'
colomon faster and lazier, yay! 19:03
GlitchMr nr: print 1 / 3 19:07
p6eval niecza v18-6-ge52d6c3: OUTPUT«0.33333333333333331»
..rakudo e75a0a: OUTPUT«0.333333»
GlitchMr 1?
19:07 Telgalizer left
pmichaud nr: print (1 / 3).perl 19:08
p6eval rakudo e75a0a: OUTPUT«1/3»
..niecza v18-6-ge52d6c3: OUTPUT«<1/3>»
GlitchMr Let me guess, floating point issues?
>>> (1 / 3).toFixed(20)
"0.33333333333333331483"
pmichaud oh, the trailing 1
yeah, that looks wonky 19:09
19:09 birdwindupbird joined
colomon yes, floating point issues, but floating point issues there are officially a bug now 19:09
but it's a known bug, fixing it has been on my todo list for weeks. 19:10
19:11 Telgalizer joined
moritz nr: say 1/3 19:12
p6eval niecza v18-6-ge52d6c3: OUTPUT«0.33333333333333331␤»
..rakudo e75a0a: OUTPUT«0.333333␤»
19:12 rafl joined
pmichaud hmmm, after merging into trunk it's running about 10% slower than my earlier tests. But I'm still going to do the merge now because I can tune it up again later. 19:15
spectesting merge now
er, I phrased that wrong. 19:16
After merging to trunk, it's running 10% slower than what was already there.
But I can easily get that 10% back.
jnthn back 19:18
oh my...is Pm about to beat me to merging? ;)
pmichaud I did the nqp merge already, yes. 19:19
I'm spectesting the nom merge now.
(well, waiting for a fresh build.)
moritz wait, is map2 merged into nom slower than nom, or slower than map2? 19:20
pmichaud slower than nom, about 10%, for very large loops. 19:21
but it's properly lazy.
moritz does that already use qrpa?
pmichaud one instance
adding more instances will make it hugely faster.
s/will/should/
I can't do more qrpa's yet until we get it into the serializer 19:22
19:23 Caldrin joined
Caldrin Hi! 19:23
moritz \o Caldrin
pmichaud: sounds like good progress to me
Caldrin I tried to build rakudo from git with --gen-parrot 19:24
It fails with:
./perl6: symbol lookup error: dynext/perl6_ops.so: undefined symbol: Parrot_pcc_set_outer_ctx_func
make: *** [CORE.setting.pbc] Error 127
pmichaud Caldrin: do you have an older copy of Parrot installed somewhere?
perhaps it's inadvertently finding that one
moritz gist.github.com/2891025 # draft for my final grant report 19:26
pmichaud urg, I'm getting spectest failures now. :-(
moritz nothing new for those who read my latest blog posts
but I'd appreciate some feedback before I send if off to Karen 19:27
Caldrin pmichaud: Yes, that may be. I tried it some time ago and I'm not really sure on which system. I'll check. Thank you.
moritz pmichaud: in which files?
pmichaud moritz: quite a lot, actually. I'll restart and try again.
[Coke] moritz++: +1 19:28
jnthn rn: say 'abcdefg' ~~ /(a) [ (bc) (d) | .* (ef) ] .* (g)/
p6eval rakudo e75a0a: OUTPUT«q[abcdefg]␤ 0 => q[a]␤ 1 => q[bc]␤ 2 => q[d]␤ 3 => q[g]␤␤»
..niecza v18-6-ge52d6c3: OUTPUT«#<match from(0) to(7) text(abcdefg) pos([#<match from(0) to(1) text(a) pos([].list) named({}.hash)>, #<match from(4) to(6) text(ef) pos([].list) named({}.hash)>, Any, #<match from(6) to(7) text(g) pos([].list) named({}.hash)>].list) named({}.hash)>␤»
pmichaud let me just re-spectest with the nqp updates, first.
jnthn rn: .Str.say for 'abcdefg' ~~ /(a) [ (bc) (d) | .* (ef) ] .* (g)/
p6eval rakudo e75a0a: OUTPUT«abcdefg␤»
..niecza v18-6-ge52d6c3: OUTPUT«a␤ef␤Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 268 (Mu.Str @ 15) ␤ at /tmp/zYgKGE6fR7 line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE…
moritz rn: .Str.say for ('abcdefg' ~~ /(a) [ (bc) (d) | .* (ef) ] .* (g)/).list 19:29
p6eval niecza v18-6-ge52d6c3: OUTPUT«a␤ef␤Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 268 (Mu.Str @ 15) ␤ at /tmp/trX99cNuug line 1 (mainline @ 7) ␤ at /home/p6eval/niecza/lib/CORE…
..rakudo e75a0a: OUTPUT«a␤bc␤d␤g␤»
jnthn LTM strikes :)
pmichaud moritz: I would remove the parentheses surrounding "like, how do we indicate ...". I'd just make those statements non-parenthetical.
moritz pmichaud: will do, thanks 19:30
PerlJam moritz: line 68: "...not covered by this grant report:" did you really mean to say that it wasn't covered by the grant itself?
dalek p/altnfa: 1eb6548 | jonathan++ | t/qregex/rx_captures:
Correct tests that had wrong idea about semantics of |.
19:31
moritz PerlJam: yes, I wanted :-)
PerlJam++ pmichaud++
pmichaud moritz: other than that, I think it looks awesome. Send it after you get others' comments :) 19:32
moritz pmichaud: thanks 19:33
I promised Karen to send it tomorrow, so I still have time to incorporate feedback :-)
dalek p/altnfa: af98a71 | jonathan++ | t/qregex/rx_metachars:
Todo a test that was likely passed for dubious reasons before anyway.
19:35
jnthn pmichaud: I'm ready to merge, but I know you're on with one, so I'll wait.
pmichaud jnthn: thanks. merge in nqp or in nom, ooc? 19:36
or both?
jnthn Both
moritz both
jnthn I know you have one in both too.
pmichaud after I finish this spectest (approx 5 mins), I can likely say "okay to merge nqp". We'll see.
jnthn pmichaud: Well, the merges are dependent. 19:37
moritz well, if we merge nqp, we should also merge nom
pmichaud I just want to make sure my nqp merge didn't break nom
actually, I think that after I spectest this merge and bump NQP_REVISION, I'll hold on the rest of my stuff and let you do your merges. I can do my remaining map merges later tonight. 19:38
I'm going to have to leave in ~45 mins anyway, and I'm not entirely certain my map merges will go cleanly as it is 19:39
jnthn pmichaud: OK :) 19:41
moritz pmichaud: so far my spectest of nom on newest nqp master looks good
jnthn pmichaud: That means I can get mine in today
pmichaud jnthn: yes, that's the other reason for letting you go first. :) 19:42
moritz (though I'm only in S02-types so far)
19:42 GlitchMr left
pmichaud I'm up to S32-* already w/o failures 19:42
PerlJam watches twit.tv/show/floss-weekly/195 and wonders if it's getting close to the time when a Perl 6 interview would be possible
pmichaud I'll likely see merlyn at yapc, so perhaps can offer there :)
I need to do a rakudo lightning talk 19:43
19:43 GlitchMr joined
pmichaud I'm thinking of doing a talk about rakudo speed improvements since 2010 19:43
moritz "rakudo: fast as lightning" :-)
19:43 GlitchMr left
pmichaud "rakudo, not yet lightning, but at least not glacial." 19:43
PerlJam "rakudo: faster than sneakernet" ? :) 19:44
dalek kudo/nom: 3325402 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get a version of nqp w/QRPA.

Rakudo isn't using QRPAs yet, but the merge of the new
  map code (coming later) will make use of it.
pmichaud okay, spectested, committed, unlocked
jnthn: you can do your merges whenever you like :) 19:45
jnthn woo
hah, conflict!
pmichaud I'll do some test merges locally but will wait to commit until after I can merge with whatever you do today
moritz conflict? in nqp.ops?
jnthn Yeah, resolved :) 19:46
pmichaud: altnfa only touched 3 files in Rakudo, so you should ahve no problems merging your stuff. 19:49
19:50 Caldrin left
pmichaud git++ 19:50
jnthn Indeed.
moritz the majority of merge conflicts that I get can be resolved simply by removing the conflict markers
pmichaud I continue to be amazed at how smooth git merges are.
moritz and each time I wonder if git couldn't do that for me right away :-)
jnthn It got this one weird.
But it was still easy to sort out. 19:51
moritz pmichaud: me too, especially when file renames are involved
jnthn huh, wtf
Creating library perl6_ops.lib and object perl6_ops.exp
exceptions.obj : error LNK2001: unresolved external symbol _PMCNULL
Ah, guess that mistake doesn't show up off Windows... 19:52
moritz oh, probably my fault 19:53
jnthn moritz: Yeah.
moritz: I guessed right away what it was though.
So no worries.
kboga p6: sub s_s(*%n) { %n>>.say }; s_s(|{:assoc<list>}, :assoc<left>); # which one is correct?
p6eval rakudo e75a0a: OUTPUT«duplicate named argument in call␤ in block <anon> at /tmp/ohG08nWXj0:1␤␤»
..pugs: OUTPUT«left␤assoc␤»
..niecza v18-6-ge52d6c3: OUTPUT«left␤»
diakopter that's a new bug, if it's a bug 19:54
jnthn Rakudo has inconsistent behavior in that areas.
For non-flattened nameds it filters out the dupes 19:55
Flattened ones it can't do that, and Parrot barfs on dupe named args.
kboga p6: sub s_s(*%n) { %n>>.say }; s_s(:assoc<list>, :assoc<left>);
p6eval pugs: OUTPUT«left␤assoc␤»
..rakudo e75a0a, niecza v18-6-ge52d6c3: OUTPUT«left␤»
diakopter oh
jnthn We may be able to get Parrot folks to change that. Or maybe not. Worth asking.
kboga should i report a bug or?
pmichaud always safe to report a bug 19:57
jnthn Nobody ever died reporting a bug.
pmichaud (yes, report it, it'll be a marker that we might want to go back and check it again)
kboga nobody? :D
jnthn Inga resultat hittades för "died in a bug reporting accident". 19:58
Google don't think so :)
19:58 Chillance left
pmichaud although I suspect we have a few bug reports on 'die' :-) 19:58
20:00 [particle]1 joined, GlitchMr joined 20:01 [particle] left, GlitchMr left 20:02 [particle]1 is now known as [particle] 20:06 cognominal_ joined 20:07 majrmovies joined 20:08 cognominal left
moritz we have indeed :-) 20:12
20:14 not_gerd joined
not_gerd working, but incomplete ufo version with automatic dependency tacking: gist.github.com/2891292 20:15
stores dependency information in a .ufo directory
20:15 benabik left 20:16 benabik joined
moritz not_gerd: check out the less-smart-more-correct branch of ufo 20:16
it's a pretty thorough refactor 20:17
not_gerd looks good 20:20
my version does automatic dependency regeneration, though (at the cost of additional complexity)
moritz seems we are moving in quite different directions 20:22
one of my goals was to make the makefile less smart, so that we can eventually support non-GNU make 20:23
jnthn: how is the merge coming? are you blocking on the _PMCNULL issue? 20:24
jnthn moritz: spectest almost done 20:25
not_gerd moritz: I modeled my implementation after automatic dependency generation with gcc -MMD
jnthn moritz: Just hit integration and all looking good
moritz jnthn: ok, great
20:26 ggoebel left
dalek Heuristic branch merge: pushed 24 commits to nqp by jnthn 20:26
not_gerd also, for some reasons using .print() on a filehandle opened via open('foo',:w) did not print anything 20:27
dalek Heuristic branch merge: pushed 16 commits to rakudo/nom by jnthn
moritz not_gerd: did you .close the file handle in the end?
not_gerd moritz: yes, that was my firt idea also
jnthn There we go :)
moritz not_gerd: works here
dalek kudo/nom: 5c00aad | jonathan++ | docs/ROADMAP:
Remove completed item from ROADMAP.
20:28
not_gerd ah... it's LEAVE that doesn't work... 20:29
moritz r: LEAVE say 3
p6eval rakudo 332540: OUTPUT«3␤»
tadzik so altnfa is merged no>?
dalek kudo/nom: cd26962 | jonathan++ | docs/ChangeLog:
Add a ChangeLog entry about LTM.
jnthn tadzik: Yes.
20:29 ggoebel joined
tadzik cool 20:29
TimToady I would argue that rakudo is incorrect on irclog.perlgeek.de/perl6/2012-06-07#i_5695510 because the inner alternation should be doing its own level of LTM
jnthn TimToady: s/is/was/ 20:30
TimToady oh, okay
jnthn TimToady: That output was before alternations did LTM :)
I just pushed the commit that changed that
TimToady \o/ then
jnthn :)
TimToady is mercurial and fickle
not necessarily in that order 20:31
dalek atures: 874ce31 | jonathan++ | features.json:
Rakudo can have a straight + for LTM now.
20:32
moritz jnthn++ # | LTM
PerlJam Are there some tests that exercise LTM? 20:33
moritz yes
jnthn Yeah. I suspect an autounfudge run may be in order.
moritz t/spec/S05-metasyntax/longest-alternative.t
note that we also have a passing TODO for some stuff that was previously misparsed 20:34
r: sub f(*%h) { say %h.perl }; f END =>
p6eval rakudo 332540: OUTPUT«===SORRY!===␤Confused␤at /tmp/GQQQ_krgjA:1␤»
moritz r: sub f(*%h) { say %h.perl }; f END => 1
p6eval rakudo 332540: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix => instead␤at /tmp/Jrk_y_g_Vj:1␤»
moritz that works with altnfs, iirc
jnthn Yeah. :) 20:35
moritz s/nfs/nfa/ # :-) 20:36
20:37 tyatpi left
not_gerd moritz: it's the combination of LEAVE and multi which makes it fail: gist.github.com/2891417 20:40
moritz not_gerd: interesting
n: my $s = 'aaaa'; say $s ~~ m:c/a|aaa/; say $s ~~ m:c/a|aaa/ 20:43
p6eval niecza v18-6-ge52d6c3: OUTPUT«#<match from(0) to(3) text(aaa) pos([].list) named({}.hash)>␤#<match from(3) to(4) text(a) pos([].list) named({}.hash)>␤»
not_gerd r: multi sub foo() { say 'here'; LEAVE say 'not here'; } foo;
p6eval rakudo 332540: OUTPUT«===SORRY!===␤Confused␤at /tmp/CIvF5_IKma:1␤»
not_gerd r: multi sub foo() { say 'here'; LEAVE say 'not here'; }; foo;
p6eval rakudo 332540: OUTPUT«here␤»
20:45 mikemol left 20:46 ggoebel left 20:47 birdwindupbird left, ggoebel joined
dalek ast: fdb7bf0 | moritz++ | S05-metasyntax/longest-alternative.t:
correct longest-alternative.t, and fudge for rakudo
20:47
moritz not_gerd: will you submit a bug report, or should I?
dalek kudo/nom: 81402b9 | moritz++ | t/spectest.data:
run LTM tests
20:48
moritz sorear, jnthn: there's a suspiciously high number of tests TODOed for both rakudo and niecza in S05-metasyntax/longest-alternative.t
might be that the tests are wrong -- please review at your convenience 20:49
dalek ast: 7ec158c | jonathan++ | S04-phasers/end.t:
Unfudge a parsing test we now pass.
not_gerd moritz: feel free to submit 20:50
moritz r: sub foo() { say 'here'; LEAVE say 'not here' }; foo; 20:51
p6eval rakudo 332540: OUTPUT«here␤not here␤»
moritz submitted, not_gerd++ 20:52
20:53 Chillance joined
moritz jnthn: when you unfudge a test whith a ticket number in the fudge description you can usually close that ticket :-) 20:55
jnthn: doing that now
20:56 skids left
moritz nom: '^^^^' ~~ / ('^' | '^^')+ /; say $0.elems 20:57
p6eval rakudo 332540: OUTPUT«4␤»
moritz 20:58
moritz also closes #104840
20:59 lichtkind joined
jnthn moritz: oh, d'oh :) 21:00
sorear majrmovies: jnthn can help you much better than I can; I have never even used NativeCall 21:05
21:08 kaare_ left
majrmovies LOL 21:08
Thanks sorear
jnthn jnthn? help? LOL :P 21:09
majrmovies I bet jnthn is regretting writing NativeCall because he has to answer obscure questions about my pet project
jnthn majrmovies: I'm happy to see it being used :)
majrmovies pastebin.com/wXUX1vXE 21:10
21:10 bruges_ joined
majrmovies I am trying to set the option in the libcurl library to write the response data to a variable instead of to STDOUT .. 21:10
I tried capturing the STDOUT using IO::Capture::Simple, but sorear pointed out that the output is happening at a C-level, not a Perl-level so it couldn't be captured 21:11
So the most appropriate way, using libcurl, is to set the CURLOPT_WRITEDATA parameter .. to have it write to a file instead of to STDOUT 21:12
So, I pass in that parameter (aliased as CUROPT_FILE) ..
21:12 bruges left
majrmovies And I get back "23: Failed writing received data to disk/application" 21:12
Because I don't know if NativeCall would support a "FILE*" type, or a c-function as described by the CURLOPT_WRITEFUNCTION method 21:14
curl.haxx.se/libcurl/c/curl_easy_setopt.html
jnthn What does it actually want to pass there (as in, the C type)?
majrmovies "Data pointer to pass to the file write function. If you use the CURLOPT_WRITEFUNCTION option, this is the pointer you'll get as input. If you don't use a callback, you must pass a 'FILE *' as libcurl will pass this to fwrite() when writing data."
jnthn oh, it wasnts a FILE * 21:15
Passing a string ain't gonna help.
You actually need a C FILE *
Which fopen returns I guess 21:16
21:16 cognominal joined
majrmovies Either that or I can pass a pointer to a function (for the CURLOPT_WRITEFUNCTION) method ... but I figured that wasn't supported in NativeCall 21:16
jnthn You can on many platforms just look that up in the current process
majrmovies "Pass a pointer to a function that matches the following prototype: size_t function( char *ptr, size_t size, size_t nmemb, void *userdata); This function gets called by libcurl as soon as there is data received that needs to be saved. The size of the data pointed to by ptr is size multiplied with nmemb, it will not be zero terminated. Return the number of bytes actually taken care of. If that amount differs from the amount passed to yo
function, it'll signal an error to the library. This will abort the transfer and return CURLE_WRITE_ERROR."
jnthn Yeah, we don't do callbacks yet 21:17
21:17 pyrimidine joined
majrmovies Please explain: "You can on many platforms just look that up in the current process"? 21:17
jnthn sub fopen(Str $filename, Str $mode) is native returns OpaquePointer { * }
majrmovies: dlopen(...) supports being passed NULL on some platforms
majrmovies: In that case, it will look up anything available in the currently executing program 21:18
dalek ast: f68b56c | moritz++ | S05-metasyntax/angle-brackets.t:
small rakudo unfudge
ast: 489d98e | moritz++ | S26-documentation/05-comment.t:
add more test labels
jnthn majrmovies: That means you can look up things in libc
Like fopen. Probably. :)
So you can probably make this work by looking up C's fopen (file open) function, which returns a FILE *
21:19 cognominal_ left
jnthn Then pass what it returns off to libcurl 21:19
majrmovies Hmm .. very interesting ..
jnthn I suggest you also call fclose afterwards :)
not_gerd bye, #perl6 21:20
21:20 not_gerd left
jnthn dyncall does support callbacks, but wiring it up to NativeCall will need lots of luck, beer and insanity. :) 21:20
21:22 PacoAir left 21:26 bluescreen10 left, fibo joined 21:28 fibo left
majrmovies Well at least that gives me some great direction to go on .. let me give that a try 21:30
21:31 sergot left
majrmovies jnthn: You are a genius! That sub fopen function worked beautifully!! 21:33
pmichaud jnthn: branch is merged now? 21:34
afk again 21:36
jnthn pmichaud: yes
21:41 fridim_ joined 21:46 alester left
pmichaud jnthn++ 21:47
on my system, though, altnfa seems about 10% slower to compile CORE.setting than it was before
98 sec versus 89 21:48
anyway, hopefully we can find ways to speed it up... and yes, it solves many problems we've had for a while
afk again, more errands
(98 sec parse versus 89 sec pre-altnfa)
jnthn pmichaud: That's not good, but not disasterous either. I suspect some careful profiling will be revealing. 21:49
I blug: 6guts.wordpress.com/2012/06/07/ltm-...ernations/ 21:50
21:54 ivan`` left 21:55 thelazydeveloper left
jnthn Guess I should go sleep, so I can teach my lovely bunch of TDD students good stuffs in the morning. :) 21:57
'night o/
21:57 ivan`` joined 21:58 adu left 21:59 adu joined 22:03 cognominal left 22:05 cognominal joined 22:07 bbkr joined 22:08 bbkr_ left 22:11 thou left 22:25 fridim_ left 22:26 whiteknight joined, spider-mario left, whiteknight is now known as Guest34330 22:34 majrmovies left 22:46 cognominal_ joined 22:47 skids joined 22:49 cognominal left 23:03 adu left 23:06 NamelessTee left 23:07 [particle]1 joined 23:08 spaceships joined, NamelessTee joined 23:11 [particle] left 23:20 NamelessTee left 23:24 fgomez left 23:28 fgomez joined, fgomez left 23:33 fgomez joined 23:50 thou joined 23:53 Chillance left, tyatpi joined 23:54 thou left 23:57 Anuj joined, Anuj_ joined 23:58 Anuj_ left 23:59 Anuj left