|
»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moderator on 10 October 2009. |
|||
|
00:21
lumi joined
00:24
muixirt_ joined
00:29
kst joined
00:41
Whiteknight joined
01:03
envi^home joined
01:08
lumi joined
01:14
dj_goku joined
|
|||
| pugs_svn | r28813 | colomon++ | [t/spec] Further expand the workout.t overloaded operators tests. Unfortunately, most of the new tests need to be skipped. | 01:26 | |
|
01:35
orafu joined
01:43
lumi joined
01:53
jaldhar joined
02:08
ssm joined
02:56
drbean joined
02:57
eternaleye joined
03:08
tak11 joined
|
|||
| TimToady | std: sub foo($a where { $b > $a }, $b) {} | 03:39 | |
| p6eval | std 28813: OUTPUT«Potential difficulties: Variable $b is not predeclared at /tmp/k1xtw9UBDl line 1:------> [32msub foo($a where { $b[33m⏏[31m > $a }, $b) {}[0mok 00:01 110m» | ||
|
03:44
kst joined
03:54
TiMBuS joined
03:58
drbean_ joined
04:15
jaldhar joined
04:17
Minthe joined
04:33
tak11 joined
|
|||
| dalek | p-rx: cafd369 | pmichaud++ | src/stage0/P6 (2 files): Update stage-0 compilers. |
04:49 | |
| p-rx: 239e497 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to get better subids. |
|||
| p-rx: 4dabcc0 | pmichaud++ | build/Makefile.in: Add exe targets to Makefile. |
|||
| p-rx: 180f18e | pmichaud++ | src/Regex/P6Regex/Grammar.pm: Regexes no longer need explicit action tokens at the end. |
|||
| p-rx: 73205a0 | pmichaud++ | src/Regex/P6Grammar/Grammar.pm: Regexes no longer need explicit action markers at the end. |
|||
|
04:54
quietfanatic joined
04:59
kst joined
05:10
_jaldhar joined
05:27
rdice joined
05:30
mberends joined
05:33
drbean joined
05:39
drbean__ joined
|
|||
| dalek | p-rx: 5699969 | pmichaud++ | build/Makefile.in: Clean up Makefile a bit. |
05:40 | |
| p-rx: af458ca | pmichaud++ | src/Regex/P6Grammar/ (2 files): Add parsing of proto regex statements to P6Grammar. |
|||
| p-rx: 9b7739d | pmichaud++ | src/Regex/P6Grammar/Actions.pm: Oops, protoregex method should be !protoregex. |
|||
| p-rx: 2408264 | pmichaud++ | src/ (4 files): Eliminate protoregex cheats for P6Regex, place directly in grammar. |
|||
| mberends | oh hai pmichaud | 05:41 | |
|
05:46
infrared_ joined
05:50
rdice joined
05:58
zloyrusskiy joined
06:18
kst joined
06:25
maschla joined
06:27
Confield left
06:39
synth joined
06:53
drbean joined
07:03
[synth] joined
07:22
avuserow joined
07:29
agentzh joined
07:36
cahek joined
|
|||
| eternaleye | pmichaud++ # Shiny new NQP | 07:58 | |
|
08:01
kst joined
08:03
Su-Shee joined
|
|||
| Su-Shee | good morning. | 08:03 | |
| mberends | hi Su-Shee, did you ever find any other graphical libraries that worked with Parrot, apart from Enlightenment demo'd by Tene++ ? | 08:08 | |
|
08:11
NorwayGeek joined
|
|||
| Su-Shee | mberends: no, not yet. haven't looked for a few weeks though. | 08:12 | |
| mberends: sadly, the list to bind libs to parrot is rather long. | 08:13 | ||
| the list of libs to bind. | |||
|
08:15
infrared joined
08:41
JimmyZ joined
08:44
zloyrusskiy joined
|
|||
| pugs_svn | r28814 | colomon++ | [t/spec] Add tests for [-] and [T-], which uncover a troubling bug: If you run the prior [T+] case, that test passes but the [-] test fails. If you don't run the [T+] test, the [-] test passes. | 09:15 | |
| colomon | if someone out there has a notion how to approach looking at this bug, I'd love to hear it... | 09:16 | |
|
09:17
lumi joined
09:24
iblechbot joined
09:31
kst joined
|
|||
| mberends tries to grok diakopter++'s sophisticated JavaScript code in sprixel by reading www.ecma-international.org/publicat...ma-262.pdf | 10:30 | ||
|
10:31
resu joined
|
|||
| resu | Is november-wiki.org/ an "official" perl6 project? | 10:32 | |
| mberends | resu: no, the word "official" is almost never used for anything Perl 6, except for the Specifications and Test Suite. | 10:35 | |
| the perl6 project has used november-wiki.org/ as the first and largest example of an application written in Perl 6, resulting in much feedback to the Rakudo and Parrot implementors. | 10:38 | ||
|
10:39
edgar joined
|
|||
| edgar | hello,now,who use perl catalyst | 10:40 | |
| ? | |||
| if,can email me:ariimood@gmail.com | 10:41 | ||
| thanks | |||
| resu | To bad then that november-wiki seems to be down now. | 10:43 | |
| I'll bet edgar won't get his mailbox filled. | 10:44 | ||
| mberends | resu: no, he won't. The host of the november-wiki domain is known to be down quite a bit lately. :( | 10:45 | |
|
10:51
muixirt joined
10:52
NorwayGeek joined
|
|||
| muixirt | good morning | 10:53 | |
| mberends | muixirt: it's quiet here, as usual early on a sunday | 11:00 | |
| muixirt | ok, no problem :-) | 11:01 | |
|
11:13
masak joined
|
|||
| masak | greetings, #perl6ers. | 11:13 | |
| muixirt | \\o | 11:14 | |
| colomon | o/ | 11:16 | |
|
11:16
pmurias joined
|
|||
| mberends | \\o masak | 11:20 | |
| masak | mberends o/ | ||
| today is a perfect day for some Perl 6 coding. | 11:21 | ||
| colomon is remembering how according to our coach, every day was a great day for football... | 11:23 | ||
| masak | rt.perl.org/rt3//Public/Bug/Display...l?id=63724 | 11:27 | |
| I believe the second test added is not-quite-right. | |||
|
11:27
[[synth]] joined
|
|||
| masak | it checks for a comma, but according to pmichaud's comment, it could be either a comma or just a backslash. | 11:27 | |
|
11:29
kst joined
|
|||
| colomon | is the purpose of the comma or backslash to turn it into a list? | 11:33 | |
|
11:33
xinming_ joined
|
|||
| masak | the purpose of the comma is to turn it into a list. the purpose of the backslash is to turn it into a capture. | 11:34 | |
| colomon | does the capture then turn into a list? | 11:35 | |
| masak | no, it turns into a .perl string. | 11:36 | |
| or emits one, at any rate. | |||
|
11:37
Whiteknight joined
|
|||
| mberends must work offline for a few hours | 11:38 | ||
| masak | what an appropriate quitting message. :) | ||
| colomon | masak: I thought the point here was that (1,).perl could equal \\(1)? | 11:39 | |
.oO(Is mberends a bot too?) |
11:40 | ||
| masak | colomon: not sure they do. but they're at least similar enough that both are appropriate as .perlifications of each other. | ||
| colomon | I guess I'm kind of confused about the purpose of the test, too? | 11:42 | |
| seems like it is testing what (1,).perl looks like, which I'm guessing is not covered by the spec? | 11:44 | ||
| the goal appears to be to make sure that rakudo isn't returning [] there? | |||
| Ah, now I can type properly. | 12:00 | ||
| What I mean is, the .perl spec is | |||
| "Returns a perlish representation of the object, so that calling eval on the returned string reproduces the object as accurately as possible." | |||
| masak | right. | 12:01 | |
| which leaves several degrees of freedom for implementations. | |||
| colomon | Presumably the .perl string is supposed to be platform independent? | ||
| masak | no. | ||
| colomon | eh? | ||
| masak | er, I mean, the only constraint on it is what you just quoted. | 12:02 | |
| colomon specifically meant "perl implementation independent"... | |||
| masak | beyond that, it may differ from implementation to implementation, or even from invocation to invocation. | ||
| huf | so it should say "calling eval in the same process"? | 12:03 | |
| jnthn | o/ | ||
| masak | Bool.pick() ?? '(1,)' !! '\\(1) | ||
| ' | |||
| jnthn: \\o | |||
| colomon | masak: so if I write the string out to a file, there's no guarantee that the same script restarted will be able to make sense of it? | 12:04 | |
| masak | well, yes. | ||
| because the degrees of freedom disappear when running eval on the string. | |||
| jnthn | In general, I'd imagine the thing that gets spat out should be feedable to eval. | 12:05 | |
| To get the right kind of thing back again. | |||
| pmurias | it might not be always possible | ||
| jnthn | The obvious problem you're going to run into is if you're holding references to resources. | ||
| e.g. if you try to .perl a file handle, that's really not going to work out too well. | 12:06 | ||
| masak | there's no good solution to that anyway. | ||
| no good general solution, I mean. | |||
| colomon | right. | ||
|
12:06
meppl joined
|
|||
| colomon | I'm wondering about the small cases here, though, that definitely should be serializable. Like a list of Ints. | 12:06 | |
| jnthn | I'd expect a list of ints not to be a problem. | 12:07 | |
| pmurias | and evaling stuff is a potential security/performance risk | ||
| masak | as always. | ||
| jnthn | The only thing that trips people up with .perl and lists is remembering that .perl considers the thing in scalar context. | ||
|
12:07
zamolxes joined
|
|||
| colomon | I'm specifically looking at the thing masak posted the link to, rt.perl.org/rt3//Public/Bug/Display...l?id=63724 | 12:10 | |
| the new tests test that (1,2,3).perl returns something with parans and a comma. | |||
| s/parans/parens/ | 12:11 | ||
| I'm trying to understand why (if?) that makes sense as a test. | |||
| masak | my thesis is that the second test is too strict. | 12:12 | |
| because it might as well (as pmichaud points out in the OP of the ticket) be a backslash as a comma. | 12:13 | ||
|
12:13
NorwayGeek joined
|
|||
| jnthn | Aye. | 12:14 | |
| colomon | right. but my thesis is it is too strict because it requires ( and ). Or possibly not strict enough because it doesn't test against other things in the string. | ||
| jnthn | It should probably have all of 1, 2 and 3 in there somewhere. ;-) | ||
| masak | heh :) | 12:15 | |
| colomon | Why? | ||
| (1, 1+1, 1+1+1) | |||
| or better yet 1...3 | |||
| jnthn | colomon: Because while we Rakudo devs may be maoschistic, we're also lazy. :-) | 12:16 | |
| masak | and while we're at it, those .* thingies make me want to rewrite them as <-[,]>* or something. | ||
| jnthn | colomon: I mean, sure, those would work but...they're silly. | ||
| ;-) | |||
| masak | it's a small string, but still. no need to waste CPU resources. | ||
|
12:17
jferrero joined
|
|||
| colomon | I'm not encouraging Rakudo to change, I'm just thinking it's rude to encode Rakudo's behavior into the test suite. | 12:18 | |
| jnthn | Yeah, testing .perl output is a tricky one. | 12:20 | |
| I guess "does it round-trip with eval" may be a good approach. | |||
| masak | nod. | ||
| we're not really interested in the actual output of .perl | 12:21 | ||
| only whether it round-trips. | |||
| jnthn | I think that approach eliminates a lot of problems with testing it. :-) | 12:22 | |
| colomon | :) | 12:23 | |
| My impression is the ok $dehydrated ~~ / '(' .* ',' .* ')' / test is actually meant to test that Rakudo isn't returning square brackets there, right? | 12:25 | ||
| masak | judging from the history of that ticket, yes. | 12:26 | |
| colomon | Do things like that make sense to put in the general test suite? | 12:27 | |
|
12:27
rdice joined
|
|||
| masak | what things? the actual test, or the thing it intended to test? | 12:28 | |
| colomon | Tests for behavior we don't want Rakudo doing, but which in theory are legal Perl 6. :) | 12:30 | |
| masak | no. it does not make sense. | 12:31 | |
| jnthn | masak: resig2 (note the 2 - ignore resig) is down to just 3 test files with issues so far as I can see. | 12:35 | |
| masak: The only one you're likely to hit is if you have code that uses .wrap, since it's bizzarely broken. | |||
| masak: Other than that, you should find that things generally work. | 12:36 | ||
| masak | I don't hink I do. | ||
| ok, I'll give resig2 a whirl. | |||
| jnthn | OK. I need to re-arrange the way it builds, so you may have build issues. | ||
| masak | if I do, I'll let you know. | 12:37 | |
| jnthn | (Going to link the binder code into the PMC...) | ||
|
12:38
NorwayGeek joined
|
|||
| masak | I'm starting by running the tests in November and Druid, as a sort of control group. | 12:42 | |
| proto doesn't have any tests. | 12:43 | ||
| but I can run a few commands and see that it works. | 12:44 | ||
| jnthn | *nod* | 12:46 | |
| masak | a few failures in November (control group). I've known about them for a long time, since I get nightly smokes of it, but I seem to have some sort of mental block against taking care of them. | 12:48 | |
| jnthn | Aye. | 12:49 | |
| I don't promise that resig2 will magically fix all of your tests. :-P | |||
| masak | heh :) | ||
| done. two test failures each in one file, and two files which died before the first test. | 12:50 | ||
| now checking out and building resig2. | |||
| colomon | Any ideas why isa_ok( eval Rat.new(1, 3).perl, Rat, 'eval Rat.new.perl is Rat' ); gets No applicable candidates found to dispatch to for 'isa_ok' ? | 12:51 | |
| jnthn | colomon: You passed all three parameters to eval, and only one string parameter to isa_ok | 12:52 | |
| erm | |||
| I mean, only the return of eval to isa_ok | |||
| colomon | d'oh! | ||
| jnthn | isa_ok( eval(Rat.new(1, 3).perl), Rat, 'eval...') | 12:53 | |
| masak | ...been there, done that... :) | ||
| jnthn: src/binder/bind.ar: No such file or directory | |||
| colomon | I was modeling my test on an existing test that was skipped -- and apparently wrong. :) | 12:54 | |
| jnthn | masak: hah | ||
| masak: Yes, that's exactly the reason I need to change the way the build works. :-/ | 12:55 | ||
| masak | ok. | ||
| jnthn hates such things | |||
| masak | I'm unable to go further at this point. | ||
| jnthn | Aye, I feared you may hit that issue. | ||
| masak | I'm glad I hit that issue in a branch, and not in trunk. | 12:56 | |
| s/trunk/master/ | |||
| jnthn | I guess I could try and work out how to fix this approach, but it's not worth the pain. | ||
| masak | that's entirely up to you. | ||
| jnthn | (Basically, instead of building the binder in a separate library, we'll build it as part of the dynpmcs library, and then do *mumble* to make the dynops able to call it.) | 12:57 | |
| masak | :) | 12:58 | |
| pugs_svn | r28815 | colomon++ | [t/spec] Added four new tests for Rat.perl, and fixed up a syntax error in the (skipped) existing one. | ||
|
12:59
desertm4x joined
13:00
payload joined
|
|||
| jnthn | masak: I'll do that when I've nommed lunch, and with look you can do some testing while I go and do my Slovak homework. ;-) | 13:02 | |
| masak | deal. | ||
|
13:06
kst joined
|
|||
| pugs_svn | r28816 | colomon++ | [t/spec] Add tests for Complex.perl. | 13:17 | |
| colomon | Looking at int.t now... is, say, 21 guaranteed to be an Int? | 13:28 | |
| rakudo: say 1.WHAT; | |||
| p6eval | rakudo 24ebf3: OUTPUT«Int()» | ||
| masak | colomon: I'd say yes. | 13:29 | |
| colomon | I'm not sure anything tests for that right now. | ||
| masak | the literal 21 always has the type Int. | ||
| jnthn | Aye. I dobut anything more Interesting could happen to it. | ||
| colomon | ah, maybe in S02-builtin / num.t | 13:30 | |
| jnthn: arrrrrrrrggggghhhhh.... | |||
| I guess we sort of test that: my $a = 1; isa_ok($a, Int); | 13:31 | ||
| also -1, but interestingly, we don't test 0. : | |||
| :) | 13:32 | ||
|
13:36
Confield joined
|
|||
| colomon | rakudo: say -12.perl; | 13:39 | |
| p6eval | rakudo 24ebf3: OUTPUT«-12» | ||
| colomon | rakudo: say eval(-12.perl) | 13:40 | |
| p6eval | rakudo 24ebf3: OUTPUT«Parameter type check failed on call to 'eval'.in Main (file <unknown>, line <unknown>)» | ||
| jnthn | ...huh.. | 13:41 | |
| colomon | yeah, exactly. | ||
| rakudo: say eval("-12"); | |||
| p6eval | rakudo 24ebf3: OUTPUT«-12» | ||
| colomon | std: say eval(-12.perl) | ||
| p6eval | std 28816: OUTPUT«ok 00:02 110m» | ||
| masak | STD.pm only checks compile-time issues. | 13:42 | |
| not things like types and binding. | |||
| colomon | masak: sure, I was just wondering if there might be something subtle I didn't understand. | 13:43 | |
| (in this particular case, as I know that in general there is a universe of subtle I don't understand.) | |||
| rakudo: say eval((-12).perl) | |||
| p6eval | rakudo 24ebf3: OUTPUT«-12» | ||
| masak | that would be it. :) | 13:44 | |
| method-dot binds tighter than unary minus. | |||
| jnthn | oh! | 13:45 | |
| colomon | but why does say -12.perl make sense, then? | ||
| wouldn't it be say -"12"? | |||
| rakudo: say -"12" | 13:46 | ||
| p6eval | rakudo 24ebf3: OUTPUT«-12» | ||
| masak | :) | ||
| jnthn | colomon: - coerces "12" to something numeric. | ||
| masak | colomon: this is Perl. | ||
| colomon | oh | ||
| jnthn | Thing is, the result is numeric. | ||
| And eval wants a Str. | |||
| masak | Perl does What You Mean. so even if you pass unary minus a Str, it understands what to do. | ||
| colomon | okay, that makes sense. time to add ()s all around. | ||
| pugs_svn | r28817 | colomon++ | [t/spec] Tests for Int.perl. | 13:48 | |
| jnthn | masak: I'm into the build fix. :-) | 13:53 | |
| colomon | rakudo: say 1.Num.perl | ||
| p6eval | rakudo 24ebf3: OUTPUT«1» | ||
| colomon | So, that's a bug, isn't it? | 13:54 | |
| say eval(1.Num.perl).WHAT | |||
| rakudo: say eval(1.Num.perl).WHAT | |||
| p6eval | rakudo 24ebf3: OUTPUT«Int()» | ||
| colomon appear to have crashed Finder (?) on OS X, which is weird and awkward... | 13:56 | ||
| colomon but it got better, hmmm. | 13:57 | ||
| jnthn | but...but...OS X is teh perfect, no? | 13:58 | |
| masak | jnthn: cool. I'm presently investigating what I think is an rw bug I found yesterday. | ||
| colomon | jnthn: nah, OS X is just the ass-kicking. | ||
| I'm blaming this one on iTunes... | 13:59 | ||
|
14:02
ejs joined
|
|||
| jnthn is sure it won't stop masak writing to RT ;-) | 14:04 | ||
| colomon | nothing can stop that. | ||
| masak | :) | 14:05 | |
| colomon | wow, S02-builtin_data_types/num.t tests seem kind of dodgy | ||
| or at least, the comments are worse than the norm | 14:06 | ||
|
14:06
Psyche^ joined
|
|||
| colomon | ah, just a set of awkwardly labeled tests. | 14:06 | |
| jnthn | masak: OK, think I'm done...checking it survives the sanity tests, though really if I've screwed this up it really shouldn't even start up. | 14:07 | |
| masak | jnthn: trying. | 14:08 | |
| jnthn | masak: ok, just pushed. | 14:09 | |
| masak: make spectest results (minus any failures you see in master, if any) would also be of interest, provided it builds. | 14:10 | ||
| masak | understood. | 14:11 | |
| jnthn | (And yes, I did have to go and look up the C function pointer syntax. Like very damm time I use them. ;-)) | ||
| masak | in the meantime, you might want to update .gitignore to ignore src/binder/bind.bundle src/binder/bind.o | ||
| jnthn | masak: where's that found? | ||
| oh, found it | 14:12 | ||
| masak | nothing like a clean 'git status'. | ||
| jnthn | hmm. may add a few other things too | 14:13 | |
| masak: I'm curious, what in this .gitignore is keeping *.o files in src/pmc/ appearing in git status? | 14:14 | ||
| masak | jnthn: nothing in that one, but *.o in src/pmc/ | 14:15 | |
| er, src/pmc/.gitignore | |||
| jnthn | ah | 14:16 | |
| masak | git++ | ||
| build went fine. | |||
| colomon | \\o/ | 14:17 | |
| masak | now for testing the cheese. | ||
|
14:18
frew joined
|
|||
| jnthn | mmm...cheese | 14:18 | |
| masak | proto seems to work fine. | 14:19 | |
| colomon | cheese? my rakudo doesn't have cheese.... :( | ||
| jnthn | masak: Added them, and also a bunch of other things that make git status on Win32 rather cleaner. | ||
| masak | jnthn++ | ||
| jnthn | colomon: You must live in a country not in sufficient proximity to Switzerland. Sorry. | ||
| colomon | jnthn: :( | 14:20 | |
| jnthn | europe++ ;-) | ||
| jnthn is a - albeit rather long - train ride from Switzerland now. :-) | 14:21 | ||
| masak | Druid runs fine and passes all tests. | 14:22 | |
| jnthn | \\o/ | ||
.oO( screw .wrap...let's merge! ) |
|||
| masak | now we're only waiting to hear from November. | ||
| colomon has to admit he prefers British, French, Italian, and Boerenkaas... Even the best American cheese he's had is lacking | |||
| jnthn wonders id Druid has any measurable performance increase. | |||
| *if | 14:23 | ||
| masak | jnthn: you, know I actually think so. want me to go back and actually measure later? | ||
| s/, know/ know, / | |||
| jnthn | masak: I'd be curious. I know tools/benchmark.pl looks better. | 14:24 | |
| masak: But they're microbenchmarks, not really apps. | |||
| masak | it would be interesting. | ||
| jnthn | masak: Of course, this does nothing to improve parsing speed, just runtime. | ||
| masak | November is reporting something. | ||
| jnthn | Heh, I figured the cheese would have some holes. :-/ | 14:25 | |
| masak | I don't recall seeing 'Too many positional parameters passed' last time around. | ||
| colomon | I'm curious how the spectests' run time will be affected. | ||
| masak | might be November that's doing something naughty, of course. | ||
| jnthn | masak: That is *the* error message that has shown up in most cases where I've needed to fix spectests. | 14:26 | |
| pugs_svn | r28818 | colomon++ | [t/spec] Test Num.perl. Who'd have thought that 1.0.perl wouldn't work in Rakudo? | ||
| masak | well, I might just have one more case for you, then. | ||
| jnthn | masak: I'm quite open to it being a bug too, of course. | ||
| masak: One other thing I need to do is improve the errors. They're really crap right now. | 14:27 | ||
| It's a couple of hours work, so won't cause much delay. | |||
| masak | I'll make sure to help with the RT part of that. :P | ||
| jnthn | Oh, I plan to do it before the merge. | ||
| I don't want people's firt impresison of this to be "gah, it just got harder to debug" :-) | |||
| masak | :) | 14:28 | |
| sounds wise. | |||
| jnthn | btw, on performance, there's still loads of possible optimizations to go yet. | ||
| colomon | bummer, I was hoping to get the merge this morning. ;) | ||
| jnthn | Any wins so far are just out of better overall architecture. | ||
| masak: Slovak homework calls. I'll be back in a little bit. | 14:29 | ||
| colomon | masak: any hints on searching RT for issues? I find the interface so hideous I assume I must be doing something wrong.... | 14:30 | |
| masak | jnthn: I think November is the one who's wrong here. I'm looking at it and not seeing how it could ever have worked... | ||
| jnthn: so green light from the cheese! \\o/ | |||
| colomon: I use the interface sometimes. it's hideous, but it works. kinda. | |||
| colomon: when I can't get it to work, I search my Gmail. | 14:31 | ||
| colomon | Ha! If only I had all the bug reports in my Gmail... | ||
| carlin | all my mwbot tests pass on resig :-) | ||
| masak | carlin++ # cheese contributor | 14:32 | |
| the strange rw bug I was in the middle of tracking down persists on resig2. :P | |||
|
14:39
zloyrusskiy joined
14:40
Kodi joined
|
|||
| Kodi | rakudo: repeat {say 'body';} while (say 'condition'; 0); | 14:40 | |
| p6eval | rakudo 24ebf3: OUTPUT«bodycondition» | ||
| Kodi | repeat say 'body' while (say 'condition'; 0); | 14:41 | |
| rakudo: repeat say 'body' while (say 'condition'; 0); | |||
| p6eval | rakudo 24ebf3: OUTPUT«condition» | ||
| masak | Kodi: that latter one probably doesn't mean what you think it does. | 14:42 | |
| Kodi | What does it mean? The spec doesn't seem to say anything about using repeat as a statement modifier. | ||
| masak | Kodi: 'repeat' is taken as a function call, but it never gets called. | ||
| Kodi | So it gets interperted as a function just because it's in an illegal position for the loop keyword? | 14:43 | |
| masak | more like because it's not followed by a block. | ||
|
14:44
kst joined
|
|||
| Kodi | Very well. It's surprising, but I suppose one doesn't need "repeat ... while" very much as a statement modifier anyway. Thanks. | 14:44 | |
|
14:44
icwiener joined
|
|||
| masak | I'm not sure I see the difference between 'repeate A while B' and just 'A while B'. | 14:47 | |
| is it that A is executed at least once in the former case? | |||
| s/repeate/repeat/ | |||
| Kodi | Right. That's what I'd think. | ||
| carlin | Nice, a couple of bugs I've reported are gone in resig | 14:51 | |
|
14:53
payload1 joined
|
|||
| masak | perl6: class A { has $.a; }; my $a = A.new(:$a); say $a.a.perl | 14:57 | |
| p6eval | pugs: OUTPUT«\\undef» | ||
| ..rakudo 24ebf3: OUTPUT«undef» | |||
| ..elf 28818: OUTPUT«Unknown rule: colonpair__varnameIt needs to be added to ast_handlers. at ./elf_h line 2850» | |||
|
15:01
Kodi left
15:11
am0c joined
15:12
nihiliad joined
15:15
desertm4x joined
|
|||
| masak | right then. | 15:15 | |
| rakudo: class A { has @!b; method c($x) { @!b.push($x) }; method d($i) { @!b[$i] } }; class E { has $!f = A.new; method push($x) { $!f.c($x); }; method postcircumfix:<[ ]>($i) { $!f.d($i) } }; my $m = E.new(); $m.push(5); $m[0] = 42; | |||
| p6eval | rakudo 24ebf3: OUTPUT«Cannot assign to readonly variable.in Main (file <unknown>, line <unknown>)» | ||
| masak | could someone explain to me what it is I cannot assign to, and why? | 15:16 | |
| yes, this is possibly the most complicated bug I've found, ever. | |||
| shall I give a walkthrough? | |||
| fine, I'll give a walkthrough. | 15:17 | ||
| class A shouldn't be needed. it's there because of another rakudobug which prevents .[] from being used inside a postcircumfix:<[ ]> method. | |||
|
15:17
Ptn| joined
|
|||
| masak | so, thinking away class A, what's really there is class E pretending to be an object which does .push and .[] | 15:18 | |
| much like an Array would. | |||
| so we create a new such object, push 5 to it, and then try to change the first element of the object to 42. | 15:19 | ||
| essentially, it should be equivalent to this: | |||
| rakudo: my @a; @a.push(5); @a[0] = 42; say @a.perl | |||
| p6eval | rakudo 24ebf3: OUTPUT«[42]» | ||
| masak | which doesn't blow up. | 15:20 | |
|
15:33
s1n left
15:34
jan_ joined
|
|||
| pmichaud | I think I might be able to (quickly) fix the postcircumfix:[] bug. | 15:35 | |
|
15:36
ejs joined
|
|||
| masak | the one making class A necessary? | 15:41 | |
| that's all very well, but what about the above error? is it a rakudobug? or am I missing something about the readonlyness of things? | 15:44 | ||
|
15:44
zloyrusskiy joined
15:52
jan_ joined
|
|||
| pmichaud | I | 15:53 | |
| I'm thinking it's the push bug | |||
| (Unless that one has been fixed) | |||
| jnthn | back | ||
| pmichaud | oh, maybe not | ||
| hmmm | |||
| masak | I don't recognize the push bug in it. | 15:54 | |
| I mean, the push bug never told me something was readonly. | |||
| jnthn | masak: Thanks for the testing! | ||
| masak: And relieved by the outcome. | |||
| pmichaud | yes, but were you ever pushing a readonly item? | ||
| masak | jnthn: you're welcome, and good luck! | ||
| pmichaud | method c($x) { @!b.push($x) }; | 15:55 | |
| jnthn | masak: Did you do a make spectest run, btw? | ||
| pmichaud | $x is a readonly reference to a value, there | ||
| masak | jnthn: no. I'll do that now. | ||
| pmichaud | so what gets pushed onto @!b is the readonly reference | ||
| which means that attempting to modify that reference fails | |||
| masak | pmichaud: that sounds reasonable. | ||
| so maybe it is the push bug. :/ | |||
| pmichaud | (all of this because .push() tends to put the actual object into an array instead of a copy of the object) | ||
| jnthn | pmichaud: And doesn't descalarref it... | 15:56 | |
| masak | I'll see if it goes away when I eliminate push from the example. | ||
| pmichaud | well, if we descalarref it, then we end up putting the actual object into the array, which then gets modified on the assignment | ||
| which is equally bad :) | |||
| that becomes the traditional push bug, then :-) | |||
| masak | rakudo: class A { has @!b; method c($x) { @!b[+*] = $x }; method d($i) { @!b[$i] } }; class E { has $!f = A.new; method push($x) { $!f.c($x); }; method postcircumfix:<[ ]>($i) { $!f.d($i) } }; my $m = E.new(); $m.push(5); $m[0] = 42; say $m[0] | 15:57 | |
| p6eval | rakudo 24ebf3: OUTPUT«42» | ||
| masak | pmichaud++ \\o/ | ||
| pmichaud | what .push really needs to do is to add the same value that would normally appear in an assignment | ||
| jnthn | pmichaud: Well, it's not quite .clone we want surely, but .Sclar? | ||
| *.Scalar | |||
| pmichaud | let me review assignment | ||
| one moment | |||
| jnthn | kk | ||
| pmichaud: I have a feeling I made that bug go away once, IIRC by doing .Scalar on the thing we were meant to push. | |||
| masak | jnthn: do I report spectest results to you running, or all in one bunch at the end? | 15:58 | |
| pmichaud | .Scalar doesn't sound quite right, though. | ||
| heh | |||
| masak | s/running/concurrently/ | ||
| jnthn | pmichaud: No, and it caused other problems. | ||
| pmichaud: However, it looked to be like what assignment was doing to get the thingy to assign, so... | |||
|
15:58
icwiener joined
15:59
kst joined
|
|||
| pmichaud | the simple solution for push($x) would be to push a new Perl6Object onto the array, and then assign $x to it | 15:59 | |
| jnthn | masak: At the end is fine. | ||
| diakopter (aside) is puzzling over assignment/referencing/copying | |||
| jnthn | pmichaud: Well, or create one, assing to it, and push it. :-) | ||
| But yes. | |||
| erm, assign | |||
| assing is a verb I've not seen used much. | |||
| pmichaud | I'll do that and see what happens. Do we have a test or ticket for the push bug handy? | ||
| jnthn | pmichaud: Only if handy means "somewhere in RT" ;-) | 16:00 | |
| pmichaud | diakopter: assignment/referencing/copying/interpolation is still fuzzily specced. And Rakudo has had to chase a moving spec over time, so there are a lot of fossils lying about. | ||
| jnthn | pmichaud: I know there's an RT ticket 'cus I have visited this issue at least once before. | ||
| pmichaud | I think I'll fix those two bugs and add them as Rakudo day stuff. | ||
| (been so busy with pge, haven't done much rakudo day) | 16:01 | ||
| s/pge/nqp-rx/ | |||
| Have I mentioned lately how incredibly happy I am with nqp-rx at the moment? And more and more of it is being written in NQP itself... I've gotten to the place where I really don't like writing the PIR code :) | |||
| jnthn | pmichaud: heh, it's the same with resig ;-) | ||
| diakopter | pmichaud: thanks. I'll be watching closely for the resolutions (I mean, workarounds :) | ||
| pmichaud | resolutions, I hope. As we start putting the new grammar in place, I expect/hope to be pushing TimToady++ for resolutions on parcel/capture etc. | 16:02 | |
| jnthn | pmichaud: Taht is, being busy with it. Not being crazily happy with it. ;-) | ||
| There's some way to go yet before I'm feeling that happy. ;-) | |||
| pmichaud | I started writing regexes for handling quotes last night; previously this was all done in (pure) PIR, now it's much cleaner | 16:03 | |
| I like the version I have better than STD.pm (But that might just be because my version is too simplified for Perl 6 use. We'll see.) | |||
| jnthn | :-) | ||
| pmichaud | aha | 16:04 | |
|
16:04
meppl joined
|
|||
| pmichaud | RT #69548. Submitted by someone named "masak". Welcome, new bug contributor!! :-) :-) | 16:04 | |
| jnthn | pmichaud: When do you estimate we'll start getting to the point of starting to build the grammar on top of the new nqp? | ||
| masak | pmichaud: thank you. I've always wanted to contribute in some small way. | ||
| carlin | jnthn: gist.github.com/212728 | ||
| pmichaud | next week | ||
| masak | after the release? | 16:05 | |
| pmichaud | shortly after the october release, as planned. | ||
| but I'm also going to wait for resig to land, if possible. | |||
| jnthn | carlin: Did you test resig or resig2? | ||
| pmichaud | anyway, it'll be shortly after later_of( resig_branch, release ) | ||
| carlin | resig2 | 16:06 | |
| jnthn | carlin: oh, wait | ||
| Seems a bunch of these "fails" are unexpected passes. | |||
| carlin: t/spec/S02-lexical-conventions/unicode.rakudo is an odd one. | |||
| I don't see that failing... | |||
| pmichaud | oh, hmmm | 16:07 | |
| currently .push looks something like this | |||
| jnthn | carlin: Can you show me the output of t/spec/S03-junctions/autothreading.rakudo | ||
| ? | |||
| pmichaud | method push( *@vals ) | ||
| oh, never mind | |||
| I see what's happening. | |||
| jnthn | carlin: As that one completely passes for me. | 16:08 | |
| carlin | jnthn: gist.github.com/212730 | 16:09 | |
| diakopter | pmurias: hi | ||
| jnthn | carlin: oh, no error?! | 16:10 | |
| wtf. | |||
| carlin: Does it segmentation fault if you run it just as perl6 ... ? | |||
| pmichaud | question.... if I have | ||
| my Int @a; @a.push(1,2,3,'4',5); | |||
| I get a type error when attempting to push the '4' | |||
| what should be the value of @a if the exception is caught? | 16:11 | ||
| i.e., should we typecheck everything first, then push, or typecheck each element individually as it is being pushed? | |||
| (currently we typecheck everything, then push) | 16:12 | ||
| carlin | carlin@cerberus:~/Desktop/resig2$ ./perl6 t/spec/S03-junctions/autothreading.t | ||
| 1..78 | |||
| Segmentation fault | |||
| diakopter | can .push handle lazy slurpy? | ||
| pmichaud | might. that would argue for typecheck as elements go in instead of all-at-once | ||
| I'll keep the same semantics we have now. | 16:13 | ||
| jnthn | carlin: Ouch. | ||
| carlin: Does t/spec/S02-lexical-conventions/unicode.rakudo fail for you at all in master? | 16:15 | ||
| diakopter | is there a way to make slot/index assignment (and unshift/push) on an array as auto-coercing to Int, Str, whatever | ||
| I mean, force-coercing | 16:16 | ||
| pmichaud | not yet | ||
| jnthn | diakopter: There's been some discussion of introducing coercion types to Perl 6 before now. | ||
| diakopter: You can find it in irclogs. | |||
| diakopter: Nothing made spec yet though. | |||
| diakopter | jnthn: maybe! | ||
| carlin | jnthn: Nope, Result: PASS | ||
| diakopter | (maybe I can find it; they're long) | ||
| pmichaud | diakopter: look for things like Int(Any) | ||
| jnthn | carlin: Heh. How does it fail, out of interest? | ||
| (again, run from command line) | 16:17 | ||
| (rather than harness) | |||
| dj_goku | so I am wanting to help. I want to write perl6, I have found: perlgeek.de/en/article/5-to-6 , I am currently building parrot, and next will be rakudo. | 16:19 | |
|
16:20
rdice joined
|
|||
| carlin | jnthn: Unexpected named parameters passed | 16:21 | |
| after test 26 | |||
| jnthn | carlin: Ah, it's an "only if you have ICU" test, and I don't. | ||
|
16:21
Ptn| left
|
|||
| diakopter | dj_goku: hi | 16:23 | |
| dj_goku | diakopter: hola, como estas? | ||
| diakopter | muy bueno. and you? | 16:24 | |
| dj_goku | diakopter: good. wondering where I should start. | ||
| diakopter | note you said you wanted to write 'perl6' as opposed to 'Perl 6' :D So, to which perl6 would you like to contribute? ;) | 16:25 | |
| (kidding, slightly, as usual) | |||
| jnthn | carlin: So the description of the last failing test is "Unicode subs with no parameters"? | ||
| carlin: oh, I meant "evaluation" | 16:26 | ||
| jnthn is trying to work out what it could be.. | |||
| carlin | jnthn: last test is: ok 26 - Unicode subs with one parameter (parsed as prefix ops) | 16:27 | |
| jnthn | carlin: aha | ||
| So it's the named params tests that fail. Gotcha. | |||
| diakopter | dj_goku: good ways to learn the language: 1) read the spec (with the spectests inlined) at perlcabal.org/syn 2) write more tests for areas that aren't covered as well 3) hack on an existing implementation 4) start your own implementation | ||
| dj_goku | diakopter: hrm, didn't know there was a different other than a space :), but I read a couple posts about why we should be using Perl 6 now to help it move along. | ||
| pmichaud | better than hacking on implementations might be to write applications | 16:28 | |
| jnthn | dj_goku: Other ways: write Perl 6 modules, or apps, or join one of the projects doing so (e.g. Web.pm effort) | ||
| pmichaud | or start contributing to existing perl 6 module projects | ||
| dj_goku | pmichaud: writing applications! | ||
| jnthn | carlin: I've a guess what may be wrong there. | 16:29 | |
| carlin: It's probably not awfully hard to fix. | |||
| carlin: The segfault, trickier, since it doesn't segv here. I'll see if it segfaults for masak too... | 16:30 | ||
| masak segfaults | |||
| jnthn | masak: I was talking about the test. :-P | ||
| masak | which one? I wasn't paying attention. :/ | ||
| jnthn | carlin: out of interest - platform? | ||
| carlin: and bitness? | |||
| masak: S03-junctions/autothreading.rakudo | 16:31 | ||
| carlin | jnthn: Linux cerberus 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9 10:48:52 UTC 2009 x86_64 GNU/Linux | ||
| masak | that one ran fine in the harness over here. | ||
| dj_goku | diakopter: alright am looking now at. | ||
| jnthn | carlin: ah, 64-bit, yes? | ||
| dj_goku | jnthn: that is what I am thinking I am interested in. | ||
| jnthn | masak: Are you 64 or 32? | ||
| carlin | jnthn: yep, amd64 | ||
| masak | jnthn: I can never remember. :/ | 16:32 | |
| it's an Intel Core Duo. | |||
| jnthn | Probably 32-bit then. | ||
|
16:32
zloyrusskiy joined
|
|||
| masak | s/Duo/2 Duo/. | 16:32 | |
| jnthn | Which means it maybe is "just" a 64-bit platform issue. | 16:33 | |
| I have access to one of those too...I'll give it a spin. | |||
| carlin: If you're able to obtain a backtrace, that'd be interesting to see. | |||
| pmichaud | d'oh! It becomes obvious what to do once you look at the coe. | 16:34 | |
| *code | |||
| $P0 = new ['Perl6Scalar']; setprop $P0, 'type', type; $P0.'!STORE'($P1) | |||
| push self, $P0 | |||
| !STORE handles the typechecking already. | 16:35 | ||
| spectesting new push and unshift now. | |||
| dj_goku | diakopter: perlcabal.org/syn 2 doesn't work, perlcabal.org/syn works. | ||
| jnthn | I'll be back in a bit - my fridge and stomach are both lacking in content... | 16:38 | |
| diakopter | dj_goku: oh; 2) was part of the next item in the list | 16:40 | |
| dj_goku | diakopter: hehe :) | ||
| carlin | jnthn: gist.github.com/212741 # backtrace | 16:42 | |
| diakopter | use Tweet_sigils_only; | 16:45 | |
|
16:55
mberends joined
|
|||
| mberends senses a diakopter about | 16:56 | ||
| diakopter buds another self | 16:57 | ||
| mberends | diakopter[0] | diakopter[1] : is the coast clear for me to add some comments to sprixel.pl and Act.js? | 16:58 | |
| diakopter | those two files, yes :) | ||
| mberends | oki | ||
| diakopter | hopefully they're much more perspicuous than formerly. | 16:59 | |
| Act.js, at least. | |||
| dj_goku | hrm make spectest for parrot died. | ||
| mberends | there's some pretty crafty .js code in there that deserves explaining | 17:00 | |
| diakopter | basically, the .exec virtual method adds another layer of abstraction around each activation; by default it dispatches to the opcode 'types' hash | 17:02 | |
| mberends | btw, it doesn't actually *run* any code yet, does it? I tried... | ||
| diakopter | but the opcodes themselves are free to construct activations with overridden .exec methods | ||
| diakopter checks in something that 'runs' :) | 17:03 | ||
| mberends | :) | ||
| jnthn | carlin: Aww, there. :-( | 17:05 | |
| Гровно. | |||
| :-/ | |||
| mberends | .oO( hmm, perspicuous, now there's a nice word... ) |
||
| jnthn | mberends: I wish my English was as good as yours. :-) | 17:06 | |
| pmichaud | (push/unshift) uh oh, we seem to run into a conflict with actions.pm using push and unshift. :-( | ||
| or at least unshift. | |||
| mberends | :-) I bet you say that to all the Europeans ;) | 17:07 | |
| jnthn | :-P | ||
| pmichaud: That sounds kinda "huh what ouch" :-S | |||
| pmichaud: Is it 'cus they end up getting installed into RPA? | 17:08 | ||
| dj_goku | t/spec/S06-signature/optional.rakudo - Failed test 12 | ||
|
17:08
zloyrusskiy joined
|
|||
| carlin | S03-junctions/autothreading doesn't segfault on my 32bit laptop | 17:09 | |
|
17:09
__ash__ joined
|
|||
| jnthn | I expect resig2 will merge into Rakudo master tomorrow. There's not that many failures left now. | 17:09 | |
| diakopter | dj_goku: what OS/architecture | ||
| jnthn | carlin: It sounds like 64-bit only then. | ||
| dj_goku: I don't think you're the only one seeing that failure. | 17:10 | ||
| pmichaud | jnthn: yes | ||
| dj_goku | diakopter: irclog.perlgeek.de/parrot/2009-10-17 , osx snow leopard, 64-bit | ||
| jnthn: nope see ^^ | |||
| masak | jnthn: gist.github.com/212754 | ||
| pmichaud | it's also the case that PAST expects push/unshift to push the actual objects, not copies/ObjectRefs | 17:11 | |
| jnthn | masak: Those are consistent with what I get. | ||
| moritz_ | re | ||
| masak | sounds promising. | ||
| moritz_! \\o/ | |||
| diakopter | where does rakudo specify ~Int | ||
| or I suppose that's in nqp somewhere | 17:12 | ||
| pmichaud | ... ~Int ? | ||
| pmurias | diakopter: hi | ||
| jnthn | diakopter: Probably provided by Parrot akshually. | ||
| moritz_ | presumably as a get_str vtable method | ||
| jnthn | hi moritz_ :-) | ||
| masak: Those failures are all ones I think I can triage tomorrow. | |||
| masak | cool. | ||
| jnthn | carlin: That 64-bit failure is especially irritating in that it's occuring in code that will immediately be thrown away as soon as the Parrot folks land their pcc_reapply branch. | 17:13 | |
|
17:13
kst joined
|
|||
| diakopter | pmichaud: method .Str in Int.pm: ~self | 17:13 | |
| pmichaud | ah | ||
| that's one of those cases where I think we have the operators and methods backwards | 17:14 | ||
| jnthn | carlin: Which is in the nearish future. | ||
| pmichaud | but basically in Rakudo, prefix:<~> results in a call to Parrot's get_string vtable function | ||
| diakopter | ok | 17:15 | |
| poor dalek | 17:17 | ||
|
17:17
dalek joined
|
|||
| mberends | dalek++ # rising phoenix-like | 17:18 | |
| moritz_ | uhm | ||
| I just pushed a few commits to the book repo - maybe 'twas too much for poor ol' dalek | |||
| jnthn | moritz_: I've done similar to dalek before. | 17:19 | |
| moritz_: It seems it's freenode that can't handle it. | |||
| moritz_: Maybe dalek just needs to talk slower when he's a lot to say. :-) | |||
| moritz_ | aye | ||
| diakopter | Infinoid and I spent quite a while trying to persuade botnix to throttle the first 2 messages in a series as much as the rest of them.... but we never succeeded. | 17:20 | |
|
17:20
zloyrusskiy joined
|
|||
| moritz_ | rakudo: say 1.0.perl | 17:30 | |
| p6eval | rakudo 24ebf3: OUTPUT«1» | ||
| moritz_ | rakudo: say 1.01.perl | ||
| p6eval | rakudo 24ebf3: OUTPUT«1.01» | 17:31 | |
|
17:32
simcop238 joined
|
|||
| diakopter | rakudo: say &perl.perl.perl | 17:32 | |
| p6eval | rakudo 24ebf3: OUTPUT«"undef"» | ||
| moritz_ | there's some cuteness attached to that ;-) | ||
|
17:33
Ptn| joined
17:36
Confield left
17:37
xenoterracide joined,
Psyche^ joined
|
|||
| pmichaud | jnthn: when we redo the grammar work, I'm thinking we may also attempt to eliminate our type mapping cheats between rakudo types and parrot types | 17:40 | |
| that may be possible now that there are fewer typename conflicts | 17:41 | ||
| moritz_ | as long as you're not afraid to re-do too much... | ||
| jnthn | pmichaud: If it's just an issue of naming, then yes, we may want to consider that. | 17:44 | |
| masak | isn't it Hash at both levels? | 17:45 | |
| jnthn | pmichaud: Though I think we should leave the larger lists / hashes refactor until later. | ||
| pmichaud | there's two items of interest | 17:46 | |
| (1) call the Rakudo classes by their real names -- i.e., 'Array' instead of 'Perl6Array' | 17:47 | ||
| (2) don't poke our methods into the Parrot guts | |||
| although I'm thinking the unshift issue I'm encountering must be something other than either of those two. | |||
| it's a bit challenging to track down. | 17:48 | ||
| masak | I'm just leaving, but thanks. :) | ||
| op-ness doesn't stick on me... | |||
| TimToady | actually, that was bot-ness | 17:49 | |
|
17:49
tak11 joined
|
|||
| masak | ahahah. | 17:49 | |
| jnthn | masakbot! | ||
| :D | |||
| masak bots a bit | |||
| mberends | masakbot++ | ||
| jnthn | pmichaud: They're both wrothwhile trying to achieve. I think that (1) we can surely do, and (2) we can surely try for. | 17:51 | |
| pmichaud: At least we'll find out where we stand. | 17:52 | ||
| diakopter | TimToady: help? how do I get STD to send the ast of the setting without reparsing it | ||
|
17:52
payload joined
|
|||
| pmichaud | afk for a bit -- lunch | 17:53 | |
| jnthn | pmichaud: The other question I had is, as we re-build this, are we going to just do lexicals as we'd like to see them too? | ||
| pmichaud | I'm thinking likely, yes. | ||
| jnthn | pmichaud: ok, catch me after lunch :-) | ||
| pmichaud | I also want to fix readonly-ness | ||
| jnthn | pmichaud: Again, probably worth doing amongst this. | ||
| TimToady | diakopter: why not just Dump the YAML after the parse? | ||
| pmichaud | if we're going to be redoing things "from the ground up", we might as well get as much cruft out of the way as we can | 17:54 | |
| jnthn | pmichaud: I'd also like us to think how to handle nested packages well too. Those are currently also epic mess. | ||
| TimToady | I suppose we could add an option to dump the ast along with the .syml | ||
| diakopter hears some *jfdia* (... it all) in pmichaud's words | |||
| pmichaud | I'm going to start with that plan in mind, and if after a week we find we're blocked or otherwise spinning our wheels, we can make a new plan | ||
| jnthn | pmichaud: OK, let's try for it. | ||
| pmichaud | well, nested packages should be easier also, since we have a much more reasonable lexicals implementation | 17:55 | |
| jnthn | pmichaud: I also suspect that I'm going to switch to working of my grant items inside the new grammar/actions. | ||
| pmichaud | that can work | ||
| diakopter | lol at 'epic mess' | ||
| jnthn | pmichaud: Because it'll be silly to e.g. work out how to parse nested signatures in the current branch. | ||
| pmichaud | agreed totally | ||
| jnthn | Only to toss it. | ||
| OK. And my other task is multiple return values. | |||
| pmichaud | we really need capture/parcel spec to do that, though. | 17:56 | |
| masak | ok, dinnertime. see ya! | ||
| jnthn | Yes, I'm aware some spec effort will be needed there. | ||
| masak: nom happily | |||
| masak | thanks :) | ||
| pmichaud | lunchtime here -- bbiaw | ||
| diakopter | TimToady: that would be great, since sprixel is wanting to actually execute the setting | 17:57 | |
| moritz_ | the nom-induced quietness will give me some time to backlog ;-) | ||
| diakopter | TimToady: would I/you add that to ./setting ? | 17:58 | |
| emitted to sprixelCORE.ast.yaml or something? | |||
| or just sprixelCORE.ast ? | 17:59 | ||
| actually, how about sprixelCORE.setting.ast.store | 18:00 | ||
| much faster to load | |||
| mberends | diakopter: $forgiveness > $permission | 18:02 | |
|
18:03
zloyrusskiy joined
|
|||
| diakopter | yeah but, $duplicate_or_race_condition_of_conflicting_work < $informal_approval_or_locking | 18:06 | |
|
18:06
Ptn| left
|
|||
| colomon | moritz_: I submitted tests (but not a bug) for the 1.0.perl eq "1" thing this morning. | 18:06 | |
| pugs_svn | r28819 | mberends++ | [sprixel] hasty documentation commit before imminent setting compile change | ||
| diakopter | :) | 18:07 | |
| moritz_ | colomon: yes, I've seen it | ||
| colomon: feel free to ticket it too | |||
| colomon | moritz_: I always worry these things have been submitted before (especially a simple one like that) but I have very unsuccessful at searching RT, so I hesitate. | 18:08 | |
| moritz_ | colomon: don't. Duplicates will be weeded out over time | 18:09 | |
| colomon | rakudo: say eval(1.0.perl).WHAT; | 18:15 | |
| p6eval | rakudo 24ebf3: OUTPUT«Int()» | ||
| colomon | rakudo: say 1.0.perl | ||
| p6eval | rakudo 24ebf3: OUTPUT«1» | ||
| colomon | Done. | 18:17 | |
| moritz_ | colomon++ | ||
| diakopter | TimToady: STD doesn't put the .syml file in the same dir as the .pm (as in the ones under lib/); should it? | ||
| (and should it do the same with .ast[.store]) | 18:18 | ||
| jnthn | colomon: I expect I'll be giving the RT queue a good reviewing sometime in the next week or so, also. | 18:20 | |
|
18:20
desertm4x_ joined
|
|||
| jnthn | colomon: To close a bunch of tickets related to stuff fixed in resig. | 18:20 | |
| I usually find and clear up some dupes as I do such things. :-) | |||
|
18:22
__ash__ joined
|
|||
| colomon | jnthn: I'll keep that in mind. :) | 18:23 | |
|
18:25
shinobi-cl joined
18:26
tak11 joined
|
|||
| pugs_svn | r28820 | colomon++ | [t/spec] Tag the todo tests with their issue number (RT 69869). | 18:26 | |
| shinobi-cl | rakudo: class AAA; has $.valA; has $.valB; submethod BUILD { say $.valA, $.valB; }; my AAA $test .= new (valA => '2C', valB=>'X'); | 18:27 | |
| p6eval | rakudo 24ebf3: OUTPUT«Use of uninitialized valueUse of uninitialized value» | ||
| shinobi-cl | rakudo: class AAA; has $.valA is rw; has $.valB; submethod BUILD { say $.valA, $.valB; }; my AAA $test .= new (valA => '2C', valB=>'X'); | 18:29 | |
| p6eval | rakudo 24ebf3: OUTPUT«Use of uninitialized valueUse of uninitialized value» | ||
|
18:31
eternaleye joined
18:34
Psyche^ joined
18:35
szabgab joined
18:38
am0c joined
18:42
kst joined
|
|||
| pugs_svn | r28821 | pmichaud++ | [t/spec]: Test descriptions must not contain '#'. | 18:42 | |
| pmichaud | The current implementation of map (src/setting/Any-list.pm:32) relies on the push bug. | 18:45 | |
| If anyone wants to look at that and/or fix it. | |||
|
18:45
markmont joined
|
|||
| moritz_ | what's "the push bug"? | 18:45 | |
| pmichaud | currently Array.push pushes the actual object into the array, instead of taking a copy/reference | 18:46 | |
| thus | |||
| rakudo: my @a; my $i = 3; push @a, $i; $i = 4; push @a, $i; say @a.perl; | |||
| p6eval | rakudo 24ebf3: OUTPUT«[4, 4]» | ||
| moritz_ | oh | ||
| to me that's the take() bug ;-) | |||
| there's an easy workaround | |||
| do { my $x = $_ } | |||
| pmichaud | they're related, but separate | ||
| yes, but the problem is that map() relies on push's current behavior, not the expected behavior | 18:47 | ||
| moritz_ | oh | ||
|
18:47
lumi joined
|
|||
| pmichaud | perhaps the workaround for now is Q:PIR | 18:49 | |
| to avoid the .push method altogether | |||
|
18:54
markmont left
18:56
payload1 joined
19:00
dj_goku joined
|
|||
| diakopter suffers from Syn fatigue and must refrain from becoming further puzzled | 19:06 | ||
|
19:07
szabgab joined
|
|||
| slavik | pmichaud: <?{blah == glah}> | 19:07 | |
| pmichaud | nyi | ||
| slavik commits suicide | |||
| moritz_ | don't | 19:10 | |
| just wait a little longer | |||
| it's going to be there quite soon[tm] | |||
| Woodi | listen what moritz_ say man | 19:11 | |
| slavik | moritz_: around christmas? | 19:13 | |
| moritz_ | slavik: depends on which christmas you mean | 19:14 | |
| slavik | the one for year 2009 | ||
| moritz_ | slavik: but quite a bit before the "Perl 6 is released" christmas | ||
| not quite sure | |||
| slavik | I just want assertions and I think I am good for now | ||
| and maybe an easy way to migrate perl5 modules to rakudo | 19:15 | ||
| muixirt | do grammars work in rakudo? | 19:19 | |
| moritz_ | yes | ||
| (to the extend that anything in rakudo works) | |||
| muixirt | moritz_: how does it work? I'm only getting invoke() not implemented in class 'Capture' errors | 19:20 | |
| pmichaud | does rakudo have grammar support? yes. Do they work? mostly. Does it support everything list in the synopses about grammars? Not yet. | ||
| *listed | |||
| moritz_ | muixirt: that probably means that you mis-typed some names | ||
| "now does it work?" - "fine, if you build it step by step, and test it along the way" | 19:21 | ||
| pmichaud | muixirt: could you nopaste your code? | ||
| moritz_ | I found that for grammars the same truths hold as for any other code: when you're new to it, you should test after every two lines you write | 19:22 | |
| and only as get more experience it becomes efficient to write more at once | |||
| muixirt | pmichaud: my code is too ridiculous | ||
| pmichaud | ah. Rakudo sometimes has difficulty with ridiculous code, yes. :-) :-) | ||
| we're still working on the "use Ridiculous;" feature. | 19:23 | ||
| I suspect Damian is in charge of that module. | |||
| mberends | muixirt: the diagnostics about grammar errors are not helpful enough, so you have to start with something small that works, and gradually expand it, reversing you last change whenever it fails. | ||
| moritz_ | oh, and don't call a token 'text' ;-) | 19:24 | |
| or 'from', 'to', 'orig' or so | |||
| pmichaud | actually, I think 'text' should be gone by now. | ||
| maybe not. | |||
| but yes, from/to/orig have difficulties. | |||
| mberends | 'text' wfm afair | ||
| moritz_ | rakudo: say ('b' ~~ /./).text | ||
| p6eval | rakudo 24ebf3: OUTPUT«Method 'text' not found for invocant of class 'Match'in Main (file src/gen_setting.pm, line 206)» | ||
| moritz_ | mberends: it might work again, yes | 19:25 | |
| pmichaud | and most of those issues are fixed in nqp-rx | ||
| moritz_ | but it used to fail horribly | ||
| back when I wrote my first XML grammar | |||
| pmichaud | I think the only regex names thus far that cause issues are 'pos' and 'MATCH' | ||
| slavik | rakudo: say ('b' ~~ /./).WHAT | 19:26 | |
| p6eval | rakudo 24ebf3: OUTPUT«Match()» | ||
| slavik | is there a way to get all attributes/methods/macros for an object? | ||
| moritz_ | $obj.^methods | ||
| and $obj.^attributes | |||
| slavik | rakudo: say ('b' ~~ /./).^methods | ||
| p6eval | rakudo 24ebf3: OUTPUT«postcircumfix:{ }postcircumfix:[ | ||
| ..]perlofcapschunksacoshacosecwordscosechcotanatan2srandreverseisapolarucfirstcombtanatancosacosfmtfirsttranschoprindextanhvaluessubstelemschompindexkeyschracotanhpairskvcapitalizepickevalfileatanhcosecexpp5choplcjoincharssinhcanacotanlcfirstrootsredu… | |||
| moritz_ | macros are NYI, and not tied to an object anyway | 19:27 | |
| slavik | rakudo: say join " - ", ('b' ~~ /./).^methods | ||
| p6eval | rakudo 24ebf3: OUTPUT«chunks - - - postcircumfix:{ } - 5 - perl - - of - caps - flip - 1 - does - split - 1 - acosh - acosec - words - cosech - cotan - atan2 - srand - reverse - isa - 1 - ucfirst - comb - tan - atan - cos - acos - fmt - first - trans - chop - 1 - tanh - values - 2 - 1 - 1 - 1 - | ||
| ..keys … | |||
| moritz_ | the numbers are multi methods that fail to stringify properly | ||
| slavik | :( | ||
| pmichaud | I wonder if Parrot would let me patch that. | ||
| slavik | rakudo: say join " - ", ('b' ~~ /./).^attributes | ||
| p6eval | rakudo 24ebf3: OUTPUT«» | ||
| slavik | hmm, there isn't any | ||
| moritz_ | you don't access attributes from the outside anyway | 19:28 | |
| slavik | rakudo: say keys %{ ('b' ~~ /./) } | ||
| p6eval | rakudo 24ebf3: OUTPUT«get_number() not implemented in class 'Sub'in Main (file src/gen_setting.pm, line 206)» | ||
| slavik | interesting | ||
| moritz_ | the issue here is that Match is a parrot class for now, and thus objects to be proper introspection from Perl 6 | ||
| slavik | moritz_: what about auto accessors and auto setters and such | ||
| moritz_ | those are methods | ||
| jnthn | ...did Rakudo just go and parse that as a call to keys with no args, followed by the % operator, followed by a block? :-) | ||
| moritz_ | slavik: would you submit a bug report for that get_number() not implemented? | 19:29 | |
| jnthn | std: say keys %{ ('b' ~~ /./) } | ||
| moritz_ | seems like, yes | ||
| p6eval | std 28821: OUTPUT«[31m===[0mSORRY![31m===[0mObsolete use of %{ ('b' ~~ /./) }; in Perl 6 please use %( ('b' ~~ /./) ) instead at /tmp/BjX9f3ezqw line 1:------> [32msay keys %{ ('b' ~~ /./) }[33m⏏[31m<EOL>[0mFAILED 00:01 107m» | ||
| slavik | but how can you tell whether they are attributes or "complex" methods | ||
| jnthn | std++ | ||
| slavik | moritz_: sure, if I knew why it's broken and such | ||
| moritz_ | slavik: it's %( ... ) in Perl 6 | ||
| slavik | I see | ||
| things have changed | |||
| moritz_ | it's not an appropriate error message | ||
| slavik | someone should update the periodic table of perl6 operators | 19:30 | |
| rakudo: say keys %( ('b' ~~ /./) ) | |||
| p6eval | rakudo 24ebf3: OUTPUT«» | ||
| moritz_ | slavik: you can't tell if a method is autogenerated or not - that's part of the encapsulation of classes | ||
| muixirt | the example grammar Integer doesn't work (and a ; is missing) | ||
| slavik | moritz_: I prefer perl5 classes for this reason ;) | ||
| moritz_ | the caller simply doesn't have to care how easy or not-easy $thing.method is | ||
| slavik | what about having constants in a class? | 19:31 | |
| moritz_ | that works. | ||
| they just aren't exportable yet, I think | |||
| slavik | but they would look like methods, right? | ||
| pmichaud | package symbols, I think. | ||
| slavik | I actually haven't figured out the whole writing classes in Perl6 yet :( | 19:32 | |
| pmichaud | allison says I can fix MultiSub in Parrot. \\o/ | ||
| jnthn | \\o/ | ||
| pmichaud: Without a deprecation cycle? ;-) | |||
| pmichaud | yes | ||
| "it's a 'bug'" | |||
| jnthn | lol | ||
| pmichaud | allison++ | ||
| moritz_ | slavik: we're working on a book chapter to explain it better | ||
| jnthn | 'bug' = word we use when we don't want to wiat a deprecation cycle <grin> | 19:33 | |
| pmichaud | it arguably is a bu | ||
| *bug | |||
| slavik | moritz_: sweet ... is there anything current that will work? | ||
| pmichaud | actually, I think that MultiSub ought to be inheriting from Sub instead of from RPA | ||
|
19:33
markam joined
|
|||
| jnthn | Oh, I'm not disagreeing with the call, just teasing. :-) | 19:33 | |
| moritz_ | slavik: I'm afraid there's not much to see yet | ||
| jnthn | pmichaud: MultiSub should has an RPA. | ||
| pmichaud | that too | ||
| jnthn | Not be an... | 19:34 | |
| pmichaud | but MultiSub inherits a lot of Sub-like characteristics | ||
| er, it ought to inherit a lot of sub-like characteristics | |||
| oh well. | |||
| fixing | |||
| jnthn | I'm not sure it should really inherit from either. | ||
| pmichaud | I could see that too. | ||
| jnthn | I could agree they should both inherit from some abstract Invokable that knows the commonalities. | ||
| moritz_ | pmichaud: btw removing the push-bug from map causes only one test failure in the complete spectests | 19:35 | |
| jnthn | But of course, with a name that doesn't suck. ;-) | ||
| pmichaud | moritz_: I have a fix for map. | ||
| my spectest is about to finish. | |||
| just waiting for trig tests to complete | |||
| slavik | is there an easy way of porting perl5 code to perl6?\\ | ||
| moritz_ | slavik: I know none | 19:36 | |
|
19:37
kst joined
19:38
tann1 joined
|
|||
| pmichaud | .push bug fixed, pushed as 827734a | 19:38 | |
| moritz_ | pmichaud++ | 19:39 | |
| dalek | kudo: 827734a | pmichaud++ | src/ (3 files): Fix bug with .push not creating copies of pushed values. Fixes RT #69548. |
19:41 | |
|
19:44
eMaX joined
|
|||
| pmichaud | unshift still has the bug -- fixing it causes the build to fail for some reason, so I'll have to track it down later | 19:46 | |
| jnthn | pmichaud: That sounds horribly familiar. | 19:49 | |
| moritz_ | what about take? | ||
| pmichaud | I need a spec clarification on take before that can be fixed. | ||
| jnthn | Probably the same one we need for return... | ||
| ...or related. | |||
| pmichaud | related, yes | 19:50 | |
| the take bug come down to: | |||
| my $a = 1; my @b = gather { for 1..5 { $a++; take $a } }; | |||
| if take returns a capture, then all five takes end up referring to the same $a | 19:51 | ||
| jnthn | *nod* | ||
| moritz_ | only if it also takes its arguments as a capture | ||
| pmichaud | ? | 19:52 | |
| moritz_ | if it just has (Object *@) signature... then not | ||
| because then the slurpy array will only see Ints, and an Int is immutable | |||
| pmichaud | that's the part that needs clarification -- whether take grabs its arguments as a capture | 19:53 | |
| moritz_ | ok | ||
| pmichaud | but if you want map() to be written in terms of gather take, and for the arguments to map() to be changable by map, that implies that take grabs a capture | ||
| *gather+take | 19:54 | ||
| same for most other functions that expect to be lazy and to mutate elements | |||
| take has to return the actual element, not an immutable copy | |||
| or a reference | |||
| moritz_ | the more I think about it, the less I like the idea of map modifying the original list | 19:55 | |
| otoh 'for' really needs that somehow, and 'map' and 'for' should behave identical | |||
| pmichaud | right. | ||
| perhaps we need two forms of take | 19:56 | ||
| moritz_ | wfm | ||
| jnthn | take-me-immutable | ||
| take-me-and-mutate-me | |||
| pmichaud | take-me-to-your-leader | 19:57 | |
| take-me-out-to-the-ballgame | |||
| moritz_ hums a Tom Lehrer tune | |||
| pmichaud | which one? | ||
| jnthn | pmichaud: btw, did you unfudge a spectest after fixing the push bug? ;-) | ||
| moritz_ | pmichaud: Alma | ||
| lisppaste3 | muixirt pasted "grammar question" at paste.lisp.org/display/88849 | ||
| pmichaud | ah, I like that one. | 19:58 | |
| muixirt | stripped my code down | ||
| what is wrong with that? | |||
| moritz_ would be surprised if require() worked | |||
| muixirt: try use mygrammar; instead | |||
| and but the @*INC.push into a BEGIN { } block | 19:59 | ||
| muixirt | moritz_: doesn't work either | ||
| pmichaud | does it work if they're in the same file? | ||
| start with that. | |||
| muixirt | pmichaud: yes | ||
| pmichaud | okay, so the problem isn't with grammars, it's with 'use' | 20:00 | |
| pugs_svn | r28822 | mberends++ | [sprixel] documented Act.js, nitpicking welcome ;) | ||
|
20:00
szabgab joined
|
|||
| moritz_ | muixirt: it does work here locally | 20:00 | |
| with use instead of require | |||
| BEGIN { @*INC.push('.') }; | 20:01 | ||
| use mygrammar; | |||
| and the rest as you have it | |||
| prints cmd1 | |||
| muixirt | moritz_: yes! | 20:02 | |
| umm, at first i did use 'mygrammar'; | |||
| well | 20:03 | ||
| thanks | |||
| moritz_ | you're welcome | ||
| muixirt | next question | ||
| pmurias | perl6: my @foo = 1,2,3;map {$^a++} @foo; | ||
| p6eval | elf 28822: OUTPUT«Parse error in: /tmp/XSRWUsiwiopanic at line 1 column 16 (pos 16): Can't understand next input--giving upWHERE: my @foo = 1,2,3;map {$^a++} @foo;WHERE: /\\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in | ||
| ..… | |||
| ..pugs: OUTPUT«***  Unexpected "@foo" expecting ",", ":" or operator at /tmp/oGVYMUaADw line 1, column 29» | |||
| ..rakudo 827734: OUTPUT«Confused at line 2, near "@foo;"in Main (file <unknown>, line <unknown>)» | |||
| pmurias | rakudo: my @foo = 1,2,3;map {$^a++} @foo;say @foo; | ||
| p6eval | rakudo 827734: OUTPUT«Confused at line 2, near "@foo;say @"in Main (file <unknown>, line <unknown>)» | 20:04 | |
| moritz_ | pmurias: comma after } | ||
| pmurias | rakudo: my @foo = 1,2,3;map {$^a++},@foo;say @foo; | ||
| p6eval | rakudo 827734: OUTPUT«Cannot assign to readonly variable.in method Any::map (file <unknown>, line <unknown>)called from sub map (file src/gen_setting.pm, line 338)called from Main (file /tmp/h7snWW7L7F, line 0)» | ||
| moritz_ | oh wow, <unknown> taking over | ||
| pmurias | moritz_: map doesn't change it's arguments by default | 20:05 | |
|
20:05
dj_goku joined
|
|||
| moritz_ | pmurias: well, it depends on the signature of the block | 20:06 | |
| pmurias: if that binds its arguments as 'is rw', then yes, it does change the array | |||
| pmurias | if you explicitly declare something it's your fault if things get insane | ||
| moritz_ | well | 20:07 | |
| muixirt | the example grammar Integer doesn't work perlcabal.org/syn/S05.html#Grammars | ||
| moritz_ | a block as the default signature of -> $_ is rw = OUTER::<$_> or so | ||
| pmurias | rakudo: my @foo = 1,2,3;map {$_++},@foo;say @foo; | ||
| p6eval | rakudo 827734: OUTPUT«123» | ||
| moritz_ | muixirt: the implicit reduction at the end of the TOP method isn't implemented in Rakudo yet | 20:08 | |
| muixirt: you need an explicit {*} outside the alternation | |||
| pmurias | rakudo: my @foo = 1,2,3;map -> ($foo is rw) {$foo++},@foo;say @foo; | ||
| p6eval | rakudo 827734: OUTPUT«Confused at line 2, near "-> ($foo i"in Main (file <unknown>, line <unknown>)» | ||
| moritz_ | no parens around the sig, I think | ||
| pmurias | rakudo: my @foo = 1,2,3;map -> $foo is rw {$foo++},@foo;say @foo; | 20:09 | |
| p6eval | rakudo 827734: OUTPUT«123» | ||
| pmichaud | rakudo: my @foo = 1,2,3; for @foo -> $x is rw { $x++ }; say @foo; | ||
| p6eval | rakudo 827734: OUTPUT«234» | ||
| moritz_ | rakudo: my @foo = 1,2,3;map -> $foo is rw { $foo = $foo + 2 }; say @foo | ||
| p6eval | rakudo 827734: OUTPUT«123» | ||
| moritz_ | now that's all very weird and inconsistent | ||
| pmichaud | Rakudo doesn't implement 'for' in terms of 'map' yet. | ||
| (or vice-versa) | 20:10 | ||
| rakudo: my $x = 5; (-> $y is rw { $y++ })($x); say $x; | |||
| p6eval | rakudo 827734: OUTPUT«6» | 20:11 | |
| moritz_ can't find the default signature for a block in the spec | |||
| pmichaud | default signature is <-> $_ is OUTER::$_ { ... } | ||
| jnthn | erm, is? | ||
| pmichaud | = | ||
| sorry | |||
| jnthn | phew | ||
| moritz_ | well | ||
| jnthn | :-) | ||
| moritz_ | then we have a problem | ||
| because List.map: { } won't work | |||
| pmichaud | sure it will | 20:12 | |
| moritz_ | because a List is immutable | ||
| so binding something with an 'is rw' signature fails | |||
| jnthn | oh, ouch | ||
| pmichaud | I didn't think is rw fails the bind | ||
| moritz_ | it does, if the thing being bound is read-only | ||
| jnthn | I was under the impression it does. | 20:13 | |
| moritz_ | sub a($x is rw) { ... }; a(4) # boom | ||
| pmichaud | you're correct, fails to bind | ||
| jnthn | To the point that I actually have a TODO comment in the new binder saying "check for rw after the rw refactor is done" | ||
| moritz_ | so | ||
| List.map could cheat | |||
| and create an rw variable | |||
| jnthn | Wrose, it actually participates in the MMD candidate sort... | ||
| moritz_ | and bind that | ||
| jnthn | *worse | ||
| moritz_ | in the candidate sort? not just as a constraint? | 20:14 | |
| jnthn | (not actually so bad, but...) | ||
| moritz_: It acts separate to other constraints, last I checked. | |||
| moritz_ | then I wrote crud in the MDD chapter | ||
| or maybe a bit crud, at least | |||
| jnthn | moritz_: let me check S12 again. | ||
| pmichaud | at one time bare blocks could be 0-ary | 20:15 | |
| if $_ wasn't explicitly used in the block | |||
| (*or implicitly used) | |||
| Rakudo currently gives every bare block a $_ param, but we might end up having to be smarter about that. | |||
| although it's difficult to detect every use of $_ | |||
|
20:16
NorwayGeek joined
|
|||
| pmichaud | and it still doesn't help the case where we have <a b c>.map( { ... } ) | 20:16 | |
| because that block presumably uses $_ somehow, so expects to have the automatic $_ | |||
| moritz_ | aye | 20:17 | |
| jnthn | moritz_: oh now, S12's last revision seems to have no mention of that. | ||
| moritz_: Now it's just going to enforce a bindability check | |||
| moritz_: Like any other constraint. | |||
| moritz_: So, you're right, and my life just got easier. \\o/ | |||
| moritz_ | \\o/ | ||
| and mine too | 20:18 | ||
|
20:18
yahooooo joined
20:22
szabgab joined
|
|||
| pmichaud | no mention of what.... is rw binding? | 20:24 | |
| it's in S06 | |||
| S06: "To allow modification, use the C<is rw> trait. This requires a mutable | |||
| object or container as an argument (or some kind of type object that | |||
| can be converted to a mutable object, such as might be returned | |||
| by an array or hash that knows how to autovivify new elements). | |||
| Otherwise the signature fails to bind, and this candidate routine | |||
| cannot be considered for servicing this particular call. (Other multi | |||
| ... | |||
| jnthn | pmichaud: No, no mention of it affecting multi-dispatch in a more elaborate way than a bindability check. | 20:27 | |
| pmichaud | okay. | ||
| jnthn | pmichaud: At one point, I'm pretty sure S12 had something saying that "is rw" played into the candidate sort. | ||
| pmichaud | it might have. | ||
| jnthn | But it seems gone now, probably in the last cleanup of that section. | ||
|
20:32
NorwayGeek_ joined
20:34
rfordinal3643 joined
20:35
NorwayGeek joined
|
|||
| pugs_svn | r28823 | diakopter++ | [sprixel] nitpick some comments/spacing | 20:35 | |
| diakopter | erm | ||
|
20:36
mtnviewmark joined
|
|||
| diakopter | I apparently don't know how to use svn resolve | 20:36 | |
| pugs_svn | r28824 | diakopter++ | [sprixel] nitpick some comments/spacing | ||
|
20:36
NorwayGeek joined
|
|||
| mberends svn ups :) | 20:36 | ||
| diakopter | do it again | 20:37 | |
| b/c I messed up the first time | |||
| mberends | 28224 only so far | ||
|
20:38
kst joined
|
|||
| diakopter | 28823,28824 | 20:39 | |
| mberends sees it now, thanks | |||
| diakopter | mberends: I'm going to commit my version of sprixel.pl that just sends the setting through STD twice | 20:40 | |
| mberends | oki | ||
| moritz_ | I'm currently thinking about the new "getting started" page for perl6.org (see perlgeek.de/blog-en/perl-6/an-entry....writeback for a discussion), and want to explain the relation between Perl 6, Rakudo, Parrot and the Rest of the world. Do you think moritz.faui2k3.org/tmp/p6-overview.png helps? or does anybody have a better idea for such a picture? | 20:48 | |
| Su-Shee | depends at who you really aim with a new entry page. | 20:50 | |
| moritz_ | newcomers. | ||
|
20:51
__ash__ joined
|
|||
| Su-Shee | but not newbies to perl? | 20:51 | |
| moritz_ | all newcomers. | ||
|
20:51
szabgab joined
|
|||
| Su-Shee | with a little more detail :) | 20:52 | |
| moritz_ | well | ||
| there's going to be some text, too | 20:53 | ||
| __ash__ | moritz_: i have a question about perl 6 syntax, you did something in your svg-plot that i haven't seen in the spec, github.com/moritz/svg-plot/blob/31b...Pie.pm#L44 so you can do given's without a when inside? Is that effectively a with context block? (the block is executed with respect to the given parameter | ||
| moritz_ | __ash__: given $thing { BLOCK } just sets $_ lexically for the block to $thing | 20:54 | |
|
20:54
jaldhar joined
|
|||
| moritz_ | so it's short for do { my $_ = $thing; BLOCK } | 20:54 | |
|
20:55
tak11 joined
|
|||
| __ash__ | moritz_: in the spec it only ever talked about given as a c style switch, so i didn't know you could use a given like that, thats cool | 20:55 | |
| jnthn | __ash__: The other side of the coin is that if you already have $_ set some other way, you can also do when's without given. :-) | ||
| __ash__ | so in a for loop for instance? since that sets $_, you can just throw 'when's in there? | 20:56 | |
| jnthn | for @food { when 'curry' { say "yaaaay!!" }; when 'fish' { say "DO NOT WANT" }; } | ||
| Yup. :-) | |||
| __ash__ | thats cool | ||
| moritz_ | perlcabal.org/syn/S04.html#Switch_statements says "The given block is just one way to set the current topic, but a switch statement can be any block that sets $_, including a for loop" | ||
| __ash__ | cool | 20:57 | |
| moritz_ | Perl 6 really keeps syntax elements reusable ;-) | 20:58 | |
| __ash__ | how many keywords are there in perl6 at this point? | 20:59 | |
| pugs_svn | r28825 | diakopter++ | [ToJS.pm] enable multiple calls to emit_js :) | ||
| moritz_ | __ash__: I don't know - you might want to check the vim syntax hilighting file for an overview ;-) | 21:00 | |
| __ash__ | just curious, seems like every time i start doing something new in perl6 i find a new feature i didn't know about before | ||
| moritz_ | funnily that happens to many people in Perl 5 land too | ||
| I also learned something new about perl 5 last week | 21:01 | ||
| (just forgot what it was) | |||
| pugs_svn | r28826 | diakopter++ | [sprixel] add optional setting-ast argument to Act.interpret | 21:02 | |
| __ash__ | i haven't tried learning perl5 much yet, i know a few things i have picked up, but i am considering perl 6 a new beast, which might not be the wisest thing | ||
| Su-Shee | moritz_: than it must have been immensely important :) | ||
| moritz_ | Su-Shee: aye ;-) | ||
| __ash__: well, it's a valid point of view, but the Perl 6 specs were mostly written by Perl 5 gurus - and that shows | |||
| __ash__ | in a class in perl 5, when you see $_[0][0], what does that mean? thats one thing in perl 5 i have not yet figured out | 21:03 | |
| moritz_ | also most documentation assumes some familarity with Perl 5, which kiinda is a pity | ||
| @_ is the array of arguments passed to a sub | |||
| lambdabot | Maybe you meant: . ? @ v | ||
| pugs_svn | r28827 | diakopter++ | [sprixel] send the setting file[s] through the STD parser twice, once as the setting for the input :) and again to get the AST of the setting so it can be executed | ||
| moritz_ | and $_[0] is the first one | ||
| Su-Shee | __ash__: familarity with p5 helps a lot. perl 6 is very perlish. | ||
| moritz_ | so it's the invocant | ||
| __ash__ | but with | 21:04 | |
| moritz_ | and $_[0][0] accesses the first element of the invocant, and assumes that it's an array | ||
| pugs_svn | r28828 | diakopter++ | [sprixel] more opcode instruction files, changes to setting/Int.pm, proof-of-concept sub declaration/argument eval/sub invocation | 21:05 | |
| __ash__ | it was in a cmp of a package/class object, so are the instance variables of an object in perl 5 in an array? | ||
| moritz_ | an object in Perl 5 is just a blessed reference | 21:06 | |
| it can be reference to a hash (most common), and array, a subroutine, a number, a string... whatever you can think of | |||
| s/and/an/ | |||
| mberends svn ups every 30 seconds ;) | |||
|
21:07
tak__ joined
|
|||
| __ash__ | there is another thing i haven't really grapsed 100%, blessing objects, is that just giving an object access to some data? | 21:07 | |
| moritz_ | no, it just means "from hereon ye shall be an object" | ||
| it's actually quite similar in Perl 6, but hidden behind a nice abstraction layer | 21:08 | ||
| or many thereof | |||
| __ash__ | and one last question, whats a $$ in perl5? a reference? | ||
| moritz_ | that really depends on context | 21:09 | |
| just $$ is a special variable (PID) | |||
| $$thing dereferences $thing as a scalar | |||
| $$thing{foo} as a hash | |||
| __ash__ | well, i mean when its used as a sigil, like my $next = $$h; | ||
| moritz_ | then it's dereferencing, yes | 21:10 | |
| perldoc perlreftut # that's where I learned that stuff | |||
| __ash__ | does that still work in perl6? | ||
| moritz_ | no | 21:11 | |
| forcing scalar context works with $(...) | |||
|
21:11
Su-Shee left
|
|||
| moritz_ | but in general you don't need to dereference explicitly | 21:11 | |
| my $a = [1, 2, 3]; say $a[2] # just works in Perl 6 | |||
| so references is an area where Perl 6 is drastically more readable than Perl 5 | 21:12 | ||
|
21:16
szabgab joined
|
|||
| diakopter | mberends: yay | 21:17 | |
| perl sprixel.pl -e 'say 1,2,3' | |||
| 1 | |||
| 2 | |||
| 3 | |||
| mberends | oh yeah! | ||
| moritz_ | that's wrong, though | ||
| diakopter | oh? | ||
| jnthn | rakudo: say 1,2,3 | ||
| p6eval | rakudo 827734: OUTPUT«123» | ||
| moritz_ | ther shouldn't be a newline after each item | ||
| diakopter | o yeah | ||
| :) | |||
| forgot | |||
| jnthn | :-) | ||
| moritz_ | (but probably an easy fix9 | 21:18 | |
| s/9/)/ | |||
| mberends | nevermind the nits, it's 100% better than &^&%$^% not found... | ||
| moritz_ | you can tell from my typos that I don't use US layout right now | ||
| ;-) | |||
| diakopter | sub say is export { jseval 'say(this.invoker.invoker.arg_array.join(""))' } | ||
| better? :) | 21:19 | ||
| moritz_ | woah | ||
| mberends | better. period. | ||
| say can be defined as print with just a single "\\n" tacked on to the end | 21:20 | ||
| pugs_svn | r28829 | diakopter++ | [new sprixel] make say work with multiple arguments. make say "is export" so STD doesn't complain the 2nd time [or is it the 1st time] through | 21:21 | |
| diakopter | yes, I know, sub say is export shouldn't be defined in Int.pm | 21:22 | |
| :) | |||
| moritz_ | well, it returns an Int ;-) | 21:23 | |
| or was it a bool? | |||
| rakudo: say (say).WHAT | |||
| p6eval | rakudo 827734: OUTPUT«say requires an argument at line 2, near ").WHAT"in Main (file src/gen_setting.pm, line 2545)» | ||
| moritz_ | rakudo: say (say '').WHAT | ||
| p6eval | rakudo 827734: OUTPUT«Bool()» | ||
| diakopter | ok. the new sprixel doesn't yet know about Bools. | ||
|
21:23
laughingboy joined
|
|||
| moritz_ | so Int.pm is fine ;-) | 21:24 | |
| pugs_svn | r28830 | moritz++ | [perl6.org] updates to NOTES | ||
| diakopter | but at least it's using a setting in a more-or-less proper way | ||
| well, more. | 21:25 | ||
| properer way. | |||
| pugs_svn | r28831 | moritz++ | [perl6.org] image for the upcoming "getting started" page | ||
| moritz_ | dukeleto told me he'd approve of a Perl 6 newbie IRC channel | 21:26 | |
| (iirc) | |||
| mberends | diakopter: something missing here after pulling: Can't locate sprixelCORE.pad in @INC.... at Cursor.pm line 241. | ||
| moritz_ | is anybody against it? | ||
|
21:26
laughingboy left
|
|||
| moritz_ | or should we call it #perl6users? | 21:26 | |
| diakopter | oh hrm | 21:27 | |
|
21:27
Confield joined
|
|||
| mberends | moritz_: I would prefer to meet the newbies right here until at least April | 21:27 | |
| jnthn | moritz_: #perl6 is the logical channel name for newbies. | 21:28 | |
| moritz_ | mberends: so far I had been against splitting the channels, but recently a few people have argued otherwise | ||
| jnthn | moritz_: If the devs are finding it too noisy at some point, they can always fork off to another channel. | 21:29 | |
| moritz_ | because we throw a lot of scary terms and abbreviations around | ||
| diakopter | I agree with jnthn, maybe a #perl6impl channel...? | ||
| moritz_ | this is more about the users, not about the devs | ||
| mberends | moritz_: sure, you can debate it either way | ||
| moritz_ | mberends: aye. Which is why I want to hear opinions either way | ||
| jnthn | moritz_: Yes, but /join #perl6 is the obvious channel name to guess, and the obvious one the post in places, and the one that's already known. | ||
| moritz_ | from the lurkers too. Lurkers, I'm talking to you! | 21:30 | |
| jnthn | moritz_: It's easier for the rather smaller target audience of the implementers/testers/etc to move to another place. | ||
| dalek | ok: 2873520 | jonathan++ | src/classes-and-objects.pod: Start writing the classes and objects chapter, based on the already committed example. |
||
| rgrau | IMO #perl6 is the place where most newbies and users would go following their intuition | 21:31 | |
| diakopter joins #perl6impl | |||
| mberends | the downside of split channels is the risk of newbies missing the warm welcome they can currently expect. Some developers may not bother "staffing" the newbie channel. | ||
| diakopter | mberends: true... | 21:32 | |
| moritz_ | well, I certainly would | ||
|
21:33
eternaleye joined
|
|||
| diakopter | some noobs leave a channel if they enter and it's quiet for a long time, on the other hand, some noobs never voice their question/request if they enter a channel and it's vm talk or botwars for hours on end | 21:33 | |
| mberends | some statements never get a response | 21:38 | |
| moritz_ | well, I'll leave the discussion open a for a while | 21:39 | |
| there are people in inappropriate time zones [;-)] that might want to contribute something | |||
| diakopter | mberends: I'll hang out in #perl6impl if you want to join there... | 21:42 | |
| mberends | ENEARMAXCHANNELS | ||
|
21:43
__ash__ joined
|
|||
| moritz_ would prefer #perl6dev as a name | 21:43 | ||
| diakopter | but but, users are devs | ||
|
21:45
colomon_ joined
|
|||
| __ash__ | ruby has a ruby, ruby-lang (syntax stuff), and ruby-core (basically the core development stuff) | 21:46 | |
| diakopter | perhaps we need a perl6-cores then :) | 21:47 | |
| __ash__ | not that that makes sense, but still | ||
|
21:49
eternaleye joined
|
|||
| __ash__ | if you do run('perl6', :bg) can you redirect the IO of the new processes to a file handler of the parent process? | 21:53 | |
|
21:55
kst joined
|
|||
| moritz_ | TimToady: would you consider removing the specialness from array and hash attribute delegation? so that 'has @!values handles <push>' would DWIM | 21:55 | |
| jnthn | fwiw, that'd get my vote too | 21:56 | |
| moritz_ | IMHO if something needs something more complicated than a simple delegation, 'handles' is not appropriate | ||
| jnthn | More than once I've run into this and been like "oh yeah, hash and array are special there...damm...my idea won't work" | ||
| dalek | ok: 97f1702 | moritz++ | src/classes-and-objects.pod: [OO] this sentence no verb ;-) |
22:05 | |
| pugs_svn | r28832 | diakopter++ | [sprixel] add sprixelCORE.setting | 22:08 | |
|
22:15
s1n joined
|
|||
| dukeleto | moritz_: has there been any consensus for a name for a perl 6 newbie channel? | 22:17 | |
| dalek | ok: 639cb7a | jonathan++ | src/multi-dispatch.pod: Some minor grammar tweaks and other little bits in the MMD chapter. |
||
| moritz_ | dukeleto: no | ||
| jnthn | dukeleto: I'd not say there's been consensus for such a channel yet. ;-) | ||
| moritz_ | dukeleto: it currently looks like it will be #perl6, and either the devs will move into their own channel, or they won't | ||
|
22:18
justatheory joined
|
|||
| s1n | i'd suggest this should be the newb channel and perl6-dev should be used for developer discussions | 22:18 | |
| this is the most obvious name for a newbie to join | |||
| jnthn | s1n: yes, my feelings too | ||
| s1n: I'm not sure we need to do da split yet, but I think that's be the best way to do it. | 22:19 | ||
| s1n | it can be very intimidating if a newb were to join only to see discussions about very intricate details of rakudo/std | ||
| jnthn: i'm just suggesting the obvious name for a newcomer, not if/when a split should happen | 22:20 | ||
| mberends | I enjoy lurking on those discussions, they're fascinating | 22:21 | |
| moritz_ | they make you humble ;-) | ||
| mberends | indeed | ||
| jnthn | s1n: aha, in so far as that then, I think we agree. :-) | 22:22 | |
| s1n | jnthn: interesting, someone agrees with my opinion :/ | 22:23 | |
| pmichaud: don't forget, setup a wiki on dallas.p6m.org (and let me know what we need to do to take over dallas.pm) | 22:28 | ||
| dalek | ok: c100c05 | moritz++ | src/regex-and-grammar.pod: [RX] more about grammars, goal matching |
22:34 | |
| ok: dc98ead | moritz++ | src/multi-dispatch.pod: [MMD] use method form of map consistently |
|||
|
22:53
KatrinaTheLamia joined
22:56
crythias joined
23:17
SmokeMachine joined
23:19
tak11 joined
23:40
jrtayloriv joined
23:50
jrtayloriv left
|
|||
| dalek | p-rx: 6d0e83e | pmichaud++ | src/Regex/P6Regex/Actions.pm: Combined negated charclass should be zero-width. |
23:51 | |
| p-rx: 7b40261 | pmichaud++ | (4 files): Add initial version of NQP grammar and actions. |
|||
| p-rx: ca59b99 | pmichaud++ | build/Makefile.in: Add nqp and nqp.pbc to "make clean". |
|||
| p-rx: 348a761 | pmichaud++ | src/NQP/ (2 files): Add \\x[...] and \\o[...] quoted forms. |
|||
| jnthn reads | 23:54 | ||
| ah, *very* initial :-) | |||
| ooh, but uses protoregexen \\o/ | 23:55 | ||
| pugs_svn | r28833 | diakopter++ | [evalbot] re-add (the new) sprixel to p6eval | 23:56 | |
|
23:56
tak11 joined
|
|||