»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by diakopter on 14 April 2013.
japhb_ JSON has a simple grammar; we should be able to process it fairly efficiently, and if not there's something wrong. 00:00
00:01 armitage81 left, armitage81 joined 00:02 armitage81 left, armitage81 joined 00:03 armitage81 left, armitage81 joined 00:04 armitage81 left, armitage81 joined, armitage81 left, armitage81 joined 00:05 kivutar left 00:12 thou joined 00:30 armitage81 left
tangentstorm where is the json grammar? 00:35
00:38 takesako___ left 00:39 takesako___ joined 00:54 sunnavy left, sunnavy joined 00:58 kbenson left 01:01 sunnavy left, sunnavy joined 01:05 anuby joined
tangentstorm timotimo: which json parser are you using? 01:10
01:14 japhb_ left 01:21 xinming left 01:23 xinming joined 01:24 Psyche^ joined 01:27 Patterner left, Psyche^ is now known as Patterner 01:28 snuffles left 01:32 fgomez left 01:36 snuffles joined 01:45 preflex left 01:46 gdey left, preflex joined
raiph tangentstorm: do you know about modules.perl6.org/? 01:51
01:59 fgomez joined 02:14 kurahaupo left 02:16 lue left
tangentstorm raiph: yes 02:23
i'm asking is it JSON::Tiny that is slow? 02:25
raiph i'm thinking yes: irclog.perlgeek.de/perl6/2013-04-15#i_6708012 02:26
02:26 kurahaupo joined
tangentstorm oh. whoops. totally missed the 98989 times he said that. :D 02:27
thanks
diakopter japhb: I'm quite convinced the slowness is dominated by the nature of the grammar engine 02:28
tangentstorm do we have a profiler?
hrmmm perl6advent.wordpress.com/2011/12/0...rprofiler/ 02:29
japhb tangentstorm, yes, there is a profiler -- but profilers do have their weak points.
diakopter, why so convinced? 02:30
diakopter well, hm 02:31
02:32 mogbog joined 02:35 mogbog left 02:41 orafu left, orafu joined 02:43 preflex_ joined 02:45 preflex left, preflex_ is now known as preflex 02:47 BenGoldberg left 03:10 mogbog joined 03:14 fgomez left
dalek kudo/nom: f17d339 | coke++ | src/core/List.pm:
port List.ACCEPTS back from b

  * gets Whatever special handling for lists back.
