»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
raydiak | that's on multiple machines and multiple backends, but not a very recent build, no...maybe a month or so old | 00:00 | |
(is why I haven't reported it yet) | |||
Mouq | lue: That line works perfect AFAICT on near-to-latest perl6-m and perl6-j | ||
lue: *for me | 00:01 | ||
OSX | |||
lue | Lemme spend a quarter of an hour getting the latest rakudo and see if it works.... | 00:02 | |
(not counting the time it'll take to reinstall panda and associated modules) | |||
Mouq | :/ | ||
lue | I can't wait to be able to drop parrot, that's where the quarter-hour comes from. | 00:05 | |
raydiak | I dropped parrot long ago, b/c for me it is multiple hours | 00:06 | |
Mouq | lue: My perl6-p remarkably still runs; perl6-p -v says it's from November | ||
tadzik | in my File-Find benchmarks it's 1.5 slower than moar | 00:07 | |
lue | I can't use moar for what I'm doing at the moment because something in the Regex language is broken on Moar | ||
jnthn | lue: Did you mangae to golf/ticket that? | ||
lue | jnthn: no, not yet. Should get to that soon though. | 00:08 | |
timotimo | lovely! :) | 00:10 | |
Mouq | O.o `prove -eperl6-j t` → `t/01.t ................... ok`; `panda install URI` → `t/01.t ................... 12/47 java.lang.NullPointerException` | 00:13 | |
lue | jnthn: As soon as I'm done updating rakudo, and get a module for perl6-debug-m, I'll be able to look into that bug. | 00:14 | |
00:16
xenoterracide left
|
|||
tadzik | oh wow | 00:17 | |
timotimo | wow? | ||
much moar? | 00:18 | ||
tadzik | infix:«<» is called almost 200k times during find(".") on File::Find repo | ||
timotimo | so works? | ||
oh wow. | |||
tadzik | (less than 500 actual files) | ||
timotimo | how does that even ... | ||
tadzik | what's more, defined() is called 330k times | ||
and that's all with checkrules() commented out | |||
so it's almost exclusively gather-take | |||
timotimo | impressive. | ||
lue | o.o | ||
jnthn | o.O | 00:19 | |
tadzik | ok, on the plus side, it has nothing to do with gather-take | 00:20 | |
it's exactly as bad without it | |||
timotimo | phew. | ||
how do you measure that, ooc? | 00:21 | ||
tadzik | --profile | ||
on parrot backend | |||
timotimo | oh, parrot | ||
okay | |||
tadzik | yeah | ||
oh well | 00:22 | ||
the top topmost Inclusive suspects are catdir and canonpath | |||
catdir accounting for about 80% of the time spent | |||
timotimo | does that include or exclude time spent in canoning the dir? | 00:23 | |
tadzik | include | ||
canonpath is making between 4 and 6 regex substitutions | 00:24 | ||
timotimo | right. | ||
yeah, canonpath was already horribly slow the last time we looked there :( | |||
tadzik | almost always 5 or more | ||
timotimo | i tried to make some fastpaths in there to make already canonical paths fall through much quicker | 00:25 | |
tadzik | so, yeah, there | ||
on the plus side, not my fault :D | |||
timotimo | did they ever make it in, though? | ||
tadzik | no idea | ||
timotimo | nope. | ||
00:26
hoverboard left
|
|||
japhb | [File::Find] sub find -> [Rakudo] sub dir -> Str.path (-> IO::Path.new) + IO::Path.contents -> IO::Path.absolute -> IO::Spec.rel2abs (-> IO::Spec.is-absolute + IO::Spec.canonpath | IO::Spec.catdir (-> IO::Spec.canonpath)) + IO::Path.new | 00:26 | |
(I just was following that to show how you end up at canonpath whether you like it or not.) | |||
:-( | |||
tadzik | right | ||
well, the price of correctness | |||
I don't have any immediate idea what to do with this | 00:28 | ||
timotimo | you should print a few before/after canonpaths | ||
maybe you'll see the fastpath i wanted to take some time ago clear as day | |||
i *think* i had written a semi-short regex that just returned the path if it was already canonical | 00:29 | ||
hm. how expensive is a substitution that makes no changes? | |||
00:30
xenoterracide joined
|
|||
timotimo | oh hey | 00:31 | |
subst does getlexcaller for $/ | |||
00:31
btyler joined
|
|||
timotimo | and then it calls self.match which does the same thing | 00:32 | |
does that maybe do something troubling? | |||
hm. so self.match will do a gather/take that self.subst will immediately gobble up; maybe a feasible optimization would be to introduce a simpler match method that does "nothing fancy" | 00:33 | ||
tadzik | well, I wonder, canonpath seems to be doing things that are nice to have for a human to read | 00:34 | |
they're all the same paths as far as OS is concerned | |||
so do we really always have to do it? | |||
can we do it lazily? | |||
Mouq | {Set,Bag,Mix}{,Hash} haven't been updated for the docs. Should the docs have the hypothetical parametric QuantHash-based set-up described in S32, or the less ideal way they're implemented in Rakudo? | 00:43 | |
00:43
PZt joined
|
|||
Mouq | r: say QuantHash ~~ Mixy | 00:44 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«False» | ||
jnthn | Mouq: Documenting it as it is probably helps users more | ||
timotimo | i wonder: would subst be any faster if we replace $result ~= self.substr(...) with @result.push(self.substr(...)) followed by a join? | ||
Mouq | jnthn: Works for me, thanks | 00:45 | |
gist.github.com/Mouq/9042876 | 00:52 | ||
00:55
ggoebel1116 joined
00:57
ggoebel1115 left
|
|||
timotimo | so yeah. if anybody wants to, there's probably some optimizations to be had in src/core/Str.pm in the subst method | 00:59 | |
01:03
virtualsue left
|
|||
dalek | p: 28b9c29 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Make various 6model type ops decont the first arg. Some Rakudo code was accidentally trying to tweak the method cache on Scalar, in turn triggering a bogus STable repossession. This fixes that particular issue, and also marks up other ops in hope of avoiding other similar ones. |
01:07 | |
raydiak | speaking of str-like things, are mutable bufs close to bubbling up to the top of anyones todo list yet? | 01:08 | |
timotimo | jnthn: it's interesting that that only blew up on moar. | 01:10 | |
wouldn't this also cause .moarvm and .pir files to shrink, loading times to decrease ever so slightly? | |||
jnthn | raydiak: All the native things are relatively high on mine. | 01:11 | |
raydiak: They're tied with concurrency support on Moar, and the Moar specializer. | |||
01:11
hoverboard joined
|
|||
timotimo | oh, the moar specializer is *that* close? | 01:11 | |
raydiak | \o/ | ||
timotimo | wowza. | ||
we really do live in exciting times. | |||
hoelzro: very much looking forward to the first hoelzro-improved kate-highlighting :D | 01:12 | ||
jnthn | timotimo: I have specializer-related code sketches hanging around. | ||
timotimo | oh wow! | ||
i didn't even realize | |||
jnthn | timotimo: Got CFGs figured out, currently working on computing dominance. | ||
timotimo | context free grammars? | 01:13 | |
jnthn | timotimo: Well, it's all local while I experiment/explore/research :) | ||
Control Flow Graph. | |||
hoelzro | timotimo: heh. it could take me a few days to get around to it =) | ||
timotimo | oh | ||
you got me excited now. but i wanted to go to bed :| | |||
jnthn | timotimo: It's going to be a couple of weeks before any code lands, I suspect. | 01:14 | |
timotimo | that's okay. i think i'll be able to sleep between then and now | ||
jnthn | timotimo: The dominance algo I picked gives me the frontiers trivially, but then I still gotta do the rest of the SSA transform. | ||
timotimo: And then be able to transform back into working bytecode. | |||
It's only *then* that I can start doing the interesting stuff. | |||
timotimo | i know almost nothing about this :) | 01:15 | |
jnthn | :) | ||
Yeah, it's been quite a while since I was doing these things too. :) | |||
And not sure I ever actually coded up SSA, even if I studied it somewhat. | |||
timotimo | i've once used SSA "by hand" to figure out some bit-arithmetic puzzle | 01:16 | |
jnthn | ah :) | 01:17 | |
raydiak | jnthn: thanks for the update; just figured I'd make sure it's still prominent on the radar...I can't imagine how you prioritize the tremendous number of important things you could be working on | ||
jnthn | Half of my code is already in SSA form... | ||
Well, depends on language. :) | |||
raydiak: Yeah, there's quite a lot of things I want to be doing. | 01:18 | ||
raydiak: And some I don't. This weekend's tuits went on the Moar I/O refactors, but they really had to happen. | |||
Good news is it forced me to figure out libuv more deeply, which'll make the async I/O stuff easier. | 01:19 | ||
timotimo | any word on having "select" or something similar in the core without having the whole async i/o shebang? | 01:20 | |
jnthn | timotimo: As a stopgap, or because you want it there longterm? | ||
timotimo | well, every other language i know has a way to set a timeout for sockets and files :) | 01:21 | |
and when you set that timeout to 0, you usually get poll-semantics | |||
i would like at least that | |||
though i suppose in the long-term, async i/o is going to be so easy to use that it will hardly matter | 01:22 | ||
anyway. i'm off to bed | |||
o/ | |||
jnthn | 'night | ||
raydiak | g'night timotimo | 01:23 | |
yes, async IO is another big one...I plan to write an html5 websocket game w/p6 on the server side | |||
I wrote a toy version of it in p5 last year, but it needs a serious rewrite, and I'm slowly in the process of moving my eggs out of the P5 basket, so haven't touched it for a long time | 01:25 | ||
lee__ | aye, i would also play around with that. currently use AnyEvent for just about everything | ||
and would love to use p6 instead :) | |||
01:26
jnap joined
|
|||
raydiak should stop asking these questions before someone pins him down and tries to make him learn C or something :) | 01:26 | ||
01:27
dayangkun joined
|
|||
Mouq | lee__: We do have MuEvent, an "AnyEvent lookalike for Perl 6" | 01:27 | |
dalek | ast: cf43276 | (Rob Hoelz)++ | S04-exception-handlers/catch.t: Add test for RT 121213 |
||
Mouq | lee__: I don't know if it works right now though | ||
lee__ | Mouq: yeah, i wasn't sure if that still worked. worth a try i suppose | ||
Mouq knows nothing of AnyEvent in the first place | 01:28 | ||
01:28
woosley joined
|
|||
Mouq is of middling helpfulness | 01:29 | ||
jnthn | 'night, #perl6 | 01:35 | |
raydiak | good night jnthn | ||
01:45
raiph joined
01:46
bad144 joined
|
|||
Mouq | p6: my \term:<`> = 1; say `+` # I swear Rakudo used to be able to do this... | 01:47 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTerm definition requires an initializerat /tmp/tmpfile:1------> my \term⏏:<`> = 1; say `+` # I swear Rakudo used  …» | ||
..niecza v24-109-g48a8de3: OUTPUT«2» | |||
01:51
bad144 left
01:56
molaf joined
|
|||
Mouq | p6: constant \term:<`> = ->\n{n**2}; say `(3) # At least constant works | 02:00 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54, niecza v24-109-g48a8de3: OUTPUT«9» | ||
lue | Grr. I get a segfault trying to use perl6-debug-m :( | 02:15 | |
02:17
vendethiel left
02:23
Sqirrel_ joined
|
|||
lue | By the way — updating rakudo did not fix my qqx bug :( | 02:23 | |
Mouq | r: say Set.^mro | 02:25 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«(Set) (Any) (Mu)» | ||
Mouq | ^^ Notice how !Cool Set is? | ||
I'm not sure if this is intentional | |||
02:26
FROGGS_ left
02:27
Sqirrel left
|
|||
Mouq | r: say EnumMap.^mro | 02:27 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«(EnumMap) (Iterable) (Cool) (Any) (Mu)» | ||
02:27
dayangkun left
|
|||
Mouq | r: say PairMap.^mro | 02:27 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared name: PairMap used at line 1» | ||
Mouq | Hm | ||
02:39
FROGGS_ joined,
kbaker joined
|
|||
raydiak | I was sure someone mentioned something about the code blocks in the docs looking wrong somehow, I just can't remember who or what... | 02:42 | |
ah, found it...the background doesn't contrast enough | 02:45 | ||
dalek | c: 4c568cf | raydiak++ | / (7 files): Add Camelia, adjust colors, various other tweaks |
02:52 | |
lue | .tell jnthn I've narrowed it down to the 'frag' rule accidentally eating a closing > (but it doesn't do this on closing »), not yet sure exactly why that is. | 02:59 | |
yoleaux | lue: I'll pass your message to jnthn. | ||
raydiak | .tell smls I changed the colors today, in case that affects anything you are/will be working on | 03:01 | |
yoleaux | raydiak: I'll pass your message to smls. | ||
03:02
kbaker left
|
|||
lue | .tell jnthn strangely, I can't seem to isolate the rule, or any of its parts, without it working on perl6-m :/ | 03:06 | |
yoleaux | lue: I'll pass your message to jnthn. | ||
Mouq | raydiak: Here's an interesting issue: "postcircumfix { }", "postfix ++", "circumfix [ ]" etc are not jumped to by my browser correctly | ||
E.g. type "++" in the search box, go to the first result, end up sitting at the top of operators.html | 03:07 | ||
The "id"s of these things are escaped properly, it seems | |||
but that means that "operators#prefix+%2B%2B" won't jump to the anchor: it needs to either be "operators#prefix+%252B%252B" or a different id | 03:08 | ||
In the case of anything with "[", "<", etc., it's enough to simply change the id in Firebug (id="postcircumfix+[+]" instead of id="postcircumfix+%5B+%5D") | 03:11 | ||
but I'm not sure how the case of postfix ++ would work | |||
Since "+" is already being substituted for " ". I mean, it would be enough to fix it, but it seems hack-y | 03:13 | ||
lue | I'd think prefix+++ , unless multiple spaces are encoded with multiple +'s | 03:14 | |
raydiak | thanks Mouq, I'll put it on a list somewhere; I know there are a couple issues with certain characters and the search | 03:15 | |
03:15
BenGoldberg left
03:16
molaf left
|
|||
raydiak | there are special rules for what can be an id, and different browsers react differently when you break the rules | 03:16 | |
timotimo | i guess i didn't want to sleep anyway. | 03:17 | |
Mouq | some W3C document I saw points out you can use anchor tags with name attributes for more choice (I think) of characters | 03:18 | |
timotimo: Awww | |||
raydiak: But I have not tried this | |||
raydiak | well, I'm familiar with <a name="...">, but there are things like for example, for a long time (dunno about now), using underscores anywhere would break in some browsers, much less more specially-interpreted chars like + | 03:19 | |
raydiak will dig up the spec again, and make sure things are escaped to the same name for the anchors and the urls in the search | 03:21 | ||
Mouq | raydiak++ # not for this specific issue, but general doc work | ||
raydiak | thanks :) just glad I found something genuinely useful to do around here | 03:22 | |
ooc Mouq, what browser are you using? | 03:23 | ||
03:23
btyler left,
araujo left
|
|||
Mouq | Firefox 28.0 | 03:24 | |
Mouq accidentally clicks the "Restart to Update" button. "Noooo! All the tabs I don't care about!" | 03:25 | ||
raydiak | yay, it breaks for me too...that makes things so much easier to fix | ||
heh | 03:26 | ||
I see the index links are broken in the same way, as you'd expect | 03:28 | ||
03:31
raiph left
03:32
dayangkun joined
03:34
FROGGS[mobile] left
|
|||
raydiak | yep, you're right...it is weird :) you might have hit the nail on the head in the first place (just use anchor names instead of IDs) | 03:35 | |
03:35
sivoais left
|
|||
raydiak | ouch, and I need to take a serious run through with a validator too...that page is too broken for the validator to even reach the funny chars | 03:36 | |
Mouq | r: say 1.4e1 div 5.9e1 | 03:41 | |
camelia | rakudo-parrot 230a54: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b) in any at gen/parrot/BOOTSTRAP.nqp:1219 in any at gen/parrot/BOOTSTRAP.nqp:1210 in sub infix:<div> at gen/parrot/CORE.setting:4015 in…» | ||
..rakudo-moar 230a54: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b) in sub infix:<div> at src/gen/m-CORE.setting:4011 in block at /tmp/tmpfile:1» | |||
..rakudo-jvm 230a54: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b) in any at gen/jvm/BOOTSTRAP.nqp:1212 in any at gen/jvm/BOOTSTRAP.nqp:1202 in sub infix:<div> at gen/jvm/CORE.setting:4011 in block at /…» | |||
03:43
fridim_ left
03:44
FROGGS[mobile] joined
03:45
sivoais joined
|
|||
dalek | c: 30411da | Mouq++ | type-graph.txt: Update {Set,Bag,Mix}{,Hash} typegraph |
03:48 | |
c: caeb481 | Mouq++ | type-graph.txt: Fix text alignment |
|||
c: f442101 | Mouq++ | lib/Set.pod: Begin Set documentation |
|||
c: 0c23b44 | Mouq++ | / (7 files): Merge branch 'master' of github.com/perl6/doc |
|||
Mouq | r: say Mix.new(1,2,3,4,2,5,2){2} | 03:52 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«3» | ||
Mouq | r: say Mix.new(1,2,3,4,2,5,2){2} = 15 | 03:53 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/tmpfile:1» | ||
Mouq | r: say (Mix.new(1,2,3,4,2,5,2){2} = 15) | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/tmpfile:1» | ||
Mouq | Looks immutable to me | ||
timotimo | yeah, it gets mutable if you have a *Hash | ||
like a MixHash or BagHash | |||
Mouq | timotimo: Oh, cool. Thanks! | 03:54 | |
r: say (MixHash.new(1,2,3,4,2,5,2){2} = 15) | |||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«15» | ||
Mouq | r: say MixHash.new(1,2,3,4,2,5,2).total | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«7» | ||
03:59
jnap left
|
|||
lue | my $a = "LOHELLO"; say $a ~~ /EL/; $a .= subst(/LO/, "HI", :p); say $a | 04:22 | |
r: my $a = "LOHELLO"; say $a ~~ /EL/; $a .= subst(/LO/, "HI", :p); say $a | |||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«「EL」LOHELLO» | ||
lue | r: my $a = "LOHELLO"; say $a ~~ /EL/; $a .= subst(/LO/, "HI", :p($/.to)); say $a | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«「EL」LOHELHI» | 04:23 | |
lue files rakudobug | 04:25 | ||
Mouq | lue: Isn't that right? | 04:26 | |
lue | nope | ||
S05: "If the argument is omitted, it defaults to ($/ ?? $/.to !! 0). " | |||
Mouq | Ohh, I thought there was an issue with the last example | ||
coolll | 04:27 | ||
lue | Funny thing is, :c works just fine with m// (though it doesn't guarantee anchoring like :p does, so it can't be used on subst) | ||
04:30
jnap joined
|
|||
dalek | c: 6d17e91 | Mouq++ | lib/Mix (3 files): Add some documentation for Mixy objects |
04:31 | |
04:34
jnap left
04:35
colomon joined
|
|||
colomon | o/ | 04:35 | |
04:35
Myk267 left
04:43
crab2313 joined
|
|||
dalek | c: 25858b8 | Mouq++ | lib/ (4 files): Minor additions, typo+code fixes |
04:48 | |
c: 1669f74 | Mouq++ | lib/Bag.pod: Begin Bag documentation akin to Set documentation |
04:58 | ||
c: 7bbf2d1 | Mouq++ | lib/Bag.pod: Fix code example in Bag.pod |
05:00 | ||
05:02
jdv79 left
|
|||
dalek | c: fa694fa | Mouq++ | lib/ (3 files): Use infix:<*> for infixes |
05:12 | |
Mouq | Why infix:<div> is defined in Int.pod and nothing else, I do not know | 05:13 | |
lue | div is for integer division | 05:15 | |
r: say 3 / 2; say 3 div 2; | 05:16 | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«1.51» | ||
Mouq | lue: But why not infix:<mod> for example | ||
I mean, maybe it just wasn't added... | |||
lue | I can't think of a reason for integer-only modulus. | ||
Mouq | r: 2.3 mod 15 | 05:17 | |
camelia | rakudo-moar 230a54: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b) in sub infix:<div> at src/gen/m-CORE.setting:4011 in sub infix:<mod> at src/gen/m-CORE.setting:4221 in block at /tmp/tmpfile:1» | ||
..rakudo-jvm 230a54: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b) in any at gen/jvm/BOOTSTRAP.nqp:1212 in any at gen/jvm/BOOTSTRAP.nqp:1202 in sub infix:<div> at gen/jvm/CORE.setting:4011 in sub infix:<…» | |||
..rakudo-parrot 230a54: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match::(Int:D \a, Int:D \b):(int $a, int $b) in any at gen/parrot/BOOTSTRAP.nqp:1219 in any at gen/parrot/BOOTSTRAP.nqp:1210 in sub infix:<div> at gen/parrot/CORE.setting:4015 in…» | |||
lue | Oh, I thought you were saying C<mod> didn't exist. Nevermind then. | 05:18 | |
Mouq | lue: Nope. | ||
I'm just kind of debating... I put these Set/Bag operators in the Set.pod and Bag.pod files based on the operators in Int.pod and Bool.pod | 05:19 | ||
05:20
SamuraiJack joined
|
|||
Mouq | But I do question whether they maybe should go in operators.pod, though I thought that was for operators hard-coded in the grammar | 05:20 | |
lue | Mouq: I'd recommend putting them with their associated types for clarity, they can be moved to operators if necessary. | 05:22 | |
05:23
[Sno] left
|
|||
Mouq | lue: That's what I conclude as well. And I suppose if I wanted to look up Set operators, I'd look in Set.pod | 05:24 | |
05:30
jnap joined
05:31
crab2313 left,
kaleem joined
05:35
jnap left
|
|||
dalek | c: dcbdcb6 | Mouq++ | lib/QuantHash.pod: Steal most of S32/Containers QuantHash description |
05:47 | |
c: 6a375a2 | Mouq++ | lib/ (4 files): Stub Baggy, Setty, BagHash, and SetHash |
|||
05:51
denisboyun joined
|
|||
Mouq is done for tonight | 05:52 | ||
\o #perl6 | |||
06:01
Mouq left
06:02
zby_home_ joined
06:11
darutoko joined,
FROGGS_ left
06:21
denisboyun left,
[Sno] joined
06:31
jnap joined
06:34
thou left
06:36
jnap left
06:42
Pleiades` left
06:43
Pleiades` joined
06:59
dayangkun_ joined,
dayangkun_ left,
dayangkun left
07:05
virtualsue joined,
Timbus left
07:06
Timbus joined
07:12
Timbus left,
Timbus joined
07:32
jnap joined
07:36
berekuk joined
07:37
jnap left
07:43
zby_home_ left
07:45
kshannon left,
kshannon joined
08:00
berekuk left
08:01
zakharyas joined
08:05
tgt joined
08:17
tgt left
08:19
FROGGS joined,
tgt joined
08:22
ens_ left
08:28
tgt left
08:32
bjz left
08:33
jnap joined,
pdcawley joined
08:37
jnap left
08:41
rindolf joined,
dmol joined
08:51
SamuraiJack left
08:55
tgt joined
09:03
SamuraiJack joined
|
|||
jnthn | morning o/ | 09:07 | |
yoleaux | 02:59Z <lue> jnthn: I've narrowed it down to the 'frag' rule accidentally eating a closing > (but it doesn't do this on closing »), not yet sure exactly why that is. | ||
03:06Z <lue> jnthn: strangely, I can't seem to isolate the rule, or any of its parts, without it working on perl6-m :/ | |||
09:09
Shozan is now known as SHODAN
09:11
hoverboard left
09:29
dakkar joined
09:33
salv0 joined
|
|||
nwc10 | jnthn: in the native call code, I really don't understand dyncall_wb_ca and dyncall_wb_cs. In that, it's not clear why they aren't usually needed. Or why the only action they seem to take is body->child_objs[slot] = NULL; | 09:46 | |
ie they just seem to update the PMC to NULL. Never to anything else. | |||
09:47
denis_boyun joined
|
|||
nwc10 | er, a pointer within the PMC to NULL. | 09:47 | |
09:48
daniel-s_ joined
09:50
tgt left
09:52
pecastro joined
|
|||
jnthn | nwc10: I didn't write that bit, but iirc, they're dealing with the case where something changes in C land "out of band", and we need to re-compute the wrapper object. | 09:53 | |
nwc10: So setting it to NULL just means "it's missing" and causes re-computation on the next access. | |||
nwc10 | ah OK | 09:54 | |
that was my guess. That there is a cached wrapper object | |||
09:56
xenoterracide left
|
|||
FROGGS | jnthn: you fixed the STable thingy?? | 09:56 | |
FROGGS is excited | |||
tadzik | hah, 'realclean' changes names all the time, it seems :) | 10:00 | |
10:00
yeltzooo joined
|
|||
tadzik | rakudobrew shouts at me every once in a while: "there's no such thing as realclean! It's called j-realclean!" | 10:02 | |
10:02
yeltzooo left
|
|||
tadzik | now it's the other way around :P | 10:02 | |
10:02
yeltzooo joined
10:04
woosley left
10:07
ens joined
10:17
denis_boyun left
10:18
sqirrel__ joined
10:27
daniel-s_ left
10:29
daniel-s_ joined
10:30
bjz joined
10:34
jnap joined
10:39
jnap left
|
|||
FROGGS | tadzik: I can almost bootstrap panda now, there is just a failing test | 10:42 | |
10:42
bjz left,
bjz joined
|
|||
tadzik | oh :) | 10:43 | |
jnthn | tadzik: ooh, nice :) | ||
uh, FROGGS ^^ :) | |||
10:44
SamuraiJack left,
SamuraiJack_ joined
10:45
daniel-s_ left
10:46
daniel-s_ joined
|
|||
FROGGS | jnthn++ # btw :o) | 10:46 | |
10:56
daniel-s_ left
10:57
daniel-s_ joined,
crab2313 joined
|
|||
tadzik | ah | 11:05 | |
so even though panda is not copying .git files, file-find is still traversing those | |||
masak | good noon, #perl6 | 11:06 | |
tadzik | hi masak | ||
hah | 11:07 | ||
r: 'foo/.git/bab' ~~ / <!.git> / | |||
camelia | rakudo-parrot 230a54: OUTPUT«No such method 'git' for invocant of type 'Cursor' in regex at /tmp/tmpfile:1 in method ACCEPTS at gen/parrot/CORE.setting:12577 in method ACCEPTS at gen/parrot/CORE.setting:780 in block at /tmp/tmpfile:1» | ||
..rakudo-jvm 230a54: OUTPUT«No such method 'git' for invocant of type 'Cursor' in method ACCEPTS at gen/jvm/CORE.setting:12556 in method ACCEPTS at gen/jvm/CORE.setting:784 in block at /tmp/tmpfile:1» | |||
..rakudo-moar 230a54: OUTPUT«No such method 'git' for invocant of type 'Cursor' in method ACCEPTS at src/gen/m-CORE.setting:12554 in method ACCEPTS at src/gen/m-CORE.setting:784 in block at /tmp/tmpfile:1» | |||
tadzik | hmm | ||
p: 'foo/.git/bab' ~~ / <!\.git> / | |||
camelia | rakudo-parrot 230a54: OUTPUT«===SORRY!===Unrecognized regex metacharacter < (must be quoted to match literally)at /tmp/Ht6itilAVi:1------> 'foo/.git/bab' ~~ / <!⏏\.git> /Unrecognized regex metacharacter ! (must be quoted to match li…» | ||
tadzik | well, locally I get null pmc access :P | 11:08 | |
jnthn | <!before '.git'> | 11:09 | |
11:10
crab2313 left
|
|||
tadzik | r: say so '.git' ~~ / <!before '.git'> /; | 11:11 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«True» | ||
tadzik | hrm | ||
jnthn | Anchor | ||
But why not !~~ /'.git'/ :) | 11:12 | ||
tadzik | well, I'm looking for an equivalent of... exactly | ||
but I want to pull the ! inside the regex | |||
jnthn | Oh... | ||
tadzik | because file-find uses ~~ to match against :$name param | 11:13 | |
and I'd rather pass a different regex there than teach File-Find how to do not-name | |||
jnthn | If ::: were implemented that'd do it... | 11:14 | |
moritz | tadzik: aren't you smart-matching against whatever is passed in | 11:15 | |
jnthn | Cheating way is / ^.+$ <?{ $/ !~~ /'.git'/ }> / | ||
moritz | ? | ||
tadzik | moritz: if it's a regex, yes | ||
or, maybe... | |||
moritz | tadzik: why not always smart-match? | ||
then you could pass in { $^name !~~/\.git/ } | 11:16 | ||
and be happy | |||
tadzik | ah, because it's using .basename for Str arguments | ||
hrm | |||
I wonder if I'll break someone's code if I unified that | |||
not sure why it's this way | |||
masak | raiph: thank you for www.youtube.com/watch?v=dFs9WO2B8uI -- the message of that talk will be integrated in one of my talks at PLPW. | 11:20 | |
tadzik | well, it breaks the tests :/ | ||
I think I found a way to please everyone :) It's not pretty, but at least shouldn't break existing code | 11:23 | ||
11:23
denisboyun joined
|
|||
tadzik | bah, that won't help at all :/ | 11:30 | |
find-find will traverse the entire .git, it just won't take() any of what's inside | |||
tablethrow.png | |||
11:31
SamuraiJack__ joined
|
|||
hoelzro | tadzik: maybe you should teach yoleaux how to flip tables? =P | 11:33 | |
11:33
bjz left,
bjz joined
|
|||
Timbus | (╯°□°)╯︵ ┻━━┻ | 11:35 | |
11:35
jnap joined,
SamuraiJack_ left
|
|||
tadzik | I wanted to be sneaky and do say <40 9583 176 9633 176 65289 9583 65077 32 9531 9473 9531>.comb».chr | 11:35 | |
doesn't work for some reason | 11:36 | ||
oooh | |||
of course | |||
m: say <40 9583 176 9633 176 65289 9583 65077 32 9531 9473 9531>».chr | |||
camelia | rakudo-moar 230a54: OUTPUT«( ╯ ° □ ° ) ╯ ︵ ┻ ━ ┻» | ||
tadzik | m: say <40 9583 176 9633 176 65289 9583 65077 32 9531 9473 9531>».chr.join | ||
camelia | rakudo-moar 230a54: OUTPUT«(╯°□°)╯︵ ┻━┻» | ||
Timbus | haha neat | ||
tadzik | FROGGS: hmm, my panda still cannot build because of this STable problem | 11:37 | |
This is perl6 version 2014.01-94-g230a54b built on MoarVM version 2014.01-181-gbf9c708 | |||
11:37
bjz left
11:38
bjz joined
|
|||
jnthn | tadzik: The NQP_REVISION didn't get mumped yet - maybe that's it? | 11:40 | |
11:40
jnap left
|
|||
jnthn | uh, bumped | 11:40 | |
tadzik | jnthn: I usually do --gen-nqp=master | 11:41 | |
11:41
fhelmberger joined
|
|||
tadzik | but seems like it didn't work now :) | 11:41 | |
11:42
dmol left
|
|||
FROGGS | tadzik: so you've fixed the failing test already? | 11:57 | |
t/installer.t (Wstat: 0 Tests: 8 Failed: 1) | |||
Failed test: 3 | |||
tadzik | FROGGS: nope, I didn't manage to build panda | 11:58 | |
hm | 11:59 | ||
ah, it didn't bother updating nqp at all | |||
I had to nuke install/ | 12:00 | ||
FROGGS | ohh | ||
12:00
newbie_Perl6 joined
12:01
crab2313 joined
12:08
sqirrel__ left
|
|||
timotimo | o/ | 12:16 | |
today is the day for a new p6weekly | 12:22 | ||
12:23
newbie_Perl6 left
|
|||
tadzik | nah, that still didn't help :( | 12:24 | |
I'll look at it later time | |||
eiro | [hello] @perl6 | 12:27 | |
tadzik | hello eiro! | 12:29 | |
masak | herro eilo! | 12:32 | |
12:36
jnap joined
|
|||
eiro | haha... what's the shortest perl6 script to do that ? :) | 12:38 | |
i mean "hello eiro!" to "herro eilo!" | |||
masak | r: say "hello eiro".trans( "rl" => "lr" ) | 12:39 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«herro eilo» | ||
eiro | y/lr/rl/ in perl5 | ||
masak | r: given my $ = "hello eiro" { tr/rl/lr/; .say } | ||
camelia | rakudo-parrot 230a54: OUTPUT«herro eilo» | ||
..rakudo-moar 230a54: OUTPUT«===SORRY!===Cannot find method 'Str'» | |||
..rakudo-jvm 230a54: OUTPUT«===SORRY!===No such method 'Str' for invocant of type 'NQPMu'» | |||
masak | interesting. | ||
moritz | bugs! | 12:40 | |
masak | could somebody submit that as a rakudobug? I'm about to run off to catch a train. | ||
eiro | :) | ||
masak | eiro++ # indirectly uncovering bugs | ||
eiro | thanks | ||
12:40
jnap left
|
|||
moritz submits | 12:40 | ||
r: $_ 'herro eilo'; tr/rl/lr/; .say | 12:41 | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> $_ ⏏'herro eilo'; tr/rl/lr/; .say expecting any of: postfix…» | ||
moritz | r: $_ = 'herro eilo'; tr/rl/lr/; .say | ||
camelia | rakudo-moar 230a54: OUTPUT«===SORRY!===Cannot find method 'Str'» | ||
..rakudo-jvm 230a54: OUTPUT«===SORRY!===No such method 'Str' for invocant of type 'NQPMu'» | |||
..rakudo-parrot 230a54: OUTPUT«hello eiro» | |||
13:00
skids left
13:05
benabik left
|
|||
masak | moritz++ | 13:06 | |
herro flom a tlain! :P | 13:07 | ||
13:07
colomon left
|
|||
masak | perl6: y/lr/rl/ | 13:07 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Unsupported use of y///; in Perl 6 please use tr/// at /tmp/tmpfile line 1:------> y⏏/lr/rl/Parse failed» | ||
..rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> y/lr/rl/⏏<EOL> expecting any of: argument list post…» | |||
masak submits LTA rakudobug | |||
13:08
Alula left
13:14
SamuraiJack__ left
13:21
Alula joined
13:24
kaare_ left
13:32
ajr joined,
kaleem_ joined
13:33
ajr is now known as Guest42709,
Guest42709 is now known as ajr_
13:35
kaleem left
13:37
jnap joined
13:41
jnap left
|
|||
masak | somewhere we should probably put together a nice list of "OO done right" tends to consist of. | 13:44 | |
such lists will always be opinionated/subjective, but I have a feeling the people on #perl6 could reach an interesting/useful consensus. | 13:45 | ||
some suggestions: | |||
* doesn't use inheritance for everything (as per yesterday's discussion/SO thread) | |||
* doesn't create abstractions/classes just because they have a real-world equivalent | |||
* uses objects for somethings and functions for others, in a nice mix | 13:46 | ||
* respects exceptions as first-class OO entities with potentially interesting fields/methods | |||
* sees OO as a means to an end, on par with (and often combinable with) FP, logic programming, and Just Plain Procedural programming | 13:47 | ||
* sees the value of SRP/cohesion, and so doesn't try to make objects do too much | 13:49 | ||
* recognizes that objects that actually uphold their invariants (and thus never get into an "invalid state") are much easier to program with in the long run | 13:50 | ||
jnthn | * tends to view the fields inside the object as a representation of the concept being modeled by the object, and keeps them sufficiencly encapsulated that it's easy to change representation when new behaviors are required | 13:54 | |
Seems that the models we are most confident in tend to want to escape object boundaries, though, such that you end up with a very stable data structure and many things manipulating it (ala Git) | 13:56 | ||
masak | *nod* | 13:58 | |
see also Unix files/pipes/processes | |||
jnthn | *nod* | ||
masak | I don't know what's up there, exactly. I think it's something to do with C programmers not really believing in encapsulation :) | 13:59 | |
Linus' quote about good programmers worrying about data structures is interesting in that regard. | |||
if you encapsulate well, you shouldn't *need* to worry up-front about data structures, because you can always refactor. | |||
jnthn | Well, when I write C, I tend to find sometimes I'll have a struct and a bunch of functions you always use to manipulate it, and other times I'll have a struct I've no qualms about lots of things poking in to. | ||
masak | right. | 14:00 | |
jnthn | The latter kind are where I expect a lot of stability. | ||
masak | it's two modes of thinking. | ||
and only the former mode is really "represented" within OO thinking. | |||
jnthn | Functional thinking seems to lean more strongly towards the t'other. | 14:01 | |
I guess it could be argued that refactoring is easier on immutable data structures, though... | |||
masak | yeah, ADTs are meant to be destructured. that's how you use them. | 14:02 | |
timotimo | anything happened today that needs to go on the p6weekly? | ||
moritz | not that I'm aware of | 14:10 | |
timotimo | shame on you for slacking off! ;)) | ||
masak | heh. | 14:12 | |
well, in our defense, it *is* Monday... | |||
timotimo | :) | ||
you are pardoned | |||
JimmyZ | 16:34 <newbie_Perl6> 您好,我是一个Perl6的初学者,最近在阅读语言标准,想联系到您,并且想请教如何融入这个社区,请问能帮一下小 弟吗? | 14:13 | |
16:40 <newbie_Perl6> 由于今天太晚了,如果您愿意帮一下小弟,能通过电邮和我联系吗,我的邮箱是 | |||
masak: ^^ :P | |||
14:13
araujo joined,
araujo left,
araujo joined
|
|||
moritz might contribute something to the discussion if it were in English | 14:16 | ||
JimmyZ | it's easy by google translation | 14:18 | |
masak | moritz: I think this is a copy-paste of an original discussion. | ||
moritz: so it's not to exclude you specifically :) | |||
JimmyZ | well, someone msged to me through there when I was not online | 14:19 | |
s/there/here/ | |||
masak | moritz: the translation seems to be "if you will, please help a neophyte get started with Perl 6" | ||
JimmyZ | right | 14:20 | |
masak | JimmyZ: need any action on my part? I'm always 很愿意帮助 :) | 14:21 | |
14:21
jnap joined
|
|||
JimmyZ | something like 'I will translate SYN to chinese' will be welcome :P | 14:22 | |
masak | ehm. | 14:24 | |
14:24
raydiak left
|
|||
masak | th... thanks for your obviously high regard for my mastery of Chinese. | 14:24 | |
14:25
raydiak joined
|
|||
masak | I think such a task needs to be undertaken by a native speaker of the target language, though. | 14:25 | |
JimmyZ | hehe :) | ||
moritz | and don't send newbies to perlcabal.org/syn/ | ||
(unless that's what they are looking for) | |||
14:26
camelia left
|
|||
JimmyZ | yeah, He said he is reading 语言标准 | 14:26 | |
I think he meant SYN | |||
14:26
skids joined
|
|||
masak | better to send them to perl6advent.wordpress.com if they want lots of examples. | 14:27 | |
or rosettacode. | |||
JimmyZ agress | |||
btw: there are some chinese version articles of perl6advent | 14:28 | ||
14:28
sqirrel__ joined,
camelia joined
|
|||
masak | ooh | 14:28 | |
JimmyZ | www.php-oa.com/perl-6 here | 14:29 | |
yakudza | php-oa hehehe | ||
moritz | there's also doc.perl6.org | ||
14:29
kbaker joined
|
|||
JimmyZ | www.php-oa.com/category/perl/perl6 | 14:29 | |
14:29
ChanServ sets mode: +v camelia
|
|||
masak | translating all of perl6advent would have a better benefit to the Chinese Perl 6 community than translating all of the Synoses, IMHO. | 14:29 | |
Synopses* | 14:30 | ||
JimmyZ | www.php-oa.com/2012/05/05/use-perl6...-with.html is chinese version of stevieb-tech.blogspot.de/2012/04/us...-with.html | ||
timotimo | so, what's the status of panda on moar now? | 14:33 | |
we can get the module list via sockets | 14:34 | ||
but bootstrap is still b0rked? | |||
jnthn | timotimo: And the STable blocker got fixed, which also got it further | ||
timotimo: Last I heard, it built but failed a test. | |||
timotimo | excellent :) | 14:35 | |
what is missing from nativecall on jvm now? | 14:50 | ||
moritz | CArray, iirc | 14:51 | |
timotimo | CArray of specific things only, right? | ||
moritz | dunno | 14:52 | |
just something arnsholt++ mentioned yesterday (or so) | 14:53 | ||
timotimo | right | ||
i'm a journalist now | |||
i don't have a reason to do research | |||
moritz | lol | 14:54 | |
these lines together are hilarious | 14:55 | ||
timotimo | it's funny because it's true | ||
14:55
pmurias joined
|
|||
timotimo | oh wait, there's actually a commit saying "implement remaining cases of CArray" | 14:55 | |
and "all that's remaining for JVM NativeCall now is nqp::nativecallrefresh" | 14:56 | ||
which i don't really know what that's needed for | |||
pmurias | jnthn: you using ssa to optimize qast? | ||
timotimo | pmurias: probably mast instead of qast | ||
also | |||
o/ pmurias | |||
pmurias | timotimo: hi | 14:57 | |
JimmyZ | ssa? | 14:58 | |
timotimo | single static assignment | ||
or static single assignment? | |||
pmurias | the first one | ||
jnthn: I have played around with ssa for smop/mildew, and in my experience the data flow stuff (like hoopl) would be better for doing complex optimalisations like Perl 6 seems to need to optimize out the tricky stuff | 15:00 | ||
jnthn: but the ssa stuff seems to be better for doing simple optimalisations efficently | 15:02 | ||
15:03
btyler joined
15:04
thou joined
|
|||
timotimo | so, what little projects should i mention on the weekly this time? | 15:06 | |
in the "what's cooking" section | |||
15:07
xinming left
|
|||
pmurias | timotimo: is there a "this week in perl 6"? | 15:08 | |
15:08
xinming joined
|
|||
timotimo | there now is :) | 15:09 | |
p6weekly.wordpress.com | |||
last week was the first one i did | |||
15:15
virtualsue left
15:19
virtualsue joined
|
|||
timotimo | p6weekly.wordpress.com/?p=59&sh...228d9b1eba | 15:21 | |
moritz | timotimo: you might want to mention what the varint branch actually does | 15:23 | |
timotimo: otherwise: awesome | |||
timotimo | oh, right | ||
i'm not happy about the "what's cooking" section, because it focuses so strongly on me | 15:25 | ||
15:25
kurahaupo left
|
|||
moritz | maybe mention that gsoc ideas are cooking? | 15:26 | |
timotimo | oh, that's a good idea | ||
oh, how about a section "what you could do right now to get into perl6 development"? | |||
like a little summary of LHF? | |||
moritz | +1 | 15:27 | |
15:31
ajr_ left
|
|||
timotimo | now i have to think a bit harder :P | 15:32 | |
15:33
daniel-s_ left,
ajr joined,
daniel-s_ joined,
ajr is now known as Guest7724
|
|||
btyler | timotimo: not that troll responses should deter you from writing what you want, but perhaps be wary of encouraging the 'perl 6 devs start lots of things and finish very few of them' meme | 15:35 | |
15:36
Guest7724 is now known as ajr_
|
|||
timotimo | hah :) | 15:36 | |
seems like i've been predestined to be a perl 6 developer from the very beginning of my life then :) | |||
15:37
kaleem_ left
|
|||
timotimo | but you're right about that. that blog isn't the right place for self-deprecation :P | 15:37 | |
15:37
colomon joined
15:38
kurahaupo joined
15:46
kurahaupo left
|
|||
timotimo | moritz: any LHF you can think of right now? | 15:47 | |
anyone else? | 15:52 | ||
i had some ideas recently, but i forgot them again :| | |||
TimToady | if we say S09 is LHF, can we trick someone into doing it? | 15:53 | |
FROGGS | timotimo: labels? | 15:54 | |
jnthn | pmurias: No, not on QAST. On MoarVM bytecode. | ||
pmurias | jnthn: and specialisation is type inference? | 15:57 | |
jnthn | pmurias: Well, it takes what is discovered at runtime, butfrom those starting points you can infer further things. | 15:58 | |
15:59
bjz left
|
|||
TimToady | timotimo: straightening out .lol vs .tree might be LHF | 15:59 | |
jnthn | uh, takes/will take/ :) | ||
s/ | |||
:) | |||
TimToady | but it's gonna take a pass through to find everywhere that expects .tree to default to .lol rather than .tree(*) | 16:00 | |
well, it should probably be called Parcel of Parcels, but .pop is taken :) | 16:01 | ||
TimToady isn't awake yet, PoP is what it starts as, not what it finishes as | |||
pmurias | jnthn: will that be a part of a jit? | ||
16:01
sqirrel__ left
|
|||
TimToady | more like parcel of items, which would give us .poi :) | 16:02 | |
jnthn | pmurias: At first it will be used to produce specialized bytecode, but the same data structure it'll use will be the starting point for JIT too, yes | ||
16:03
kurahaupo joined
|
|||
TimToady | timotimo: porting some socket-based stuff from P5 might be LHF now | 16:04 | |
oh, wait, we already had sockets, just not much on moarvm | 16:05 | ||
jnthn | Yeah, MoarVM just got them too. | 16:07 | |
TimToady | making a Supply out of Posix signals? | ||
jnthn | Parrot and JVM had them for a while. | ||
timotimo | that's right | 16:08 | |
signals would be an interesting thing | |||
TimToady is having his morning paroxysmal coughing fit, so is a bit low on oxygen at the moment | 16:09 | ||
timotimo | TimToady: i was actually mostly interested in LHF for people who haven't done any perl6 yet | ||
so things like .lol vs .tree seem a bit daunting :) | |||
TimToady | otoh, we obviously need someone who isn't familiar with Perl 6 but maybe familiar with APL who would think "What's so hard about S09?" :) | 16:11 | |
16:11
SamuraiJack__ joined
|
|||
TimToady | or a C programmer who thinks native types are really easy :) | 16:12 | |
FROGGS | *g* | ||
16:14
arnsholt joined
|
|||
arnsholt | o/ | 16:14 | |
timotimo | :D | 16:15 | |
16:15
virtualsue left
|
|||
arnsholt | timotimo: I checked the ir-clogs a bit back and saw your question | 16:16 | |
The only thing missing is the refresh op, which should be pretty quick | |||
timotimo | didn't mean to startle you :) | ||
Arnsholt has almost finished NativeCall for the JVM, the only thing missing now is the nqp::nativecallrefresh op which I don't even know what it does :P | |||
this is what i wrote | |||
arnsholt | Yeah | ||
It's basically a way to force a re-read of native memory | |||
We cache the sixmodel objects for struct members and array elements, which means that sometimes the cache gets out of date and we need to flush it | 16:17 | ||
TimToady | .oO(is volatile) |
||
arnsholt | We check things after they've been passed to a native call, but sometimes it's not that simple | 16:19 | |
But with last night's commits, DBIish should run | |||
16:19
dmol joined
|
|||
arnsholt | Not sure if it'll run 100% correctly, but it should run | 16:19 | |
pmichaud | Good morning, #perl6 | 16:20 | |
nwc10 | good UGT, pmichaud | ||
TimToady | o/ | ||
arnsholt | timotimo: Implementing the refresh op is mostly a question of me reading the JNA docs a bit closer I think, after that a quick bout of hacking | 16:21 | |
jnthn | o/ pmichaud | 16:22 | |
timotimo | o/ pmichaud | ||
nwc10 | arnsholt: that sounds excellent | ||
16:22
denisboyun left
|
|||
nwc10 | arnsholt: so you're pretty close to making "JVM Star" SEP? | 16:23 | |
masak | pmichaud! \o/ | ||
timotimo | post publish'd | ||
arnsholt | nwc10: Indeed I am. And looking forward to it! | ||
16:25
[Sno] left
|
|||
masak | timotimo: url? | 16:25 | |
FROGGS | hi pmichaud | ||
timotimo | p6weekly.wordpress.com | 16:26 | |
rjbs | For "messing around and stuff," what's the recommended rakudo backend these days, if any? | 16:28 | |
masak | timotimo: ah, p6weekly.wordpress.com/2014/02/17/c...7-of-2014/ :) | 16:29 | |
timotimo++ | |||
also, ++timotimo for doing the Rakudo release this week. | |||
16:29
grondilu joined
|
|||
timotimo | yays | 16:30 | |
nwc10 | rjbs: I'd suggest Moar, unless it turns out you need nativecall | ||
PerlJam | rjbs: I've been using moarvm myself, but I think the jvm backend is still more featureful but with abysmal startup time. | ||
masak | who wants to do March? March is still wide open. | ||
rjbs | Okay, I'm ./configure-ing now, thanks. | ||
masak | I'll make a deal with someone who steps up: $someone does March, and I'll do April. | ||
rjbs | I thought I had a built p6, but I must've lost it at some point. | ||
16:31
arnsholt left
|
|||
rjbs | perl6: <<a b c>>.perl.say | 16:32 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54, niecza v24-109-g48a8de3: OUTPUT«("a", "b", "c")» | ||
rjbs | perl6: my @x = <a b c>; <<x @x z>>.perl.say | 16:33 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54, niecza v24-109-g48a8de3: OUTPUT«("x", "\@x", "z")» | ||
16:33
vendethiel joined
|
|||
rjbs | That's the question I wanted to answer with perl6. Is there a channel for bugging the bot without bugging the humans? :) | 16:33 | |
jnthn | perl6: my @x = <a b c>; <<x @x[] z>>.perl.say | 16:34 | |
PerlJam | rjbs: you can always msg the bot | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«("x", "a", "b", "c", "z").list» | ||
..rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«("x", ("a", "b", "c").list, "z")» | |||
rjbs | jnthn: oh, nice, thank you | ||
jnthn | rjbs: Note that @foo needs a postcircumfix to interpolate | ||
rjbs | PerlJam: Thanks! Although I guess if I didn't do that, jnthn wouldn't show me the light. | ||
PerlJam | indeed ;) | ||
jnthn | rjbs: Not just there, but in general. | ||
16:34
crab2313 left
|
|||
rjbs | I was thining earlier about what qqw would do in perl5 with arrays. | 16:34 | |
jnthn | Means [email@hidden.address] doesn't accidentally try interpolating :) | 16:35 | |
rjbs | jnthn: ugh, I know all about that problem. :( | ||
PerlJam | perl6: my @x = <a b c>; <<x {@x} z>>.perl.say | 16:36 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«("x", "a", "b", "c", "z").list» | ||
..rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«("x", ("a", "b", "c").list, "z")» | |||
rjbs | oh, yes, I forgot about {}, yeesh. it's been too long since I wrote any p6! | ||
PerlJam | (for some reason I wasn't expecting all of them to give the same answer on that one. yay perl6! :-) | 16:37 | |
TimToady | one way or another, needs brackets :) | ||
perl6: my @x = <a b c>; <<x $(@x) z>>.perl.say | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«("x", "a", "b", "c", "z").list» | ||
..rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«("x", ("a", "b", "c").list, "z")» | |||
TimToady | perl6: my @x = <a b c>; <<x $(@x) z>>[1].perl.say | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54, niecza v24-109-g48a8de3: OUTPUT«"a"» | ||
16:38
BenGoldberg joined,
bjz joined
|
|||
rjbs | What's the $(...) do? I'd have expected something like "put into item context and interpolate that", though I'm not even sure that makes sense. | 16:39 | |
Or, perhaps: how are {...} and $(...) distinct there? | |||
Huh. (make: write error | 16:40 | ||
16:40
zakharyas left
|
|||
jnthn | Well, {...} introduces a lexical scope, while $(...) doesn't. | 16:40 | |
rjbs | ) I guess I'll get perl6 built again after work. :) | ||
btyler | rjbs: yeah, apparently some goofy make issue. make install still works (and the 'write error' goes away if you make install a second time) | ||
jnthn | And $(...) calls .item on the thing inside of it. | 16:41 | |
TimToady | and in theory $() itemizes, but that doesn't seem to happen here | ||
rjbs | btyler: funny, thanks | ||
16:41
rindolf left
|
|||
pmichaud | yeah, I think $(@x) is being interpreted wrongly there. | 16:41 | |
I would've expected "x", "a b c", "z" | |||
rjbs | perl6: my @x = <a b c>; <<x $(1;@x) z>>.perl.say | 16:42 | |
pmichaud | no... hmm | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«("x", "a", "b", "c", "z").list» | ||
..rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«WARNINGS:Useless use of constant integer 1 in sink context (line 1)("x", ("a", "b", "c").list, "z")» | |||
pmichaud | I would've expected "x", ["a", "b", "c"], "z" | ||
rjbs | Interesting, so I can have more than one statement inside $(...) but there's no scope created? | ||
jnthn | rjbs: correct | ||
rjbs | Thanks. #perl6 is helpful as always! | ||
16:43
SamuraiJack__ left,
bjz left
|
|||
TimToady | p6: say "foo$( my $x = 42; '' )bar"; say $x | 16:44 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54, niecza v24-109-g48a8de3: OUTPUT«foobar42» | ||
TimToady | p6: say "foo{ my $x = 42; '' }bar"; say $x | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileVariable '$x' is not declaredat /tmp/tmpfile:1------> say "foo{ my $x = 42; '' }bar"; say $x⏏<EOL> expecting any o…» | ||
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Variable $x is not predeclared at /tmp/tmpfile line 1:------> say "foo{ my $x = 42; '' }bar"; say ⏏$xPotential difficulties: $x is declared but not used at /tmp/tmpfile line 1:--…» | |||
TimToady | $() is particularly useful to interpolate a $^placeholder | 16:45 | |
well, when you have to process it somehow, since $^placeholder would interpolate itself | |||
PerlJam | p6: my @x = <a b c>; <<x @(@x) z>>.perl.say | 16:48 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«("x", "\@(\@x)", "z")» | ||
..niecza v24-109-g48a8de3: OUTPUT«("x", "a", "b", "c", "z").list» | |||
PerlJam | curious. | ||
timotimo | isn't <<...>> known to not work properly on rakudo? | ||
not exactly an LHF, is it? | |||
TimToady | PerlJam: @() does not count the () as a final subscript, so you need @()[] | 16:50 | |
PerlJam | oh. | ||
16:53
sqirrel__ joined
|
|||
TimToady | $() works 'cause it's a $, not because of the (); in general we always consider sigil plus () to be equivalent to sigil plus name | 16:54 | |
so @() is equivalent to @foo there | |||
jnthn | Aye; falls out of @(...) being parsed by token variable, iirc | 16:55 | |
TimToady | nodnod | ||
16:55
telex left
16:56
telex joined
17:05
mtk left
17:06
fhelmberger left
17:08
mtk joined
17:11
ens left
17:15
pmurias left,
virtualsue joined
|
|||
masak | r: say "OH $( class Joiner { has @.pieces handles 'join' }; Joiner.new(:pieces<H A I>).join )" | 17:16 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«OH HAI» | ||
masak | \o/ | ||
17:17
vendethiel left
|
|||
masak | r: say "OH $( q[only pay attention to tHe capitAlized letters In this sentence].comb(/<[A..Z]>/).join )" | 17:20 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«OH HAI» | ||
masak | r: say "OH $( my regex capitals { /<[A..Z]>/ }; q[only pay attention to tHe capitAlized letters In this sentence].comb(capitals).join )" | 17:23 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!===Unrecognized regex metacharacter / (must be quoted to match literally)at /tmp/tmpfile:1------> say "OH $( my regex capitals { ⏏/<[A..Z]>/ }; q[only pay attenti…» | ||
17:23
hoverboard joined
|
|||
masak | ghh. | 17:23 | |
r: say "OH $( my regex capitals { <[A..Z]> }; q[only pay attention to tHe capitAlized letters In this sentence].comb(capitals).join )" | |||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in regex capitals at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | 17:24 | |
masak | r: say "OH $( my regex capitals { <[A..Z]> }; q[only pay attention to tHe capitAlized letters In this sentence].comb(&capitals).join )" | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«OH HAI» | ||
masak | \o/ | ||
17:32
ajr joined,
ajr_ left
17:33
ajr is now known as Guest36201,
Guest36201 is now known as ajr_
17:37
[Sno] joined
17:50
dakkar left
17:51
FROGGS left
17:58
vmspb joined
18:02
pecastro left,
benabik joined
|
|||
timotimo | so little going on today here :( | 18:03 | |
18:03
xenoterracide joined
|
|||
moritz | you have high standards :-) | 18:04 | |
timotimo | yeah, i guess | ||
18:04
mcglk joined
18:05
vendethiel joined
|
|||
raydiak | we could spontaneously burst into a musical number.... | 18:06 | |
TimToady | .oO(Spam, spam, spam, spam...) |
18:07 | |
btyler | timotimo: here's something: "==> Successfully installed panda" (moarvm) | ||
timotimo | \o/ | ||
btyler | just needed a placeholder .moarvm file in the compiled__module test | ||
timotimo | i'm now annoyed by overscan on my "tv" | 18:08 | |
i'd have to figure out a proper affine transformation matrix to make it work, but that's work :| | |||
raydiak | your tv lets you input transformation matrices? | 18:09 | |
jnthn | timotimo: Sounds like a fine idea... ;) | 18:10 | |
TimToady | some video drivers give you an overscan/underscan adjustment | ||
geekosaur | which is still a hack | ||
18:10
Rotwang joined
|
|||
timotimo | raydiak: xrandr does | 18:12 | |
geekosaur | not all drivers support xrandr (or support it fully) though | ||
timotimo | right. this is an intel graphics card, though :) | ||
sadly when doing specific changes to the matrix the output will turn off and on briefly at least on this device | 18:13 | ||
so i can't use it to make a wildly spinning desktop with it :P | |||
raydiak | there has to be a compiz plugin for that :P | 18:14 | |
timotimo | most probably | ||
geekosaur wonders if there's a cairo-compmgr plugin | |||
probably not... | |||
timotimo | there may be | 18:15 | |
raydiak | compiz has the market cornered on useless plugins (in addition to having some very handy ones) | ||
I didn't even know cairo-compmgr had plugins | 18:17 | ||
rjbs | (Thanks again for the help, I have a working ./perl6-m now.) | ||
btyler++ | 18:18 | ||
timotimo | \o/ | 18:19 | |
btyler | rjbs: sweet, have fun :) | ||
tadzik/FROGGS: sent a pull request which fixes the failing panda test on moar-support | 18:23 | ||
18:26
ajr_ left
|
|||
dalek | nda/moar-support: fdee20a | (Ben Tyler)++ | lib/foo.moarvm b/testmodules/compiled__module/blib/lib/foo.moarvm: Add a fake .moarvm file to the compiled module test dir. This fixes the failing test under MoarVM. |
18:26 | |
nda/moar-support: 441d2ce | tadzik++ | lib/foo.moarvm b/testmodules/compiled__module/blib/lib/foo.moarvm: Merge pull request #67 from kanatohodets/moar-support Add a fake .moarvm file to the compiled module test dir. |
|||
tadzik | btyler: I should've probably checked or asked earlier, but did you check if it breaks other platforms? :P | ||
dalek | p/r2-lex-to-local: 2a13276 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp: try to turn lexicals into locals. |
18:28 | |
p/r2-lex-to-local: 63945cb | (Timo Paulssen)++ | src/NQP/Optimizer.nqp: first version to pass rakudo spectests |
|||
p/r2-lex-to-local: 7e670d4 | (Timo Paulssen)++ | src/NQP/Optimizer.nqp: handle the outermost block as well. it's special. |
|||
p/r2-lex-to-local: 48f6dbf | (Timo Paulssen)++ | src/NQP/Optimizer.nqp: merge two implementations of find_lex. |
|||
btyler | I didn't...apologies. I can check on my windows vm later today | ||
tadzik | it probably won't, as there's a similar one for jvm :) | ||
btyler++ # good job | |||
btyler | that was my thinking, but then I started wondering about treatment of empty files on various platforms... | 18:29 | |
anyways, thanks for merging so quickly :) tadzik++ | |||
FROGGS[mobile] | \o/ | 18:32 | |
18:33
kivutar joined
18:39
tgt joined,
BenGoldberg left
18:45
FROGGS joined
|
|||
timotimo | my brain is a bit derped today, not having much luck with the block inlining code-design wise :| | 18:49 | |
18:49
benabik left
|
|||
dalek | nda/eleven: 359402d | (Tobias Leich)++ | lib/Panda/Fetcher.pm: moar does not like to take a substr OOB |
18:52 | |
panda/eleven: 3c47a06 | (Tobias Leich)++ | lib/Panda/Common.pm: | |||
panda/eleven: fix spello | |||
18:52
dalek left
|
|||
FROGGS | sorry dalek | 18:52 | |
18:52
dalek joined,
ChanServ sets mode: +v dalek
|
|||
dalek | Heuristic branch merge: pushed 30 commits to rakudo/eleven by FROGGS | 18:53 | |
18:56
sqirrel__ left
|
|||
dalek | kudo/eleven: 6d53dd9 | (Tobias Leich)++ | src/core/JSON/Pretty.pm: fix for flat $/.ast See github.com/moritz/json/commit/601d...d708c6f133 |
19:00 | |
lue | Is there a way I can find the line on which a match was made? Something like $/.line-from ? | 19:01 | |
PerlJam | I don't think anything in the matching mechanics tracks "lines" | 19:02 | |
lue | Could also be something like $str.pos-to-line($/.from), doesn't have to be specifically in $/ :) | 19:03 | |
moritz | lue: $/.prematch.comb("\n").elems + 1 | 19:04 | |
PerlJam | moritz++ you beat me to it :) | ||
FROGGS | nqp/src/HLL/Compiler.nqp:538:method lineof($target, int $pos, int :$cache = 0) { | 19:05 | |
lue | r: say "a\n\nb\nc" ~~ /c/; say $/; say $/.prematch.comb("\n").elems + 1' | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> $/; say $/.prematch.comb("\n").elems + 1⏏' expecting any of: …» | ||
lue | r: say "a\n\nb\nc" ~~ /c/; say $/; say $/.prematch.comb("\n").elems + 1 | 19:06 | |
camelia | rakudo-moar 230a54: OUTPUT«「c」「c」Cannot call 'comb'; none of these signatures match::(Cool: *%_):(Cool: Regex $matcher, Any $limit = { ... }, *%_):(Str:D: *%_):(Str:D: Regex $pat, Any $limit = { ... }, Any :match($match), *%_) in method comb at sr…» | ||
..rakudo-parrot 230a54: OUTPUT«「c」「c」Cannot call 'comb'; none of these signatures match::(Cool: *%_):(Cool: Regex $matcher, Any $limit = { ... }, *%_):(Str:D: *%_):(Str:D: Regex $pat, Any $limit = { ... }, Any :match($match), *%_) in any at gen/par…» | |||
..rakudo-jvm 230a54: OUTPUT«「c」「c」Cannot call 'comb'; none of these signatures match::(Cool: *%_):(Cool: Regex $matcher, Any $limit = { ... }, *%_):(Str:D: *%_):(Str:D: Regex $pat, Any $limit = { ... }, Any :match($match), *%_) in any at gen/jvm/BO…» | |||
FROGGS | r: say "a\n\nb\nc" ~~ /c/; say $/; say $/.prematch.Str.comb("\n").elems + 1 | ||
camelia | rakudo-moar 230a54: OUTPUT«「c」「c」Cannot call 'comb'; none of these signatures match::(Cool: *%_):(Cool: Regex $matcher, Any $limit = { ... }, *%_):(Str:D: *%_):(Str:D: Regex $pat, Any $limit = { ... }, Any :match($match), *%_) in method comb at sr…» | ||
..rakudo-parrot 230a54: OUTPUT«「c」「c」Cannot call 'comb'; none of these signatures match::(Cool: *%_):(Cool: Regex $matcher, Any $limit = { ... }, *%_):(Str:D: *%_):(Str:D: Regex $pat, Any $limit = { ... }, Any :match($match), *%_) in any at gen/par…» | |||
..rakudo-jvm 230a54: OUTPUT«「c」「c」Cannot call 'comb'; none of these signatures match::(Cool: *%_):(Cool: Regex $matcher, Any $limit = { ... }, *%_):(Str:D: *%_):(Str:D: Regex $pat, Any $limit = { ... }, Any :match($match), *%_) in any at gen/jvm/BO…» | |||
FROGGS | r: say "a\n\nb\nc" ~~ /c/; say $/; say $/.prematch.comb(/\n/).elems + 1 | 19:07 | |
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«「c」「c」4» | ||
dalek | kudo/eleven: f24fd83 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm: handle .jar and .moarvm file extensions |
19:09 | |
19:12
pecastro joined
19:13
berekuk joined
19:15
BenGoldberg joined
|
|||
lue | I've been wondering: could/should the synopses become a part of doc.perl6.org ? | 19:19 | |
19:22
darutoko left
|
|||
moritz | lue: no. They are not written for users, but for compiler writers. | 19:23 | |
19:23
tgt left
|
|||
lue | Ah, alright. Guess I'm too used to the synopses then :P | 19:23 | |
FROGGS | and since the synopsis do not match the implementation(s), it might be confusing for a user to read it | 19:24 | |
PerlJam | There should still probably be a link to the synopses with a nice "proceed with caution" message | ||
we have all different manner of "users", some of them would benefit from the synopses. | 19:25 | ||
geekosaur inserts the TeX swerve sign | |||
moritz | PerlJam: I'm open to "read more" links to the synopses | ||
and maybe a link on the front page | 19:26 | ||
but I don't want doc.perl6.org to be a www.perl6.org-style link collection | |||
PerlJam | aye, agreed 100% on that. | 19:27 | |
19:36
kaare_ joined
19:37
denis_boyun joined
19:38
tgt joined
|
|||
btyler | where's the appropriate place to file a bug against perl6-debug-m? I get a segfault when debugging a program that reads lines from an open file: gist.github.com/kanatohodets/18669...9b59931873 | 19:40 | |
lue | btyler: at least for me, it just segfaults, I don't think a specific piece of P6 code does it. | 19:41 | |
FROGGS | it was working yesterday O.o | ||
btyler | lue: hm, not sure what's up. I'm on OSX. I was trying to debug a grammar and had already golfed the grammar itself down to a TOP and one token, so decided to try removing the other significant bit (the open/read) and it stopped segfaulting. does the gist I posted segfault for others? | 19:44 | |
FROGGS | ~/dev/rakudo$ perl6-debug-m | 19:45 | |
> 1 | |||
>>> LOADING <REPL 1> | |||
lue | Ooh, I might have been encountering the segfault on USAGE unless [&&] ($backlinks, $synopses, $outdir)».IO».d; | ||
vendethiel | moritz: not that there's lots of stuff for users :p. So I've been reading synopsis, it's cool | 19:47 | |
lue | btyler: I get a segfault with your code. | ||
vendethiel | When there'll be tutorials (more in-depth), I can agree that synopsis would be a bit too complex/deep for users | 19:48 | |
FROGGS | btyler: RT would be the right place | ||
vendethiel | but as of right now, for users your main source of informations is perl6advent (read up to 2011) and the synopsis | ||
btyler | FROGGS: ok, thanks. | 19:49 | |
moritz | vendethiel: the goal of doc.perl6.org is to change that | 19:51 | |
and yes, I know we're not there yet :-) | |||
vendethiel | moritz: that's API docs, pretty different from synopsis. I do think it should link to them | 19:52 | |
moritz | vendethiel: not only API docs | 19:53 | |
for example doc.perl6.org/language/containers | |||
or doc.perl6.org/language/classtut | |||
yes, we need more of those :-) | 19:54 | ||
lue | moritz: is there a list of "Most Wanted Documentation" ? | 19:55 | |
vendethiel | moritz: most definitely ! :) | 19:56 | |
moritz: I'm still not sure about what \x means (I guess a parcel ?) or some other rules (container stuff) | |||
moritz | lue: not really; I could start such a list if you are interested | 19:57 | |
vendethiel: it means "bind that thing, whatever it is" | |||
vendethiel | moritz: like := ?N | ||
moritz | if there's a container, it contains a container. If there's a value, it contains a value | ||
lue | moritz: I'd like to write some documentation, though I can't think of a specific topic, so MWD would be nice :) | ||
moritz | if you give it a parcel, it'll be a parcel | ||
lue: would you like to write a concurrency tutorial? | 19:58 | ||
lue: or about creating classes and the like via the MOP? | |||
lue: or about lazy lists? | |||
lue | moritz: I'd probably go with lazy lists, because that's the one I have the most existing knowledge in :) . | 19:59 | |
20:01
LordVorp joined
|
|||
raydiak | lue: perldoc.perl.org/perl.html # port the things listed here to P6 :) | 20:02 | |
dalek | c: aeb06d8 | moritz++ | WANTED: add WANTED lue, take your pick :-) |
20:05 | |
kudo/eleven: 618c0bd | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm: add -m wrapper too |
|||
kudo/eleven: 87f37d5 | (Tobias Leich)++ | src/core/CompUnitRepo (2 files): consider .jvm/.moarvm candidates besides .pir |
|||
20:10
kivutar left
20:13
kivutar joined
|
|||
lue | In related news, my synopses generator functions, at least to the point of placing backlinks under the appropriate section header. I've been calling it "syngen", though if you want it as a different name under perl6/*, that's fine by me. | 20:14 | |
Afterwards I can start a pod6ify branch on specs/ to bring the other synopses to Pod6. | |||
masak | lue++ | 20:16 | |
lue | masak: does perl6/syngen sound alright to you? | 20:20 | |
masak | no idea. haven't been following along. | 20:22 | |
what is it and why does it belong under the perl6 namespace? | |||
lue | It's meant to replace the crusty old POD synopses generator we have, and IIRC moritz wanted something that could be maintained by many people, which is easier under perl6/ than lue/ :) | 20:23 | |
masak | ok, sounds good to me. | ||
syngen or syn-gen sound fine to me, if a bit short. | 20:24 | ||
synopsis-generator is a bunch clearer. | |||
but here I am, bikeshedding. it's not like the name can't be changed later. | |||
PerlJam | I thought TimToady was our synopsis generator? :) | ||
lue | I'll go with the long form, clarity > compactness in this situation, I feel. | 20:25 | |
"You don't appear to have permission to create repositories for this organization. Sorry about that. " way to entice me with an "Add Repository" button, github. | |||
(I was gonna call it "synopses-generator", if someone out there will create the repo) | 20:26 | ||
masak | lue: maybe add it to your github account first, and worry about the creation-in-perl6 later? | ||
(also, I humbly suggest synops*i*s-generator, not synops*e*s-generator) | 20:27 | ||
lue | masak: could do that, there's a "Transfer Ownership" button I could push later, if I were an admin to Perl 6. | ||
FROGGS | perl6-m -e 'use JSON::Tiny; say from-json "/home/froggs/dev/nqp/install/languages/perl6/site/panda/projects.json".IO.slurp' | ||
("" => []).hash ("" => []).hash ("" => []).hash ("" => []).hash ("" => [""]).hash ("" => []).hash ("" => []).hash ("" => []).hash ("" => []).hash[...] | |||
lue for some reason doesn't want perl6/ to have this repo as a fork, and thus is desperate to make sure perl6 owns the original eventually :) | |||
FROGGS | :o( | ||
lue | masak: I was just thinking that it generates more than one synopsis, but I can go with "synopsis" | 20:28 | |
masak | lue: or, you know, the one who creates the repo on perl6 could just push (a clone of) your repo to it ;) | ||
lue | :) | 20:29 | |
masak | lue: a machine that generates hats is still called a hat-generator, not a hats-generator | ||
lue | Yeah, I see your point. | ||
PerlJam | "syngen" would have avoided all this discussion ;) | ||
masak | :P | 20:30 | |
lue | Ready to be picked apart! \o/ github.com/lue/synopsis-generator | 20:31 | |
I think I'll start that pod6ify branch in a minute, if no-one objects... | 20:32 | ||
FROGGS | star: use JSON::Tiny; say to-json 1 | ||
camelia | star 2013-09: OUTPUT«1» | ||
FROGGS | star: use JSON::Tiny; say from-json to-json 1 | ||
camelia | star 2013-09: OUTPUT«(Any)» | ||
moritz | lue: which backends does it work with? | 20:34 | |
lue | All but moar, because moar has a bug in the regex lang at the moment. | ||
(a bug which is narrowed down to the 'frag' rule, but no narrower) | 20:35 | ||
Basically, the ending > in things like L<S02/sec/frag> gets picked up by 'frag' when it shouldn't (L«S02/sec/frag» and L<S02/sec> work though) | |||
moritz | lue: what is the --backlinks option about? | 20:37 | |
lue | That points to the directory containing test files with L<> backlinks, usually roast (or bltest for fast testing) | 20:38 | |
moritz | so, backlinks = smartlinks? | 20:39 | |
lue | yes. I can change the terminology if necessary. | ||
moritz | not necessary | ||
if roast is the "normal" use case, mention it in the docs/usage message | 20:40 | ||
20:41
arnsholt joined
|
|||
dalek | c: 3a608da | (Prog Rammer)++ | lib/AST.pod: within typo |
20:41 | |
c: 718f98a | (Tobias Leich)++ | lib/AST.pod: Merge pull request #15 from prammer1/typos within typo |
|||
FROGGS | Prog Rammer, lol *g* | 20:42 | |
star: use JSON::Tiny; say from-json q/{ "a" : "b" }/ | 20:43 | ||
camelia | star 2013-09: OUTPUT«("a" => "b").hash» | ||
FROGGS | this is broken on my perl6-m | ||
jnthn | Ugh | 20:44 | |
20:44
Mouq joined
|
|||
jnthn | Golf time ;) | 20:44 | |
FROGGS | damn, precomp messes it up :/ | ||
lue & | 20:45 | ||
moritz can't bootstrap panda with perl6-j, tests fail in t/tester.t (after using up enough RAM to make the laptop sluggish) | 20:46 | ||
20:47
Adriaaan joined
|
|||
moritz | perlpunks.de/paste/show/5302758f.7675.199 | 20:48 | |
r: say 'a' ~~ /^<![b]>/ | 20:51 | ||
camelia | rakudo-parrot 230a54, rakudo-jvm 230a54, rakudo-moar 230a54: OUTPUT«「」» | ||
moritz doesn't understand token frag | |||
20:52
cooper left
|
|||
moritz | if $*GUILLEMETS is true, then it matches: "the following character must not be a »", and then either any character, or » | 20:53 | |
erm, what? | |||
why not do something like <?{$*GUILLEMETS}> <-[»]>+ | <!{$*GUILLEMETS}> <-[>]>+ | 20:56 | ||
21:01
cooper joined,
cooper left,
cooper joined,
labster left
|
|||
moritz | or get rid of dynamic variables altogether, and simply say '<' ( <-[>]>+ '>' | '«' ( <-[»]>+ ) '»' | 21:07 | |
21:07
Adriaaan left
|
|||
FROGGS | there is a ) missing | 21:07 | |
moritz | right | 21:08 | |
it be before '>' | |||
*should | |||
FROGGS | yeah | ||
moritz | '<' ( <-[>]>+ ) '>' | '«' ( <-[»]>+ ) '»' | ||
possibly refactor the the inner capture into two different subrules | 21:09 | ||
btyler | moritz: perl6-j panda 'make test' worked ok for me. rakudo 230a54b, nqp 28b9c2, panda 934a4f3. | ||
moritz | '<' <frag=frag-ascii> '>' | '«' <frag=frag-guillemets> '»' | ||
btyler | trying bootstrap now (first ran it on moar-support by accident), it just takes a while | ||
was the verbose test output any more helpful? | 21:10 | ||
moritz | btyler: I don't even know how to get from bootstrap | 21:11 | |
btyler | moritz: hm, sorry, not sure I understand | 21:14 | |
raydiak | shouldn't we delete the rakudo moar-support branch since its been merged? | ||
*it's | 21:15 | ||
moritz | raydiak: we should | 21:17 | |
vendethiel | moritz: also, doc.perl6.org/language/classtut, should have .bless(* <- whatever must be removed now, right? | ||
moritz | vendethiel: right | ||
vendethiel | PR'd :p | 21:18 | |
dalek | c: 76044ba | moritz++ | lib/classtut.pod: bless(*) is deprecated, vendethiel++ |
||
lue | moritz: yeah, when trying to figure out what went wrong, I noticed how weird that was. I think it's supposed to match "any one character or \> / \»". Thought I fixed that, but seems I didn't. | 21:21 | |
FROGGS | jnthn: okay, there is no precomp issue, it is just that the eleven branch ships its own JSON::Tiny which messes with the installed one | 21:22 | |
jnthn | FROGGS: ah... | ||
phew :) | 21:23 | ||
So can you actually install a module with Panda? | |||
On Moar? | |||
FROGGS | jnthn: so, it seems like I can install panda (and its deps) into a repository, and I have now panda-m and panda-p executables | ||
I am trying in a sec | |||
==> Successfully installed JSON::Pretty | 21:24 | ||
\o/ | |||
jnthn: yes --^ | 21:25 | ||
I did it in the "eleven" branches, because panda/master will invoke perl6, which is perl6-p on my box | 21:26 | ||
and the eleven branch handles multiple backends better | |||
hoelzro | timotimo: postjes | ||
er | |||
that was supposed to be timotimo++ | |||
lemme try again | 21:27 | ||
timotimo++ # postje | |||
lue | moritz: hopefully this makes more sense now: github.com/lue/synopsis-generator/...100fce242f | 21:31 | |
(interestingly, things aren't more or less broken than before that change) | |||
I'll take the dynamic-less approach into consideration; I just wanted to make sure we weren't checking for the wrong closer when I wrote the grammar. | 21:32 | ||
21:35
labster joined
21:37
sjn left
|
|||
dalek | kudo/eleven: 13635b4 | (Tobias Leich)++ | src/core/JSON/Pretty.pm: choose names that do not hide JSON::Tiny |
21:37 | |
c: e5d116a | Mouq++ | lib/Set.pod: Document some more Set operators |
21:38 | ||
c: 2e116e2 | Mouq++ | lib/Set.pod: Links should point to L«infix:<(*)>», not L<(*)> |
|||
c: 9f194bf | Mouq++ | lib/Set.pod: Finish bare-bones documentation for Set operators |
|||
c: 80fc869 | Mouq++ | lib/classtut.pod: Merge branch 'master' of github.com/perl6/doc |
|||
Mouq | ^^ My spend tuits for today | ||
*spent | |||
I'm not actually a good documentation writer, but my hope here is that some documentation is better than none | 21:39 | ||
TimToady | Mouq++ | 21:40 | |
arnsholt | Some documentation is better than none, and if someone complains about the documentation they volunteer to make it better =) | ||
21:42
sjn joined
|
|||
jnthn | REally happy to see lots of docs work recently :) | 21:45 | |
lue | jnthn: especially since it implies the biggest priority is not a working compiler :) | 21:46 | |
sjn | \o | 21:47 | |
jnthn: you mentioned another trip to Oslo, didn't you? :) | |||
21:47
beastd joined
|
|||
sjn | next week? | 21:48 | |
jnthn | sjn: Nah...not got anymore travel this month, it turns out. | 21:49 | |
sjn: Got a (not 100% confirmed) Oslo visit next month. | |||
hoelzro | what's the eleven branch? | 21:54 | |
jnthn | You switch to it, and Panda plays Spinal Tap. | ||
hoelzro | ok, that's what I thought. | 21:55 | |
=P | |||
jnthn | I think it's a reference to S11, though :) | ||
arnsholt | jnthn: Which bit of March is your potential Oslo visit? | 22:02 | |
jnthn | lemme check | ||
I'd be teaching 17th/18th | |||
So could meet on evening of 17th easily | 22:03 | ||
sjn | jnthn: ook, cool | ||
hmm | |||
17th, eh | |||
jnthn: courses again? | 22:04 | ||
jnthn | Of course. :) | ||
And not Git, for once! | |||
arnsholt | I saw a recording of a guy showing how to write .Net assembly and his first program wrote "OH HAI" | 22:05 | |
I wonder if he may have taken one of your courses =D | |||
jnthn | That *is* the kinda thing that might show up in one of my courses. | 22:06 | |
jnthn is writing *loads* of examples up at the moment and has some fun things :) | |||
sjn | jnthn: what's your schedule for March 19th? :) | ||
jnthn | sjn: Madly writing yet more course material, says le schedule :) | 22:07 | |
sjn hopes damian is in Oslo that week | |||
jnthn | sjn: I seem to recall you mentioning something was happening around that date... | ||
Ah, that was it. | |||
sjn | arnsholt: did Damian reply to you yet? | 22:08 | |
22:08
skids left
|
|||
arnsholt | Not yet. Still pretty early in the day his time though, assuming he's still in .au | 22:09 | |
sjn | mm | ||
arnsholt | Besides, I expect he gets lots of mail, so some latency is probably to be expected | ||
sjn is arriving from the QA hackathon around 22-ish on march 17th | 22:10 | ||
lue | Is TheDamian still involved with Perl 6? I can't tell, because he apparently doesn't IRC. | ||
sjn | plane lands at 21:15 | ||
jnthn: let's see what we can make happen :) | 22:13 | ||
jnthn: in any case; Damian is definitely here the week after (March 24-28), and has said he might be able to come in the week before | 22:14 | ||
arnsholt and I (mostly arnsholt) are trying to make something happen at UiO | 22:15 | ||
jnthn | 263 | 22:16 | |
uh | |||
masak | jnthn: at least! | ||
sjn | so arnsholt would also like to see if you or masak would like to come :) | ||
and/or | |||
masak .oO( /win 263 ) | |||
jnthn | sjn: OK, hmm. | ||
sjn | timing permitted and stuff | ||
jnthn | masak: It's, uh, the number of minutes by train from London to Edinburgh :P | ||
22:16
kbaker left
|
|||
masak | sjn: doubtful in my case, as much as I'd like to. | 22:17 | |
sjn: I'll add it to my calendar just in case. | |||
22:17
berekuk left
|
|||
masak | 'night, #perl6 | 22:18 | |
dalek | ecs: 03d49e0 | lue++ | c (2 files): Make create_contents.p6 generate a valid Pod6 file. |
||
sjn | masak: well, part of the thing is that (if all goes well) we get to give a Perl 6 presentation for the staff and students at the Informatics dept. at UiO | ||
sjn needs to hit the sack too | |||
lue | ♞ masak o/ | ||
♞ sjn o/ | |||
22:19
eternaleye joined
22:23
Rotwang left
22:34
Mouq left
22:35
slavik joined
22:40
tgt left
|
|||
jnthn | lue: Got a link to that failing grammar and some test input handy? | 22:41 | |
lue | jnthn: everything you need is here: github.com/lue/synopsis-generator I can pull out the grammar and make a test script if you'd prefer though. | 22:43 | |
jnthn | lue: Yes, that'd be great if I've something I can just run. | 22:45 | |
lue | just a moment :) | ||
jnthn: here you go: gist.github.com/lue/9060818 | 22:49 | ||
22:49
virtualsue left
|
|||
jnthn | lue: Thanks | 22:52 | |
lue | Oh, I didn't realize L<S**/Sec only> was failing, seems it only works with L<S**/"Sec only">. (There's no similar double-quote handling for frag, so it wouldn't/shouldn't work in that portion) | 22:53 | |
dalek | ast: 33ba343 | (Rob Hoelz)++ | S04-exception-handlers/catch.t: Fix syntax error in catch.t |
22:54 | |
22:55
berekuk joined
|
|||
jnthn | lue: OK, I see the difference in output of that between rp and rm. | 22:55 | |
lue | jnthn: updated the gist with two more tests | ||
22:56
dmol left
|
|||
jnthn | lue: Those bottom two already work on Moar, yes? | 22:56 | |
It's 1 and 3 that don't? | |||
lue | yes, L<Syn/"Sec"> works everywhere. It's L<Syn/Sec> and L<Syn/*/Frag> that don't work | 22:57 | |
hoelzro | mokudo is still awaiting socket support, yes? | 22:58 | |
timotimo | nope | 23:00 | |
we have that :) | |||
jnthn | hoelzro: Has TCP client/server sockets as of Sunday. | ||
timotimo | didn't you read my weekly changes post? :P | ||
jnthn | lue: Think I found it. Working on a fix. | 23:03 | |
lue | ooh! Can't wait to see what caused it :) . | ||
23:03
colomon left
23:04
denis_boyun left
|
|||
hoelzro | sweeeet | 23:05 | |
timotimo: I must've missed that part =/ | |||
23:05
berekuk left
|
|||
jnthn | lue: spectesting a patch that seems to fix it. | 23:12 | |
23:18
colomon joined
|
|||
jnthn | hoelzro: t\spec\S04-exception-handlers\catch.t | 23:22 | |
Parse errors: Bad plan. You planned 28 tests but ran 29. | |||
23:23
btyler left
|
|||
dalek | p: 17bf0fd | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: Add missing decont of qastnode rxtype. Assertions <?{$*FOO}> and <!{$*FOO}> didn't work out properly; the Scalar container was tested instead of the contents. |
23:23 | |
hoelzro | jnthn: I just pushed a fix for that about 30 mins about | 23:24 | |
timotimo | ah! :) | ||
jnthn: it seems like adding decont() everywhere makes stuff work instead of break | |||
should we just replace each line with nqp::decont($0);? | |||
jnthn | timotimo: Well, you can't just throw it everywhere... :) | 23:25 | |
hoelzro: You fixed the test, but not the plan. | |||
hoelzro | oh, crap =/ | ||
working on it | 23:26 | ||
jnthn | lue: That NQP fix should do it. | ||
dalek | ast: 32602d2 | (Rob Hoelz)++ | S04-exception-handlers/catch.t: Fix plan for catch.t |
||
hoelzro | ok, done | ||
23:26
kivutar left
|
|||
lue tries it | 23:26 | ||
jnthn | r: use Test; my $*x = 0; nok '' ~~ /<?{$*x}>/; | ||
camelia | rakudo-moar 230a54: OUTPUT«not ok 1 - » | ||
..rakudo-parrot 230a54, rakudo-jvm 230a54: OUTPUT«ok 1 - » | |||
arnsholt | Whee! Refreshing! | 23:27 | |
jnthn | lue: It golfs to ^ :) | ||
23:27
vmspb left,
jnap left
|
|||
lue | jnthn: what's funny is that I had a feeling that <?{}> was what causing it, if only because it's the most exotic regex feature I used :P | 23:28 | |
23:29
jnap joined
|
|||
dalek | ast: 5386c20 | jnthn++ | S05-metasyntax/angle-brackets.t: Test for contextuals in <?{...}> assertions. |
23:30 | |
arnsholt | jnthn: What's the purpose of the class_handle parameter to the get and bind attribute REPRops? All of a sudden I wonder if I'm not doing it rong | 23:31 | |
dalek | kudo/nom: 3062617 | jnthn++ | tools/build/NQP_REVISION: Latest NQP, for <?{$*x}> fix. |
||
jnthn | arnsholt: class A { has $!x }; class B is A { has $!x }; | ||
arnsholt: It's what tells you which $!x | |||
arnsholt | Ah, right | 23:32 | |
jnthn | lue: Hopefully now your thingy runs on Moar :) | ||
arnsholt | I have no idea what'll happen if we start subclassing CStructs | ||
Hilarity (and segfaults), no doubt | 23:33 | ||
lue | :) it'll take ≈quarter-hour before I can see ('cos I still insist on having r-p for some reason), but I believe it'll work all the same. | ||
jnthn | Floods! Locust plagues! Haskell programmers switching to PHP! | ||
timotimo | wow, that's harsh | ||
arnsholt makes a Zavolaj issue to remember to find out | |||
jnthn | timotimo: Dont' subclass CStructs then :P | 23:34 | |
23:35
raiph joined
|
|||
jnthn tries to remember if there were any other bugs he'd said he'd fix... | 23:35 | ||
hoelzro: catch.t looks fine now, thanks. | 23:36 | ||
23:37
skids joined
|
|||
lue | For converting the synopses to Pod6, would it be more worthwhile to write a POD2Pod script? I at least am not much in the spirit to convert S02 by hand :P | 23:40 | |
dalek | volaj: db4fee8 | (Arne Skjærholt)++ | t/07-writebarrier.t: Remove bogus refresh test. The test checked that a covertly modified struct member wasn't discovered until after we explicitly call for a refresh, but that's probably not something we want to require. |
23:42 | |
arnsholt crosses fingers and runs the full NativeCall test suite | 23:43 | ||
dalek | volaj: 6c38010 | (Arne Skjærholt)++ | t/07-writebarrier.t: Also update test count. Derp. |
23:50 | |
p: 9635b9f | (Arne Skjærholt)++ | src/vm/jvm/ (5 files): Implement nqp::nativecallrefresh() and related logic. This is a first rough version that simply clears all the caches, all the time, whenever a refresh is required. That's probably going to be a bit slow, as we refresh all function arguments after the call, to guard for functions that modify their arguments. A better version of this would only invalidate the cached objects that are actually different from the pointer in C memory. As of this commit, we pass all the NativeCall tests. |
|||
23:50
BenGoldberg left
|
|||
arnsholt | There. Have the appropriate amount of fun! | 23:51 | |
raiph | \o/ arnsholt++ | 23:52 | |
timotimo | ooooh awesome | ||
so, jakudo star/rakudo coffeecup this month? :D | |||
who's up for the release this time? | |||
jnthn | arnsholt++ | ||
lue | arnsholt++ | ||
arnsholt | The NQP release for this month is already done, isn't it? | 23:53 | |
timotimo | don't remember seeing it | ||
i think i have to make it, too? | |||
arnsholt | Oh, in that case a JVM star should be possible I think | ||
timotimo | that's awesome! good work! :) | 23:54 | |
and now i'll have to do good work, too | |||
jnthn tries to remember if he got perl6-debug-j into the build... | 23:55 | ||
timotimo | oh, that would be important as well | ||
jnthn | Will look at it tomorrow, or failing that certainly on Wed. | ||
timotimo | that doesn't delay the nqp release, so that's good :) | 23:57 | |
jnthn | Will cut a Moar release on Wed too, in time for your work on Thu. | 23:58 | |
timotimo | oh, but we have to do the nqp release after the moar release :) | ||
oh | |||
but that's plenty of time | |||
jnthn | Sure, but on Thursday I'll be off to a concert, so won't be about so much. So better I cut it on Wed. :) | 23:59 | |
Time for some sleep | |||
timotimo | sounds great :) | ||
good night jnthn! | |||
jnthn | 'night |