»ö« 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...forat /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«baba» | ||
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 parenthesisat /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 nameat 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 nameat 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 $aParse failed» | ||
..rakudo 4f255f: OUTPUT«===SORRY!===Unsupported use of $] variable; in Perl 6 please use $*PERL_VERSIONat /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 |