03:59
ast: 8d0b1b8 | coke++ | S03-smartmatch/array-array.t:
rakudo passes these again
04:05 mogbog left
[Coke] .tell isBEKaml done. resurrected the coe (sort of) from b. 04:06
yoleaux [Coke]: I'll pass your message to isBEKaml.
[Coke] .tell isBEKaml *code
yoleaux [Coke]: I'll pass your message to isBEKaml.
04:16 SamuraiJack joined 04:17 arlinius left 04:20 rking left 04:21 rking joined 04:28 lue joined
lue HexChat: 2.9.4 ** OS: Linux 3.3.8-gentoo x86_64 ** Distro: Gentoo Linux (stable) ** CPU: 2 x AMD Athlon(tm) Dual Core Processor 4450B (AuthenticAMD) @ 2.29GHz ** RAM: Physical: 3.6GB, 86.7% free ** Disk: Total: 73.4GB, 11.4% free ** VGA: 1002:9611 ** Sound: HDA-Intel - HDA ATI SB ** Ethernet: 14e4:167a ** Uptime: 1h 33m 48s ** 04:30
04:34 jaldhar_ joined, _jaldhar left 04:46 orafu left
flussence
.oO( 3.3?!? )
04:56
04:57 SamuraiJack left 05:00 frd|afk left
lue flussence: kernel version? I should get to updating that sometime soon :P 05:01
05:09 rindolf joined 05:25 fgomez joined
ingy rosettacode.org/wiki/Reports:Tasks_..._in_Perl_6 05:42
get cracking!
I know what my favorite one is… 05:44
05:44 sqirrel joined 05:46 striker joined
diakopter Use another language to call a function? 05:47
05:52 Chillance_ left 05:53 FROGGS joined
FROGGS morning 05:54
yoleaux 15 Apr 2013 19:29Z <moritz> FROGGS: if github.com/rakudo/rakudo/pull/87 can be closed
FROGGS std: do { say 1 } for ^3
camelia std 86b102f: OUTPUT«ok 00:00 43m␤»
FROGGS r: do { say 1 } for ^3
camelia rakudo f17d33: OUTPUT«===SORRY!===␤Unsupported use of do...for; in Perl 6 please use repeat...for␤at /tmp/RqsSjEAHH1:1␤------> do { say 1 } for ^3⏏<EOL>␤ expecting any of:␤ postfix␤»
FROGGS moritz: have to read specs first, because I'm not sure if do ... for should be supported 05:55
06:03 striker left 06:18 frdmn joined
sorear S04:413 "applying a statement modifier to a C<do> block is 06:21
specifically disallowed"
06:21 simcop2387 left
sorear this is plausibly a STDbug 06:21
FROGGS cool, so my pull request might be good, even if I want to check what I did five months ago :o) 06:23
thanks sorear++
06:32 simcop2387 joined 06:36 cognominal left 06:37 cognominal joined 06:49 kaleem joined 07:08 dalecooper joined 07:11 domidumont joined 07:17 domidumont left 07:18 domidumont joined 07:19 baest joined 07:23 domidumont left 07:24 domidumont joined 07:29 DreamingInCode left 07:34 spider-mario joined 07:40 hypolin left 07:42 hypolin joined 07:45 hypolin left 07:47 PerlJam left, PerlJam joined 07:53 hypolin joined 07:55 hlin_ joined 07:58 hypolin left 08:07 hypolin joined 08:11 kresike joined
kresike hello all you happy perl6 people 08:11
cognominal hello * 08:12
08:13 domidumont left
labster hi kresike, cognominal 08:13
kresike cognominal, labster o/ 08:14
08:15 domidumont joined
labster \o 08:15
timotimo so, theoretically since json is so utterly simple, i could write my own parser that's 100x faster? 08:22
tangentstorm you could write your own parser... whether you can get a 100x speedup or not... :) 08:25
timotimo what astounded me in addition is the utter slowness of to-json, though 08:27
tadzik tried profiling? 08:28
timotimo from-json-ing the data 5 times takes 3 seconds, but when i to-json it again each time, it will take 27
08:32 tgt joined
timotimo kcachegrind seems to show a super long tail 08:32
apparently the proto of infix:<<> is being called very often 08:33
08:34 daxim joined
FROGGS timotimo: that might be a general problem of parsing grammars 08:35
because if you have: <sym> <sometoken> it might think there is an infix < 08:36
tadzik I don't think the problem is in parsing the JSON grammar code
timotimo huh, why would it think that? 08:38
FROGGS timotimo: I just recognized that for 'require "path/to/script.pl" <&import-foo>' it tried to parse it as 'require "path/to/script.pl"' infix:< '&import-foo' first 08:41
but might not be releated like tadzik said
tadzik also, at a quick glance I didn't spot infix < in moritz/json
FROGGS ... and it parsed it wrongly because I used <sym> <EXPR> <EXPR> 08:42
timotimo oh. no, i'm talking about the actual operator
not the rule 08:43
jnthn morning, #perl6
FROGGS hi jnthn
timotimo hello jnthn
FROGGS damnit, ':=' doesnt work in PHP, right? 08:44
FROGGS .oO( not quiet php ) 08:45
jnthn
.oO( try writing less of the code in uppercase )
08:48
08:49 dakkar joined 08:54 hypolin left 08:59 hypolin joined
sorear once upon a time, niecza use JSYNC for storing the compiled modules 09:06
it's now using a custom binary format, but there's still a JSON/JSYNC engine in the C# code which you can play with :3
09:10 Guest62409 left 09:11 tgt left 09:14 tgt joined 09:17 kivutar joined
cognominal nqp: 'a' ~~ / <?before $<a>=a > { say($<a>) } a / 09:25
camelia nqp: OUTPUT«␤»
cognominal should an hypothetical in a <?before> be lost? 09:27
FROGGS AFAIK you cant capture in <?before> 09:28
09:28 kivutar left
FROGGS nqp: 'a' ~~ / <?{ say($/); 1 }> a / 09:29
camelia nqp: OUTPUT«␤»
FROGGS nqp: 'a' ~~ / <?{ say(self.orig); 1 }> a /
camelia nqp: OUTPUT«a␤»
FROGGS nqp: 'a' ~~ / <?{ say(self.orig) }> a /
camelia nqp: OUTPUT«a␤»
FROGGS nqp: 'ba' ~~ / <?{ say(self.orig) }> a / 09:30
camelia nqp: OUTPUT«ba␤ba␤»
jnthn The thing passed to <?before ...> is a new capture scope 09:31
timotimo i'm going to write an AI for a super simple game; it streams the game state as JSON via TCP and expects simple commands on TCP as reply. i'd like to make it in perl6, so the good thing is the game is turn based and the game currently gives the AI players 2 seconds of decision time before kicking the mout
jnthn (So I'd not expect the $<a> capture inside of it to be visible outside of it) 09:32
timotimo i wonder why to-json is so slow though. is it because of the string concatenations? are they really slow in rakudo?
jnthn timotimo: Strings are immutable, so concatenating two strings makes a new string and copies the two. 09:33
timotimo maybe one optimization that could totally be done is turning string concatenation "lazy", so when you concatenate 5 strings, you first calculate the length of the result and write that into a new string when it gets stored somewhere or something?
but i don't know enough about perl6 internals to get that to work :| 09:34
jnthn Well, it doesn't want to be lazy
But STD has ~ as list associative
FROGGS jnthn: then these throw-away-scopes need to be done for proper backtracking too, I remember open tickets for that
jnthn Meaning if you do foo ~ bar ~ baz, it would call infix:<~>(foo, bar, baz) 09:35
timotimo can rakudo get that, too?
jnthn I'm not sure if Rakudo has it that way at present; that may not be too hard to fix.
tangentstorm perhaps in the actual to-json code, you could just change it to build a list of strings and then join the list at the end? 09:36
jnthn I don't know if we special-case reduction for list-associative operators at present, but if we did then [~] would get the boost "for free" too
tangentstorm that's a pretty common workaround.
timotimo does rakudo currently have any way of saying "all right, i want to create a string of 100 characters now" and then write lots of pieces in and then turn the result into an actual Str without too much extra copying?
jnthn timotimo: Arrays, and join :)
timotimo oh, that already does that? sweet.
i'll see if [~] will give big improvements in to-json now. 09:37
jnthn Oh, but that opt is NYI :)
timotimo oh :|
jnthn I don't think we treat ~ as list assoc ATM.
timotimo is that something to be done in nqp?
jnthn Well, it means changing the assoc in Rakudo's Grammar, then adding a multi candidate for infix:<~>(*@things) that joins them. 09:38
timotimo oh, i thought you meant "[~] is fast" was the opt that's NYI
jnthn Well, it's all connected
cognominal thx for the answers about <?before > jnthn 09:39
timotimo well, if i create the infix:<~>(*@things) to [~] them together and [~] isn't "fast" yet, that's no use :P
jnthn Roughly, if [~] @foo is really going to call infix:<~>(@foo) then it boils down to a join
timotimo ah. but the join is already fast, yes? 09:40
jnthn You've got it the wrong way round. [~] would become faster because it could use an infix:<~> that calls join for many items
timotimo aaah
yes, i see, that makes more sense in my head now :)
cognominal ~ is used a lot to build pir code I suppose.
jnthn cognominal: Nah, that is building up a big array :) 09:41
FROGGS so, assoc<list> for src/Perl6/Grammar.pm line 2900? Perl6::Grammar.O(':prec<r=>, :assoc<left>', '%concatenation');
jnthn FROGGS: Yeah; that'd match github.com/perl6/std/blob/master/STD.pm6#L118
cognominal that's proof some optimisation is needed :)
FROGGS right
09:43 domidumont left, labster left
timotimo FROGGS: are you going to come up with the list assoc for ~ or should i do the honors? :) 09:43
hm, would nqp also benefit from this i wonder? 09:45
jnthn It's much harder to do this in NQP
As its operators don't do a multi-dispatch. 09:46
timotimo oh, ok
jnthn And it's nice if NQP can stay simpler :)
timotimo could one rewrite chains of ~ into [~] across the source code? i don't think nqp actually has [~]
FROGGS timotimo: I am totally busy right now, just lurking a bit
09:46 kivutar joined
FROGGS timotimo: so please go ahead :o) 09:46
timotimo will do :) 09:47
arnsholt Wow. R is super awesome 09:48
FROGGS .oO( wrong channel? :P ) 09:49
timotimo arnsholt: R backend for rakudo? :)
arnsholt Not really. Just sharing my revelation of the moment =)
timotimo :)
arnsholt timotimo: I think this is where I say "well volunteered!" ;)
timotimo haha. i don't know anythin gabout R 09:50
can i have multiple protos or something? 09:54
because infix:<~> currently has a proto for two arguments 09:55
would i just turn that into proto infix:<~>(|) { * }?
09:56 hypolin left, sftp left
jnthn timotimo: No, you have one proto. And yes, you'll need to change it. 09:57
timotimo where exactly lies the need for the proto in this case? i suppose if there were only two arguments i can see a definite benefit 09:58
09:58 sftp joined
timotimo hm. any good reason not to handle two argument forms and one argument forms of ~ with a join as well? 09:58
maybe an array has to be created for simpler cases then and that would be slower 09:59
jnthn Exactly
sorear timotimo: A proto with arguments serves as a central point for converting named forms to positional. &infix:<~>(:x(2), :x(3))
jnthn Keep the two argument candidate.
timotimo oh, it compiles now
a quick spectest now
jnthn timotimo: You may find fallout there 10:00
timotimo: Also, you may want to measure if this actually makes things better ;)
timotimo yes, i will want to do that for sure.
10:00 thou left
timotimo i'm getting strange errors indeed. 10:02
No such method 'count' for invocant of type 'Str' - i may be getting calls to *@things with only one parameter or something 10:06
10:07 woolfy joined
jnthn .count isn't .elems; .count is something you call on a block 10:07
timotimo ah, ok, that's even more interesting
10:07 anuby left
timotimo hm, what's the meaning of **@ in a signature? (looking at other list-assoc operators to see if i can copy the behavior from somewhere else) 10:12
tangentstorm if that was borrowed from python, it would mean applying the items of the array as keyword arguments... 10:14
or collecting them
<wild guess. probably not helpful>
timotimo in perl6, you do that with *% 10:15
10:16 SamuraiJack joined
timotimo jnthn: i don't know how to properly get a candidate that gives me a list of arguments and a special candidate for when i have two arguments only :( 10:18
jnthn **@foo means "don't flatten all the incoming arguments" 10:20
timotimo: What have you got?
timotimo i turned the proto to take (|) first, then removed the () altogether and finally removed the two-argument candidates completely; there's still no joy 10:22
basic usage works, but the tests show failures 10:23
qx/echo world/.trans('wd' => 'WD') -> Cannot assign a non-Perl 6 value to a Perl 6 container 10:26
10:28 kurahaupo left
sorear timotimo: you know how a signature like foo(@bar, @baz) lets you keep the boundaries between arrays? **@foo does the same for a variable number of arguments 10:39
kind of important for X, because 1,2 X 3,4 X 5,6 is not the same as 1,2,3 X 4,5,6
timotimo yes, good point 10:40
sorear you actually do need it for ~
r: say 1..3 ~ 4..6 10:41
camelia rakudo f17d33: OUTPUT«===SORRY!===␤Operators '..' and '..' are non-associative and require parenthesis␤at /tmp/g36Lttg7V8:1␤------> say 1..3 ~ 4.⏏.6␤ expecting any of:␤ dotty method or postfix␤»
sorear r: say (1..3) ~ (4..6)
camelia rakudo f17d33: OUTPUT«1 2 34 5 6␤»
sorear if you tried to use a regular slurpy, ~ would get six arguments and would end p returning 123456 10:42
timotimo good point
afk for a bit
sorear sleep& 10:43
10:44 xinming left 10:45 kaleem left, xinming joined 10:53 crab2313 joined 11:04 FROGGS left 11:05 xinming left 11:06 xinming joined
timotimo maybe i'll need to do dispatching magic in the proto or something? :| 11:22
but then compile-time dispatch wouldn't work any more, would it?
11:25 frdmn|afk joined 11:27 frdmn left 11:28 crab2313 left
jnthn timotimo: Magic sounds wrong. 11:30
timotimo: What needs doing is looking through the failures, identifying the simplest one, and trying to golf down to the root of the issue(s) to understand what's really wrong.
timotimo well, my golfing says sub yoink() { "foo bar" }; yoink.trans("o" => "0") <- Cannot assign a non-Perl 6 value to a Perl 6 container. so i suppose trans uses ~ internally in a way that doesn't work with my changes 11:32
jnthn Right, .trans is huge 11:33
Needs much more golfing.
11:33 xinming left
timotimo i may find a simpler one to golf first and maybe end up at the same conclusion 11:36
jnthn Yes, I'd be surprised if there aren't ones simpler than a .trans failure 11:37
11:38 xinming joined, Heather joined
Heather how's going #perl6 11:39
jnthn Busily for me, 'cus I gotta give talks tomorrow and, as per usual, left preparing them until the day before. :) 11:41
tadzik same here, but I got to know of my talk yesterday evening ;) 11:42
Heather today I realized that I hate ruby much more that I hated it earlier
by trying to understand po-ru.com/diary/fixing-invalid-utf-...revisited/ 11:43
jnthn The closest I've come to doing anything with Ruby is reading chunks of the JRuby source code... :)
Heather jnthn but I wonder that there is no perl on their VM 11:45
jnthn nqp-jvm: say("well, there's NQP on the JVM...") 11:46
camelia nqp-jvm: OUTPUT«well, there's NQP on the JVM...␤»
jnthn One of the JRuby guys is very involved with invokedynamic, so JRuby is a good place to go looking for real examples of it in a language implementation. 11:48
Heather jnthn today I discovered atomo and atomy and it's over geeky stuff :) darcsden.com/alex/blog/browse/site.atomo 11:50
11:53 erkan left, erkan joined, erkan left, erkan joined
timotimo hm, a triangle reduce of ~ should be lazy, eh? there's not much to optimize there i suppose. but i wonder why it would break in that spectacular fashion. 11:54
jnthn Heather: Hm, never saw that language before :) 11:57
12:03 domidumont joined 12:06 eiro joined 12:08 dayangkun left
Heather jnthn it looks very fancy 12:10
jnthn even when there is only 1 developer / user 12:11
:D
12:13 frdmn|afk left, frdmn joined
colomon six more modules working today than yesterday! \o/ 12:15
Heather cool
12:17 telex left 12:18 telex joined
pmichaud note that the reduce metaoperator already knows how to change for list versus binary operators 12:19
dalek osystem: cc158ba | colomon++ | META.list:
Switch Template6 to use my (working) fork.
12:20
pmichaud i.e., if &infix:<~> switches to list associativity, then [~] will automatically generate a single call to &infix:<~> instead of multiple pairwise calls. 12:22
defining &infix:<~> in terms of [~] gets things a little backwards from that
jnthn pmichaud: Aye, that's what I was trying to explain. 12:23
[~] should certianly get more efficient this way :) 12:24
timotimo yes, i'm trying to make infix:<~> use ().join if there's more than two ars
okay, the problematic points are MAIN and trans :| 12:25
both seem less than easy to fix :(
i'm not sure i'll figure this out at all 12:29
pmichaud can you nopaste a diff of what you have thus far? 12:34
timotimo sure, it's almost nothing and it doesn't incorporate the **@things thing sorear told me about before 12:35
pmichaud I think it won't work without **@things. The problematic line in .trans is likely 12:36
12:36 Heather left
pmichaud $0 ~ "\t" x ($steps div $?TABSTOP) ~ 12:36
' ' x ($steps mod $?TABSTOP) ~ $1
timotimo github.com/timo/rakudo/compare/fast_tilde
12:36 PacoLinux joined
timotimo i'm not 100% sure what errors i got when i put ** in there. i'll try that again 12:36
so, in **@things, i'll probably have a list of lists, yes? it seemed like .join would work fine with that, though 12:37
pmichaud maybe. .join calls .flat, so that might be causing **@things to flatten. The exact interpretation of **@things is still a bit fuzzy, at least to me. 12:39
timotimo the thing is, that with **@things i get "no signatures match" ;)
and i don't know if i can just put a *@things and a **@things in there and have it still work as expected 12:40
i could un-flat the things manually, if the **@things sub would actually get called :|
pmichaud that's what you should be able to do, yes.
jnthn wonders if the multi-dispatcher ever got taught that **@foo has slurpy arity... 12:41
timotimo ok, wasn't sure the multidispatcher would actually catch that
pmichaud are you saying that the **@things candidate isn't being called? That would seem unlikely.
jnthn r: multi foo(*@a) { }; foo(1,2,3)
camelia rakudo f17d33: ( no output )
jnthn r: multi foo(**@a) { }; foo(1,2,3) 12:42
camelia rakudo f17d33: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (Int, Int, Int) (lines 1, 1)␤ Expected any of:␤ :(*@a)␤»
jnthn hmmm.
pmichaud okay, that looks likely then :)
jnthn r: multi foo(**@a) { }; my $x = &foo; $x(1,2,3)
camelia rakudo f17d33: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(*@a)␤ in sub foo at /tmp/eCcpvu5twU:1␤ in block at /tmp/eCcpvu5twU:1␤␤»
jnthn OK, and it's not just the compile time analysis
Oh...I think the parameter carries a different flag for ** vs *
jnthn wonders why we never ran into this before :) 12:43
pmichaud we haven't done a lot with **, I suspect.
but yes, &infix:<~> will require **
12:43 tgt left, skids left
pmichaud (if it's to be list associative) 12:45
timotimo jnthn: is that something i could fix, or rather a bit too hard?
12:45 FROGGS joined
jnthn timotimo: Easier now because the multi-dispatcher is written in NQP :) 12:45
Lives in BOOTSTRAP
timotimo hehe.
pmichaud also, I wonder if changing &infix:<~> to use ** will run into some of the other flattening/listy issues that some other list metaops currently have 12:47
[Coke] r: say (1,2,3,4) ~~ (1,*,*,*,*,*,*,*,4)
camelia rakudo f17d33: OUTPUT«True␤»
pmichaud Coke++
jnthn github.com/rakudo/rakudo/blob/nom/...AP.pm#L792
timotimo: ^ is around where we need it to change, I think
[Coke] pmichaud: best of both words, I get the karma, but can blame b for the implementation! ;) 12:48
should be a bunch more low hanging fruit out there, I think. 12:49
12:51 domidumont1 joined
cognominal lizmat, are you living in Echt, for real? # masak, does that qualify as a multilingual autopun knowing that "echt" is also the Dutch and German word for "real". 12:53
12:54 domidumont left 12:55 erkan left, erkan joined, erkan left, erkan joined
moritz no, just a pun, IMHO 12:57
12:57 tgt joined, woosley1 joined, grondilu joined
grondilu rn: say expmod(2, 817, 1_000_000) 12:58
camelia rakudo f17d33, niecza v24-37-gf9c8fc2: OUTPUT«427072␤»
12:59 grondilu left 13:04 rindolf left, rindolf joined 13:08 rindolf left, rindolf joined 13:12 rindolf left 13:13 rindolf joined 13:14 bluescreen10 joined 13:17 rindolf left 13:18 rindolf joined 13:22 rindolf left 13:23 rindolf joined 13:30 rindolf left 13:31 rindolf joined 13:39 rindolf left, rindolf joined 13:40 baest left 13:42 PacoLinux left 13:43 kaleem joined 13:47 rindolf left, rindolf joined 13:56 rindolf left, bluescreen10 left, rindolf joined 14:00 bluescreen10 joined 14:04 rindolf left, rindolf joined 14:07 PacoLinux joined 14:09 skids joined 14:12 xilo left 14:14 rindolf left, rindolf joined 14:16 kaare_ joined, PacoLinux left 14:19 woosley1 left
dalek kudo/nom: 41a92e8 | (Tobias Leich)++ | src/Perl6/Grammar.pm:
proper error message for usage of 'do...for'

  rt.perl.org/rt3/Ticket/Display.html?id=102652
