»ö« 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.
pmurias japhb: [email@hidden.address] 00:02
not_gerd take-off \o/
pmurias japhb: make assuming you have nqp and node
sorear: why do you ask? 00:03
not_gerd has successfully published his first advent post
00:04 cognominal joined
pmurias japhb: I don't support -e yet, what do you need it for? 00:04
nqp bin/nqp-js.nqp | node
sorear pmurias: diakopter's reaction to primitive recursion 00:05
00:05 fgomez joined 00:12 Kharec left 00:14 cognominal left 00:20 cognominal joined
japhb_ pmurias, most of the benchmarks are microbenchmarks that I just run with -e. Perlito*, despite needing separate compile and run phases in some modes, could still accept a -e for the compile phase, pretty much just treating it as a special case of a normal script. 00:24
00:29 ServerSage left
not_gerd bye, #perl6 00:30
00:30 not_gerd left
pmurias japhb_: I could add -e easily 00:32
japhb_: you are measuring compile time and runtime together?
japhb_ pmurias, oh excellent
I generally am only measuring runtime, as I recall. Lemme check again, it's been a while.
dalek kudo-js: 7cc7124 | (Paweł Murias)++ | run_tests:
add passing test to run_tests
00:34
kudo-js: 84a7c67 | (Paweł Murias)++ | bin/nqp-js.nqp:
[nqp] add -e
japhb_ Nope, I'm wrong -- I measure both together, but then the compile time can be subtracted out in "ignore startup time" mode during analysis.
pmurias japhb_: it still needs to be piped into node
japhb_ pmurias, might want to mention in README that IO::CaptureOutput is required by wrap_nqp 00:42
pmurias: 00:45
$ nqp bin/nqp-js.nqp t/99-test-basic.t | node
"load_bytecode" couldn't find file 'v6.pbc'
Sure enough, no v6.pbc around ...
(That's after running 'make', BTW)
lue
.oO(A missing semicolon on line 104 of my script is what caused a "Confused" message on line 1 :[ )
00:48
00:50 confused left 01:00 anuby joined 01:12 atrodo left 01:14 Maddingue left, hypolin joined 01:16 pmurias left 01:24 fgomez left 01:30 hypolin left, hypolin joined
[Coke] can someone verify that t/spec/S05-metasyntax/unknown.t has an invalid plan? 01:37
01:39 bowtie left
[Coke] also: t/spec/S12-methods/private.t 01:41
01:42 tokuhiro_ left, tokuhiro_ joined
[Coke] n: say $*EXECUTABLE_NAME; 01:46
p6eval niecza v24-5-g599cbcb: OUTPUT«/home/p6eval/niecza/run/Niecza.exe␤»
01:46 Khisanth left
dalek ecza: 4599a2c | coke++ | t/spectest.data:
fudging this test is hard, don't run it.
01:47
ast: aa40a29 | coke++ | S (4 files):
niecza fudge
[Coke] sorear: mind if I run %!sort on t/spectest.data ? 02:00
02:00 gootle joined, Khisanth joined, ifim joined
[Coke] (changes 66 lines) 02:00
(35 if I leave integration at the top) 02:01
02:03 fgomez joined
[Coke] ... will go for forgiveness. 02:04
02:07 FROGGS_ joined
sorear [Coke]: in the past I've been keeping it %!sort'ed, but it depends on locall 02:08
I don't remember whether I was keeping it C sorted or en_US sorted
02:10 FROGGS left
[Coke] I went with %!sort -f for now? 02:12
02:16 hlin_laptop joined
dalek ast: 2c74a24 | coke++ | S1 (3 files):
niecza fudge
02:20
ecza: 3141b05 | coke++ | t/spectest.data:
Reorder spectest.data

  (%!sort -f)
02:21
ecza: 6f045ec | coke++ | t/spectest.data:
Add spectests we run with no fudging.
ecza: d511451 | coke++ | t/spectest.data:
run more slightly fudged tests
02:22 ifim left 02:23 ifim joined
colomon [Coke]++ 02:35
02:38 ifim left 02:49 tokuhiro_ left, tokuhiro_ joined
japhb_ colomon, pmichaud, GlitchMr, smashz: You four appear to be the only users to have (unreverted) commits to the perl6/bench-scripts repo. I'd like to pull some or all of those into perl6-bench; any objection to me importing them? 02:52
colomon non from me
japhb_ Thanks, colomon 02:54
colomon errr, none. japhb_++ 02:55
xenoterracide perl6advent.wordpress.com/2011/12/0...binary-io/ so this tells me how to make a buffer a string... but how do I coerce a string into a buffer 02:56
03:01 japhb_ left
doy "The reverse operation is $Buf.encode($encoding)." 03:01
that would probably be clearer if it used $Str instead of $Buf there
xenoterracide yeah 03:03
03:09 noggle left 03:14 hlin_laptop left 03:16 noggle joined 03:18 cognominal left 03:25 cognominal joined 03:26 Maddingue joined 03:31 Maddingue left, Maddingue joined 03:34 OuLouFu joined 03:35 OuLouFu left, OuLouFu joined, orafu left, OuLouFu is now known as orafu 03:36 Maddingue left
grondilu Hello. Nice article today about projecteuler and perl6 03:36
colomon is day 4 already up? 03:39
dalek pan style="color: #395be5">perl6-examples: a030b03 | (L. Grondin)++ | rosalind/hamm-grondilu.pl:
adding HAMM solution
03:40
pan style="color: #395be5">perl6-examples: fc5a527 | grondilu++ | rosalind/hamm-grondilu.pl:
Merge pull request #3 from grondilu/master

Adding solution to rosalind/HAMM
03:43 ifim joined 03:44 ServerSage joined
dalek pan style="color: #395be5">perl6-examples: f1e768a | (L. Grondin)++ | rosalind/ (2 files):
adding GRPH and SUBS for roalind
03:57
pan style="color: #395be5">perl6-examples: c4d576b | grondilu++ | rosalind/ (2 files):
Merge pull request #4 from grondilu/master

Adding two more solutions for Rosalind
04:01 Maddingue joined 04:03 cognominal left 04:05 Maddingue left 04:06 PacoAir left, cognominal joined 04:11 hypolin left 04:12 hypolin joined 04:29 Chillance joined
dalek pan style="color: #395be5">perl6-examples: 4d5084a | (L. Grondin)++ | rosalind/ (6 files):
another bunch of solutions for rosalind
04:31
pan style="color: #395be5">perl6-examples: 63fcde6 | grondilu++ | rosalind/ (6 files):
Merge pull request #5 from grondilu/master

adding six other solutions for Rosalind
04:36 Psyche^ joined 04:37 Maddingue joined 04:40 Patterner left, Psyche^ is now known as Patterner 04:41 Maddingue left 04:48 sealex joined 04:53 sealex left
dalek pan style="color: #395be5">perl6-examples: 1e1e305 | (L. Grondin)++ | euler/prob0 (5 files):
adding some solutions to euler
04:59
pan style="color: #395be5">perl6-examples: 6ada933 | grondilu++ | euler/prob0 (5 files):
Merge pull request #6 from grondilu/master

adding some solutions to project euler
05:06 Targen joined 05:07 Targen left, Maddingue joined
xenoterracide wonders if a use version statement shouldn't just be required period, to allow a force compliance with that version mode. (where class autodetection is likely to not work in the future if p5-mop is successful) 05:07
05:12 Maddingue left 05:14 sftp left 05:15 skids left, cedrvint left, cedrvint joined 05:16 am0c left 05:27 baest left, baest joined 05:31 telex left 05:32 Maddingue joined 05:36 phenny left, telex joined 05:37 Maddingue left 05:57 Chillance left, Maddingue joined
moritz good morning 05:58
where have all the phennies gone, long time passing
jnthn: yes, sounds sensible. Not sure if .gist is the right approach though, because that includes the ===SORRY=== sorry right now (but I don't know if it would include that in worries) 05:59
06:02 Maddingue left
sorear good morning moritz 06:09
06:10 birdwindupbird joined 06:18 kaleem joined 06:23 Maddingue joined, wamba joined 06:27 Maddingue left 06:36 tcpr1347 joined
grondilu What does: ==> Testing Digest 06:40
t/digest.t .. All 7 subtests passed
mean ?
I don't understand, the tests pass but they fail installation.
sorear probably nonzero error code
prove -v for more info
06:51 am0c joined
grondilu with 'prove -e perl6 -v t/digest.t' I get a 'All tests successful.' 06:51
(and I manually compiled the module so it's not the issue) 06:52
06:53 Maddingue joined
grondilu I'm told 'Parse errors: No plan found in TAP output' but I did set 'plan 7;'. I don't get it. 06:54
.oO(wonder what's TAP anyway)
sorear test-anything protocol 06:55
the data which Test.pm generates
1..7
ok 1 - foo
ok 2 - bar 06:56
not ok 3 - quux
06:57 Maddingue left
grondilu Is it ok to do tests in a loop? 'use Test; plan 3; for ^3 { ok some-test($_) }' ? 06:57
06:58 kurahaupo left
grondilu (that's the only difference I can see with what I did before) 06:58
07:06 SamuraiJack joined 07:07 wamba left
grondilu Well I had to do it without a 'for' loop and now it works 07:08
that's weird as I could not reproduce Panda's failure with prove. 07:09
07:28 Maddingue joined 07:33 Maddingue left 07:35 ifim left
moritz it should be OK, yes 07:57
07:58 Maddingue joined 08:03 Maddingue left 08:04 zby_home joined, cognominal left 08:12 cognominal joined 08:15 tcpr1347 left, tcpr1347 joined 08:24 hoelzro|away is now known as hoelzro, wamba joined 08:46 tcpr1347 left 08:48 Kharec joined 08:49 wamba left, Maddingue joined 08:51 kresike joined
kresike good morning all you happy perl6 people 08:51
sorear good morning all you happy kresikes 08:55
FROGGS_ morning 09:04
09:06 zby_home left 09:10 cognominal left
jnthn morning 09:17
moritz \o
jnthn moritz: hm, good point on .gist 09:18
moritz: Well, actually the model is 3-level
.panic = die right away
09:18 cognominal joined
jnthn .sorry = die after up to 10 of them, or at the end of parse if we got any 09:18
.worry = don't die, just report the things when we do
er, when we're done parsing, I meant 09:19
no, I meant what I said and the other thing also :)
Gee, I'm so on the ball this morning :P
moritz I see what you're getting to, anyway 09:21
so, worry are warnings, and delayed until the end of the parse
and sorry are delayed fatal errors, right?
jnthn Yes 09:22
But if we ever panic, we want to report the worry and worry things
*and sorry
bah, more coffee clearly is needed
moritz so the exception printer needs to become aware of @*SORRY and @*WORRY, right? 09:23
jnthn Well, that's one approach but then how do we test them?
Also feels we couple things a bit much...
moritz hm 09:24
maybe we need an exception type which is a group of exceptions
jnthn I pondered that X::Comp can carry an @.sorries and an @.worries
09:24 cognominal left
jnthn But that leaves questions like "so which do we pick as the one we throw if we have multiple @.sorries"? 09:24
moritz but since @.sorries and @.worries are X::Comp's, that would be a whole tree 09:25
rather have an X::Comp::Group does X::Comp which holds them all
and then we can throw the Group
and it's message can join all of the @.sorries>>.message
jnthn Well, STD gives them all a location message when dying too 09:26
But yeah, to a first approximation, that.
moritz then .message and the not-yet-there .locmess or whatever STD calls it
jnthn Yeah, I did an equivalent of locmess last night 09:27
(conveyed the surrounding context)
Thing is, if we start throwing X::Comp::Group, what of all the tests?
cedrvint r: my $c = [1], -> @p { [0, @p Z+ @p, 0] } ... * 09:30
p6eval rakudo e2f2dc: ( no output )
09:31 dakkar joined
cedrvint this hits an illegal instruction on my computer :/ 09:31
jnthn Hm, works locally for me as well 09:32
cedrvint jnthn: with the REPL? 09:33
jnthn Yeah
Even produces the otuput
09:33 fhelmberger joined
cedrvint hum, it works under GDB ... 09:34
jnthn btw, I think it also doesn't mean what you wanted.
cedrvint I didn't mean anything actually :)
jnthn Item assignment prec means that $c just becomes [1]
dalek pan style="color: #395be5">perl6-examples: 5153a87 | (L. Grondin)++ | rosalind/iprb-grondilu.pl:
solution for rosalind/IPRB
09:35
pan style="color: #395be5">perl6-examples: 4d410e6 | grondilu++ | rosalind/iprb-grondilu.pl:
Merge pull request #7 from grondilu/master

  rosalind IPRB solution
cedrvint jnthn: oh, my fault: I was rebuilding libparrot.so in the same time. I'm not able to reproduce indeed. 09:36
jnthn That'd do it ;)
09:36 mhi^ left, fhelmberger left 09:38 Su-Shee_ is now known as Su-Shee 09:42 lrnperl6 joined 09:48 fhelmberger joined
diakopter .. that was interesting. viewing a .png I just generated from a .pdf in linux... rebooted the computer. 09:56
(the linux vm in which I generated and was viewing the .png)
never seen that before 09:58
Windows, yes; linux, not before today
how could viewing a .png reboot the machine? 10:00
10:01 lrnperl6 left
cedrvint diakopter: you've been hacked by a rootkit inserted by the PDF-to-PNG converter :) 10:02
diakopter well, it's just poppler-utils from bubnut
10:06 hypolin left
grondilu PERL6LIB is not used anymore, is it? 10:07
I'm asking this because it is still mentioned in perl6 --help 10:08
10:14 hoelzro is now known as hoelzro|away 10:16 daxim joined
moritz grondilu: it's used 10:16
grondilu oh ok 10:17
Not related. "Magic access to documentation", as described in S02, is NYI, right? 10:18
10:18 rindolf joined, wamba joined
moritz grondilu: I think it's partially implemented 10:18
grondilu: grep for WHY in roast
grondilu "roast"?
moritz spectests 10:20
10:22 LordVorp left, LordVorp joined 10:23 infosophy joined
FROGGS_ grondilu: there a github repo with that name 10:24
github.com/perl6/roast
10:24 Gothmog_ left
grondilu cloned git://github.com/perl6/specs.git 10:30
rn: say "Foo" ~~ / < alpha - F >+ /; 10:36
p6eval rakudo e2f2dc: OUTPUT«「F」␤␤»
..niecza v24-5-g599cbcb: OUTPUT«#<match from(0) to(1) text(F) pos([].list) named({}.hash)>␤»
grondilu rn: say "Foo" ~~ / < alpha - [F] >+ /;
p6eval niecza v24-5-g599cbcb: OUTPUT«Match()␤»
..rakudo e2f2dc: OUTPUT«#<failed match>␤»
grondilu rn: say "Foo" ~~ / <alpha - [F]>+ /;
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter - (must be quoted to match literally)␤at /tmp/hSKxrxNEkV:1␤»
..niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Unrecognized regex metacharacter - (must be quoted to match literally) at /tmp/omuXACs6c9 line 1:␤------> say "Foo" ~~ / <alpha -⏏ [F]>+ /;␤␤Unhandled exception: Unable to resolve method ast in type Any␤ a…
10:37 nebuchadnezzar left, nebuchadnezzar joined 10:40 bbkr joined 10:41 hoelzro|away is now known as hoelzro 10:52 SmokeMachine left
grondilu rn: say "NQSV" ~~ m:overlap / N <-[P]> <[TS]> <-[P]> /; 10:53
p6eval niecza v24-5-g599cbcb: OUTPUT«===SORRY!===␤␤Regex modifier overlap not yet implemented at /tmp/rxIhV4MifP line 1:␤------> say "NQSV" ~~ m:overlap⏏ / N <-[P]> <[TS]> <-[P]> /;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.…
..rakudo e2f2dc: OUTPUT«False␤»
grondilu r: say "NQSV" ~~ m / N <-[P]> <[TS]> <-[P]> /;
p6eval rakudo e2f2dc: OUTPUT«「NQSV」␤␤»
grondilu r: say "NQSV" ~~ m:overlap / N <-[P]> <[TS]> <-[P]> /;
p6eval rakudo e2f2dc: OUTPUT«False␤»
grondilu r: say "NQSV" ~~ m:g / N <-[P]> <[TS]> <-[P]> /; 10:54
p6eval rakudo e2f2dc: OUTPUT«False␤»
grondilu Am I missing something here?
moritz r: say "NQSV" ~~ m / N <-[P]> <[TS]> <-[P]> /; 10:57
p6eval rakudo e2f2dc: OUTPUT«「NQSV」␤␤»
moritz grondilu: just ongoing design issues with m:g//
grondilu r: say "NQSV" ~~ m:P5:g /N[^P][TS][^P]/; 10:58
p6eval rakudo e2f2dc: OUTPUT«False␤»
grondilu ok I'll wait then
moritz m:g works fine when matching against $_ 11:00
grondilu r: say m:g / N <-[P]> <[TS]> <-[P]> / given "NQSV"
p6eval rakudo e2f2dc: OUTPUT«NQSV␤»
grondilu r: say m:overlap / N <-[P]> <[TS]> <-[P]> / given "NQSV"
p6eval rakudo e2f2dc: OUTPUT«NQSV␤»
grondilu cool
r: given "NQSV" { if m:overlap / N <-[P]> <[TS]> <-[P]> / { say $/.perl } } 11:03
p6eval rakudo e2f2dc: OUTPUT«Any␤»
grondilu why Any here?
11:03 gootle left 11:05 Su-Shee_ joined 11:08 Gothmog_ joined 11:09 Su-Shee left 11:10 MayDaniel joined
masak g'day, #perl6 11:11
11:11 SmokeMachine joined
dalek pan style="color: #395be5">perl6-examples: 4f9bdb0 | (L. Grondin)++ | rosalind/mprt-grondilu.pl:
MPRT rosalind solution
11:11
pan style="color: #395be5">perl6-examples: 2634fbb | grondilu++ | rosalind/mprt-grondilu.pl:
Merge pull request #8 from grondilu/master

MPRT rosalind solution
grondilu I can credit moritz++ for this one 11:12
11:13 Gothmog_ left, Gothmog_ joined 11:33 pmurias joined
pmurias japhb: you have a installed nqp and parrot? 11:34
moritz claims innocence
11:36 PacoAir joined 11:37 gootle joined 11:39 Su-Shee_ is now known as Su-Shee 11:51 FROGGS_ left
dalek pan style="color: #395be5">perl6-examples: ea80eea | (L. Grondin)++ | rosalind/iev-grondilu.pl:
IEV rosalind solution
11:52
pan style="color: #395be5">perl6-examples: 3a42b1e | grondilu++ | rosalind/iev-grondilu.pl:
Merge pull request #9 from grondilu/master

IEV rosalind solution
grondilu I feel a bit bad about getting some karma for each rosalind solution I add :)
11:53 cognominal joined, wamba left 11:57 Gryllida left
masak don't feel bad. you're adding order to the perl6 universe. that's worth karma :) 11:57
dalek pan style="color: #395be5">perl6-examples: 989cd3d | grondilu++ | rosalind/iev-grondilu.pl:
Update rosalind/iev-grondilu.pl

shorter version
11:58
11:58 bowtie joined, cognominal left
grondilu ^ this one is beautifully short :) 11:58
12:00 FROGGS_ joined 12:01 anuby left 12:08 rjt_pl joined
rjt_pl $greetings && $salutations #! 12:10
12:10 SmokeMachine left
masak greetings, rjt_pl! 12:10
12:11 SmokeMachine joined 12:12 guest_____ joined
cedrvint is raising his arm to ask a question, and to say hello :) 12:14
o/
please, could you explain me this syntax: 1, 2 .. * ==> (*[0 .. 5])() 12:15
I mean, why so many '(' ')' 12:16
what's on the right side of this feed operator? 12:17
moritz cedrvint: where did you get that code from? 12:18
and does it actually work?
cedrvint r: 1, 2 .. * ==> (*[0 .. 5])()
p6eval rakudo e2f2dc: ( no output )
moritz r: say (*[0..5]).perl
p6eval rakudo e2f2dc: OUTPUT«WhateverCode.new()␤»
moritz that's a closure that does a slice index on its argument
grondilu yeah you send an infinite list to a closure. Should work.
cedrvint moritz: from the advent calendar (problem 53) 12:19
grondilu r: say 1, 2 .. * ==> (*[0 .. 5])()
p6eval rakudo e2f2dc: OUTPUT«12..Inf␤»
moritz and the () at the end invokes it
masak looks like code that's being too clever for its own good, in any case ;)
12:19 guest_____ left
masak cedrvint: could you be more specific? the advent calendar has days, not problems. 12:19
cedrvint masak: sorry, day 4 :) 12:20
grondilu does not understand this advent calendar thing
cedrvint moritz: thanks! 12:21
masak grondilu: an advent calendar has one "thing" for each day, which is revealed during the days 1..24 of December.
moritz: why does it invoke it? can't you just pass a closure on the rhs of a feed operator? 12:23
moritz: also, your 'say' above seems mis-precedence'd.
(it prints 1, 2 .. *)
==> has the same precedence as ; 12:24
moritz masak: mine? 12:25
cedrvint n: (1, 2 .. * ==> (*[0..3])()).say 12:28
p6eval niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: Feed ops NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3353 (infix:<==>> @ 4) ␤ at /tmp/MoDmswblmf line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting lin…
masak moritz: oops, sorry. grondilu's. 12:31
12:32 daxim left 12:47 MayDaniel left 13:11 GlitchMr joined 13:16 phenny joined 13:17 am0c left 13:18 cibs left 13:20 sisar joined 13:23 wamba joined
tadzik ehlo #perl6 13:30
13:30 wamba left
rjt_pl Hiya tadzik 13:30
GlitchMr "checking whether python2 version is >= 3.0... no" 13:32
Sometimes ./configure scripts are enjoyable
cedrvint :) 13:35
timotimo "checking if your system still has that obscure bug from 1975... no" 13:36
"checking if the turing machine tape is infinite..." 13:37
hoelzro "Checking whether build environment is sane ... build environment is grinning and holding a spatula. Guess not."
GlitchMr But explain to me how python2 could magically be Python 3? 13:40
moritz ln -s python3 python2
phenny moritz: 03 Dec 22:36Z <jnthn> ask moritz if perhaps a reasonable approach would be if our @*WORRIES contained typed things, that did X::Comp::Worry role or something, and for the time being we just .gist them at the appropriate point? Then should be quite refactorable when we figure out exactly what's right.
moritz: 03 Dec 22:36Z <jnthn> tell moritz Thing is that we need to show them all together at the end, or pass them along with the compilation exception, if we want to be STDish anyway.
moritz phenny: thank you, I already know that
13:41 sisar left
moritz grondilu: is there any reason you do all your changes to perl6-examples as pull requests? 13:43
grondilu: you can push to the perl6/perl6-examples repo directly 13:44
GlitchMr Doesn't he already have push access?
moritz yes 13:45
which is why I was suprised to see a bunch of pull requests
GlitchMr I was constantly getting new e-mails about that 13:46
cedrvint std: 0, 1 ... * ==> *[^3] 13:52
p6eval std a8bc48f: OUTPUT«ok 00:00 44m␤»
cedrvint std: 0, 1 ... * ==> (*[^3])() 13:53
p6eval std a8bc48f: OUTPUT«ok 00:00 45m␤»
cedrvint are these two lines above equivalent? 13:54
GlitchMr No
*[^3] is sub {$_[^3]}. (*[^3])() is sub {$_[^3]}() (instantly called subroutine) 13:55
==> with subroutine doesn't make sense, but STD cannot know that
cedrvint then I don't understand how (*[^3])() gets its parameters in:
r: 0, 1 ... * ==> (*[^3])() 13:56
p6eval rakudo e2f2dc: ( no output )
GlitchMr Using ==>
cedrvint r: (0, 1 ... * ==> (*[^3])()).say
p6eval rakudo e2f2dc: OUTPUT«0 1 2␤»
GlitchMr ==> automatically adds argument on the left side to function call on right side 13:57
masak cedrvint: I'm also suspicious of that code. I wonder if it's been properly tested. 14:02
phenny masak: 03 Dec 23:27Z <japhb_> tell masak Regarding the halting problem intentionally avoiding Turing completeness, some years ago I administered a product called Lotus Notes, which was a groupware app with builtin scripting, databases, and replication (way ahead of its time, actually). Anyway, scripts were executed on servers, not clients, so the scripting language intentionally disallowed any operation that could perform an explicit loop, but did have
masak: 03 Dec 23:28Z <japhb_> tell masak (sorry, cut off by IRC): (e.g. all rows in a DB table); it was all to avoid runaway scripts taking down servers.
cedrvint masak: I'm still confused :) 14:03
masak japhb: wow.
14:04 atrodo joined
masak japhb: the very idea of "here, take this client code and run it on the server" sounds rather reckless these days. 14:04
I bet I could think of some way or other to slow the server down, even without explicit loops...
GlitchMr masak: I think it was from Perl 6 Advent Calendar 14:05
cedrvint GlitchMr: thanks for your help, I'm missing something about the "instantly called", I guess.
[Coke] eh. running code in a container/VM so you can only take down your container is still a strategy.
GlitchMr gerdr has used ==> (*[0..100])() instead of [^101].
Actually, not sure if he intended 101 numbers.
14:11 xinming_ joined
masak actually, you could even design a FLooP-alike which enables recursion, as long as the programmer is forced to pass along one of moritz' "variants" as a parameter. i.e. a non-zero integer that strictly decreases with each recursive step. 14:13
er, non-negative integer, I mean.
14:14 xinming left 14:17 not_gerd joined
not_gerd hello, #perl6 14:17
masak not_gerd! \o/
I'm thinking for next year's advent calendar, we might declare a "topic bankrupcy", and allow any topic to be written about.
even repeats from previous years.
14:17 not_gerd left
PerlJam masak++ 14:18
moritz or we just need to write so many awesome modules that we can write about those :-) 14:19
14:19 not_gerd joined
masak or that. 14:19
not_gerd has WLAN issues 14:20
r: <1 2 3> ==> elems() ==> say;
p6eval rakudo e2f2dc: OUTPUT«3␤»
not_gerd r: <1 2 3> ==> elems ==> say;
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix ==> instead␤at /tmp/apUF25ZNjc:1␤»
not_gerd that's where the superfluous parens come in
14:20 skids joined
masak but I have the feeling that the market for articles about features is bigger than that for articles about modules. 14:20
not_gerd no idea if that's expected behaviour
masak r: <1 2 3> ==> &elems ==> &say
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Sorry, do not know how to handle this case of a feed operator yet. at line 2, near " &say"␤»
masak r: <1 2 3> ==> *.elems ==> *.say 14:21
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Sorry, do not know how to handle this case of a feed operator yet. at line 2, near " *.say"␤»
14:22 not_gerd_ joined, krzys joined, krzys is now known as Guest74820, not_gerd_ left
Guest74820 exit 14:24
14:24 Guest74820 left 14:26 not_gerd left
Ulti out of interest is there any plans to parallelize the feed operator stuff so that you have producer/consumer style threading? 14:30
PerlJam masak: re repeating previous years, some of the topics from 2009, 2010 are about features that have been subtly enhanced or modified in 2011,2012 (for instance). In that case, I think a new post on the same subject would be okay.
14:32 hash_table joined, bluescreen10 joined
moritz Ulti: yes 14:32
Ulti :cool:
cedrvint rn: my $c = { $^a.say; &?BLOCK.arity.say }; $c('test') 14:35
p6eval niecza v24-5-g599cbcb: OUTPUT«test␤1␤»
..rakudo e2f2dc: OUTPUT«test␤No such method 'arity' for invocant of type 'Nil'␤ in block at /tmp/RfuLfzfz_F:1␤␤»
14:36 aloha left
moritz r: say { &?BLOCK }.() 14:37
p6eval rakudo e2f2dc: OUTPUT«Nil␤»
14:37 hash_table left 14:41 aloha joined
cedrvint moritz: it this a bug or a feature not yet implemented? 14:43
moritz cedrvint: simply not yet implemented 14:44
hoelzro are suggestions for the advent calendar needed? if so, I have one that I've been meaning to write about myself for a few months 14:45
PerlJam hoelzro: do tell.
hoelzro I've been meaning to write an article about the "30,000" foot (or 10.000 meter, I suppose) view of Perl 6 14:46
what is Perl 6, what is Rakudo, what is Parrot, what is NQP, what is STD, etc
basically, as an introduction to how the whole thing is structured
because this has been a bit of a barrier to entry for me, I feel
jnthn r: my @dwarves{ 1..7 }; 14:47
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Shaped arrays is not yet implemented. Sorry. ␤at /tmp/B51EdfK1M_:1␤»
jnthn Nor is good English grammar :P
tadzik (:
14:49 tokuhiro_ left, tokuhiro_ joined
PerlJam jnthn: As soon as shaped arrays are implemented, the grammar of that message won't matter at all ;) 14:50
jnthn PerlJam: I am hope this is soon landing!
PerlJam how soon? (I could use something to write about for my advent slots :-) 14:51
14:52 stopbit joined
masak jnthn: I read it as "[The feature] shaped arrays is not yet implemented". 14:53
but maybe that's being too forgiving of the error message :)
14:57 sftp joined 14:59 toebu joined 15:00 cognominal joined
moritz IMHO NYI-messages don't warrant too much wordsmithing :-) 15:01
jnthn No, it's certainly not worth fixing. Just amused me :) 15:05
15:05 cognominal left
cedrvint what about hoelzro's proposition? 15:09
*proposal
masak slots 17 and 19 are open. it sounds like a nice proposal to me.
hoelzro the reason I haven't written it is because I honestly don't know enough about how everything fits together 15:10
masak oh, it's jnthn's turn to write today.
15:10 mjreed joined
hoelzro but I'd be happy to work with a veteran so we could blend the perspectives of someone relatively unfamiliar with the project with someone who's been working on it for a while 15:10
15:10 mjreed left
masak well, uh, tomorrow. 15:10
15:10 cognominal joined
masak hoelzro: either find someone to privmsg with, or simply ask here. 15:11
15:11 mjreed joined, xinming joined
PerlJam hoelzro: you can ask here over several days to build up a nice article. 15:11
hoelzro ok, I think I could do that
PerlJam hoelzro: and it doesn't have to be perfect, just good enough :) 15:12
hoelzro heh
tadzik still no one to tackle corountines and gather-takes? :) 15:13
moritz if it's such a big wish, I can tackle it
tadzik maybe if I could understand them first, hm
moritz though there isn't really too much to write about it 15:14
PerlJam tadzik: "adventures in understanding" would be a good post too
15:14 xinming_ left
tadzik hehe 15:15
if that's for a remote date, I can maybe try that and look for feedback meantime
if I fail I can always quickly write something about useful modules :)
or "Modules waiting for your pull requests"
tadzik signs up 15:16
masak \o/
dalek : 24ae49d | tadzik++ | misc/perl6advent-2012/schedule:
Add myself as 19th
PerlJam hoelzro: better grab a slot before they're all gone! 15:18
hoelzro where does one sign up?
masak hoelzro: see above commit.
hoelzro ah ha.
15:19 aloha left
PerlJam tadzik: I tend to like posts about things the author isn't quite sure about. They feel more "real" to me. Better than a post that just explains something as if that's the way it has always been. (especially when we're talking about something as dynamic as Perl 6) 15:20
dalek : 42c51a3 | (Rob Hoelz)++ | misc/perl6advent-2012/schedule:
Add myself to the advent calendar schedule
15:22
hoelzro I hope I don't regret this =S
PerlJam hoelzro: we'll do our best to make sure you don't :)
hoelzro heh 15:23
masak yay, all the slots are taken, except for 24. \o/
TimToady, pmichaud, jnthn: who'll do 24? :D
PerlJam yeah, except I still need to think of topics for 2 of my slots :(
masak PerlJam: if it helps, I usually like your posts a lot. 15:24
write about something you like.
PerlJam masak: and if that doesn't help? :)
masak PerlJam: quoting a musical I like: "count to 10... 1, 2, 3, 4, 5, 6, 7, 9, 10... and then... scream" :P 15:25
hoelzro this is what I've got thus far: gist.github.com/4205120
masak hoelzro: like Common Lisp, or C, or Ruby. 15:26
hoelzro Ruby's a spec?
15:26 aloha joined
masak it has a test suite, at least. 15:26
hoelzro: the "haz spec" thing is also unlike Perl 5, where the implementation is the spec. at some point there were several impls of Perl 5 (cf. oraperl), and it was very painful. 15:27
that was Perl 4, even, I think.
moritz though last I looked, ruby's test suite was orders of magnitude smaller than roast
masak must be careful not to call all pre-Perl 6 Perl versions "Perl 5" :)
hoelzro: if I'm not completely wrong, Perlito targets more things than JavaScript. 15:28
hoelzro oh, really?
I could always walk over to Flavio's desk and ask him =)
tadzik is amused with gist.github.com/4205148
moritz thinks masak isn't completely wrong
I think there's a perl5 backend too 15:29
masak hoelzro: there's lots more to say about nqp, I think. first, it got new, better support. then it got 6model. then it got newer, betterer grammar support. 15:30
hoelzro masak: I wanted to talk about NQP more, but I unfortunately don't know that much about it
PerlJam hoelzro: you could also mention that Rakudo has been shifting to target just NQP and that NQP primarily targets Parrot, but there is the possiblity of other back ends there too.
masak tadzik: cool!
tadzik so now if I convince LWP::Simple to use a fake IO::Socket::INET I can make it non-blocking
masak hoelzro: talking about the grammar engine and 6model as important parts of nqp is a good start, I belive.
tadzik and marry it to MuEvent 15:31
masak tadzik: \o/
tadzik and we'll have something _a lot_ better than Perl 5
PerlJam tadzik: I don't know ... Perl 5 has options.
tadzik reminder: AnyEvent::HTTP is a 1500-line-long file which reimplements LWP
masak hoelzro: the explanation of the name "roast" is that TimToady wanted to be able to tab-complete on the name, so we couldn't have both "specs" and "spectests" folders. :)
tadzik :D 15:32
hoelzro oh, good to know!
moritz and the other is that we're not only spectesting, but also regression-testing
so we're roasting the implementations, and see what remains :-)
masak hoelzro: yes, STD is canonical. we're also at the end of the "age of STD", it seems, where implementations are catching up and STD is getting less relevant with each day. it starts to hurt more and more that it *only* does parsing.
there were a lot of silly backronyms for "roast", I think. none of them very good. 15:33
jnthn It gives the implementations a good roasting, to make sure they aren't half-baked :P 15:34
PerlJam masak: "age of STD" makes me think a Tolkienesque history of Perl 6 is in order at some point :)
masak PerlJam: well, I did write gist.github.com/2649172 about half a year ago... :) 15:35
I was informed the ending didn't feel complete. I can only agree! ;)
PerlJam masak++ :-) 15:36
tadzik ===SORRY!===
Found a version control conflict marker at line 15, near " Updated u"
whoever wrote that: this is freaking awesome
my face: "HOW DO YOU KNOW THAT"
PerlJam heh 15:37
masak tadzik: :D
moritz we stole that idea from the 'clang' compiler
masak tadzik: you might be the first one that actually triggered that in a non-testing setting.
jnthn :) 15:38
I nabbed it from STD when updating the vws rule while putting in heredocs.
15:39 tokuhiro_ left
moritz masak: I've triggered it too 15:39
15:39 tokuhiro_ joined
felher how cool :D 15:39
masak moritz: I should've known ;)
15:44 kaare_ joined
tadzik r: out $variable; 15:45
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Variable $variable is not declared␤at /tmp/yMHtVW2Fd2:1␤»
tadzik confusing error message for mistyped our :)
masak tadzik: what would you have liked to have seen?
tadzik masak: I was afraid of that question :)
masak tadzik: remember that it's possible to post-declare a subroutine &out 15:46
tadzik yeah, I know that
I don't think it's possible to make it better and keep it sane
15:46 fgomez left
tadzik whose LWP::Simple is working these days? 15:46
(if any)
PerlJam The error message could say something like "Perhaps you mistyped the declarator as 'out'?" 15:48
(and maybe even give a list of valid declarators)
masak PerlJam: what if I mistyped it as 'saay'? :P
15:48 cognominal left
PerlJam masak: Perhaps you mystyped the declarator as 'saay'? :-) 15:49
masak :P 15:50
15:51 fgomez joined, hash_table joined 15:52 cognominal joined
smash japhb: no objections 15:52
15:52 nyuszika7h left, kaleem left 15:53 pnu joined 15:54 rjt_pl left
japhb *yawn* 15:55
smash, thank you
15:55 kresike left
cedrvint masak++ # gist.github.com/2649172https://gis...om/2649172 16:13
tadzik oh, this is nice :) 16:15
saw it coming, but it's heartwarming somewhat :)
16:15 wamba joined
tadzik meanwhile, I think I get this: gist.github.com/4205696 16:16
this is exciting :) 16:17
16:19 AndChat|356841 joined
AndChat|356841 hi pals 16:19
tadzik hi AndChat|356841
16:20 AndChat|356841 is now known as FROGGS__
masak tadzik++ # new shiny tech 16:21
tadzik this is awesome! :)
16:22 wamba left
jnthn tadzik++ 16:23
tadzik struggles to port Coro 16:25
gist.github.com/4205805 16:26
now, ain't that something :)
FROGGS__ new shiny tech? do I need to read backlog?
tadzik just the last gist :)
this isn't Coro-compatible, as Perl 5 Coro uses only cede, which works differently when in an async routine or outside it 16:27
which could be hacked up :)
I don't like the name "cede" though 16:28
FROGGS__ cool 16:29
hoelzro tadzik: yield?
16:29 nyuszika7h joined
awwaiid_ what hmm perl6 coro? hmmmm 16:29
tadzik hoelzro: yeah, yield is the one inside a coroutine 16:30
hoelzro oh, I see
tadzik I now renamed it to sched9)
()
masak tadzik: wow.
tadzik now it looks like gist.github.com/4205836
masak tadzik: what happens id you cede/sched one time too much?
tadzik masak: just took care of that
masak ah :)
tadzik now, semaphores :>
PerlJam tadzik++ neat
masak tadzik: I'm not sure I prefer "sched" to "cede". 16:31
"sched" is not a complete word.
tadzik is "cede" a word?
masak yes.
PerlJam yes
tadzik oh, TIL
phenny: "cede"?
phenny tadzik: "yields" (es to en, translate.google.com)
masak it's quite similar to "yield", actually.
tadzik ehehe
okay
masak tadzik: it means "to give up [something]"
tadzik it's a Polish naive pronounciation of CD too
masak in this case, to give up the control flow. 16:32
tadzik it would probably be more friendly if yield() would work everywhere
awwaiid_ aptly used then :)
flussence call it "pass", to annoy python users :)
awwaiid_ actually doesn't coro call it cede everywhere?
tadzik it does 16:33
flussence: ahahahaa
cannot... resist...
jnthn Is it possible to yield a value?
flussence
.oO( wouldn't that be gather/take? )
16:34
tadzik can be made so
jnthn :)
tadzik flussence: that's the whole joke
jnthn hah, if you call it pass then the documentation for doing it with a value can be, like
tadzik it's just sugar
jnthn pass 'wind';
:P
tadzik which amuses me a lot
and thanks to jnthn I just found something that amuses me more :D
flussence I'm slow today, must be the cold :)
masak so... you'd do "my $value = pass;" ? 16:35
[Coke] r: gist.github.com/4205836
p6eval rakudo e2f2dc: OUTPUT«===SORRY!===␤Confused␤at /tmp/gSRP3lUTXz:1␤»
masak or "my $value = cede;" ?
[Coke] ah, of course nyou are.
jnthn Seems I'm doing today's advent blog post :) 16:37
er
tomorrow's
but should write it today :)
16:38 daniel-s__ left 16:39 daniel-s__ joined 16:43 wamba joined, _daniel-s__ joined
tadzik hm. Any idea how to write a sub that reacts differently when called from inside another sub? 16:43
(the pass case)
PerlJam switch on callframe results? 16:45
16:46 daniel-s__ left
tadzik yeah, I'm looking into it 16:46
it fell odd tho, like "I shouldn't have to do this"
or maybe I should :)
awwaiid_ with perl5 coro, I had to create a return value stack when implementing Coro::Generator, which implements a $my $new_arg_value = yeild($retval) 16:48
16:48 daniel-s joined 16:50 _daniel-s__ left, leont joined
pmurias japhb: re v6.pbc I have no idea what that is 16:52
hmm, maybe there is a 'use v6' somewhere? 16:53
16:53 benabik joined, grondilu left
pmurias japhb: where do you have your nqp from? 16:54
16:55 daniel-s_ joined
tadzik aww, pass() conflicts with Test.pm :( 16:56
16:57 daniel-s_ left 16:58 daniel-s left, daniel-s_ joined
pmurias tadzik: called from an inside a routine you could use a dynamic variable for that 16:58
tadzik pmurias: nah, that doesn't quite work :| 16:59
when the control flow jumps because of take, the dynamic variable reamins
17:00 mjreed left
felher officially likes gather/take :) 17:00
And therefore very much looks forward to tadzik post :) 17:01
pmurias tadzik: if you jump out of a routine caller won't work either
tadzik I'm beginning to realise that :| 17:02
17:03 leont left
tadzik I'll do it the easy way and maybe someone will come up with Magic later on 17:04
17:04 fhelmberger left 17:07 hoelzro is now known as hoelzro|away
masak maybe you can save caller information in a dynamic variable somehow. 17:09
tadzik: there's something to be said for keeping the old names of routines in Coro. some people will probably find them familiar.
pmurias japhb: I try building nqp-js with the HEAD nqp maybe that will help
tadzik masak: well, I even named it Coroutines rather than Coro, not confusing people being one of the reasons 17:11
masak just suggesting that keeping names might also be a good thing. your decision.
tadzik now neither of the available subs does the same as cede(), so I don't think it should be named cede()
when I get the unified yield()/schedule() I'll consider it 17:12
17:12 birdwindupbird left
tadzik now I see that Coro used yield() in the early days, but in 0.1 Damian suggested cede() as a replacement 17:13
I wonder what was the rationale 17:14
17:14 daniel-s_ left, daniel-s_ joined 17:15 daniel-s_ left, daniel-s_ joined 17:17 daniel-s_ left, daniel-s_ joined
masak maybe because "yield" has the wrong connotations based on how it's used in other programming languages? 17:18
17:19 daniel-s_ left, daniel-s_ joined
tadzik no eye deer 17:21
dalek osystem: 9790784 | tadzik++ | SHELTER/ (2 files):
Remove dead modules from the SHELTER
17:21 daniel-s_ left
dalek osystem: 18679a9 | tadzik++ | META.list:
Add Coroutines
17:21
tadzik there we go :)
17:22 daniel-s_ joined 17:23 daniel-s_ left 17:24 daniel-s_ joined 17:25 daniel-s_ left 17:26 daniel-s_ joined 17:27 Vlavv joined, daniel-s_ left 17:28 daniel-s_ joined, cognominal left 17:29 daniel-s_ left 17:30 Vlavv_ left, daniel-s_ joined 17:31 daniel-s_ left 17:32 daniel-s_ joined, mjreed joined 17:33 daniel-s_ left 17:34 daniel-s_ joined 17:36 Chillance joined
moritz tadzik++ 17:37
masak tadzik: so, you plan to have both Coro.pm and Coroutines.pm, and keep them in sync? 17:38
tadzik masak: I don't know yet
masak :)
tadzik Coro-the-real-Coro looks like a lot of work:)
see also: MuEvent, Bailador
masak I'm just wary of API duplication that ends up causing more work for the API developer. 17:39
japhb pmurias, `which nqp` shows that I was using the one built last time I rebuilt Rakudo. "This is nqp version 2012.11.1 build on parrot 4.10.0 revision RELEASE_4_10_0" 17:40
masak also, Coro::still_going and Coro::done look suspiciously like enums to me.
tadzik: have you considered making them enums? :)
17:40 geekosaur left
tadzik masak: I did :) 17:40
I just never remember syntax for enums
so "I'll do that later"
masak uh.
tadzik feel free to pull-request me :)
masak "remember the syntax"? :)
tadzik yes, I'm serious :) 17:41
17:41 geekosaur joined
masak r: enum CoroStatus <still_going done>; say still_going === done 17:41
p6eval rakudo e2f2dc: OUTPUT«False␤»
masak tadzik: I'm still on $dayjob stuffs, otherwise I would so pull-request you right now... :)
17:43 popl joined
tadzik ;) 17:44
I should probably leave this and start learning from tomorrows' exam anyway
masak lol, Flash was originally known as "FutureSplash" :P 17:45
moritz
.oO( The Programming System Formernly Known As FutureSplash )
17:46
masak couldn't they have kept that name, and Flash would've died off much sooner?
17:50 fgomez left
sergot hi! o/ 17:58
tadzik hi hi 17:59
17:59 Kharec left 18:00 FROGGS__ left 18:01 fgomez joined, AndChat|356841 joined 18:03 dakkar left 18:05 AndChat|356841 left
masak sergocie! \o/ 18:13
18:17 benabik left 18:21 spider-mario joined 18:25 spider-mario left
sergot \o/ 18:25
masaku ! ;]
18:26 spider-mario joined, spider-mario left, rindolf left 18:27 spider-mario joined, spider-mario left
tadzik sergot: are feather.perl6.nl/~sergot/modules/ cronjobs running? 18:28
18:28 spider-mario joined
sergot tadzik: no, something is wrong with perl6 on feather. 18:30
there's no needed libs 18:31
dalek rl6-roast-data: 84b1aa1 | coke++ | / (2 files):
today (automated commit)
18:34
tadzik hm, odd 18:37
sergot: anything specific?
18:41 spider-mario left 18:42 spider-mario joined
sergot tadzik: Dont remember I'm updating it manually now. 18:43
JSON::Tiny iirc
18:46 pnu left 18:47 Kharec joined 18:48 pnu_ joined 18:49 pnu_ is now known as pnu
FROGGS_ damnit, this modules-storage thingy is le crap -.- 18:51
18:51 FROGGS_ is now known as FROGGS 18:52 spider-mario left, spider-mario joined 18:53 benabik joined, fgomez left
tadzik modules-storage 18:53
?
18:57 spider-mario left 18:58 spider-mario joined 18:59 spider-mario left, spider-mario joined 19:02 rindolf joined 19:07 telex left 19:08 telex joined
FROGGS ya, how to store modules (packages) on disk 19:12
masak FROGGS: not sure what you mean. Ctrl+S? 19:14
19:14 spider-mario left
FROGGS ctrs+s? 19:14
I'm talking about S11/Versioning 19:15
19:15 spider-mario joined, spider-mario left
masak ah. 19:15
FROGGS if you made a module, you have to supply the modules name, the author (as mail address for example) and the version
masak surely you don't *have* to... 19:16
FROGGS the modules name is unicode, the author can be everything (web address like github, a CPAN id, ...)
19:16 spider-mario joined
tadzik well, almost nobody does it so far :> 19:16
19:16 spider-mario left
tadzik let's keep it in sqlite :> 19:16
FROGGS masak: according to S11 you have to supply an author
tadzik I appear to be doing evil grins :> 19:17
FROGGS ;o)
ya, you need something like a database to get the modules path, since the path cant handle these information
masak FROGGS: no, S11 says modules posted on CPAN or entered into any standard Perl 6 library must. 19:18
FROGGS but thats not ideal, since sometimes you install a binary, and want to put it in PATH
tadzik easy
we'll use FUSE
masak FROGGS: the difference is important because there might be modules on disk which you might want to use but which didn't come from CPAN or some standard Perl 6 library.
FROGGS masak: of course, thats true
FUSE?
19:19 spider-mario joined
tadzik Filesystem in Userspace 19:19
we'll write a perl6 program that pretents to be a file system
so when you ask for File/Find.pm it'll wonder what you mean by that, and supply different things based on other sources of information
or... (and this time seriously) 19:20
this File/Find.pm is not a real File/Find.pm but something that a module installer generated. It looks at the author you wanted, or version, and then knows where to look for them 19:21
so the module itself cares, not the loading mechanism
and modules aren't real, they're sort of proxies then
FROGGS I wonder how that should work
example from S11: use Dog:auth({ .substr(0,5) eq 'cpan:'}):ver(Any); 19:23
tadzik ewww
FROGGS the easiest thing would be to have an index file/database that you can search for stuff like that
19:24 mjreed left
FROGGS and the real path to the module files (or its share dir) is then maybe like: lib/perl6/rakudo-1.0/Dog/cpan_JTPALMER/1.3.4/... 19:24
it will be "Dog" on the disk even if the module's name is "D􏿽xF3g" or so 19:25
just that we can be sure it will be stored and it looks similar to the real module
.. or package or dist or whatever
masak so we'll need a complete strategy for ASCIIfying module names. 19:26
GlitchMr How can I slurp binary data?
masak GlitchMr: the :bin argument on various I/O methods.
FROGGS maybe its just a single dirname for the module, like Dog-cpan_JTPALMER-1.3.4-h876h8h6 <-- last is some sort of unique id 19:27
masak .open has it, I know. maybe .slurp, too.
FROGGS masak: ASCIIfying is easy IMO
masak FROGGS: how do you ASCIIfy 你好?
FROGGS whats its unicode name?
tadzik Dóg :)
[Coke] masak;there's a module for that. 19:28
masak .u 你好
phenny U+4F60 CJK UNIFIED IDEOGRAPH-4F60 (你)
U+597D CJK UNIFIED IDEOGRAPH-597D (好)
GlitchMr Unidecode
duckduckgo.com/?q=unidecode+%E4%BD%A0%E5%A5%BD
masak ok, as long as it's a solved problem.
FROGGS hmmm
masak I'm just trying to play devil's advocate here as best I can.
[Coke] search.cpan.org/~sburke/Text-Unidec...idecode.pm
FROGGS okay, chinese or what it is is a bit hard
.u 􏿽xF3
phenny UnicodeDecodeError: 'utf8' codec can't decode byte 0xf3 in position 0: unexpected end of data (file "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode)
masak I want us to end up with a sane module handling. the less complexity, the better.
tadzik .u ó
phenny U+00F3 LATIN SMALL LETTER O WITH ACUTE (ó)
tadzik FROGGS: see, that's how you do this 19:29
masak FROGGS: check your client's encoding.
FROGGS k
so 􏿽xF3 would be a small o
masak we hug trolls, but we dislike people who can't play by utf8 rules :)
tadzik this should be named U+00F3 U KRESKOWANE
GlitchMr It's not ACUTE
... or perhaps it is
19:29 SamuraiJack left
[Coke] masak: so, "NiHao" 19:30
GlitchMr Well, sadly unicode doesn't have O WITH KRESKA character
masak oh, you cute Polish people.
popl that is an obtuse observation
GlitchMr But ś should be S WITH KRESKA
.u ś
phenny U+015B LATIN SMALL LETTER S WITH ACUTE (ś)
masak [Coke]: oh, it actually does that? impressive.
GlitchMr Unicode actually thinks that ACUTE is identical to KRESKA. It isn't.
19:30 spider-mario left
FROGGS okay, ASCIIfying is a problem then too 19:31
[Coke] masak: that module is super awesome, yes.
19:31 spider-mario joined 19:33 spider-mario left
[Coke] eval: use Text::Unidecode; 19:33
buubot_backup [Coke]: ERROR: Can't locate Text/Unidecode.pm in @INC (@INC contains:) at (eval 20) line 1. BEGIN failed--compilation aborted at (eval 20) line 1.
FROGGS k, writing that on my list ;o) 19:34
sorear good * #perl6 19:36
19:36 spider-mario joined
colomon \o 19:36
19:36 SmokeMac_ joined
masak sorear! \o/ 19:36
colomon! \o/
colomon masak! \o/ 19:37
19:38 mjreed joined
masak ________! \o/ 19:38
19:38 SmokeMachine left
sorear mjreed! \o/ 19:38
masak .oO( if you flip the IRC backlog quickly, it'll look like the o/ person is moving to the right... ) 19:39
19:40 spider-mario left 19:41 spider-mario joined, spider-mario left
FROGGS hehe 19:46
masak: I am searching for the sanest module storing/loading mechanism there is, best would be to reduce the spec a bit ;o) 19:47
tadzik if we're in dead point, we should try TDD maybe :) 19:48
starting from small things, those "small steps" thingy we did in Oslo
FROGGS so for now, I trying to figure out what would be needed to do everything the spec tells
masak tadzik: yes, that's why I suggested the other day that we prototype this.
FROGGS ya, if I dont have anything within the next days... 19:49
masak tadzik: then we could play around with tests and requirements without being encumbered by an implementation.
FROGGS masak: thats why I make some sort of test suite
GlitchMr www.perlcabal.org:1337/ 19:50
December Wiki :-)
tadzik GlitchMr: is that written in Perl 6?
GlitchMr Yes
tadzik the speed looks like it is :P 19:51
awesome :) GlitchMr++
now show the code :)
GlitchMr Sure
I'll upload it to GitHub soon
masak GlitchMr: nice :)
PerlJam GlitchMr: git-backed?
GlitchMr Yes
masak GlitchMr: may I suggest you use ISO dates rather than SHA-1s for the revision numbers? :)
GlitchMr I will do it 19:52
Currently I'm trying to implement basic functionality
masak aye.
just stood out as a simple improvement.
speaking of nothing, what's the most malign thing that can be done with a page that accepts arbitrary HTML? :> 19:54
I'm thinking things like XSS attacks...
GlitchMr I know that you currently can use any HTML 19:55
I don't have any language like MarkDown or HTML filter yet
masak adds a link to his blog 19:56
GlitchMr github.com/GlitchMr/December 19:57
Enjoy
flussence "arbitrary HTML" includes arbitrary webgl code, which is a bit too close to root-privileged drivers for comfort...
tadzik yeah!
masak anyway, mad props to GlitchMr for this.
GlitchMr It'
It's very early
I plan adding more features
masak imagine if it had been this easy to make a wiki engine back in 2008 :)
flussence
.oO( is the next wiki going to be called "Smarch"? :)
19:58
GlitchMr No, January ;-)
tadzik hehe. It's ~80 lines of code
GlitchMr But it works... somehow 19:59
moritz has proposed December as name and I liked it.
irclog.perlgeek.de/perl6/2012-12-02#i_6204609
Why? Because it's 1) November++ 2) It was December 20:00
masak oh, was that a proposal? I thought moritz cheered an already decided name :)
tadzik :D
GlitchMr Nope. It had lame name before that
But I like December
tadzik let's move the existing wiki to this wiki by the end of December 20:01
er, by the end of december :)
colomon Sorry to interrupt from GlitchMr++'s triumph, but does anyone have a quick way of making Rakudo accept non-UTF-8 files? Or converting a non-UTF-8 file to UTF-8? A "Malformed UTF-8 string" error from Rakudo is interfering with my $work....
GlitchMr Well, the problem is it's slow
tadzik you can always profile it :)
GlitchMr Yeah, I also have problems with UTF-8 20:02
Probably if somebody would inject invalid UTF-8 on my site, it would explode
tadzik I'm confused with the Watching/Starring on github recently
masak colomon: there's a tool called 'iconv' 20:03
GlitchMr I just wanted a simple web app that actually would work
tadzik this is great
and is the best thing created with Bailador so far (that I know of) 20:04
GlitchMr I had to actually modify Bailador to listen on public IP. By default, Bailador websites are only available locally. 20:05
0.0.0.0 is only available locally
I have changed that to 0 and it works
tadzik pull request!
btw, I commented on the last one you sent
flussence 0.0.0.0 means "bind to any address"... that should have worked. 20:06
GlitchMr Yeah, that pull request is needed to for redirects to work on my Wiki. But I don't know how to make a test case.
colomon masak++ # that seems to have done the trick, though the example command line I grabbed from saying "man iconv" in google didn't actually work in my machine's iconv.
tadzik GlitchMr: I guess it'll be something with inspecting Bailador::Response 20:07
or nos
* not
or yes
yeah, obtain B::Response, check if .psgi is valid
I can do that tomorrow evening 20:08
GlitchMr Currently I'm trying to make Wiki more awesome
Now to fix security issues
tadzik a safe git wrapper would be nice 20:09
as a separate project, probably
PerlJam tadzik: funny enough, I was just contemplating writing a Perl 6 version of Git::Wrapper :)
tadzik (:
GlitchMr This wiki will use it after it will be completed
Currently, I'm using lame escaping that only works in sh, really 20:10
20:10 fgomez joined
GlitchMr By the way, I've tried using run(), but it seems to cause SIGSEGV... looks I'll have to look into my code, because I was the one that has added run() to Perl 6. 20:10
tadzik and looks like we need spectests :) 20:11
GlitchMr perl6: say '<>&lamest>html&&escaper'.trans: '<>&' => <&lt; &gt; &amp;> 20:13
p6eval rakudo e2f2dc, niecza v24-5-g599cbcb: OUTPUT«&lt;&gt;&amp;lamest&gt;html&amp;&amp;escaper␤»
GlitchMr Seems to work... somehow
tadzik don't we have urlencoder and decoder? 20:14
oh, that's not the same thing 20:15
flussence that's a bit harder :)
GlitchMr URI::Escape is not work HTML
tadzik yeah, it's a different stuff
GlitchMr .trans: '<>&"' => <&lt; &gt; &amp; &quot;>
tadzik html-entities, or something?
GlitchMr Well, it's PHP quality...
But still
flussence it's not quite PHP-quality, you need to explicitly specify the string encoding there :) 20:16
GlitchMr www.perlcabal.org:1337/%3Cb%3E 20:20
ok, no XSS tehre
Now only XSS is in articles themselves
That could be more difficult
uri_escape html <b> 20:21
oops lol
ok, logs on December now should show time 20:32
20:33 Chillance_ joined 20:34 kurahaupo joined 20:36 SmokeMac_ left 20:37 Chillance left
GlitchMr gist.github.com/4208417 20:37
But perhaps performance isn't that bad
0.8s for main page
masak at some point, November had 9s for the main page. 20:38
GlitchMr 0.8s is acceptable for me 20:40
But logs for main page are REALLY slow
well whatever
It's possibly git 20:41
10 seconds
Actually, I should check it myself
Without Perl 6
Nope 20:42
0.013 seconds to run command directly (without Perl 6).
20:43 FROGGS left
GlitchMr Perhaps templates are slow 20:43
20:43 FROGGS joined
tadzik --profile :) 20:43
GlitchMr ok, I'm going to try --profile 20:44
How does --profile work?
tadzik it generates something that kcachegrind can read
20:44 spider-mario joined
GlitchMr oh, ok 20:44
But there is a problem 20:45
It requires me to quit process successfully
tadzik oh hm
GlitchMr But whatever, I will add quit command to wiki
tadzik yep :)
it'll probably be the best to profile the logic itself, not going through the web layer 20:46
20:52 spider-mario left, spider-mario joined
GlitchMr Most of time is wasted for templates 20:52
20:52 spider-mario left 20:53 spider-mario joined
GlitchMr Around 94% according to KCacheGrind 20:54
20:54 spider-mario left 20:57 spider-mario joined, spider-mario left
GlitchMr gist.github.com/4208577 20:58
Template looks like thsi
this*
20:58 spider-mario joined
GlitchMr How slow is concatenation in Perl 6? 20:59
Because I don't see anything else
tadzik hm
I should implement constant folding in Template::Mojo :)
flussence GlitchMr: depends on the length of the string, and the runtime... 21:00
tadzik obtw, I'm quite sure Bailador recompiles the template every single time you run it :>
sorry for that :)
GlitchMr I know
I actually abused that to test templates dynamically
Without waiting for Perl 6 to load again
tadzik haha, now I can say that it's a feature
GlitchMr But seriously, I think it should cache templates 21:01
tadzik it would be a nice thing, yes
just checking mtime or such
GlitchMr I like Bailador :-).
tadzik :) that's awesome :) 21:02
GlitchMr Also, bye
tadzik o/
21:02 GlitchMr left 21:03 spider-mario left, mj41_ left 21:05 mj41 joined, spider-mario joined
spider-mario sorry about all that. 21:06
good night o/
21:07 spider-mario left
masak (sorry about what?) 21:07
21:10 FROGGS left 21:12 FROGGS joined
felher Would someone be so kinds as to give me (felher) a commit bit for perl6-examples? 21:14
masak I can't, but I think moritz can. 21:15
felher Hm, maybe I already have that, even though github says 'read-only acces' 21:16
But github says that regarding the specs, too. And I can commit to them.
21:16 hash_table left, SmokeMachine joined
felher will try later and then scream very loud here if it doesn't work :) 21:17
21:21 SmokeMachine left, pmurias left
moritz felher: according to github, you already have commit access 21:34
felher moritz: great. Thanks :) 21:35
skids
.oO(Re coros most API's allow the yield/cede to pass a value back as the return value of the re-call/sched. Lua allows the values to be passed both ways. This one of their most useful aspects.)
21:46
jnthn yay, blog post just about ready to publish 21:49
(for advent)
21:50 Chillance_ left
dalek p-rx: c89a5b9 | rurban++ | t/nqp/67-threads.t:
import t/nqp/67-threads.t from parrot.git

requires a threaded parrot
21:51
kudo-debugger: dceffa4 | jnthn++ | bin/perl6-debug.nqp:
Unbust P5Regex debugging.
21:53
kudo-debugger: c6bc494 | jnthn++ | bin/perl6-debug.nqp:
Don't step through simple my/our decls.

They don't do anything, they're just declarations, so there's no value in stepping through them one by one. Those that initialize the variable are exempted from this, since they make some kind of assignment or binding, and so are not only declarational.
21:58 bluescreen10 left 22:00 kaare_ left
jnthn Post scheduled \o/ 22:01
masak \o/
masak reads
jnthn: maybe add "Day 5" in the title? 22:02
jnthn ah, didn't notice we're doing that 22:03
masak jnthn: huh -- nice console font.
jnthn Fixed
masak jnthn++ # nice post :) 22:04
jnthn Miracles can happen :P
I guess scheduling it for dec 5th 00:00 is fine?
masak I wasn't sure, so I scheduled it for 00:01 :) 22:05
s/it/mine/
jnthn lol, me too :P
masak (but I still failed, because I didn't push le 'schedule' button) :(
jnthn I did 22:06
And it says mine is scheduled :)
masak then you should be fine.
jnthn asbra, my advent work here is done.
Until the 10th anyways... :)
22:14 leont joined, SmokeMachine joined
flussence jnthn++ 22:14
flussence tries to procrastinate usefully by handling the spam post queue on this thing... 22:15
masak flussence++ 22:16
flussence though if that automated filter count is to be believed, I'm only doing 0.1% of the work :) 22:18
22:20 skids left
masak 'night, #perl6 22:21
colomon has had a Grammar::Tracer trace running for an hour and a half now... 22:23
22:23 benabik left, hash_table joined
[Coke] urk. 22:23
22:37 hash_table left 22:38 erkan left 22:45 erkan joined 22:46 wamba left 22:56 kurahaupo left
dalek pan style="color: #395be5">perl6-examples: 31c1f20 | (Felix Herrmann)++ | euler/prob014-felher.pl:
[euler] add solution for problem 14
22:59
23:01 rindolf left 23:11 mjreed left
dalek pan style="color: #395be5">perl6-examples: a0aedbd | (Felix Herrmann)++ | euler/prob015-felher.pl:
[euler] add solution for problem 15 (just arithmetic, nothing cool here)
23:23
japhb phenny, tell GlitchMr Regarding SIGSEGV from run(), see Rakudo bug #115390 -- in my bench script, I've had to convert loops with multiple run() calls to multiple loops with only one run() call each (as the last statement in the loop block).
phenny japhb: I'll pass that on when GlitchMr is around.
23:29 stopbit left, am0c joined 23:37 kivutar joined, xilo_ joined
dalek pan style="color: #395be5">perl6-examples: 8c04c1c | (Felix Herrmann)++ | euler/prob017-duff.pl:
[euler] make solution 17 from duff++ work with current task description
23:45
23:48 rurban left 23:53 Gothmog_ left