»ö« | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is your friend! Set by Tene on 14 May 2009. |
|||
00:02
lichtkind left
00:07
araujo joined
00:08
araujo left
00:18
frew joined
00:27
araujo joined
00:29
ruoso left,
ruoso joined
00:32
[particle]1 left
00:33
frew left
00:34
Chillance left
00:39
araujo left
00:41
araujo joined
|
|||
dalek | kudo: b516413 | pmichaud++ | src/ops/perl6.ops: Add root_new dynop. |
00:47 | |
kudo: 20ec24c | pmichaud++ | src/builtins/ (11 files): Convert new of parrot-based things to root_new (src/builtins) |
|||
kudo: 6079a97 | pmichaud++ | src/classes/ (20 files): Convert new of parrot-based things to root_new (src/classes) |
|||
kudo: 064be63 | pmichaud++ | src/ (4 files): More new -> root_new conversions. |
|||
kudo: f08f5ad | pmichaud++ | : Merge branch 'master' of [email@hidden.address] |
|||
00:56
ruoso_ joined
00:57
ruoso left
01:01
bacek joined
01:08
M_o_C left
01:09
frew joined
01:14
ruoso_ left,
ruoso_ joined
01:15
agentzh left
01:18
Whiteknight joined
01:20
agentzh joined
01:22
Lorn joined
01:23
Lorn left
01:24
Lorn joined
01:41
ruoso_ left
01:42
ruoso_ joined
01:44
cognominal left
01:58
cotto left
01:59
alc joined
02:01
cotto joined
02:10
Whiteknight left,
ab5tract joined
02:12
kst left,
hercynium left,
kst joined,
ruoso_ left
02:14
ruoso_ joined
02:19
frew left,
viirya joined
02:22
felipe left
02:27
mikehh_ joined
02:32
frew|wor1 joined
02:33
[particle]1 joined
02:37
sri_kraih left,
sri_kraih_ joined
02:40
ruoso_ left,
frew|wor2 joined
02:41
eternaleye joined
02:43
mikehh left
02:52
japhb left
02:54
frew|wor1 left
02:56
meppl left
03:10
bacek left,
frew|wor2 left
03:11
frew|wor1 joined
03:20
donaldh left,
donaldh joined
03:32
eternaleye left
03:33
ab5tract left
03:46
orafu left,
orafu joined
03:49
FurnaceBoy left
03:53
justatheory joined
03:58
alc left
04:02
viirya left,
viirya joined
04:07
viirya left
04:11
eternaleye joined
04:12
felipe joined
|
|||
PerlJam | ping | 04:30 | |
04:31
cotto left
04:33
cotto joined
|
|||
pmichaud | pong | 04:36 | |
04:37
justatheory left
|
|||
PerlJam | What does rakudo do when the info from parrot_config is wrong? (i.e., it says the bin_dir is /usr/local/bin, but if you haven't installed parrot, then that's probably not right) | 04:38 | |
pmichaud | afaik, rakudo doesn't use bin_dir | ||
wait, I'll rephrase | 04:39 | ||
rakudo always assumes you're working from a build copy of parrot, and not an install copy. | |||
if you try to build rakudo using an installed parrot, you'll get EPIC FAIL | |||
PerlJam | so ... when Configure.pl's usage says "Use configuration information from config", it means "...except for the location of the parrot and pbc_to_exe executables" > | 04:40 | |
04:40
finanalyst joined
|
|||
PerlJam | (because of the EPIC FAIL you just mentioned) | 04:41 | |
pmichaud | no, it uses the location of the parrot and pbc_to_exe from parrot_config | ||
at least, I think it does. | |||
ah, I was originally correct -- Rakudo doesn't use @bin_dir@ | |||
it currently bases everything off of @build_dir@ | |||
04:43
skids left
|
|||
pmichaud | (details are in build/Makefile.in) | 04:43 | |
PerlJam | Well, mine really isn't a rakudo problem. I was looking at cardinal, and it's makefile really does use everything from parrot_config, but some of those things are lies if you don't have an installed parrot. I'm trying to figure the best approach ... emulate rakudo or try to stay true to the spirit of really using what parrot_config says, but have some way of overriding it. | ||
pmichaud | as soon as Parrot has its install house in order (which does appear to be happening rsn), then rakudo's configuration will likely be very clean. | 04:44 | |
PerlJam | how s is rsn? | ||
pmichaud | I'm not sure what cardinal is using for its build environment. Where's it located these days...? | ||
rsn = ~7 days, I'd guess. | |||
PerlJam hasn't really kept up with parrot lately other than to note that there was a release recently :) | 04:45 | ||
pmichaud | partcl has also been having trouble building with parrot/installed parrot, but I think allison++ and Coke++ are making good progress on it | ||
PerlJam | github.com/cardinal/cardinal/tree/master | ||
pmichaud | and partcl's blockers seem to be the same as rakudo's blockers | ||
PerlJam | once again Coke++ bravely paves the way for others :-) | 04:46 | |
pmichaud | yes, this has been noted. :-) | ||
04:46
payload left
|
|||
pmichaud | Cardinal seems to use the "installable_cardinal" rules; I've never liked those much. | 04:47 | |
seems to me that there should be a "cardinal" that just works. | |||
04:53
justatheory joined
05:01
finanalyst left
05:02
japhb joined
05:06
justatheory left
|
|||
Tene | I didn't write most of the cardinal makefile... I'd *love* for someone to clean it up. | 05:26 | |
pmichaud | I'm waiting for parrot's install target to evolve just a bit more, then I'm going to port Rakudo's build process to the create_language.pl script and say "This is how I really recommend everyone else manage it :-)" | 05:27 | |
05:27
frew|wor2 joined,
frew|wor2 left
05:32
mikehh_ is now known as mikehh
|
|||
Matt-W | It would be nice to build against installed parrot | 05:36 | |
pmichaud | Agreed, it would be nice. | 05:37 | |
05:37
frew|wor2 joined
|
|||
Matt-W | Not hugely important right now though | 05:40 | |
As long as rakudo keeps needing updated parrots | |||
pmichaud | correct. | ||
I don't expect that situation to change until Jul/Aug at the earliest. | |||
05:43
frew|wor1 left
|
|||
Matt-W | That's okay, Christmas isn't in August :) | 05:45 | |
05:45
frew|wor1 joined
05:48
kst left,
kst joined
|
|||
Matt-W | waking up an hour early really sucks | 05:51 | |
pmichaud | worse than waking up an hour late? | 05:52 | |
Matt-W | Yes | ||
I have leeway to be late to work | |||
I can't be much earlier than my usual time though | |||
And everything I want to do at home right now is really noisy - it's too early to disturb the neighbours by re-recording vocal tracks for my current project | |||
Ah well | 05:56 | ||
Nice weather, I can go for a walk | |||
05:56
eternaleye left
05:58
frew|wor2 left
06:00
cognominal joined
06:10
hcchien_ joined,
hcchien left
|
|||
pmichaud | well, too tired to reliably do the release tonight (before sleep), so I'll handle it early tomorrow morning. | 06:13 | |
later # sleep | 06:14 | ||
06:15
eternaleye joined
|
|||
Tene | pmichaud: ping | 06:15 | |
06:15
frew|wor1 left
|
|||
Tene | pmichaud: you maintain paraplegic, iirc? can I get commit there? | 06:15 | |
aw, just missed him :( | |||
dalek | kudo: e6b4630 | pmichaud++ | docs/ROADMAP: Update ROADMAP. |
||
06:28
clkao_ joined,
clkao left
06:35
clkao joined,
clkao_ left
06:39
Jedai left
06:40
iblechbot joined
07:01
ejs joined
07:04
clkao_ joined,
clkao left
07:06
araujo left
07:13
amoc joined
07:20
donaldh left,
donaldh joined
07:24
araujo joined
07:26
araujo left
07:40
smtms left
07:42
ejs1 joined,
ejs1 left
07:46
jferrero joined
07:59
Su-Shee joined
|
|||
Su-Shee | morning all. | 07:59 | |
Matt-W | Good morning Su-Shee | 08:00 | |
08:00
araujo joined
08:05
kst left,
kst joined
08:08
donaldh left
08:23
hcchien_ is now known as hcchien
08:25
pmurias joined
08:26
dakkar joined
08:29
DemoFreak joined
08:44
bacek joined
08:53
PZt left
08:55
agentzh left
09:07
finanalyst joined
09:09
agentzh joined
09:10
araujo left
|
|||
jnthn | morning 6folk | 09:12 | |
sbp | hey jnthn | 09:18 | |
09:19
araujo joined
|
|||
jnthn | rakudo: sub infix:<wtf>($a, $b) { $a ~ "WTF" ~ $b }; my $x = 'OMG'; $x wtf= 'BBQ'; say $x; | 09:20 | |
p6eval | rakudo e6b463: OUTPUT«OMGWTFBBQ» | ||
jnthn | How...delightful. | 09:21 | |
09:22
kst left,
kst joined
09:23
masak joined
|
|||
masak | jnthn++ # meta-userops | 09:23 | |
lambdabot | masak: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
masak | @messages | ||
lambdabot | TimToady said 1d 10h 7m 56s ago: STD isn't trying to be a full POD parse yet, and I don't think writing the specs for it via the bug reporting system is going to be terribly efficient :) | ||
masak | @clear | ||
lambdabot | Messages cleared. | ||
jnthn | oh hai masak | 09:24 | |
masak | oh hai jnthn | ||
jnthn: I'm ashamed to admit that (just as with the parameterized roles) I realise that the userops are TEH COOLNESS, but I can think of no immediate application for them. | 09:25 | ||
need to think some more, I guess. | |||
09:26
pmurias left
|
|||
jnthn | masak: Well, I didn't see many people using user defined ops just yet either. | 09:26 | |
But if we get a set union operator from some Set module that is ∪ | |||
Then I guess you'd get | 09:27 | ||
$set ∪= $other_set; # union of myself and another set | |||
masak | yes, that's kinda nice. | ||
jnthn | $union = [∪] @sets; # union of many sets | ||
masak | would probably want Latin-1 fallbacks to those as well. | ||
jnthn | Both of which I could see being useful. | ||
09:28
PZt joined
|
|||
masak | that latter one is way cool. | 09:28 | |
jnthn | u, n ;-) | ||
masak | oh, I should really pick some set-intensive well-known algorithm and blog about how it can be written in Perl 6. | ||
masak goes off to put laundry in machine | |||
09:31
zpmorgan joined
09:32
DemoFreak left
|
|||
dakkar | rakudo: sub R { @_.join '-' }; sub RR { @_.join '_' }; say 'x' R 'y'; say 'x' RR 'y'; | 09:32 | |
p6eval | rakudo e6b463: OUTPUT«Statement not terminated properly at line 1, near "'-' }; sub"in Main (src/gen_setting.pm:0)» | ||
dakkar | rakudo: sub R($a,$b) { $a ~ '-' ~ $b }; sub RR($a,$b) { $a ~ '_' ~ $b }; say 'x' R 'y'; say 'x' RR 'y'; | 09:33 | |
p6eval | rakudo e6b463: OUTPUT«Statement not terminated properly at line 1, near "R 'y'; say"in Main (src/gen_setting.pm:0)» | ||
jnthn | dakkar: infix:<R> | ||
dakkar | argh, right | ||
Matt-W | Morning | ||
jnthn | hi Matt-W | ||
masak | dakkar: interesting idea. :) | ||
dakkar | rakudo: sub infix:<R>($a,$b) { $a ~ '-' ~ $b }; sub infix:<RR>($a,$b) { $a ~ '_' ~ $b }; say 'x' R 'y'; say 'x' RR 'y'; | ||
Matt-W | jnthn: nice rakudo day work yesterday :) | 09:34 | |
p6eval | rakudo e6b463: OUTPUT«x-yx_y» | ||
masak | Matt-W: hola, early riser. :) | ||
Matt-W | masak: it wasn't by choice, it was by worry | ||
masak | Matt-W: sorry about the car, btw. | ||
dakkar | now, apart from "don't do that", what should happen? | ||
masak | dakkar: try it! :) | ||
Matt-W | masak: at least they've recovered it, things can move on now | 09:35 | |
masak: and one in custody too | |||
masak | dakkar: "don't do that" only applies after you've found out that what happens is really not what you want. :) | ||
Matt-W: oh! a found stolen car. wow. | |||
Matt-W | masak: not all that unusual... especially when the thief crashes it | 09:36 | |
masak senses there were drugs involved | |||
Matt-W | (into somebody else's car. In front of a police community support officer.) | ||
dakkar | masak: fair enough. the general question is: what should P6 do when meta-generated operators clash with user-defined subs? I *think* rakudo is doing a sensible thing, btw | ||
masak | dakkar: me too. | 09:37 | |
jnthn | dakkar: Your definition just happens later and wins atm, but it's a little more ty accident than it perhaps should be. | ||
masak | depends on whether the auto-defined RR is considered a real sub. then it should perhaps complain. | ||
jnthn | Well, it's a real sub. Question is if we make it a multi... | ||
But in that case we woulda got a failure here. | |||
I'm not sure. The spec may have answers. | 09:38 | ||
But I don't remember seeing any. | |||
pmichaud++ # updated roadmap | 09:39 | ||
09:39
clintongormley joined
|
|||
masak runs to check | 09:40 | ||
rakudo: sub foo($a?) { say ?$a }; sub bar(@a?) { say ?@a }; sub baz(%a?) { say ?%a }; foo(); bar(); baz(); foo(1); bar([1]); baz({1=>2}) | |||
p6eval | rakudo e6b463: OUTPUT«000111» | ||
masak | maybe I should content myself with this answer to the question "how do I check whether a param was passed?" | ||
(even though it'll give a false negative when empty arrays/hashes are passed.) | 09:41 | ||
jnthn | masak: It's got a kind of symmetry to it. ;-) | ||
masak | jnthn: that's what I thought, too! | ||
jnthn: good way to remember/explain it. | |||
09:42
bacek left
|
|||
dakkar | rakudo: sub foo($a?) { say ?$a }; foo(0) | 09:42 | |
p6eval | rakudo e6b463: OUTPUT«0» | ||
masak | dakkar: ah, another false negative. | 09:43 | |
that's why I'd really prefer something like $param.defined | |||
dakkar | eh, it's the same problem of checking for truth intead of definedness | ||
yeah | |||
but it's still slightly wrong | |||
masak | aye. | ||
it's "out-of-band", as someone pointed out. | |||
dakkar | is there so way to get at the capture that was passed in? | ||
masak | maybe it should really be a macro, like .WHAT | 09:44 | |
dakkar | the capture should know which elements it has | ||
masak | dakkar: nice idea. | ||
&*PROCEDURE.capture or something? | |||
dakkar | $?CAPTURE{a}.present, $CAPTURE[2].present, something like that (hand-wave, hand-wave) | ||
or whatever, yeah | 09:45 | ||
masak | ah, &?ROUTINE | ||
dakkar | jnthn: about the meta-operator collision thing, S03 says that you can't modify with '!' forms that start with '!', and you can't modify with '=' forms that end with '=' | 09:46 | |
jnthn | dakkar: Ah, OK, so should probably be an error or some thing for those. | 09:47 | |
09:47
Casan joined
|
|||
masak submits rakuodbug | 09:47 | ||
dakkar | rakudo: sub infix:<R>($a,$b) { $a ~ '-' ~ $b }; say 'x' R 'y'; say 'x' RR 'y'; | 09:48 | |
p6eval | rakudo e6b463: OUTPUT«x-yy-x» | ||
jnthn | 1) Implement feature. 2) Tell masak. 3) Get bug reports. :-) | 09:50 | |
masak++ | |||
masak | :P | ||
(getting karma for OCD-ish behaviour)++ | |||
dakkar: I'm having second thoughts about your interpretation of the scriptures... um, specs. | 09:52 | ||
dakkar | masak: second thoughts are good | 09:53 | |
masak | hard to put them into words, though. | ||
granted, R is in the same category as = and ! | |||
but defining infix:<R> shouldn't be a problem. that's like defining infix:<!> or something. | 09:54 | ||
dakkar | and we wouldn't want to prevent the use of R with operators starting with R | ||
masak is too confused to explain | 09:55 | ||
I'll just leave the bug report as it is, and let this sort itself out somehow :) | |||
09:55
cognominal left
|
|||
jnthn going to do natural language study for a bit; back later | 09:56 | ||
09:57
M_o_C joined
10:03
icwiener joined
10:09
jan_ left
10:10
viirya joined
10:33
cognominal joined
10:36
kate21de joined
10:38
[particle]2 joined
10:40
[particle]3 joined
|
|||
pugs_svn | r26898 | masak++ | [u4x/P2T1A] fixed typo | 10:41 | |
r26899 | masak++ | [u4x/TODO] added jdlugosz++' med_loop | |||
10:42
meppl joined
10:47
zamolxes joined
10:51
windsok joined
10:55
[particle]1 left
10:57
viirya left
10:58
[particle] left
11:08
payload joined
11:13
zamolxes left,
M_o_C left
11:16
M_o_C joined
11:19
[particle]3 left
11:20
donaldh joined
11:29
[particle] joined
11:30
Jedai joined
11:33
[particle]1 joined
11:35
mizioumt joined
11:40
[particle]2 left
11:45
masak left
11:46
jonalv joined
|
|||
jonalv | uhm what does: "Method 'postcircumfix:{ }' not found for invocant of class 'Failure'" mean? :) | 11:46 | |
jnthn | You tried to index into something as if it was a hash, but it's not actually a hash. | ||
rakudo: my $foo; say $foo<x> # $foo is undefined, not something hash-ish | 11:47 | ||
p6eval | rakudo e6b463: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'» | ||
jonalv | jnthn: hm intresting. I am pretty sure that the hash I am indexing should be an hash... | 11:48 | |
jnthn | jonalv: Well, you could always have hit upon a compiler bug of some kind too. | 11:50 | |
Feel free to paste any code example you have that exhibits the problem. | |||
jonalv | jnthn: yea well it's not very clean code but if you wanna see it, sure... | 11:51 | |
pastebin.com/f316fbdb5 | 11:53 | ||
buubot | jonalv: The paste f316fbdb5 has been copied to erxz.com/pb/17735 | ||
11:55
pmurias joined
|
|||
jnthn | jonalv: Did you get a line number where it's failing? | 11:56 | |
jonalv | jnthn: no, but line 102 is the last output | 11:58 | |
jnthn | jonalv: Oh, if I try to run it here I fail because of curl not being found :-( | 12:02 | |
jonalv | jnthn: :( | ||
jnthn | jonalv: Are you running latest Rakudo? The error line reporting improvements only went in very recently... | ||
jonalv | jnthn: nope, I am not. I had help from masak to set this up and he is not here to help me now :) | 12:03 | |
jnthn | Ah. | ||
jonalv: I'm struggling to see exactly where it's failing. It doesn't look wrong. | 12:04 | ||
I suggest stick a print statement in before for @keys -> $name { to see if we make it so far as the loop. | 12:05 | ||
12:05
masak joined
|
|||
masak | rehi | 12:05 | |
jonalv: I'll start by backlogging. | |||
jnthn | masak: lol halp | ||
12:05
mizioumt1 joined
|
|||
masak | jnthn: I'm on it. :) | 12:05 | |
jnthn | masak++ | 12:06 | |
jonalv | masak: there you are :) You have that curl thingie right? :) | ||
masak | jonalv: let me backlog first. :) | ||
jonalv | masak: beer at bmc 18:00 btw :) | ||
masak | jonalv: dude, that is seriously OT. :P | ||
(but thanks) | 12:07 | ||
jonalv | masak: might be but also seriously important :) | ||
jnthn | beer! | ||
12:07
kane___ left
|
|||
masak | jonalv: I'd bet jnthn would agr... aye. :) | 12:07 | |
jnthn | oh, wait, probably too far for me to travel. | ||
masak | jnthn: also, Sweden, thus expensive. | 12:08 | |
jonalv: ok. what has changed since the script didn't complain about 'curl' not being found? | 12:09 | ||
jnthn | masak: I think the real problem is the postcircumfix issue, not the curl one. | ||
masak | fair enough. | 12:10 | |
jnthn | masak: I can't just get to the point where jonalv sees the failure because I don't have curl. | ||
masak | jnthn: aha, jonalv has curl, jnthn doesn't. gotcha. | ||
jnthn: (what kind of operating system doesn't have curl?) | 12:11 | ||
s/operating system/distribution/ :P | |||
jonalv | masak: well I seem to remember us installing it on my machine... | ||
jnthn | Hah! | ||
masak | I sit corrected. | 12:12 | |
ok, running script... | |||
Su-Shee | masak: i don't have. because I usally choose wget. | ||
jonalv | jnthn: well we don't get as far as that loop no | ||
masak | jonalv: that example.xml file, is it important? | 12:13 | |
oh, wait. | |||
jonalv: you probably don't want to hard-code the path like you do now. | |||
jonalv | masak: lol although the name is really bad, Yes it's important it contains all the data.. | ||
masak | jonalv: it's enough just to write it to $CWD. | ||
jonalv is thinking that masak could come over and do this face2face instead... | 12:14 | ||
masak: what's $CWD? :) | |||
masak | jonalv: it's where you 'are' in the directory structure. | 12:15 | |
jonalv | masak: handy | ||
masak | jonalv: it's in %*ENV, though, not a Perl 6 var per se. | ||
jonalv: I would come over, but I need to Do Some Things(TM) first. | 12:16 | ||
12:16
justatheory joined
|
|||
jonalv remembers spending long time fiddling with paths in Java. Perl++ | 12:16 | ||
masak | ah, I have now reproduced the error. | ||
jnthn | masak: Does latest Rakudo give a line number for it? (should do...) | 12:17 | |
masak | jnthn: not here. latest-latest or yesterday-ish? | ||
jnthn | Yesterday-ish. | 12:19 | |
masak: The fix was actually in Parrot though. | 12:20 | ||
masak: So if you didn't already do so, make sure you have latest version of that. | |||
masak | jnthn: I usually update/recompile Parrot when recompiling Rakudo. | ||
jnthn | ok, then hmm | ||
12:21
mizioumt left
12:23
pmurias left
|
|||
masak | jnthn: your error occurs in the big %orePrices hash assignment somewhere. | 12:24 | |
12:25
ruoso joined
|
|||
masak | jnthn: you declare %prices, but never put any values in it. | 12:25 | |
rakudo: my %prices; say (1000 * %prices<Tritanium>) / 333 | |||
p6eval | rakudo e6b463: OUTPUT«Use of uninitialized value0» | 12:26 | |
masak | question is why we don't just get that... | ||
oh, sorry, there is actually data put into %prices on line 86. | 12:29 | ||
jonalv | masak: maybe you are talkign to me? %prices are populated at row 87 | ||
masak | yes, just saw that... | ||
ruoso | Hello! | ||
masak | ruoso: y0! | ||
jnthn | masak: tab completion doesn't quite ahve psychic powers yet ;-) | 12:30 | |
ok, I need to eat, and then it's time for Slovak class. | 12:31 | ||
masak | jnthn: it doesn't exactly help my brain that you have the same first name. :/ | ||
jnthn | masak: Well, you can call our mothers to complain... ;-) | ||
masak | jonalv: (got it right this time) ok, separating out the %orePrices decl, and prepending it with an empty %prices decl reproduces the error. | 12:32 | |
jnthn | "Didn't you know names should be a GUID?" | ||
masak | jonalv: it gives 12 "Use of uninitialized value", and then dies with the postcircumfix:{ } thing. | ||
masak counts 12 hash indexings | |||
jonalv: hah! found it! :) | 12:33 | ||
jonalv: &prices<Nocxium> | |||
(note the '&') | |||
jonalv | masak: aouch | ||
masak | jonalv: don't you use Ctrl+Y? | ||
jonalv | masak: I guess not... :( | 12:34 | |
masak | rakudo: say &prices.WHAT | ||
p6eval | rakudo e6b463: OUTPUT«Failure()» | ||
masak | jonalv: there you go. | ||
jonalv | masak: thankyou :) | ||
masak | you'rewelcome :) | ||
jnthn bbiab | |||
jonalv | oh masak++ :) | ||
masak | @karma masak | 12:35 | |
lambdabot | You have a karma of 190 | ||
masak | jonalv: guess I spend quite some time here on #perl6 :) | ||
jonalv | masak: I don't need to guess... :) | ||
masak | @karma jonalv | 12:36 | |
lambdabot | jonalv has a karma of 1 | ||
masak | jonalv++ # welcome gift | ||
jonalv | :) | ||
masak | jonalv: your script now runs to completion here. | 12:43 | |
jonalv | masak: here too, the LaTeX output is not ideal though. Something to do after I have grabbed some food :) | ||
12:49
justatheory left
|
|||
finanalyst | my %x=<a b c>Z(1,2,3);%x.perl.say | 12:53 | |
rakudo:my %x=<a b c>Z(1,2,3);%x.perl.say | |||
rakudo: my %x = map { $_ => <a b c> Z (1,2,3) },<one two three>;%x.perl.say | |||
p6eval | rakudo e6b463: OUTPUT«Odd number of elements found where hash expectedin Main (/tmp/6j9EMBdynd:1)» | ||
12:53
smtms joined
|
|||
finanalyst | rakudo: my %x=<a b c>Z(1,2,3);%x.perl.say | 12:54 | |
p6eval | rakudo e6b463: OUTPUT«{"a" => 1, "b" => 2, "c" => 3}» | ||
finanalyst | is the problem here to do with autovivication? | ||
12:55
PacoLinux_ joined
12:56
PacoLinux left,
PacoLinux_ is now known as PacoLinux
|
|||
dakkar | rakudo: my %x = map { $_ => ( <a b c> Z (1,2,3) ) },<one two three>;%x.perl.say | 12:56 | |
p6eval | rakudo e6b463: OUTPUT«Use of uninitialized valueNo applicable candidates found to dispatch to for 'map'in Main (/tmp/znKmuOytpj:1)» | ||
dakkar | hmm | ||
12:56
riffraff joined
|
|||
dakkar | rakudo: my %x = <one two three>.map: { $_ => ( <a b c> Z (1,2,3) ) };%x.perl.say | 12:57 | |
p6eval | rakudo e6b463: OUTPUT«Use of uninitialized valueParameter type check failed; expected something matching Callable() but got something of type Hash() for expr in call to mapin method Any::map (src/gen_setting.pm:30)called from Main (/tmp/aHjGf0l7eE:1)» | ||
dakkar | rakudo: my %x = <one two three>.map: -> { $^a => ( <a b c> Z (1,2,3) ) };%x.perl.say | ||
p6eval | rakudo e6b463: OUTPUT«Cannot use placeholder var in block with signature. at line 1, near " => ( <a b"in Main (src/gen_setting.pm:1959)» | ||
dakkar | rakudo: my %x = <one two three>.map: -> ($a) { $a => ( <a b c> Z (1,2,3) ) };%x.perl.say | ||
p6eval | rakudo e6b463: OUTPUT«Statement not terminated properly at line 1, near ": -> ($a) "in Main (src/gen_setting.pm:0)» | ||
dakkar shows to the world that he did not keep up with the last several months of synopses… | 12:58 | ||
masak | rakudo: my %x = <one two three>.map: -> $a { $a => ( <a b c> Z (1,2,3) ) };%x.perl.say | 12:59 | |
p6eval | rakudo e6b463: OUTPUT«{"one" => ["a", 1, "b", 2, "c", 3], "two" => ["a", 1, "b", 2, "c", 3], "three" => ["a", 1, "b", 2, "c", 3]}» | ||
masak | rakudo: my %x = <one two three>.map: { $^a => ( <a b c> Z (1,2,3) ) };%x.perl.say | ||
p6eval | rakudo e6b463: OUTPUT«{"one" => ["a", 1, "b", 2, "c", 3], "two" => ["a", 1, "b", 2, "c", 3], "three" => ["a", 1, "b", 2, "c", 3]}» | ||
masak | dakkar: et voila. | ||
finanalyst | why does this work and the original not? | 13:00 | |
masak | finanalyst: which original? | ||
finanalyst: the one with '-> { $^a' ? | |||
dakkar | no, his one :) | ||
finanalyst | my %x = map { $_ => <a b c> Z (1,2,3) },<one two three>;%x.perl.say | ||
dakkar | I was just failing miserably at making it work | ||
masak | finanalyst: might be something with '=>` and 'Z'. try using parens. | 13:01 | |
finanalyst | rakudo: my %x = map { $_ => (<a b c> Z (1,2,3)) },<one two three>;%x.perl.say | 13:02 | |
p6eval | rakudo e6b463: OUTPUT«Use of uninitialized valueNo applicable candidates found to dispatch to for 'map'in Main (/tmp/myvW4MQPhR:1)» | ||
finanalyst | rakudo: my %x = map { $_ => %(<a b c> Z (1,2,3)) },<one two three>;%x.perl.say | ||
p6eval | rakudo e6b463: OUTPUT«Use of uninitialized valueNo applicable candidates found to dispatch to for 'map'in Main (/tmp/uuw4BOcTsy:1)» | ||
masak | finanalyst: I know what's going on. | 13:03 | |
finanalyst: the {} after the map: is interpreted as a Hash, not a Code. | |||
finanalyst | yes that has happened to me several times. How to disambiguate? | 13:04 | |
masak | rakudo: say { $_ => (<a b c> Z (1,2,3)) } ~~ Code | 13:05 | |
p6eval | rakudo e6b463: OUTPUT«Use of uninitialized value0» | ||
masak | rakudo: say {; $_ => (<a b c> Z (1,2,3)) } ~~ Code | ||
p6eval | rakudo e6b463: OUTPUT«1» | ||
masak | finanalyst: like that :) | ||
13:05
riffraff left
|
|||
finanalyst | thanx | 13:05 | |
masak | np. | ||
finanalyst | rakudo: my %x = map {; $_ => <a b c> Z (1,2,3) },<one two three>;%x.perl.say | 13:06 | |
p6eval | rakudo e6b463: OUTPUT«Odd number of elements found where hash expectedin Main (/tmp/HREsTyviY0:1)» | ||
masak | (I think this will be one of the big traps in using map) | ||
finanalyst: parens. | |||
finanalyst | rakudo: my %x = map {; $_ => (<a b c> Z (1,2,3)) },<one two three>;%x.perl.say | ||
p6eval | rakudo e6b463: OUTPUT«{"one" => ["a", 1, "b", 2, "c", 3], "two" => ["a", 1, "b", 2, "c", 3], "three" => ["a", 1, "b", 2, "c", 3]}» | ||
finanalyst | but why [] and not {} after keys? | 13:07 | |
eg. "two" => ["a", 1, "b", 2, "c", 3], | |||
masak | finanalyst: because the values you put in are anon Lists. | ||
finanalyst | rakudo: my %x = map {; $_ => %(<a b c> Z (1,2,3)) },<one two three>;%x.perl.say | 13:08 | |
p6eval | rakudo e6b463: OUTPUT«{"one" => {"a" => 1, "b" => 2, "c" => 3}, "two" => {"a" => 1, "b" => 2, "c" => 3}, "three" => {"a" => 1, "b" => 2, "c" => 3}}» | ||
masak | rakudo++ | ||
finanalyst | need for lots of explanation for map on this. | 13:09 | |
masak | indeed. | 13:12 | |
13:12
DemoFreak joined
|
|||
masak makes mental note to write this in u4x | 13:12 | ||
13:22
riffraff joined
13:23
iblechbot left
13:24
ispy_ joined
13:33
lichtkind joined
|
|||
lichtkind | masak: howdy | 13:33 | |
masak | lichtkind: good day, sir. | ||
lichtkind | masak: no formal please, its here mans day so guy drinkin in the woods and normal people sit in front of TFT as always | 13:34 | |
masak: still haven't heard from viklund | |||
masak | lichtkind: me neither. | ||
13:38
justatheory joined
|
|||
masak | lichtkind: he has periods when he's very busy and AFK. he has a one-year-old daughter. | 13:38 | |
lichtkind | ah | 13:40 | |
13:46
skids joined
13:49
tulcod joined
13:50
jferrero left
|
|||
lichtkind | masak: have you any reciepe to cur emy bad mood :) ? | 13:56 | |
13:56
nothingmuch left
|
|||
masak | lichtkind: oh, sure! hold on. | 13:56 | |
13:57
nothingmuch joined
|
|||
masak | rakudo: sub infix:<///>($a, $b) { "don't $a, be $b :)" }; say 'worry' /// 'happy' | 13:57 | |
p6eval | rakudo e6b463: OUTPUT«don't worry, be happy :)» | ||
14:00
justatheory left
|
|||
Matt-W | everyone's playing with operators | 14:01 | |
rakudo: sub infix:<///>($a, $b) { "don't $a, be $b :)" }; say 'worry' R/// 'happy' | |||
14:01
riffraff left
|
|||
p6eval | rakudo e6b463: OUTPUT«don't happy, be worry :)» | 14:01 | |
14:03
justatheory joined
|
|||
lichtkind | Matt-W: that doenst rises my mood either :) | 14:04 | |
masak | rakudo: role HelpYouRelax { method relax() { ... } }; class Beer does HelpYouRelax { method relax() { 'have a beer' } }; class Perl6Hacking does HelpYouRelax { method relax() { 'write some Perl 6 code' } }; say ([Beer, Perl6Hacking].map: { .relax }).join(' and ').ucfirst | ||
p6eval | rakudo e6b463: OUTPUT«Have a beer and write some Perl 6 code» | 14:05 | |
skids | pmichaud++ for much more illuminating ROADMAP | 14:06 | |
It's like, actually a map now :-) | |||
lichtkind | ah evil illuminati | ||
PerlJam | skids: does it have a "you are here" sign on it? | 14:07 | |
masak looks forward to the journey on the ROADTERRITORY | |||
skids | PerlJam: just about. It does actually tell you where things stand. | 14:08 | |
PerlJam reads | |||
14:09
exodist joined
|
|||
masak | yes, pmichaud++. the ROADMAP is very informative. | 14:09 | |
lichtkind | where is the roadmap to be found? | 14:10 | |
masak | huh, do we expect the heredoc spec to evolve substantially? | ||
lichtkind: Rakudo repo, docs/ROADMAP. | |||
skids | docs/ROADMAP | ||
masak | github.com/rakudo/rakudo/blob/maste...cs/ROADMAP | 14:11 | |
lichtkind | masak: thanks i searched in the parrot git | 14:12 | |
masak | but Parrot uses SVN... :) | ||
lichtkind | you know what i mean :) | 14:13 | |
PerlJam | A, E, and F seem important and not so dependent on parrot changes necessarily | 14:14 | |
skids was actually surprised at the high level of activity over on #parrot | 14:15 | ||
I don't think we should think of Parrot issues as a stone wall. | |||
14:15
Chillance joined
|
|||
PerlJam | I don't. It's just that parrot has a different pace and sometimes different priorities. | 14:16 | |
pmichaud | good morning, #perl6 | 14:22 | |
14:22
alester joined
|
|||
PerlJam | good morning pm | 14:23 | |
morning alester | |||
alester | howdy | ||
jnthn is back | |||
masak | pmichaud: good morning. nice ROADMAP! | 14:26 | |
jnthn read the roadmap too. | |||
pmichaud | masak: it's not that the heredoc specs will change as much as the fact that STD.pm will evolve to support it | 14:28 | |
I include STD.pm in "spec" these days. | |||
pmichaud starts building a release tarball candidate. | 14:30 | ||
masak | pmichaud: I see. | ||
pmichaud | I do expect to detail out the roadmap just a bit more -- e.g., to give sub-points (H1, H2, H3) to some of the major items and update the tasks to match | 14:32 | |
but this was good enough to be able to release :-) | |||
dalek | kudo: d163016 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 392 files, 11342 passing, 0 failing |
14:34 | |
jnthn | rakudo: say "omgz I passes { 11342 - 10467 } more tests this release!" | 14:35 | |
p6eval | rakudo e6b463: OUTPUT«omgz I passes 875 more tests this release!» | ||
14:35
dalek left,
dalek joined
|
|||
PerlJam | pmichaud: what does "early Summer 2009" mean? :) | 14:38 | |
pmichaud | before July 15 | 14:44 | |
also, note that A (pge refactors) has some big parrot dependencies in the notion that whatever happens there has to be wary of Parrot deprecation issues | 14:49 | ||
masak: should I add a note to the release announcement that Stockholm.pm is holding a p6 hackathon? | 14:51 | ||
masak | pmichaud: that might be nice. it's on the 29th. do you need the address also? | 14:52 | |
pmichaud | web address if one is available, yes | ||
masak | no URL for the hackathon specifically, I'm afraid. :/ | 14:53 | |
pmichaud | oh, that's okay then | ||
(yes, I'd still like a url though) | |||
(to stockholm.pm) | |||
pmichaud googles | |||
heh | 14:54 | ||
masak | vic20.blipp.com/pipermail/kameler/2...00316.html | ||
14:54
FurnaceBoy joined
|
|||
pmichaud | the hackathon is announced on stockholm.pm's home page, but since it doesn't have any year information on it someone might think it was done in May 2008 :-) | 14:54 | |
14:55
jferrero joined
|
|||
masak | actually, this whole thread is relevant... vic20.blipp.com/pipermail/kameler/2009-April/ | 14:55 | |
pmichaud: I could email someone and ask them to add a year to the homepage. | 14:56 | ||
pmichaud | it was more an observation on my part than trying to get it fixed :-) | ||
14:57
nihiliad joined
|
|||
jnthn | masak: HOw many days is the hackathon? | 14:58 | |
masak | jnthn: one, barely. :) | ||
14:58
eternaleye left
|
|||
masak | Stockholm.pm is a very modest PM group. :) | 14:58 | |
it's scheduled from 10:00 to 16:00. | 15:00 | ||
jnthn | :-) | ||
pmichaud | 6 hours isn't bad at all :-) | ||
jnthn | Aye. | ||
masak | also, the necessary ingredients from Oslo (pizza and soft drinks) are there. :) | 15:01 | |
15:01
dalek left,
dalek joined
|
|||
pmichaud | I suspect several hundred new RT tickets will show up. :-) | 15:01 | |
masak | and I'm sort of hoping that people will be wowed and want more... | ||
jnthn | masak: whatnobeer? | ||
;-) | |||
masak | jnthn: only Ubuntu cola has been promised. :) | ||
jnthn | masak: I can't make it (virtually or physically) though, I'm afraid. :-( | ||
I'm travelling back from vacation that day. | 15:02 | ||
Otherwise I'd arrange to at least be on IRC at the same time. | |||
masak | jnthn: you'll have to let your work speak for itself on that day. :P | ||
pmichaud | I might be able to be around. | ||
I'll put it on my calendar, at any rate. | |||
jnthn | .oO( what do 50 RTs speak like? ) |
15:03 | |
masak | excellent. | ||
jnthn: sounds like a modern Zen riddle. | |||
was the Parrot release delayed somewhat this month? | 15:04 | ||
pmichaud | what time is it in stockholm now? (So I can compute the time offset) | ||
masak | pmichaud: five o'clock. | ||
pmichaud | okay, 7 hrs (same as usual) | ||
thanks. | 15:05 | ||
Infinoid | masak: We had to track down someone with upload permissions to the ftp site, which took an extra day | ||
masak | pmichaud: I guess it only differs if we have different DST dates. | ||
15:05
justatheory left
|
|||
masak | Infinoid: ah. I think I read something in the #ps logs about an absentee release manager. | 15:05 | |
Infinoid | Yeah, I took over for tewk | 15:06 | |
pmichaud | Infinoid++ | ||
Infinoid: this was your first release, yes? | |||
Infinoid | yeah. But don't ++ me unless you can tell me everything actually worked :) | ||
masak | the more I learn about the Parrot development process, the more impressed I get. | ||
pmichaud | on a similar note, the issue of release managers for Rakudo came up again in yesterday's Perl 6 design meeting | 15:07 | |
Infinoid | There are a lot of really smart people involved in parrot. (And in rakudo, too.) I've learned a lot just by attempting to hang onto their coattails | ||
pmichaud | I already have the release instructions typed up, so I'll be looking for volunteers for upcoming releases :-) | ||
(the point being to keep our release bus number low) | 15:08 | ||
er, high | |||
er. whatever | |||
jnthn | bus number? | ||
jnthn finds the 69 to the airport useful | 15:09 | ||
pmichaud | bus number: aka "trunk number" sometimes | ||
basically, the number of people who if hit by a bus would cause development to halt. | |||
er, "truck number" | 15:10 | ||
jnthn | So basically it's not great for Rakudo if we cross the road together? | ||
pmichaud | jnthn: or ride a bus/train together :-) | ||
the trip from the oslo hackathon to dinner was particularly perilous for Perl 6 development, given that you, me, and TimToady were all on the same train :-) | 15:11 | ||
jnthn | Phew, Perl 6 got off lightly that night. | 15:12 | |
:-) | |||
masak | 'is also' is deprecated/replaced by 'augment'. what about infix:<also> ? | 15:14 | |
jnthn | There's an infix:<also> also? | 15:15 | |
pmichaud | it's a junction operator | ||
jnthn | ah, sounds rather unrelated then. | 15:16 | |
pmichaud | I suspect it remains infix:<also> | ||
$target ~~ MyType also .mytest1 also .mytest2 | |||
masak | ah, S03:932 still mentions it. | ||
pmichaud | it's the same as infix:<&>, but order of evaluation guaranteed. | 15:17 | |
rjh | crazy thought | 15:19 | |
15:20
donaldh left
|
|||
pugs_svn | r26900 | masak++ | [u4x/TODO] special variables | 15:20 | |
r26900 | masak++ | | |||
r26900 | masak++ | This list might not be complete. Additions welcome. | |||
r26901 | masak++ | [u4x/TODO] 'is also'/'is instead' are dead, long live 'augment'/'supersede'! | |||
rjh | is it on the cards for eval (with another parrot language) to transparently pass lexicals - scalars, maybe arrays and hashes too - to the eval block | ||
pmichaud | yes, but it's not clear that the other language would always know how to access them. | ||
15:20
ruoso left
|
|||
rjh | i suppose the ideal is that a perl6 hash becomes a python dictionary | 15:21 | |
and so on | |||
pmichaud | but yes, the lexicals would be available to the eval block | ||
15:21
donaldh joined
|
|||
jnthn | rjh: I imagine it's not really that it'd "become" one, just that you could use it mostly like one. | 15:22 | |
TimToady | but it's not like python understands either lexical scoping or sigils though... | ||
pmichaud | we might make MY:: available as a python dictionary, though. | 15:23 | |
TimToady | would have to deal with sigils still | ||
so access would have to be explicit | |||
pmichaud | masak: how does this look? gist.github.com/115520 | ||
masak | pmichaud: looks excellent. | 15:24 | |
15:26
pmurias joined,
payload left
|
|||
Su-Shee | what's druid? | 15:27 | |
got it. | |||
dalek | kudo: 7c5be8b | pmichaud++ | docs/ROADMAP: Minor ROADMAP improvement. |
15:29 | |
kudo: 97c7cec | pmichaud++ | docs/ChangeLog: ChangeLog updates for release |
|||
masak | Su-Shee: I re-discovered this game in November (the month) last year. I still haven't gotten over how great it is. we still mostly play it with lego pieces -- this might change after I finish the SVG view, though. :) | ||
dalek | kudo: dafdc06 | pmichaud++ | docs/announce/2009-05: Final 2009-05 announcement updates. |
||
pmichaud | Mmmm, new Lego store opened here this past Friday. | ||
Place was completely packed. | 15:30 | ||
15:30
justatheory joined
|
|||
Su-Shee | masak: i was just thinking that i read (i think) every piece of news about perl6, but i just found perl6-projects.org ... | 15:30 | |
masak | :) | ||
Su-Shee | this is not good. :) | 15:31 | |
masak | Su-Shee: fwiw, Druid is really fun code to work on. it's looking for developers with my love for the game, who have more spare tuits than I do. | ||
Su-Shee | masak: get a number, my "i would like to code in perl 6" list is enough for until perl7 is available. ;) | 15:32 | |
masak | Su-Shee: talk is cheap. go and write some Perl 6 code. :P | 15:33 | |
Su-Shee | i did yesterday and today! | ||
masak | where is it? | ||
pmichaud makes a tarball, starts spectesting it. | |||
bbiab | |||
Su-Shee | masak: not working right now, mostly. have to read up some stuff. | 15:34 | |
masak | Su-Shee: you know you can get very good help here, if you just post your code? | ||
Su-Shee | masak: will do, got me a git account already. | 15:35 | |
dalek | kudo: c4fa3ba | pmichaud++ | docs/release_guide.pod: Update docs/release_guide.pod . |
||
masak | Su-Shee++ | ||
15:35
Psyche^ joined
15:37
finanalyst left
|
|||
pmurias | TimToady: a partial solution to python's lack of sigils would be to add it automatically is cases where's the no ambiguity | 15:40 | |
lambdabot | pmurias: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
15:42
jonalv left
15:43
payload joined
15:45
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | .oO( the backside of DWIM is that the 'I' makes it subjective -- so, unless the behaviour is parameterized on the actual user of the feature, there will always be people for whom things don't DWIM ) |
15:45 | |
TimToady | we actually optimize for DWMPM, because some subset of MP will be more than happy to tell I exactly how I am being an idiot :) | 15:48 | |
masak | :) | 15:50 | |
TimToady: speaking of that... | |||
TimToady: have you ever used map in Perl 6, only to find that you supplied a Hash, and not a Code? | 15:51 | ||
TimToady | yes, it's just not clear how best to fix that | 15:52 | |
masak | indeed not. | ||
the only solution I can think of is giving map another multi variant which takes a Hash... | |||
TimToady | problem is the $_ is bound too early | 15:53 | |
masak | oh, right. | ||
pmichaud | but the hash-multi variant could warn | ||
masak likes that | |||
pmichaud | "You sent me a hash... you probably wanted a block" | ||
TimToady | well, but if we're gonna special case it, then we might as well warn at compile time | ||
jnthn | When are people accientally sending hashes? | ||
TimToady | if we compile a hash as the first arg to a map, blow up | ||
jnthn | Oh | 15:54 | |
TimToady | you mean besides all the time? :) | ||
pmichaud | jnthn: map { $_ => rand }, @vals | ||
jnthn | map { a => 42 } ... | ||
Right. | |||
Yeah. When syntactic cleverness bites back. | |||
TimToady | well, when lack of ASCII brackets bits back, really | ||
pmichaud | well, if we can detect it at compile time, then perhaps we should suppress the "make this a hash" response | ||
i.e., a block to map is always a closure, never a hash | 15:55 | ||
Tene | It's always kind of bugged me how {} still means 'hash' in perl 6. if we can do the same in ()s, what do we need {} for? | ||
i think I'm missing something, though. | |||
masak | pmichaud: but... that would be a special case! :/ | ||
15:55
jan___ joined
|
|||
pmichaud | masak: it's a special case either way | 15:55 | |
TimToady | lists of pairs can be useful unhashified | ||
or arrayified, so can't use either () or [] | 15:56 | ||
masak | pmichaud: yes, but this special case would allow code to run that didn't run before... | ||
TimToady | %() works, but nobody uses it | ||
pmichaud | if we got rid of { ... } as hash, then I suspect a lot of folks would start using %(...) :-) | ||
Tene | We could, though. Overloading {} for both code and hash has always bothered me. | ||
pmichaud | but yes, it does lose the connection to postcircumfix:<{ }> | 15:57 | |
Tene | obviously we need postcircumfix:<%( )> ;) | ||
masak | yuck. :) | ||
TimToady | that would probably be the ksh answer :) | 15:58 | |
I think a quick rap on the knuckles at compile time is probably best, for now | |||
masak | nod. | 15:59 | |
jnthn | multi method map (%h where { .keys >>==<< OUTER::$_ }) { ... } # ;-) | ||
TimToady | either that, or disallow $_ in hash composers entirely | ||
jnthn | erm, CALLER | ||
masak away (for reasons to with beer) | |||
jnthn | and cmp | 16:00 | |
gah | |||
jnthn still brain dead after a fight with IIS | |||
Tene | ouch | 16:01 | |
jnthn: you're volunteering to port mod_parrot to IIS, right? | |||
16:01
araujo left
|
|||
rjh | {} / [] is used by ruby, python, javascript | 16:02 | |
jnthn | Tene: plz no :-S | ||
rjh | but i suppose that's a weak argument as perl6 is significantly different to those in syntax | ||
TimToady | thinking seriously about banning $_ in hash composers | ||
16:02
kst` joined,
kst left
16:03
dakkar left
|
|||
TimToady | I think that would largely fix the problem. In the cases you want a hash composer to interpolate $_, you can always use the %( $_ => xxx ) form unambiguously | 16:08 | |
should outlaw placeholders too | 16:09 | ||
pmichaud | do we examine the entire block for $_ ? | ||
TimToady | anything outside of inner {}, I imagine | ||
I'm thinking context var in STD | |||
pmichaud | anyway, that would work. | 16:10 | |
How about "any block with a signature"? | |||
TimToady | well, a $_ in a .{$_} should probably also scotch it | 16:11 | |
pmichaud | (or with explicit $_) | ||
TimToady | yes, the exception is actually that in the case we might notice top-level =>, we force $_ to mean I have a sig | ||
like a placeholder | 16:12 | ||
pmichaud | oooh, that can work. | ||
16:12
Su-Shee left,
zpmorgan_ joined
|
|||
TimToady | we'll get the opposite error of people writing map { { $_ => xxx } }, @list | 16:13 | |
but probably not so often | |||
16:13
zpmorgan left
|
|||
TimToady | oh, wait, is that a bare block, or isn't it? | 16:13 | |
either way, still doesn't DWTM | 16:14 | ||
but I think people want to map hashes a lot less often than they want to map pairs | 16:16 | ||
so it's still a net win | |||
16:16
dalek left,
dalek joined,
iblechbot joined
16:17
bacek joined
16:22
[particle]1 left
16:31
justatheory left
16:34
[particle] left
16:38
gbacon left
16:42
gbacon joined
16:43
[particle] joined
|
|||
pmichaud | #17 ("Stockholm") released. | 16:53 | |
16:54
justatheory joined
|
|||
jnthn | pmichaud++ | 16:55 | |
dalek | kudo: 79d0b9a | pmichaud++ | docs/release_guide.pod: Fix "git push --tags" in docs/release_guide.pod . |
16:56 | |
pmichaud | I did the fixes for "root_new", but it turned out to not help too much for the release. Most of the problem cases are in PGE (and we're stuck with the released version of Parrot for that) | 17:03 | |
anyway, we'll get a performance win when I convert PGE across. | 17:04 | ||
(so will all of the other hlls) | |||
afk for a while # many errands to run | 17:05 | ||
PerlJam | pmichaud: you mentioned that the roadmap was in no particular order, but the first thing was PGE ... do you think that's also the most important? | ||
pmichaud | PerlJam: it is to me :-) | ||
PerlJam | good :-) | ||
pmichaud | lots of wanted/desired features (adverbs, better operator overloading, etc) really depend on PGE updates | ||
PerlJam grabs lunch | |||
pmichaud | really afk | 17:06 | |
17:15
justatheory left
17:17
brunov joined
17:18
finanalyst joined
17:20
bacek left
17:21
brunov left
|
|||
finanalyst | i was looking at S06 for optional parameters and came across this:Missing optional arguments default to their default values, or to an undefined value if they have no default. (A supplied argument that is undefined is not considered to be missing, and hence does not trigger the default. Use //= within the body for that.)." What does the last sentence mean? What is //= ? | 17:28 | |
17:29
justatheory joined
|
|||
PerlJam | // is the "defined or" operator. $a //= $b means the same as "if $a is defined, do nothing, otherwise assign $b to $a" | 17:30 | |
17:31
Kisu joined
|
|||
finanalyst | Perljam: thanx | 17:31 | |
17:34
[particle]1 joined,
M_o_C left
17:45
[particle] left
17:46
bacek joined
17:48
M_o_C joined
17:53
pmurias left
17:58
[particle]1 left
|
|||
masak | that can still trip people up, IMNSHO. | 17:59 | |
rakudo: sub foo(%bar?) { %bar //= { 'default' => 'value' }; say %bar.perl }; foo() | 18:00 | ||
p6eval | rakudo 79d0b9: OUTPUT«Cannot assign to readonly variable.in sub foo (/tmp/jfLajrumzM:1)called from Main (/tmp/jfLajrumzM:1)» | ||
masak | oh, right. | ||
rakudo: sub foo(%bar? is rw) { %bar //= { 'default' => 'value' }; say %bar.perl }; foo() | 18:01 | ||
p6eval | rakudo 79d0b9: OUTPUT«{}» | ||
masak | expected? I think not. | ||
Tene | Does rakudo support default values yet? | ||
masak | Tene: in params? yes. | 18:02 | |
Tene | yes. | ||
masak | rakudo: sub foo($value = 42) { say $value }; foo | ||
p6eval | rakudo 79d0b9: OUTPUT«42» | ||
masak | it even supports them in variable declarations :) | ||
rakudo: my ($value = 42) = 5; say $value | 18:03 | ||
p6eval | rakudo 79d0b9: OUTPUT«5» | ||
Tene | rakudo: sub bar(%bar = { 'default' => 'foo'}) { say %bar.perl }; bar() | ||
p6eval | rakudo 79d0b9: OUTPUT«{"default" => "foo"}» | ||
masak | Tene: point taken. | ||
TimToady | also %bar //= {...} is wrong | ||
masak | that essentially destroys that argument. | ||
PerlJam | masak: hashes have a default value of {} ? | ||
TimToady | since it should be a binding | ||
masak | PerlJam: yes. | 18:04 | |
PerlJam is confused. | |||
why? | |||
TimToady | %bar //= (...) would at least be less wrong | ||
PerlJam | TimToady: %bar //= %(...) ? | ||
masak | PerlJam: in order for 'my %hash;' do DTRT. | ||
PerlJam | masak: ah ... we just have eager autovivification then. | ||
TimToady | well, yes, I guess we fixed that in p6 | ||
masak | TimToady: oh, I was overzealous with those curly braces, true. | 18:05 | |
18:06
abra joined
|
|||
masak | my point was that %bar wasn't undefined, and that this might surprise some people. | 18:07 | |
PerlJam | but it should have been. | 18:09 | |
masak | PerlJam: not by current spec, no. | ||
TimToady | reference? | ||
masak | TimToady: finanalyst gave it above. | 18:10 | |
the one in S06. | |||
since the default value of Hash is {}, and since {}.defined is True... | |||
TimToady | the default value of Hash is Hash, which is an undef | 18:11 | |
PerlJam | masak: where in the spec does it say that the default value of Hash is {} ? | ||
what TimToady said | |||
masak | oh. | ||
so Rakudo does the wrong thing here? | |||
PerlJam | That would be my take on it. | 18:12 | |
TimToady | I think so, though perhaps it should get unhappy earlier insofar as Hash isn't a valid rw ref | ||
masak | that's the best news I've had since pmichaud implemented user defined operators. | ||
TimToady | either that, or rw forces autoviv, and results in {} | 18:13 | |
masak | oh. | ||
so then we're back to where it's defined after all. | |||
TimToady | well, it *is* binding to rw that causes autoviv | ||
masak | so if I don't do that, I'm home free? then I can use .defined to check whether it was passed or not? | 18:14 | |
TimToady | yes, but you can't set it. :) | ||
masak | right. | ||
I think I'm pleased with such a compromise. | |||
PerlJam | that still might trip people up though. | ||
masak | sure, but they're fewer now. :P | ||
we're heading in the right direction, amount-of-people-being-tripped-up-wise. | 18:15 | ||
TimToady | yes, that was my precise argument for disallowing $_ in hash composer | ||
PerlJam | TimToady: does the same hold for is copy? | ||
TimToady | I don't think so | ||
nor for is ref | 18:16 | ||
masak | are 'rw' and 'copy' considered keywords? | ||
TimToady | they're traits, and we're still nailing down exactly which namespace nontype traits live in | ||
masak | ok. | ||
TimToady | but possibly they're keywords in a syntax category sense | ||
masak | u4x/TODO has them under 'declaration keywords'. | 18:17 | |
TimToady | that is, there's a trait_name:sym<copy> that is only looked for within the trait parser | ||
masak | is 'cow' still with us? | ||
TimToady | I thought we just removed that | ||
masak | I see. | ||
so if I wanted copy-on-write semantics...? | |||
TimToady | ask for a copy, and it's implementation defined whether to emulate copy with cow | 18:18 | |
which is the point of cow, after all | |||
to look like a copy | |||
masak | yes. | ||
very well. | |||
pugs_svn | r26902 | masak++ | [u4x/TODO] added 'copy' and 'ref' parameter traits | 18:19 | |
masak | rakudo: my ($a is readonly) = 5; say $a; $a = 42; say $a | ||
p6eval | rakudo 79d0b9: OUTPUT«542» | ||
PerlJam | heh | ||
masak submits rakudobug | |||
which behaviour do I expect? is the 5 assignment allowed? | 18:20 | ||
probably not, right? | |||
TimToady | allowed | ||
masak | ok. | ||
TimToady | assignment semantic analyzer always has to look at left side to see if a declarator governs semantics | ||
PerlJam | surely the assignment must be allowed. How do you get a value otherwise? | ||
masak | PerlJam: my ($a is readonly = 5) | 18:21 | |
TimToady | (my $a is readonly) = 5 would not be allowed | ||
well, probably not | |||
masak | ok, so _not_ allowed... :) | 18:22 | |
PerlJam | masak: well, there's 3 different initialization forms we just talked about. Which are you referring to? :) | ||
TimToady | only my form is disallowed | ||
er | |||
the form I said | |||
PerlJam | heh | ||
masak | PerlJam: the one TimToady just disallowed. | ||
18:23
justatheory left
|
|||
TimToady | it's like difference between state $x = 0 and (state $x) = 0 | 18:23 | |
masak | everything you say will be used against you in the bug report :) | ||
PerlJam | my ($a is readonly, $b is readonly = 5) = 6; # does this work? | 18:24 | |
($a = 6 and $b = 5) | |||
masak | PerlJam: not if the '(my $a is readonly) = 5' doesn't work. | ||
PerlJam: seems like the same situation with your $a. | |||
TimToady | no, it's not | 18:25 | |
masak | :) | ||
TimToady | the my is outside | ||
(my vs my ( | |||
masak | oh! | ||
I missed that! | |||
important distinction... | |||
TimToady | I've been saying nothing else for a month | ||
PerlJam gets masak some TimToady specs | |||
18:25
jferrero left
|
|||
TimToady | well, a minute, anyway | 18:26 | |
masak | sorry, I should pay more attention... :P | ||
oh, ok. I see now. | |||
there's no way I can explain this in the bug report save for quoting the whole thing, misunderstanding and all. :) | |||
TimToady | consider it an exercise in integrity :) | 18:27 | |
masak does that | 18:28 | ||
rakudo: (my $a is readonly) = 5; say $a | 18:30 | ||
p6eval | rakudo 79d0b9: OUTPUT«5» | ||
PerlJam | rakudo: my ($a is readonly, $b is readonly = 5) = 6; .say for $a, $b; | 18:31 | |
p6eval | rakudo 79d0b9: OUTPUT«6Use of uninitialized value» | ||
TimToady | rakudo: my ($a is readonly, $b is readonly = 5) := 6; .say for $a, $b; | 18:32 | |
p6eval | rakudo 79d0b9: OUTPUT«rtype not setin Main (src/gen_setting.pm:3166)» | ||
TimToady | it should at least allow the binding, even if the assignment gets disallowed on such a sig | 18:33 | |
(which it isn't, but I can imagine some sigs that might be hard to figure out what assignment should mean other than binding) | 18:34 | ||
but given that's the binding form is almost exactly what a normal signature binding means (including default to readonly), it should certainly work | 18:36 | ||
18:36
[particle] joined
18:37
bacek left
18:43
desertm4x joined
18:52
jferrero joined
19:10
masak left
19:16
icwiener_ joined
19:17
icwiener left
19:20
donaldh left
19:21
donaldh joined
19:22
abra left
19:31
jonathanturner joined
|
|||
japhb | @tell masak re: proto -- graphdeps was more forward-thinking, not as useful right now, but helped me design the graph walker. So yes, add-on material, not really core. Also, I'd like to see your different take on the graph walker design. In the mean time, do you want me to split my change into smaller pieces? | 19:32 | |
lambdabot | Consider it noted. | ||
19:35
masak joined
|
|||
masak | . | 19:35 | |
lambdabot | masak: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
masak | @messages | ||
lambdabot | japhb said 3m 1s ago: re: proto -- graphdeps was more forward-thinking, not as useful right now, but helped me design the graph walker. So yes, add-on material, not really core. Also, I'd like to | ||
see your different take on the graph walker design. In the mean time, do you want me to split my change into smaller pieces? | |||
masak | @clear | ||
lambdabot | Messages cleared. | ||
japhb | Ah, I thought you'd gone for the day | ||
masak | japhb: I'll be happy to write a sketch of what I imagine for the graph walker. | 19:36 | |
japhb | masak: excellent | ||
masak | it's interesting to see you hitting upon many of the ideas I had too. | ||
that tells me I'm on the right track. | |||
PerlJam | or you're both way off base ;) | ||
masak | PerlJam: or that :) | ||
the main difference, I think, is that I want to make it a separate class, and make it independent of proto project installation. | 19:37 | ||
japhb | Part of why I want to see your design is that at least half of my design felt like it "fell out of the problem", and only a few details were open for decision. | ||
masak | that way, if someone finds they'll need a dependency graph walker for something else, they can just re-use. | ||
so, in essence, it's differences in naming. | 19:38 | ||
japhb | masak: Actually, I thought that very thing, and almost did it that way! I only decided not to because I figured then you'd have a chicken and egg problem, since proto would be needed to install the dependency graph walker project .... | ||
PerlJam | btw, is there some "documentation" for create-new-project ? | ||
japhb | Of course, you can have the hard coded version in proto, and a more general one done separately. | 19:39 | |
masak | PerlJam: not really, only the things the script itself prints. | ||
PerlJam | masak: well, I run it and it asks me a question and then dies when I answer it. | ||
masak: and is it meant to be run from where ever proto lives or what? | |||
masak | japhb: yes, I'd keep the class in the proto project, and worry about dependencies when someone else needs it. | ||
japhb: I try hard not to make proto a dependency of anything vital. | 19:40 | ||
japhb | nodnod | ||
masak | PerlJam: I think so. I'd love a bug report. | ||
japhb: proto is ephemeral. it almost doesn't exist. :) | |||
PerlJam | masak: I'd like to just fix it, but I don't quite know what the intent is :) | ||
japhb | hah! And just after I get familiar with the implementation. :-) | 19:41 | |
masak | PerlJam: if you have concrete questions, feel free to ask them. :) | ||
PerlJam | masak: btw, changing from /bin/sh to /bin/bash made it run to completion (with some errors that look like a result of me trying to run it from outside the proto tree) | ||
19:42
clintongormley left
|
|||
PerlJam | masak: well, why shell and not perl (for instance)? | 19:42 | |
masak | PerlJam: that's ephemeral, too :) mberends said he'd port it to Perl as soon as he got a chance. | 19:43 | |
PerlJam | good, that's all I needed to know :) | ||
19:43
donaldh left
|
|||
masak | PerlJam: I'll change it to /bin/bash. thanks. | 19:43 | |
PerlJam | oh ... can get commit bit to proto or do you prefer patches/github forks ? | 19:44 | |
masak | PerlJam: you can get a commit bit, but I advise you to use the patches/forks system (as japhb did) whenever you think you might be in danger of adding a feature :) | 19:45 | |
japhb | masak: do you imagine a generalized graph walker operating on? I can imagine it working against a user-supplied graph object that 'does' an appropriate traversable role, and the graph walker just calls the appropriate methods as it needs to navigate, get deps lists for a node, and so on. Or it could be supplied with a series of callbacks, just like the ones that it calls when needing to fetch, build, etc. | ||
19:45
donaldh joined
|
|||
japhb | ? | 19:45 | |
PerlJam | gotcha. | ||
19:46
icwiener_ left
|
|||
PerlJam | masak: I'm perlpilot on github if you're inclined to add me :) | 19:46 | |
masak | PerlJam: I will. | ||
pmichaud | masak: DON'T DO I..... oh, I guess PerlJam is okay. :-) | ||
masak | a general warning: I might drop out at any given moment, my wifi connection is kinda weak. | ||
PerlJam | :-P | ||
japhb | Sounds like a value judgement. ;-) | 19:47 | |
masak | pmichaud: every Perl 6 project owner already has a commitbit to proto. it's working really well. :) | ||
pmichaud | masak: I was just pulling PerlJam's chain :-) | ||
PerlJam | pm: one of the few true smiley moments IRL for me today in fact :) | 19:48 | |
pmichaud | PerlJam: I'm soooo sorry to hear that. | ||
PerlJam: things there must be really bad then :) | |||
masak | pmichaud: why pull his chain? what's he done? | 19:49 | |
masak is curious | |||
pmichaud | masak: oh, he's been bugging me for over 15 years. :-) :-) | ||
19:49
icwiener joined
|
|||
PerlJam | masak: I made the mistake of taking OOP from pmichaud back in 1992. | 19:49 | |
masak | pmichaud: :D | ||
PerlJam: wow, cool. | |||
pmichaud | ....and then he came to work for me for almost 10 years | 19:50 | |
PerlJam | back when we both had considerably more hair on the tops of our heads | ||
pmichaud | ....and one could conceivably blame PerlJam for my being involved in Perl 6 in the first place :-P | 19:51 | |
PerlJam | pmichaud: did you stop by NRC3400 during your recent trip down here? Niall and James have a picture of you at your desk from the early 1990s taped to their door. | ||
pmichaud | PerlJam: I did not get a chance to do that, no. | ||
I will do so next time I'm there :-) | |||
masak | PerlJam: patched create-new-project, added you to AUTHORS, and added you as a committer to proto on github. welcome aboard. :) | 19:53 | |
japhb: you too, welcome aboard. :) | |||
PerlJam | masak: thanks. | ||
japhb | masak: thank you! | ||
masak | japhb: I'd write the graph walker for you immediately, but I feel I have to work a bit on Web.pm and prepare for being away for the weekend. you'll get it early next week instead. | 19:54 | |
japhb | masak: OK, no problem. I need to get back to hacking on HTTP::Daemon anyway. | 19:55 | |
finanalyst | what is the perl6 idiom for separating an interpolated variable from following letters in a string? eg. "$filename_old" when the variable is $filename? in perl5 it was "${filename}_old" (i think) | 19:56 | |
PerlJam | finanalyst: same for perl6 I think | ||
(though it may not work in rakudo) | |||
pmichaud | not same for p6 | 19:57 | |
masak | finanalyst: you could do "{$filename}_old" | ||
pmichaud | in p6 it's "{$filename}_old" | ||
PerlJam | oh, right. p6 has better methods | ||
finanalyst | rakudo: my $x='fn'; say "aaawwww{$x}ssss" | 19:58 | |
p6eval | rakudo 79d0b9: OUTPUT«aaawwwwfnssss» | ||
finanalyst | thanx | ||
pmichaud | rakudo: my $filename = 'foo'; say "{$filename}_old" | ||
p6eval | rakudo 79d0b9: OUTPUT«foo_old» | ||
finanalyst | so thats just a trivial variant of a code expression evaluated inside a string? | 19:59 | |
PerlJam | rakudo: my $a = "fie"; say "fee{{$a}}foe"; | ||
p6eval | rakudo 79d0b9: OUTPUT«feefiefoe» | ||
PerlJam | interesting | 20:00 | |
20:00
justatheory joined
|
|||
PerlJam | rakudo: my $a = "fie"; say "fee{$a}}foe"; | 20:02 | |
finanalyst | rakudo: my %x=<a b c>Z 1,2,3; say "{%x<a>} and {%x<b>} is {%x<c>}" | ||
p6eval | rakudo 79d0b9: OUTPUT«feefie}foe» | ||
rakudo 79d0b9: OUTPUT«1 and 2 is 3» | |||
PerlJam | even more interesting | ||
masak | finanalyst: mind you, that should also work without curly braces, but Rakudo isn't quite there yet. | ||
TimToady | exactly what I'd expect | ||
masak | yes, me too. note that I haven't submitted a rakudobug. :) | 20:03 | |
PerlJam | indeed | ||
now for the one that'll break it. :) | |||
rakudo: my $a = "fie"; say "fee{{$a}foe"; | |||
masak braces himself | |||
p6eval | rakudo 79d0b9: OUTPUT«Statement not terminated properly at line 1, near "foe\";"in Main (src/gen_setting.pm:0)» | ||
masak | PerlJam: also what I'd expect. | 20:04 | |
PerlJam | rakudo++ | ||
TimToady | std: my $a = "fie"; say "fee{{$a}foe"; | ||
13:03 * masak braces himself | |||
p6eval | std 26902: OUTPUT«##### PARSE FAILED #####Statements must be separated with semicolon at /tmp/KCjs8TDptq line 1:------> my $a = "fie"; say "fee{{$a}foe"; expecting any of: POST blockoid infix or meta-infix infix stopper postfix | ||
..postfix_prefix_meta_operator standard stopp… | |||
TimToady | o_O | ||
masak | stdbug? | ||
TimToady | no | ||
std: {$a} foo | 20:05 | ||
p6eval | std 26902: OUTPUT«##### PARSE FAILED #####Statements must be separated with semicolon at /tmp/BXTpASLIop line 1:------> {$a} foo expecting any of: infix or meta-infix infix stopper standard stopper statement statement modifier loop terminatorOther | ||
..potential difficulties: … | |||
TimToady | std: {$a}; foo | ||
p6eval | std 26902: OUTPUT«Potential difficulties: Variable $a is not predeclared at /tmp/q0A8DP9VVv line 1:------> {$a}; fooUndeclared routine: foo used at 1 ok 00:02 36m» | ||
TimToady | it's just not mindreading the programmer | ||
masak | dang, | ||
PerlJam makes a note to "use ESP" | 20:06 | ||
20:10
mizioumt1 left
|
|||
masak is enjoying mberends++' excellent sandwich toppings | 20:11 | ||
mberends: ingenious! I'm eating chocolate and learning Dutch at the same time! :) | |||
20:14
finanalyst left
20:21
Kisu left
20:22
desertm4x left,
Kisu joined,
frew|work left
20:23
mizioumt joined
20:25
[particle] left
20:36
frew|work joined
|
|||
masak | rakudo: qq[q["'flip'.flip.say".flip.say].flip.say].flip.say | 20:37 | |
p6eval | rakudo 79d0b9: OUTPUT«Syntax error at line 1, near "].flip.say"in Main (src/gen_setting.pm:0)» | ||
masak | hm. maybe []'s don't nest in qq[]'s. | 20:38 | |
rakudo: qq[q["'flip'.flip.say".flip.say\].flip.say].flip.say | |||
p6eval | rakudo 79d0b9: OUTPUT«yas.pilf.]yas.pilf."yas.pilf.'pilf'"[q» | ||
20:41
donaldh left,
donaldh joined,
amoc left
20:52
pmurias joined
|
|||
masak | rakudo: sub foo($bar:) {}; | 20:58 | |
p6eval | rakudo 79d0b9: OUTPUT«error:imcc:syntax error, unexpected IDENTIFIER ('self') in file 'EVAL_17' line 67» | ||
masak submits rakudobug | |||
21:00
iblechbot left
|
|||
Casan | rakudo: say "I will not.." x 500 | 21:02 | |
p6eval | rakudo 79d0b9: OUTPUT«I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I will not..I | ||
..will… | |||
masak | Bart Simpson, is that you? | ||
Casan | just pondering, I sort of expected the say would have a \n after each iteration, but I fear it may come after the cumulative "..."x500. but still I don't understand. | 21:03 | |
21:03
Whiteknight joined
|
|||
masak | Casan: well, the infix:<x> glues together 500 strings into one single string. | 21:04 | |
Casan | say "I am not Bart, and I won't say but" | ||
masak | Casan: there's no \n until that long string reaches the 'say' function. | ||
Casan | I was just reminded by this old thing.. www.jeffpalm.com/fox/index.html | ||
ok | 21:05 | ||
masak | if you want 500 linebreaks too, you'd go 'say "I will not.." for 1..500' or 'say "I will not.." for ^500' | ||
Casan | yeah did try the for 1.500 variant | ||
jnthn | masak: I think we already has a Rakudo bug for invocant syntax on non-methods. | 21:06 | |
Casan: Hi! How's things? | |||
masak | jnthn: ok. well, now you have at least one. :P | ||
Casan: not 1.500, that's one number. 1..500 is a range. | 21:07 | ||
jnthn | masak: I think it'll be fixed once context vars are in because then it's easier to know what kinda routine we're parsing the sig for I guess... | ||
For now it's a pain to fix. | |||
Casan | jnthn: hi! busy at school. exams and such. but I keep following parrot,rakudo,padre work on the side. want to clean up here in DK so I can move to France after summer. Lets hope summer will include a trip to Portugal. | 21:09 | |
21:09
ejs left
|
|||
Casan | masak: ahh yeah sorry, did that too, think I was a bit too lazy here on irc ;) | 21:10 | |
jnthn | Casan: Ah, nice. Hope to see you in Portugal then. :-) | ||
masak | yay, portugal! | ||
jnthn | masak: You know, all of my trips during winter were to cold places. Most of my trips in summer are to hot places. | 21:11 | |
If it'd been the other way around, I woulda got some breaks from the heat in summer and some breaks from the cold in winter... | |||
jnthn is starting to feel the summer heat | 21:12 | ||
masak | "extreme traveling". | ||
yes, it's noticeable here too. | |||
21:13
M_o_C left
|
|||
jnthn had pondered living one place for summer and one for winter, but the cost/hassle of the move was kinda a pain. | 21:14 | ||
masak | jnthn: while in .nz, I met one guy who lived like that. | 21:15 | |
jnthn: I must admit to being a bit freaked out by Easter autumn leaves. | |||
21:15
M_o_C joined
|
|||
jnthn | :-) | 21:16 | |
Casan | jnthn: well, if my project in France doesn't work out, then I am pondering taking a year out of the calendar for working and personal reflection, which could mean winter in a cheap place with snow and summer in another place with a beach :) ohh .sk and .fr comes to mind hehe. | 21:18 | |
jnthn | Casan: I'm liking .sk. | ||
Language is...fun. :-) | 21:19 | ||
Casan | same here. missed my annual in sk this year. | ||
ok time to. return dream($programming, $places); | 21:21 | ||
masak | jnthn: do function calls in return statements get turned into tailcalls in Rakudo? | 21:22 | |
jnthn | masak: nie | ||
masak | jnthn: could they? | 21:23 | |
jnthn | masak: Maybe. | ||
masak: Thing is consider | |||
sub foo returns Int { return bar() }; sub bar() { return "oh noes" } | |||
So it's not aways safe to Just Do It. | |||
masak | good point. | 21:24 | |
rakudo: sub foo($n = 1000) { return "blow the stack" if !$n; return foo($n-1) }; foo | |||
21:24
tulcod left
|
|||
jnthn | ...well that blew it. :-) | 21:25 | |
masak | it's fast on my box. :) | ||
jnthn | same | ||
wow. :-) | |||
That backtrace is, uh, maybe in need of a little pruning. ;) | 21:26 | ||
masak | jnthn: something like '(repeated x 1000)'... :) | ||
jnthn | something like that. | ||
masak | TODO rakudobug? | ||
jnthn | If it bothers you. | ||
masak | not really. but it's better having it in RT than in the back of our minds. | 21:27 | |
jnthn | rakudo: my Int @x; @x.push("fail") | ||
oh noes our eval bot is has a sad. | |||
masak | I think p6eval is a bit busy blowing the stack... :/ | 21:28 | |
Casan | rakudo: say $test; | ||
jnthn | Anyway, that type check fail doesn't say what the types were | ||
But really I want to factor out the type fail errors into some common routie. | |||
*routine | |||
masak | nod. | 21:29 | |
jnthn | Task for not too distant future perhaps. | ||
Tomorrow I hope to refactor object init/creation stuff a bit. | |||
Hopefully then we can write BUILD routines that don't die of null pmc exceptions. | 21:30 | ||
Casan | jnthn: ++ on the error with die. | ||
masak | sounds nice. | 21:31 | |
jnthn: does that include BUILD? | |||
jnthn | masak: Indeed. | ||
masak | dang. gotta write that "Rakudo is teh sux" blog post before there's nothing left to complain about. :P | ||
jnthn | :-P | ||
What, you mean you're running out of things to complain about? | |||
;-) | |||
Casan | jnthn: I was wondering if a simple "say $test"; shouldn't also do the same, instead of: Scope not found for PAST::Var '$test' in in Main (src\gen_setting.pm:3149) ? | ||
masak | jnthn: well... perhaps a slight exaggeration... | 21:32 | |
jnthn | Casan: The "in" line is epic fail, I want to get rid of that. | ||
Casan: The issue is where the scope not found error comes from. | |||
Casan | ok | 21:33 | |
jnthn | (The PAST => POST phase.) | ||
But yes, we certainly should give a line number there. | |||
It's just a bit trickier to fix for this case. | |||
PerlJam | there's already a line number ;) | ||
jnthn | PerlJam: Yeah, too bad it's ridiculously inaccurate. ;-) | 21:34 | |
Casan | jnthn: but the expected output will be something like: fileofsay$test:linenumber right? | 21:35 | |
jnthn | Yeah | ||
Casan | thnks | ||
21:36
p6eval left,
p6eval joined
21:40
[particle] joined
21:43
payload left,
meppl left
|
|||
dalek | kudo: 5ed6dac | pmichaud++ | (2 files): Use root_new opcode from parrot trunk. Bumps PARROT_REVISION. |
21:47 | |
pmichaud | fixing the "Scope not found..." error line number is on my list of easily-fixed things. | 21:49 | |
21:50
skids left
21:58
justatheory left
21:59
wknight8111 joined,
masak left
22:00
Whiteknight left
|
|||
LylePerl | rakudo: print $*CWD; | 22:05 | |
p6eval | rakudo 5ed6da: OUTPUT«Use of uninitialized value» | ||
LylePerl | rakudo: chdir; | 22:06 | |
p6eval | rakudo 5ed6da: OUTPUT«Could not find non-existent sub chdir» | ||
22:06
kate21de left
22:07
ElectricHeavyLan joined
|
|||
PerlJam | does rakudo handle multidimensional arrays yet? | 22:09 | |
rakudo: my @x; @x[0][0] = 5; | 22:10 | ||
pmichaud | limited. | ||
p6eval | rakudo 5ed6da: OUTPUT«elements() not implemented in class 'Undef'in Main (/tmp/SqWqW2y9Uv:1)» | ||
pmichaud | it's still having difficulty with autovivification of elements | ||
rakudo: my @x; x[0] = []; x[0][0] = 5; | 22:11 | ||
p6eval | rakudo 5ed6da: OUTPUT«Could not find non-existent sub x» | ||
pmichaud | rakudo: my @x; @x[0] = []; @x[0][0] = 5; | ||
p6eval | rakudo 5ed6da: ( no output ) | ||
PerlJam | okay | ||
22:12
payload joined
22:14
ispy_ left
22:16
payload left,
payload joined
22:17
payload left
22:18
payload joined
22:20
payload left
22:26
nihiliad left
|
|||
pmichaud | std: say $x; | 22:26 | |
p6eval | std 26902: OUTPUT«Potential difficulties: Variable $x is not predeclared at /tmp/jL0eN2OE3r line 1:------> say $x;ok 00:02 36m» | ||
PerlJam wishes rakudo's "Use of uninitialized value" message came with a line number and perhaps a variable name | 22:31 | ||
22:34
gbacon left
22:35
mizioumt left
|
|||
pmichaud | line number should be doable | 22:36 | |
we just need to check the annotations in effect at the point of generating the message | 22:37 | ||
See the "!throw_unhandled" method in src/classes/Failure.pir:84 | 22:38 | ||
add code there to check for whatever dynamic annotations are in effect and report those as a backtrace | |||
(there should be a routine somewhere already to do that last part) | |||
(it would be whatever jnthn++ added) | 22:39 | ||
unless/until we attach variable names as properties on their containers; displaying a variable name might be a bit more difficult | 22:40 | ||
in particular, the variable that "say" sees when it stringifies its argument(s) probably won't be the one the caller used to when calling say() | 22:41 | ||
s/to when/when/ | |||
gist.github.com/115794 # better? | 22:43 | ||
jnthn | Yes, giving line number with warnings shouldn't be hard. | ||
pmichaud: ftw! | 22:44 | ||
pmichaud | $ ./perl6 | ||
> say $x | |||
Symbol '$x' not predeclared in <anonymous> | |||
in Main (src/gen_setting.pm:3166) | |||
lambdabot | Not in scope: `say' | ||
jnthn | pmichaud: I plan to clear up that last line. | ||
22:44
bacek joined
|
|||
jnthn | (As in, not show it...) | 22:44 | |
pmichaud | jnthn: I clearly leave it up to you to clear up that last line. :-) | ||
jnthn | ;-) | 22:45 | |
pmichaud | well, after moving PGE to use root_new instead of new we get about half of our performance back. | ||
22:45
Kisu left
|
|||
jnthn | pmichaud: Yes, I ran the benchmarks in tools dir and noticed that. :-) | 22:45 | |
22:46
Kisu joined
22:47
frew|wor1 joined
|
|||
pmichaud | there are still several places (NQP, others) that need to be adjusted. | 22:48 | |
I might see if I can adjust PCT/NQP to avoid the extra "find_lex" and testing for null when it's clear we don't need them. | 22:49 | ||
22:50
frew|work left
|
|||
jnthn | find_lex is quite the throwing-away-stuff-we-statically-know fail. | 22:50 | |
22:50
meppl joined
|
|||
pmichaud | the problem is that in some languages we can't know if the lexical has actually been instantiated yet | 22:51 | |
jnthn | What do you mean by "instantiated" in this case? | 22:52 | |
For languages that add stuff to their lexpad at runtime rather than statically knowing their symbols? | |||
22:53
Chillance left,
Chillance joined
|
|||
pmichaud | there's a difference between "NULL" and "Undef" | 22:53 | |
i.e., it's the difference between 'exists' and 'defined' | 22:54 | ||
so, a subroutine might have a lexical declared, but the lexical doesn't actually exist until someone assigns a value to it. | |||
in such cases we have to explicitly check for the possibility of find_lex returning a Null PMC | |||
and potentially auto-vivifying at that point, or returning an Undef | 22:55 | ||
(or some other default) | |||
jnthn | My point was more about the process of finding the lexical. | ||
pmichaud | oh, that part | ||
22:55
pmurias left
|
|||
pmichaud | yes, there are optimizations to potentially be had there also. | 22:55 | |
jnthn | We statically know that a lexical is n blocks down in most cases. | ||
Instead, we do n hash lookups. | |||
At each block. | |||
pmichaud | it also be nice if once we did a find_lex we could re-use the register instead of repeatedly finding it again later. | 22:56 | |
(but we have to be careful of potential rebinding) | |||
gotta go finish planting a tree -- bbl | 22:57 | ||
jnthn | And given a hash lookup is a call on a vtable method, which in turn is a call to something in Parrot's hash implementation, which I think then calls something else in the process of getting an answer... | ||
We could potentially save quite a lot by just following n pointers. :-) | |||
22:57
edenc left,
edenc joined
22:58
BinGOs left,
wayland76 joined
23:03
Bucciarati left,
Bucciarati joined,
kst` left,
kst` joined
|
|||
pmichaud | or, even better, in a given context, remember the location of the lexical we just looked up | 23:03 | |
since it's not likely to change for that context, unless we do a "set_outer" | 23:04 | ||
actually, I guess statically determining it would work also | |||
each Sub PMC could keep track of it, though | 23:05 | ||
and a "set_outer" would clear the cached | 23:06 | ||
jnthn | Aye, I'm not sure what the best implementation is. | ||
pmichaud | I like the idea of Sub PMCs keeping track of it. | ||
jnthn | Cache always adds memory overhead of course. | ||
Yeah, same. | |||
pmichaud | This is a pretty small overhead. | ||
Anyway, I might be able to do something with it when we review lexical handling (e.g., the prototype lexpads we discussed at NPW) | 23:07 | ||
jnthn | *nod* | ||
BTW, I suspect I'm going to follow (or beat ;-)) your lead on that front for object creation. | |||
So we'll have an instance that we clone each time when creating a new one. | 23:08 | ||
Or at least instance storage unit. | |||
That'll get traits right for one. | |||
But also, means that BUILD isn't doing all of the figuring out the containers stuff. | 23:09 | ||
And also that overriding BUILD will work. | |||
pmichaud | I totally agree with that approach | ||
jnthn | I hoped you would. :-) | 23:10 | |
pmichaud | in some sense the protoobject should be the instance that we clone each time | ||
jnthn | yay and nay | ||
pmichaud | right, we don't want the protoobject-specific characteristics | ||
jnthn | Remember that the proto doesn't have instane storage. | ||
pmichaud | it doesn't? you mean conceptually, or really? | ||
jnthn | Conceptually for sure. | 23:11 | |
I'm pondering making it a "really" though. | |||
But cloning also doesn't feel right to me on another angle. | |||
pmichaud | that feels wrongish. | ||
jnthn | We need to be able to clone a type-object and have it stay a type object. | ||
(Think Dog{ :name<Spot> } | |||
) | |||
pmichaud | sure, cloning a type object doesn't cause me difficulty either | ||
last this was discussed, we were looking at having a "bit" that indicates whether something is an instance or a type object | 23:12 | ||
accessors would only be defined for the objects that have the "I am an instance" bit | |||
jnthn | We can do it like that too. | 23:13 | |
pmichaud | cloning a protoobject doesn't make it an instance, but calling BUILD on it does | ||
jnthn | What I was really hoping for though... | ||
pmichaud | or, instead of cloning the entire protoobject, we just clone the attributes | ||
jnthn | ...is to manage instantiation through the instantiate VTABLE. | ||
pmichaud | we do have to be careful of people overriding 'clone', too :-) | ||
jnthn | Which I think would put us in a better interop position. | 23:14 | |
With other Parrot stuff. | |||
pmichaud | I'm fine with looking at it through instantiate VTABLE | ||
jnthn | Anyway, lots of things to balance up. | ||
pmichaud | that makes a lot of sense to me. In some sense instantiate VTABLE does the CREATE/BUILDALL/BUILD sequence, I guess. | 23:15 | |
jnthn | I'm kinda scared of attempting One Big Refactor in any sense. | ||
pmichaud | agreed, for the things where we can avoid it. | ||
jnthn | So am more planning baby steps towards where I want to go. | ||
pmichaud | +1 | ||
jnthn | Even if they mean that temporarily we have a few hacks that get cleaned up later, getting to know what conceptually is going to work out will be a big help. | 23:16 | |
pmichaud | Agreed. | ||
jnthn | (Where later = they should all be gone by the time I'm done with the grant, of course.) | 23:17 | |
23:18
exodist left
23:20
donaldh left,
donaldh joined
23:21
bacek left,
BinGOs joined
23:24
M_o_C left
23:25
bacek joined
23:26
skids joined
23:29
[particle] left
23:43
jferrero left
23:46
icwiener left
23:51
c9s left
23:56
vxnick joined
23:57
fridim_ left
|