14:19
kudo/nom: a07b37e | (Tobias Leich)++ | src/Perl6/Grammar.pm:
Merge pull request #87 from FROGGS/patch-3

proper error message for usage of 'do...for'
gfldex r: say @*INC 14:20
camelia rakudo f17d33: OUTPUT«/home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib /home/p6eval/.perl6/2013.03-97-ge1f5d99/lib␤»
14:21 rindolf left
gfldex is it intentional to have the compiler version in $HOME's part of @*INC? 14:21
14:21 rindolf joined
tadzik yes 14:21
because precompiled modules are not portable between compiler releases 14:22
gfldex debian wont like that 14:23
tadzik why not? 14:24
my debian liked that
gfldex i'm talking about the debian folk not your debian install 14:25
14:25 kaleem left
gfldex if you have to touch $HOME every time rakudo.deb is updated, they wont take it into testing 14:25
colomon anyone here understand POST? I'm trying to understand the test failures in LWP::Simple, and they're both POST requests that look like they are a) doing what they've always done (ie no Rakudo regressions I can see) and b) make no sense to me. 14:26
tadzik ah, no 14:27
you don't touch HOME at all
not when installing rakudo at least
it's just the default place to look for user-installed modules
module managers respect that too
r: say %*CUSTOM_LIB<home> 14:28
camelia rakudo f17d33: OUTPUT«/home/p6eval/.perl6/2013.03-97-ge1f5d99␤»
FROGGS when upgrading rakudo's deb package this home dir won't be touched
the user have to rebootstrap his own stuff, only then it will be touched 14:29
gfldex what means that all custom modules that used to be found wont be found anymore, as it just happed to me
FROGGS gfldex: like it used to perl 5
*used to be with
14:30 rindolf left
FROGGS modules you install via cpan is gone after upgrading from 5.12 to 5.14 14:30
14:30 rindolf joined
gfldex modules that i didn't install and didn't require any XS stuff just kept working 14:31
*install via cpan
FROGGS that is not my experience, since the path it installed to contained perl's version 14:32
root@info:~# perl -E 'say @INC' 14:33
/etc/perl/usr/local/lib/perl/5.10.1/usr/local/share/perl/5.10.1/usr/lib/perl5/usr/share/perl5/usr/lib/perl/5.10/usr/share/perl/5.10/usr/local/lib/site_perl.
whitespace missing but you get the idea
14:34 xilo joined
FROGGS (we once updated from an 5.8.something and I remember that I wrote scripts which creates list about what modules we need) 14:35
bbia15
gfldex I found why it was working for me. Perl5 respects PERLLIB and PERL5LIB 14:37
does rakudo do the same? 14:38
14:41 FROGGS left 14:42 kaleem joined, kaleem left, kaleem joined, rindolf left 14:43 rindolf joined 14:44 frdmn left 14:54 rindolf left, rindolf joined
timotimo okay, back to working on rakudo and **@ support 14:59
i took the constant for SLURPY_LOL and added it into BOOTSTRAP. now i'll see how far I get :)
15:01 FROGGS joined
gtodd **@ ! 15:04
15:04 kaleem left, rindolf left, kaare_ left
FROGGS gtodd: we have PERL6LIB 15:05
15:05 rindolf joined
gtodd :-) 15:06
FROGGS ohh, sorry
gfldex: we have PERL6LIB :o)
15:06 kaare_ joined
gfldex i will swiftly abuse that! 15:07
gtodd FROGGS: since when ? :-)
timotimo gtodd: i have no idea yet if it'll work or not at all now ;)
still got to get a compiling version
FROGGS gtodd: can't tell, since I'm a newbie here
timotimo: what happened to your [~] thingeny? 15:08
timotimo it requires **@ support first
FROGGS ahh, okay
timotimo i can only hope that implementing **@ will make [~] work better swiftly 15:09
gtodd it will be nice to be able to separate homegrown and cpan6/panda installed modules from the install target directory
timotimo > sub a(**@b) { say @b.perl }; a((1, 2, 3), (4, 5, 6)) 15:10
LoL.new($(1, 2, 3), $(4, 5, 6))
that was surprisingly easy :)
kresike bye folks
15:10 kresike left
gtodd make; make install; perl6 15:10
Missing or wrong version of dependency 'src/Perl6/Actions.pm'
current instr.: '' pc 993 (src/gen/perl6.pir:362) (src/main.nqp src/gen/main-version.nqp:52)
:-\
jnthn timotimo: um, wasn't it a multi you are meant to be testing it with?
15:12 kivutar left
timotimo uh, sure 15:12
did that always work?
r: sub a(**@b) { say @b.perl }; a((1, 2, 3), (4, 5, 6))
camelia rakudo f17d33: OUTPUT«LoL.new($(1, 2, 3), $(4, 5, 6))␤»
jnthn Yes
timotimo ah, okay, that's good to know
jnthn For certain definitions of always :)
timotimo yeah, it works with multi, too 15:13
multi sub a(**@a) { say @a.perl; say "lol" }; multi sub a($a, $b) { say "$a, $b, not lol" }; a(1, 2, 3, 4); a(1, 2) 15:14
r: multi sub a(**@a) { say @a.perl; say "lol" }; multi sub a($a, $b) { say "$a, $b, not lol" }; a(1, 2, 3, 4); a(1, 2)
camelia rakudo a07b37: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'a' will never work with argument types (Int, Int, Int, Int) (lines 1, 1)␤ Expected any of:␤ :(*@a)␤ :($a, $b)␤»
timotimo this works locally now
and it was surprisingly easy, too :)
15:14 kaare_ left 15:15 rindolf left
timotimo it didn't make ~ magically work better, but it does work okay. i wonder if there are tests that were fudged before about that 15:15
15:15 rindolf joined 15:16 kaare_ joined
lizmat hello #perl6 15:21
colomon o/ 15:22
15:22 rindolf left
timotimo is there a mechanism that will favor a **@ over a *@ if there's structure in the arguments? 15:22
15:22 rindolf joined
lizmat while looking up some specs about modules, I found this line at S11:151 : $*sensitive ::= Sense::<$sensitive> 15:23
since I don't see any mention of $sensitive anywhere around there, I assume this is left behind from an earlier edit
and either should be expanded upon, or removed 15:24
jnthn timotimo: No, a **@a vs a *@a should conflict, almost certainly 15:26
timotimo OK 15:27
15:31 rindolf left, rindolf joined 15:36 domidumont1 left
[Coke] gtodd: you can't run "perl6" inside your build dir. 15:38
gtodd: try "./perl6" or cd up a dir and try "perl6"
this is very likely not acceptable, but is the current state for me on OS X. 15:39
15:41 rindolf left 15:42 rindolf joined
diakopter lizmat: I don't know. :S I don't even remember what ::= means :( 15:42
timotimo compile time binding
15:43 kaare_ left
lizmat the fact is that it seems to imply im/exporting scalars, but that is nowhere mentioned in the examples above that 15:43
15:43 frdmn joined
lizmat so the lines seems to be an orphan of a previous version 15:43
diakopter goes to look at the git history (which includes the svn history I think) of that section 15:44
15:44 kaare_ joined
colomon diakopter: git blame? 15:46
15:47 isBEKaml joined
diakopter oh, :GLOBAL<$warming> was replaced with :CONTEXT<$sensitive> 15:47
isBEKaml good evening, #perl6!
yoleaux 15 Apr 2013 20:05Z <[Coke]> isBEKaml: roger, will look this evening.
04:06Z <[Coke]> isBEKaml: done. resurrected the coe (sort of) from b.
04:06Z <[Coke]> isBEKaml: *code
isBEKaml [Coke]++ #awesome
masak oh hai, #perl6 15:48
isBEKaml r: say (1,2,3) ~~ (1,*,3)
camelia rakudo a07b37: OUTPUT«True␤»
isBEKaml masak: \0/
diakopter lizmat: you're right
[Coke] r: say 1..100 ~~ 1,*,50,*,100
camelia rakudo a07b37: OUTPUT«False*50*100␤»
[Coke] r: say (1..100).list ~~ 1,*,50,*,100
camelia rakudo a07b37: OUTPUT«False*50*100␤»
[Coke] r: say (1..100).list ~~ (1,*,50,*,100)
camelia rakudo a07b37: OUTPUT«True␤» 15:49
masak isBEKaml: \Ω/
[Coke] precedence ftw.
lizmat diakopter: I will get out the saw
isBEKaml masak: that character, I can read but can't type! :P
masak isBEKaml: which characters you can type is a software thing. the sooner we collectively realize this, the better.
jnthn
.oO( ohm y god )
15:50
isBEKaml r: say (1..100) ~~ (1,*,50,*,100)
camelia rakudo a07b37: OUTPUT«True␤»
jnthn o/ masak
dalek ecs: fe96bcf | (Elizabeth Mattijsen)++ | S11-modules.pod:
Remove line the was left behind from a previous edit
isBEKaml masak: well, I have to jump through hoops to get to type out of order characters. :)
Ѡ 15:51
booo
diakopter lizmat: you fixed up commit 7b198c75e7ba19d5744d1239a6d3853fe784244b
FROGGS jnthn: if I have a Pair from <colonpair>, how do I pass that to ModuleLoader.load_module? as a QAST::WVal.new( :named( ... ?
isBEKaml .u OMEGA
yoleaux U+0277 LATIN SMALL LETTER CLOSED OMEGA [Ll] (ɷ)
U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS [Lu] (Ώ)
U+03A9 GREEK CAPITAL LETTER OMEGA [Lu] (Ω)
15:52 kbenson joined
gtodd feels trepidation 15:52
isBEKaml oh, that character came out right, only I can't see it. >.< 15:53
gtodd but I must ask out of ignorance ... why is there Mu? why isn't everything just derived from Any?
masak jnthn: \o
15:54 census joined
gtodd it's like Any both is and is not the base class ... very ... errm "Zen" 15:54
masak gtodd: Junction ~~ Mu, but Junction !~~ Any
or put, differently, the junctional semantics is powered by the type system. 15:55
s/,//
isBEKaml r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .<c>; 15:56
camelia rakudo a07b37: OUTPUT«True␤»
FROGGS jnthn: load_module at runtime that is
isBEKaml r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .{'c'};
camelia rakudo a07b37: OUTPUT«True␤»
jnthn FROGGS: If you're calling it at runtime you need to pass it real values, not QAST nodes.
isBEKaml hmm, S03-smartmatching, any-hash.t can be unfudged for rakudo? 15:57
r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .{'d'}; 15:59
camelia rakudo a07b37: OUTPUT«True␤»
isBEKaml ehh, no
r: my %h = (a => 1, b => 2, c => 3); say %h ~~ .<d>;
camelia rakudo a07b37: OUTPUT«True␤»
isBEKaml b: my %h = (a => 1, b => 2, c => 3); say %h ~~ .<d>;
moritz not intuitive, but it looks correct to me
camelia b 922500: OUTPUT«Bool::True␤»
gtodd masak: ok :) me RTHTFIOPM
moritz $_ on the RHS binds to %h 16:00
so %h<d> returns Any
and then %h ~~ Any is true
isBEKaml moritz: ah, I see - though, as you said, not intuitive. :)
moritz: in that case, why was it fudged in roast? 16:01
16:01 dalecooper left, thou joined
gtodd say Tru if my hash has number values? 16:01
moritz gtodd: that would just be 'if %h' 16:02
gtodd oh
moritz isBEKaml: probably an oversight/error from the test writer, or the test was written against an old version of the specs
isBEKaml gtodd: any number of values (or defined), yeah.
gtodd oh so that explains the "." 16:03
moritz r: say {a => 1, b => 2} ~~ 'b'
camelia rakudo a07b37: OUTPUT«False␤»
moritz r: say 'b' ~~ {a => 1, b => 2}
camelia rakudo a07b37: OUTPUT«True␤»
moritz r: say 'd' ~~ {a => 1, b => 2}
camelia rakudo a07b37: OUTPUT«False␤»
FROGGS jnthn: so I would make an Op .value, and pass it as QAST::SVal? I think that makes sense
moritz that's what you want, and what's specced 16:04
isBEKaml b: my %h = (a => 1, b => 2, c => 3); say 'd' ~~ %h;
camelia b 922500: OUTPUT«Bool::False␤»
isBEKaml r: my %h = (a => 1, b => 2, c => 3); say 'd' ~~ %h;
camelia rakudo a07b37: OUTPUT«False␤»
gtodd with object.methods the dots have me in python and ruby "dot.com boom" mode
masak gtodd: "RTHTFIOPM"? :) 16:05
gtodd everything.connected.by.dots
read the hard to find in one place manual :-)
it's in pretty much one place though
16:05 dmol joined, daxim left
isBEKaml moritz: okay, I'll unfudge it then. OOC, do we have any script that does this? ISTR so. 16:06
moritz isBEKaml: tools/autounfudge.pl, which I'm running right now. But it only works in some (limited) situations 16:09
dalek ast: 5d26122 | isBEKaml++ | S03-smartmatch/any-hash.t:
unfudge any-hash smartmatching for rakudo
gtodd masak: I'm convivnced being able to read perl6 versions pf all the wonderful perl* pods (perlop, perlreftut, etc) in one place ( /usr/local/lib/perl6/6.0.0/pod ?) will come sooner than expected ... if you guys edit/update/review your blog posts and mailing list threads it'll provide a big jump start :-) 16:11
but first things first :)
masak gtodd: best effort so far is docs.perl6.org 16:14
mostly thanks to moritz++
isBEKaml gtodd: there were several attempts in the past, the latest we have is docs.perl6.org and it's pretty much up-to-date. 16:15
gtodd: moritz++ and others have worked at bringing it to its current state.
moritz: ah, thanks. I was looking at fudge, fudgeall in roast repo. :) 16:16
16:18 domidumont joined
gtodd isBEKaml: yup and it seems to be auto-generating some of the documentation from the code ... it does lack the perl*tut type stuff which will require human writing - a lot of which has already been ~done by masak moritz and a slew of others like perl6advent contributors etc 16:34
timotimo is t/spec/S06-multi/unpackability.t kind of the right place to put multi method with **@ dispatch tests? 16:35
jnthn timotimo: Or maybe the arity-based.t or so
timotimo: I think other slurpy tests are in there 16:36
timotimo ok
this file doesn't exist, though 16:38
masak people and bots, today's autopun: twitter.com/rachaelkelly18/status/...3091407872 16:39
timotimo i'd be happy for a bit of assistance with the [~] thing, given the **@ fix i pullrequest'd and spectest'd 16:42
16:44 mtk left
FROGGS masak: what makes a pun an autopun? 16:44
timotimo use + mention, i believe?
masak yeah, that's it.
actually they are not strictly puns. 16:45
but that's the name we got for them, and it stuck.
PerlJam (it's much easier to say than "paranomasia" too ;) 16:47
They're kinda puns if you think of the mention as a weird use.
masak yeah. 16:48
well, a mention is kind of a thunked use. or something. 16:49
PerlJam
.oO( perhaps a new name is warranted. "thun"? "thpun"? )
16:50
isBEKaml r: my %h = (a=> 0, b => 1, c => 3); say %h ~~ .{'c'}; # This returns False locally
camelia rakudo a07b37: OUTPUT«True␤»
isBEKaml gtodd: I only speak for myself, those *tuts are what made perl manuals easy reading. I agree that perl6 needs something along those lines. 16:52
timotimo *tuts?
ah, of course 16:53
isBEKaml gtodd: I also recall another project (u4x) that had those objectives, but fell through the cracks.
timotimo: perlretut, perlreftut et al.
gtodd: I think now would be a good time to revive them. 16:54
masak isBEKaml: doc.perl6.org, for all intents and purposes, has superseded u4x. it's what u4x should have been, with perhaps slightly less starry-eyed dwimmishness. 16:55
PerlJam isBEKaml: What rule from the smart match table in S03 is your example meant to trigger? 16:56
isBEKaml PerlJam: that's straight from any-hash.t in roast.
16:59 dakkar left
isBEKaml PerlJam: Now that I look at S03, I think this: Cool Hash hash entry existence X.{$_}:exists 17:00
masak: "less starry-eyed dwimmishness"? I read that as "grumpy real worldishness" :) 17:01
PerlJam except .{'c'} isn't a hash, is it? 17:02
r: my %h = (a=> 0, b => 1, c => 3); say %h ~~ 3;
masak isBEKaml: yeah, something like that. "robust realism", perhaps.
camelia rakudo a07b37: OUTPUT«True␤»
PerlJam seems like this is equivalent.
masak r: my %h = (a=> 0, b => 1, c => 3); say %h ~~ 1
camelia rakudo a07b37: OUTPUT«False␤»
17:03 domidumont left
masak PerlJam: checks size of hash. 17:03
17:04 domidumont joined
PerlJam oh. 17:04
I guess I forgot about +%h
gtodd isBEKaml: yes .. that's my feeling another thing about *tuts is the can be translated, quoted critiqued and improved in a sort of editorial and coommunicative domain ... with autogenerated pods the quality focus is more on comprehensive technical accuracy and precision .. maybe some integration with error messages etc. In ohter words the pods are more like code the tuts like communities culture and historical archive ...
PerlJam momentary confusion alleviated :) 17:05
17:05 tgt left
isBEKaml PerlJam: I'm pretty new here - so I can't answer anything now. :D 17:06
17:06 fgomez left 17:07 tgt joined
dalek rl6-roast-data: e60b65f | coke++ | / (3 files):
today (automated commit)
17:08
isBEKaml masak: "robust realism" for brevity than expansive documentation? 17:09
PerlJam isBEKaml: Generally, the questioning is almost as useful as the answering :)
isBEKaml PerlJam: That's true. :)
masak isBEKaml: if you go back and look at what u4x was trying to do, you'll see that it was trying to deduce what the user wanted basically from arbitrary fragments of code. 17:10
isBEKaml: so if you typed in '[+]', it'd say "ah, yes. that's a reduce of an infix:<+>"
(and link you on to "reduce" and "infix:<+>".
that... was probably a little ambitious.
isBEKaml masak: ah, now I remember. a little too early for its time. 17:11
masak still not feasible, I'd say.
isBEKaml masak: somehow, I associated u4x for *tuts and informal documentation. I didn't associate perldocs anywhere near it.
gtodd: I'd say the closest we got would be perl6 advent calendars. We're still nowhere near bringing up *tut docs. 17:13
isBEKaml is too distracted again. :| 17:14
17:20 census left
timotimo i have no clue how a Str ends up in the block slot of a MapIter :| 17:21
well, it kind of gets called from a ListIter reify method 17:22
which comes from just a List it seems
17:22 daxim joined
anocelot Wow. git-based installation of Rakudo Perl 6 was super easy on my CentOS 6 vm. Sweet! 17:22
masak \o/ 17:23
gtodd isBEKaml: but closer than one might think :) ... there should be a perl6 Koan module that exercises Mu and Any and prints out peaceful thought to help developers refocus and refresh if they are distracted :-)
isBEKaml: I will help you now by disappearing into the Mu
bye all 17:24
masak o/
anocelot uses "follow instructions"... It's Super Effective!
timotimo hm, join calls my $list = (self,).flat.eager and from there it starts going into b0rkmode
17:24 gtodd left
isBEKaml gtodd: 0/ 17:24
[Coke] anocelot++ # pokemon reference.
anocelot :D
timotimo i do not understand most of this code. i don't think i can figure this out 17:29
FROGGS timotimo: same here, I'm going crazy right now 17:30
jnthn timotimo: Since we already have a LoL in infix:<~>(**@a) we may want to make things cheaper by doing the join logic directly there...
isBEKaml timotimo: so now I know what makes jnthn++ drink so much of $beverages. :-)
[Coke] wonders what the point of (self,) is ... isn't self.flat already going to do whatever the , did?
anocelot masak: I will admit I was expecting 'make install' to place an executable in one of the shared bin directories, but I totally understand why this is left as a path inclusion. 17:31
17:33 geekosaur left
isBEKaml [Coke]: that's what I wondered too. Then I saw .flat - maybe it had another param or a .join that didn't do its job. 17:33
17:34 geekosaur joined
dalek ast: ef37084 | moritz++ | S32- (2 files):
two auto-unfudges for rakudo
17:34
timotimo jnthn: currently i'm doing a for over the parts and given a Positional i recurse and given anything else, i'll ".Stringy" and .join the rest of that 17:36
jnthn: but that doesn't help with the weirdness; No such method 'count' for invocant of type 'Str' -- why would you even put a string there? 17:39
17:40 mtk joined 17:48 fgomez joined
dalek rl6-roast-data: 7e75c85 | coke++ | / (4 files):
today (automated commit)
17:57
18:01 frdmn left, frdmn joined 18:10 DreamingInCode joined 18:12 rindolf left 18:15 dmol left 18:16 rindolf joined
[Coke] ack -cl 'nom regression' | awk -F: '{ sum += $2} END { print sum}' => 95 18:26
(probably more like 105 given some of those skip more than 1.) 18:27
masak funny, I don't miss that many features any more. 18:28
18:29 frd|afk joined 18:32 frdmn left 18:35 isBEKaml left 18:36 SamuraiJack left 18:38 arlinius joined, _ilbot left 18:39 _ilbot joined
[Coke] 100 seems like a small enough number that we could close those out. 18:39
18:39 ilbot6 joined
jnthn [Coke]: A few of them may also be bests for b behavior that was not spec, or is no longer spec. 18:42
*tests
[Coke] jnthn: even better.
[Coke] will add that to his rakudo pile. 18:43
masak [Coke]++
[Coke] jnthn: any more things folks can help with on JVM?
masak Rakudo needs a release manager for Thursday. any volunteer? 18:44
[Coke] adds a "(⌐■_■)" tag to his gmail.
masak (I'm willing to take June if someone takes April)
dalek kudo/nom: 4f255fa | (Carl Mäsak)++ | docs/release_guide.pod:
Toto, I don't think we're in 2012 any more
18:46
moritz has an idea for a Hague grant, but probably not for himself 18:47
tackle exporting
masak moritz: do tell.
what about exporting?
moritz there are several missing pieces, both in the specs and in rakudo
for example the spec still says that EXPORTALL and EXPORT are methods, but they can't be, because modules and packages don't have methods 18:48
and then there's the question of how to actually, well, export stuff from EXPORT
and we need a spec for re-exporting
and we need better specs for the defaut exporting behavior (what does it do with positional arguments, for example?)
and then there's the whole topic of renaming while exporting 18:49
jnthn Would be a worthy grant for sure.
moritz something like use Module::With::Long::Name (:DEFAULT, :constants) as MWLN; 18:50
masak +1
moritz and that might put all exported symbols as 'our'-symbols into the newly created package MWLN
it's exploratory space, but it's certainly doable, and Rakudo has lots of infrastructure for it 18:51
jnthn [Coke]: Checking out which few bigint ops are missing and implementing them, and implementing the recently added IO-related nqp:: ops are two possibles.
moritz and it'll probably "just" require Perl 6 and NQP code, no C or PIR or I-don't-know
jnthn It'd be Perl 6 and NQP only, I'm sure.
18:51 Chillance joined 18:52 snearch joined
tadzik damn thinkpad keyboards 18:56
fortunately, I found a perfect way to put a broken key back where it belongs: i.imgur.com/I4SgZ1H.jpg
masak that'll teach it.
FROGGS uhh, dell++ 18:57
moritz repeat after me: "there's nothing that duct tape can't fix"
colomon there's nothing that duct tape can't fix
masak "when was the last time you needed to tape a duct?"
colomon it's like the Force...
masak colomon: :P
it has a dark side and a sticky side?
tadzik haha 18:59
19:00 tgt left
tadzik masak: which one of your presentation software do you recommend? 19:00
masak meh, they all suck. 19:01
tadzik: what is your goal?
jnthn
.oO( Not writing another presentation framework :P )
tadzik masak: I need slides and something to write that that won't get in the way 19:02
github.com/chrishulbert/MarkdownPresenter looks tad nice
doesn't want me to install ruby with all its gem-things like showoff does
masak tadzik: I was quite happy with my latest batch, but I can't see that I pushed it to my talks repo :/
19:03 dmol joined
masak tadzik: if you remember my "Exploits" talk, that was the framework. 19:03
19:03 lichtkind joined
masak tadzik: big white text on black background. tasty icons. easy to write text and integrate images. 19:04
generates HTML.
tadzik: I could rescue it for you if you're interested.
19:04 sqirrel left
tadzik masak: white text on black background is my favourite layout 19:05
masak :)
tadzik but this markdownPresenter looks very nice so far, I'll give it a try
masak sure thing. 19:06
I should push those talks anyway.
19:09 tgt joined 19:10 snearch left
[Coke] what, no spork? 19:16
masak not for me, no. 19:18
tadzik: here, I put my latest slide framework online: github.com/masak/talks/blob/master...erate-talk 19:20
39 LoC, I had forgotten how small it was ;)
19:21 domidumont left
tadzik ah 19:22
hah
19:22 daxim left
masak also check out the 'slides' file in the same directory, to see the input format. 19:22
it's basically HTML with icons and SVG inclusion rammed through it at right angles. 19:23
cognominal masak: you should put the html files as well so that people don't have to install rakudo to see you slides. 19:26
masak hrm. 19:27
I tend to avoid committing generated stuff to repositories.
cognominal: I generally put the products on my home page on feather, though. 19:29
haven't done it for the YAPC::EU 2012 talks, but... I should. :)
here: feather.perl6.nl/~masak/ 19:30
cognominal nice, your slides about macros will refresh my memory 19:31
masak ;) 19:32
moritz masak: now just implement the rest of them :-)
colomon +1 19:34
;)
moritz but first: RE-VIEW TEE-TWO!
masak nodnodnod
well on its way.
I'm currently cursed by $work needing me a lot.
er, I meant s/curesed/blessed/
:P
moritz well, better than $work not needing you at all :-)
masak yeah. 19:35
colomon curse you, masak's $work!
masak I expect Perl 6 to expand back as $work recedes in the next few time units.
19:38 rindolf left
colomon tadzik: ==> Initializing pandabrew 19:41
Failed to create directory 'False/.pandabrew' with mode '0o777': mkdir failed: No such file or directory
tadzik: no time to look at it now. :(
tadzik gah
colomon tadzik: that's on my mac, it's working fine (and heavily used) on my linux box.
tadzik oh, yes
I can fix that right away 19:42
moritz colomon: you mean your home directory isn't called 'False'? :-)
tadzik colomon: should be fixed now 19:44
masak False is kind of a cool user name, though. 19:45
jnthn I'm sure I met a guy at a conf whose nick was false :)
masak jnthn: are you sure it wasn't undefined, but boolified to false? :P 19:46
jnthn :P
tadzik "Your nick is kind of weird" "True" 19:47
timotimo so 19:49
i may continue bashing my head against [~] tomorrow without making much headway 19:50
but for now, it'll be early sleepytimes! good night :)
jnthn 'night, timotimo++
timotimo night :) 19:51
FROGGS bah, timotimo, it'll get you anyway :o)
moritz follows timotimo's example
g'night everybody
timotimo going to bed early is only for people who would be unproductive anyway! don't make me get my whip! :P
FROGGS gnight moritz 19:52
colomon tadzik++
FROGGS *g*
gnight timotimo
19:56 gtodd joined 19:58 kaare_ left
colomon tadzik: pandabrew seems to be working correctly for me now! 19:59
tadzik awesome :)
20:01 dmol left, colomon left 20:05 tgt left 20:08 gdey joined
lizmat rn: eval 'say "foo"' 20:08
camelia rakudo 4f255f, niecza v24-37-gf9c8fc2: OUTPUT«foo␤»
lizmat rn: eval 'print $]' 20:10
camelia rakudo 4f255f: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at eval_0:1␤------> print $⏏]␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Non-declarative sigil is missing its name␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 5639 (STD.sorry @ 7) ␤ at /home/p6eval/niecza/src/STD.pm6 line 2386 (P6.variable @…
lizmat rn: my $a= eval 'print $]' 20:11
camelia rakudo 4f255f: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at eval_0:1␤------> print $⏏]␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/JZXfwSERFd line 1:␤------> my ⏏$a= eval 'print $]'␤␤Unhandled exception: Non-declarative sigil is missing its name␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (di…
lizmat argh, S29:231: Note that unlike in Perl 5, C<eval> does not catch any exceptions or control exceptions. 20:12
FROGGS rn: my $a = try 'print $]'; say $a 20:13
camelia rakudo 4f255f, niecza v24-37-gf9c8fc2: OUTPUT«print $]␤»
FROGGS rn: my $a = try { print $] }; say $a
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION at /tmp/xKKSfbpDIQ line 1:␤------> my $a = try { print $]⏏ }; say $a␤␤Parse failed␤␤»
..rakudo 4f255f: OUTPUT«===SORRY!===␤Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSION␤at /tmp/AucHQf7tQO:1␤------> my $a = try { print $]⏏ }; say $a␤»
lizmat yes, but try is not valid Perl 5 syntax
FROGGS true
lizmat I'm trying to devise code that will run in both perl 5 and perl 6, but with different results
I though that string eval would do the trick, alas 20:14
:-(
FROGGS :/
diakopter do floating point differences count?
jnthn Could easily get something out of big integer semantics in Perl 6. 20:15
lizmat rn: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" } 20:17
camelia rakudo 4f255f, niecza v24-37-gf9c8fc2: OUTPUT«Perl 6␤»
lizmat perl5: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
p5: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
don't we have a Perl 5 around anymore?
geekosaur eval: if ( $0 ) { print "Perl 5\n" } else { print "Perl 6\n" }
hm, maybe not 20:18
lizmat anyway, this works :-)
20:18 tgt joined
FROGGS ya, $0 is one of the easiest switches... 20:20
lizmat wonders whether we should start a contest about being able to write Perl 5 and Perl 6 at the same time :-)
FROGGS *g* 20:24
cognominal lizmat: you should convince BooK. He likes writing multilingual code but so far I have not succeeded to interest him in Perl 6 20:27
lizmat :-) I just realized that on one hand, such as contest would be very bad, as it would lead people to write Perl 5 in Perl 6 (like some people write C in Perl 5) 20:28
on the other hand, it might prove the closeness of Perl 5 and Perl 6
masak or disprove it. 20:29
20:29 thou left
FROGGS r: module A { our $thing = 42 }; my $my_thing = A::<$thing>; say $my_thing 20:29
camelia rakudo 4f255f: OUTPUT«42␤»
FROGGS lizmat: -------------^
masak impressive. 20:30
FROGGS lizmat: you maybe want to revert your commit
lizmat ah? well, maybe the example needs to be expanded then?
eh, which commit are we talking about? 20:31
lizmat is confused now
FROGGS this: github.com/perl6/specs/commit/fe96...615ad23fb9 20:32
lizmat ok, we're talking about the same thing then 20:33
simply reverting it is not enough, imo
it would then need expanding, I think 20:34
is that what you're saying ?
FROGGS well, I'm never against better explanations if ii's that what you mean 20:35
diakopter FROGGS: TimToady's commit there was getting rid of dynamically setting dynamic variables 20:36
not package scoped thingies
lizmat the text: You can be explicit about the desired namespace: use Sense :MY<common> :OUR<@horse>; 20:37
That's pretty much equivalent to:
use Sense; my &common ::= Sense::<&common>; our @horse ::= Sense::<@horse>; $*sensitive ::= Sense::<$sensitive>
I would say that the $*sensitive part is incorrect here 20:38
diakopter github.com/perl6/specs/commit/7b19...3fe784244b
(toward the bottom)
FROGGS lizmat: right, and since $sensitive is not mentioned above it maybe is a good idea to delete the line... 20:39
well, then forget what I said
lizmat it is even necessary, as the text is simply incorrect that way
ok, I'll revert the revert :-)
FROGGS ya
*g*
sorry
diakopter you're a revert
masak .oO( autocorrect makes me look regarded ) 20:43
cognominal r: print 'a'| "'a'" ~~ m/'a'/
camelia rakudo 4f255f: OUTPUT«False»
lizmat wonders whether that was an autopun 20:44
masak lizmat: yep.
r: print ('a'| "'a'") ~~ m/'a'/
camelia rakudo 4f255f: OUTPUT«False»
lizmat keming is hard
masak :P
lizmat: that one was on FPW last year :) 20:45
FROGGS cognominal: I believe there is a ticket about that
cognominal too bad, this returns true in Perl 5 and expected to returns true in Perl 6 as well but in a different way
masak r: print 'a' ~~ m/'a'/
lizmat argh, you remembered :-)
camelia rakudo 4f255f: OUTPUT«a»
masak r: print 'a' ~~ /'a'/
camelia rakudo 4f255f: OUTPUT«a»
masak r: print 'a'|"'a'" ~~ /'a'/
camelia rakudo 4f255f: OUTPUT«This type cannot unbox to a native string␤ in method print at src/gen/CORE.setting:7995␤ in method print at src/gen/CORE.setting:7989␤ in sub print at src/gen/CORE.setting:7805␤ in block at /tmp/8ZIlKDI5EM:1␤␤»
cognominal * I expected it to
lizmat afk& 20:46
masak lizmat: jnthn dropped the "keming" bomb on me on a train to that conf. hard to forget :)
cognominal That would be more in the spirit of a multilingual obfuscation to have radically different parse and meaning.
jnthn masak: Well, you were trying to write a text layout engine on a short train journey. I could just see the problem keming to get you :P 20:47
masak :P
to be fair, keming was the problem I was trying to solve.
but... it's hard. and I suddenly had quite a bit more than two problems.
jnthn Yeah. Like this guy opposite you dropping bad puns... :P 20:48
masak .oO( the puns just kem by themselves ) 20:49
20:52 smash joined 20:56 PacoAir joined
pmichaud good afternoon, #perl6 20:59
masak pmichaud! \o/ 21:01
FROGGS hi pmichaud
jnthn o/ pmichaud
21:02 frd|afk is now known as frdmn
pmichaud "too much duck tape!" 21:04
FROGGS ETOOMUCHDUCKS 21:05
pmichaud 15:42 <diakopter> lizmat: I don't know. :S I don't even remember what ::= means :(
15:42 <timotimo> compile time binding 21:06
actually, ::= now does the equivalent of a parameter bind.
FROGGS for a moment I've seen $<timotimo> and wondered if there would be an NPMCA 21:07
pmichaud if the spec still says "compile time bind" somewhere, it's likely a fossil.
masak today I learned the term "duck wrapping" on Twitter. 21:09
huf what is it?
masak "if it doesn't quack like a duck, wrap it in a duck."
huf oh
:)
masak apparently, people do this (a bit too much?) in JavaScript.
huf hip, fast talking wrappers, eh? 21:10
masak :) 21:11
masak .oO( walk quickly and carry a big hip )
21:15 DreamingInCode left
lizmat pmichaud: I'll remember that when going through the spec 21:17
21:18 spider-mario left 21:28 xilo left
diakopter you guys saw this? dg.cx/jsperl/ 21:28
21:29 skids left
masak whoa. 21:29
21:30 DreamingInCode joined
huf yea, pretty whoa 21:30
lizmat insane is a better phrase, I think, but still indeed pretty much whoa 21:31
anocelot I think I recall Modern Perl talking about a similar sounding duck. 21:32
lizmat alas, it doesn't seem to like Safari :-( 21:33
21:38 colomon joined 21:40 athomason joined
colomon how do you do a proto for one or no arguments? 21:40
jnthn $? 21:41
21:41 lizmat left
colomon jnthn: that didn't seem to help? 21:42
21:42 lizmat joined
colomon context: I'm looking at the XML module 21:42
It's got three multis for from-xml: from-xml (Str $xml-string) 21:43
from-xml (IO $input)
from-xml (Str :$file)
jnthn colomon: :$file is a named. 21:44
21:44 kurahaupo joined
colomon with proto from-xml ($), calling from-xml(:file<./t/example.xml>) gets you Not enough positional parameters passed; got 0 but expected 1 21:44
jnthn: right
perhaps the right question is, how do named and proto interact?
jnthn But...that's $, I said $? ? :) 21:45
proto from-xml($?, *%) {*} # probably what you want
colomon proto from-xml ($?) gets you Unexpected named parameter 'file' passed as the error 21:46
21:46 bluescreen10 left
jnthn Right, add the *% also 21:46
colomon jnthn++ # that works
and with that, XML works again. 21:49
jnthn colomon++ # fixing stuff 21:52
21:53 lizmat left, lizmat joined
colomon I submitted a pull request, if I don't hear anything from supernovus in a day or two I'll go ahead and hijack the ecosystem's XML to my fork. 21:54
o/ # off for noms and Great Big Sea
21:54 colomon left
masak .oO( C++ is a Great Big C ) 21:56
21:57 xilo joined
jnthn Time to get some rest...'night, #perl6 22:01
masak ditto.
'night, #perl6
22:01 cognominal left
FROGGS gnight both of you 22:02
22:02 thou joined, thou left
lizmat night #perl6 22:02
lichtkind good night jnthn 22:04
FROGGS night lizmat
22:05 thou joined
lichtkind gute nacht lizmat 22:05
22:07 immortal joined, immortal left, immortal joined
kurahaupo 'morning @p6 22:07
22:07 erkan left
FROGGS hi kurahaupo 22:09
22:16 cognominal joined, cognominal left 22:17 cognominal joined 22:20 supernovus joined
supernovus Howdy #perl6 22:20
tadzik supernovus! \o/
supernovus Not sure if its an easy fix or not, but Rakudo still messes up local timezones. For instance, where I am, it's currently -0700, but Rakudo is reporting +0700, which is certainly not right. 22:23
22:24 thou left 22:29 lichtkind left
raiph supernovus: irclog.perlgeek.de/perl6/2013-03-17#i_6599172 22:37
22:40 nyuszika7h_ joined, nyuszika7h left, DreamingInCode left
supernovus Awesome, that refactoring sounds good. It's quite likely I'm running an outdated rakudo again. Rebuilding. 22:40
22:41 lichtkind joined 22:42 thou joined 22:45 alester left 22:52 DreamingInCode joined, supernovus left 22:56 skids joined
raiph .tell supernovus i didn't see llamarider commit any TZ changes 23:06
yoleaux raiph: I'll pass your message to supernovus.
23:12 athomason left 23:15 BenGoldberg joined 23:20 sjn left, sjn joined 23:36 berekuk left 23:37 frdmn left 23:40 toddr joined
gtodd rakudo has threads 23:51