|
Parrot 0.6.0 "P&P" released | Please mentor for SoC | parrotcode.org/ | YAPC::NA talks deadline is Mar 31 | tinyurl.com/2pmnlq Set by moderator on 18 March 2008. |
|||
|
00:29
daxelrod joined
|
|||
| Coke | I wasn't sending an email. | 00:57 | |
|
00:57
grim_fandango joined
|
|||
| Coke | So, I'm a bit confused. | 00:57 | |
| "I'd" => "i would (if I were you)" | |||
| Coke tries to figure out what tense that is. | 00:58 | ||
| kid51 | Who are you talking to? Yours is the first post in nearly an hour! | ||
|
01:00
wknight8111 joined
|
|||
| PerlJam | kid51: an hour is nothing in the surreal time that IRC provides | 01:01 | |
| kid51 | As Coke would say, "Heh!" | 01:02 | |
|
01:02
rdice joined
|
|||
| PerlJam | kid51: FYI, about 3 hours ago bgeron asked if parrotcode.org would be interested in something called "zeroinstall", Coke guided him a little. | 01:05 | |
| Coke | 19:02 <@bgeron> either the mailing list is slow, or Coke hasn't sent his email yet :) | 01:06 | |
| svnbotl | r26530 | jkeenan++ | trunk: | 01:59 | |
| : Skip all manifest tools tests when not working in a checkout from the repository. All our manifest-generating tools depend on running version control functions. Hence, there's no point in trying to generate a MANIFEST in a release version and no point in testing the MANIFEST-generating tools in a release version. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26530 | |||
|
02:19
grim_fandango joined
03:00
peepsalot joined
03:23
Andy joined
03:36
Theory joined
03:40
contingencyplan joined,
peepsalot joined
04:16
AndyA joined
05:08
contingencyplan joined
07:16
uniejo joined
08:04
kj joined
08:10
marmic joined
08:15
jrt4 joined
|
|||
| svnbotl | r26531 | fperrad++ | trunk: | 08:16 | |
| : [pct] | |||
| : update doc | |||
| r26532 | fperrad++ | trunk: | |||
| : [Lua] | |||
| : minor refactor | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26532 | |||
|
08:25
iblechbot joined
09:54
ruoso joined
10:15
wknight8111 joined
10:54
IllvilJa joined
11:25
rdice joined
12:19
marmic joined
|
|||
| bgeron | Coke: ah, I thought you were, sorry :) | 12:21 | |
| I'll mail soon then (at school now) | |||
|
12:34
skids joined
12:44
particl1 joined
13:09
gryphon joined
13:19
jq joined
13:29
wknight8111 joined,
iblechbot joined
13:53
rdice joined
14:00
Andy joined
14:30
davidfetter joined
14:35
avar joined
15:13
lathos joined
|
|||
| Coke | lathos: hio. Any feedback on the feedback, or is that in allison's court now? | 15:39 | |
| lathos | Allison is editing it all up. | 15:40 | |
| Coke | ok. | ||
| svnbotl | r26533 | kjs++ | trunk: | 15:46 | |
| : [pct] Fix some NQP in the comments, to make it actually work, if needed. So, no changes are made to executable code, only to the NQP in the comments that is implemented in PIR. This as a preparation of a possible bootstrap of NQP. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26533 | |||
| pmichaud | kjs++ | 15:48 | |
| kj | oh hi patrick. Congrats on your marriage! | ||
| pmichaud | thanks! | 15:49 | |
| we're very happy :-) | 15:50 | ||
|
15:50
sjansen joined
|
|||
| kj | that's good to hear :-) | 15:50 | |
| and good to see you back on #parrot :-) | |||
| I tried to bootstrap NQP this afternoon. I got it working mostly, but I couldn't use this version to compile my tutorial language. | |||
| pmichaud | glad to be back | ||
| kj | there are some parts that must be fixed before it can work. | 15:51 | |
| Coke | groups.google.com/group/perl.cpan.t...+-perl.cvs :: fail report on parrot 0.6.0 | 15:53 | |
| shorten | Coke's url is at xrl.us/bh8k6 | ||
| particl1 | kj: care to share your attempts in the form of a branch? | ||
| pmichaud | just make it a subdir of compilers/nqp | 15:54 | |
| as opposed to a branch | |||
| I'm not in a great hurry to have self-hosted nqp as the primary implementation, but it would be very useful to have it in compilers/nqp for testing and comparison | |||
| Coke | lathos: can you remove the very old version of parrot you have on CPAN? | 15:55 | |
| (0.0.4) | |||
| (I see cpan testers are still dutifully testing it.) | 15:56 | ||
| kj | pmichaud: I made languages/nqp; that's easier to set up | ||
| pmichaud | hmmm | ||
| that might confuse people | |||
| kj | but maybe a subdir of nqp is easier | ||
| yea | |||
| s/easier/more clear/ | |||
| pmichaud | they should of course continue to use the same grammar -- only the actions implementation is different | ||
| kj | it's pretty much the same; except for some operators: I implemented them as PIR subs instead of the inline stuff | 15:57 | |
| pmichaud | that won't work though | ||
| the operators need to be inline because NQP assumes there's no runtime | |||
| kj | ah ok | 15:58 | |
| well, I had trouble getting it to work | |||
| pmichaud | i.e., when rakudo uses NQP to compile its actions methods, those methods can't assume that NQP runtime operators are available | ||
| kj | mm right | ||
| I see | |||
| ok, so that should be fixed then. | 15:59 | ||
| pmichaud | anyway, I think a 'selfhost' version of NQP in compilers/nqp would be useful | ||
| it could use the same test suite | |||
| kj | How should I add it? | ||
| pmichaud | for now, a 'selfhost' subdir of compilers/nqp would seem to be okay | 16:00 | |
| or even an actions.nqp file instead of actions.pir | |||
| kj | and within that, a directory structure as generated by tools/dev/mk_language_shell? | ||
| or just all files in that selfhost dir | |||
| pmichaud | no, I wouldn't recreate the directory structure | ||
| kj | actions.pl right? | ||
| pmichaud | again, the only difference between a self-hosted nqp and the current version of NQP is the source of the actions | 16:01 | |
| so I think we'd only need a separate actions file, and perhaps a different nqp.pir | |||
| particl1 | or make it an option to pass to nqp.pir | ||
| pmichaud | (that included the compiled form of actions instead of the pir version that is included now) | ||
| (option to pass) that sounds tricky | |||
| because we'd have to know which set of action methods to load | 16:02 | ||
| could have two action objects, I suspect | |||
| one that uses the PIR-generated action methods, one that has the nqp-generated ones | |||
| and then the option to nqp simply says which object to use in the HLLCompiler | |||
| kj | i see | 16:03 | |
| pmichaud | but for now I'd do it as two separate executables | ||
| where the only difference is the source of the actions, and possibly a separate nqp.pir | |||
| I have to run errands -- bbl | |||
| parrotsketch in 85, yes? | 16:05 | ||
| oh, wait. 18:30 UTC, yes? so that would be 145 | 16:06 | ||
| okay, that gives me plenty of time | |||
| bbiab | |||
|
16:16
Theory joined
|
|||
| particl1 | i'll be missing parrotsketch today | 16:18 | |
| report posted. | 16:28 | ||
| Infinoid | wknight8111: ping | 16:29 | |
| wknight8111 | hello | ||
| purl | que tal, wknight8111. | ||
| wknight8111 | que tal, purl | ||
| purl | bonjour, wknight8111. | ||
| Infinoid | hi! what do you think we should do about RT #51988? | 16:30 | |
| wknight8111 | ...let me look it up | ||
| Infinoid | its the _dup thing | ||
| I'm not really sure what the motivation is... the patch breaks on linux, but does it fix warnings on win32? if so, we might want to do something conditional there | |||
| wknight8111 | Win32 warns that "dup" is deprecated and we should use "_dup" instead | 16:32 | |
| it's a small matter, and just because it's deprecated doesnt mean it's an error, yet | |||
| Infinoid | but it probably will be, someday | ||
| fair enough. what do you think about putting the #define in an #ifdef WIN32, or the like? | |||
| svnbotl | r26534 | kjs++ | trunk: | ||
| : [nqp] add initial actions file for NQP, written in NQP. Update MANIFEST. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26534 | |||
| particl1 | #define Parrot_dup | ||
| wknight8111 | we could make a simple macro, #ifdef _WSV_CRT #define DUPLICATE _dup .... | 16:33 | |
| right, something like that | |||
| Infinoid will test with mingw, to see whether the warning is msvc-specific or not | |||
| wknight8111 | i should have done it with mingw too, before I submitted. I thought the patch was going to be mostly harmless | 16:34 | |
| Infinoid | don't worry about that. it got us thinking about it, which is a very good thing :) | ||
| so far, it sounds like... Parrot_dup is defined to dup() on most platforms, and _dup() on MSVC | 16:36 | ||
| that will make everyone happy. right? | |||
| wknight8111 | makes me happy | 16:37 | |
| particl1 | smoke testing will bear that out | ||
| sounds good, though | |||
| Infinoid | sounds like a good start, then | ||
| nopaste | "Infinoid" at 75.5.247.241 pasted "rt51988-try1.diff" (49 lines) at nopaste.snit.ch/12570 | 16:53 | |
| Infinoid | wknight8111: any chance you can try that on msvc and see if it warns? | ||
| (that define probably isn't in the right place, but first things first) | 16:55 | ||
| kj | wknight8111: hi, you asked for my squaak implementation, no? | ||
| svnbotl | r26535 | kjs++ | trunk: | 16:57 | |
| : [nqp] update the TODO file to add some notes about the bootstrap version, so I don't forget these. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26535 | |||
| wknight8111 | kj, you sent it to me. thanks | 16:58 | |
| Sure, i'll try building now | |||
|
17:07
chromatic joined
17:08
kid51 joined
|
|||
| particl1 | /usr/bin/ld: crt1.o: No such file: No such file or directory | 17:14 | |
| collect2: ld returned 1 exit status | |||
| what's that mean i'm missing? | |||
| Infinoid | either gcc or glibc :) | ||
| particl1 | i have gcc | ||
| what's the debian pkg name for glibc? | 17:15 | ||
| Infinoid | probably libc6-dev is what you're after | ||
| do other C programs compile successfully? | |||
| debian has a nice "build-essential" package that covers all that stuff | |||
| particl1 | sudo apt-get install build-essential | 17:16 | |
| Infinoid++ | |||
| wknight8111 | darn, it didn't work. I must have messed up the macro. What should I test for, _MSV_CRT? | 17:26 | |
| jonathan | Parrot Sketch is about 1 hour away, right? | 17:27 | |
| kid51 | Damn, I forgot that it's localtime changed when we went to DST. | 17:28 | |
| Coke | jonathan: believe so, yes. | 17:29 | |
| so how does one get ops in a discussion where no one has ops? | 17:30 | ||
| kid51 | 1830 GMT correct? | 17:31 | |
| chromatic | Yes. | ||
| kid51 | Coke: I think you have to know one of the #perl ops. | ||
| Coke | Crap. YA week of "didn't really do anything." | 17:32 | |
| Infinoid | wknight8111: no idea. _MSC_VER seems to be used elsewhere | ||
| wknight8111 | Infinoid, that's what I was thinking about. That's probably it | ||
| ...building again... | 17:33 | ||
| Coke | chromatic: didn't you run some of the SDL stuff recently? | 17:34 | |
| chromatic | I had it working with PDD 15. | ||
| Coke | rt.perl.org/rt3//Ticket/Display.html?id=48727 :: remove classoffset opcode :: except that SDL is using it. | 17:35 | |
| chromatic | Which file? | 17:36 | |
| purl | well, Which file is that error in | ||
| Coke | though I think that classoffset already throws an exception, so the examples *can't* work. | ||
| cognominal | jonathan, thx for reviewing my patch. I am studying STD.pm to steer in the right direction | ||
| Coke | in examples/sdl/{minesweeper,tetris} | ||
| chromatic | Those should be easy to fix. | 17:37 | |
| I'll work on them. | 17:38 | ||
| Coke | danke. | ||
| (one more deprecation gone.) | |||
|
17:41
kj joined
|
|||
| jonathan | cognominal: Welcome. :-) I'm going to try and sort out some of the remaining colonpair bits. :-) | 17:41 | |
| cognominal | also, :a is :a(0) not :a(Bool::True) | 17:43 | |
| I don't know if you have corrected | |||
|
17:43
barney joined
|
|||
| Infinoid | wknight8111: *sigh*. my winxp installation is broken, not going to be able to test mingw for a while, sorry | 17:44 | |
| cognominal | I am trying to understand namespaces too cuz HLLCompiler currently compiles in the global namespace | ||
| jonathan | cognominal: :a is equivalent to :a(1), you mean? | ||
| cognominal | yes | 17:45 | |
| jonathan | Yup, just saw the bit of S02 that says that, you're completely right. | ||
| cognominal | you did it equivalent to :a(True) and I followed suit which was wrong | ||
| easy mistake | 17:46 | ||
| Coke | [18:45:32] t/postconfigure/03-revision....................1/8 | ||
| has been sitting there for some time on feather (svn checkout) | |||
| (local mods) | |||
| ... ah session died. whoops) | 17:47 | ||
| whoa! no, not dead, ^C started it going again. | |||
| jonathan | cognominal: Fixing it now. | 17:48 | |
| But got some other patches locally related to colonpairs that are halfway through too. :_) | 17:50 | ||
| wknight8111 | Yes, that fix killed the warning on cl.exe | 17:52 | |
| i actually don't have mingw here, so I can't test it now | |||
| cognominal | jonathan, will you be able to make it to Albi may 30 and 31? | 17:53 | |
| conferences.mongueurs.net/fpw2008/ | 17:54 | ||
| or anyone here who wants to talk anything related to parrot | |||
| jonathan | cognominal: 'fraid not - I've already had vacation planned for those dates since before FPW was announced. | 17:55 | |
| Shame, because FPW is a good time. | |||
| Infinoid | wknight8111: thanks, I'll sort this out and check it in, and test mingw later on when I have the chance | ||
| jonathan | say (:a).perl | ||
| :a | |||
| say (:!a).perl | |||
| :!a | |||
| my $a = 'foo'; say (:$a).perl | |||
| Infinoid | I don't think this will break mingw, I'm mainly just curious if the warning shows up there too. | ||
| jonathan | :a<foo> | ||
| Woo. :-) | 17:56 | ||
| cognominal | cool | ||
| jonathan | The .perl method is thanks to you. Plus a couple of little tweaks. :-) | ||
| cognominal | and :a(2) ? | ||
| jonathan | Not implemented yet. | ||
| cognominal | I don't think parens are necessary | 17:58 | |
| in (:a).perl | |||
| svnbotl | r26536 | chromatic++ | trunk: | ||
| : [examples] Rewrote away classoffset indexed attribute access in Mines::Field. | |||
| r26537 | coke++ | trunk: | |||
| : [deprecated] | |||
| : Remove deprecated vtable entry "subtype". No tests fail. | |||
| : Resolves RT#48569 | |||
| r26538 | jonathan++ | trunk: | |||
| : [rakudo] Add .perl method for Pair class. Patch courtesy of cognominal++, with some tweaks from moi. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26538 | |||
| jonathan | cognominal: Yep, it works without too. | 17:59 | |
| cognominal | in fact, I did not realize that test were working in parrot , I bundled them but commented them out in my patch | 18:01 | |
| btw it seems that in perl6 the left side of a => must be a bareword | 18:02 | ||
| if I trust STD.pm | |||
| jonathan, I don't know if that affect your last patch | 18:03 | ||
| svnbotl | r26539 | jonathan++ | trunk: | ||
| : [rakudo] Add missing desigilname token to the grammar. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26539 | |||
| cognominal | jonathan, .return is supported as long it is not buried in a block? | 18:05 | |
| jonathan | cognominal: My reading of STD.pm is the same, yes, it's an <ident> there. | 18:06 | |
| .return in what context? | |||
| cognominal | it would not work in inner block in code generated by rakudo? | 18:08 | |
| jonathan | Not if you actually want to return from the outer block, no. | ||
| We haven't got support for return like that yet. | |||
| cognominal | the code generated should trhow and catch an appropriate exception? | 18:09 | |
| Coke | yes. | ||
| cognominal | jonathan, in the .perl, it seems that the fatarrow is not necessarily a naked string? | 18:10 | |
| I mean the string in the left of => | 18:11 | ||
| jonathan | Yeah. That could do with a fix. | ||
| Guess in that case you have to instantiate a Pair object. | |||
| svnbotl | r26540 | jonathan++ | trunk: | 18:16 | |
| : [rakudo] Fix :a and :!a to meet S02. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26540 | |||
| jonathan | Oh, fatarrow is already implemented. | 18:18 | |
| jonathan may have done it, but he sure doesn't remember doing it | |||
| (whoeverdidit)++ | 18:19 | ||
| cognominal | you did it I think | ||
| jonathan | oops, self-karma. | ||
| :-) | |||
| cognominal | I think that when heredoc will be implemented, rakudo will be able to compile itself | 18:21 | |
| kj | w.r.t. the returning of subroutines and exceptions: It seems to me that it doesn't work with the current infrastructure, does it? | ||
| svnbotl | r26541 | jonathan++ | trunk: | 18:22 | |
| : [rakudo] Implement simple varname case for colonpairs, e.g. :$foo. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26541 | |||
| jonathan | kj: I believe not, no. | ||
| kj | I mean the PCC and flags like :flat and :slurpy. Whenver you "throw" something, it is converted into an Exception object | ||
| cognominal | I forgot that | ||
| kj | so that should be adjusted | ||
| Coke | why is Parrot_exit defined in both embed.h and exit.h ? | 18:25 | |
| pmichaud | cognominal: (heredoc) -- do we need full heredocs, or just the limited form that NQP is currently using? | ||
|
18:26
cotto_work joined
|
|||
| cognominal | that depends if you want to aim toward perl6 or toward self-bootstrapping | 18:26 | |
|
18:26
kid51 joined
|
|||
| chromatic | Coke, silly duplication I suspect. | 18:27 | |
| pmichaud | well, I've already commented that self-bootstrapping isn't my highest priority at the moment :-) | ||
| svnbotl | r26542 | chromatic++ | trunk: | ||
| : [examples] Removed deprecated classoffset opcode from Tetris example. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26542 | |||
| Coke | chromatic: so I'm guessing remove it from embed.h and see if anything breaks? | ||
| Infinoid | won't embedders want to exit cleanly too? | 18:28 | |
|
18:28
purl joined
|
|||
| Coke | I'm getting build warnings from it being re-declared, so something is including both embed.h and exit.h | 18:28 | |
| is the problem with the thing doing the including? | 18:29 | ||
| chromatic | embed.h seems right to me. | ||
| #ps in one | |||
| cognominal | pmichaud, can you see a better way to patch the problem described in rt.perl.org/rt3/Public/Bug/Display.html?id=49758 | 18:39 | |
| svnbotl | r26543 | rblasch++ | trunk: | ||
| : Updated PLATFORMS for GNU/OpenSolaris (NexentaOS). | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26543 | |||
| pmichaud | cognominal: I think the patch avoids the problem but doesn't actually fix the underlying problem | 18:41 | |
| the underlying problem probably has something to do with the way that subs are being generated or managed | 18:42 | ||
| otoh, Parrot really should never produce a "Bus error" | |||
| chromatic | I've been slowly removing buses from Parrot over the past year. | 18:43 | |
| Coke | we're going to a complete mass transit system. | ||
| cognominal | :) | ||
| pmichaud | I didn't see in the ticket itself, but does the problem persist if parrot is invoked with -G ? | ||
| cognominal | better than a complete mess | 18:44 | |
| never tried -G | |||
| Coke wolf whistles at pmichaud's honeymoon comment. | 18:45 | ||
| cognominal | I think as I said in the thread of the bug report, that the rakudo shell should not wraps a block as part of the eval but that a separate issue even if related | 18:46 | |
| chromatic | If someone can reproduce the problem in simple PIR, I'll fix the seggie. | ||
| Coke wolf whistles at pmichaud's pictures comment. | |||
| pmichaud | right now PCT only knows how to create subs | ||
| cognominal | the problem is that the interpreter should not do a bus error on a missing outer block | 18:47 | |
| what I did is to avoid generating the reference to the missing outer block | |||
| pmichaud | well, PCT should certainly not generate an :outer flag on a block that doesn't have an outer | ||
| cognominal | so that's very easy to reproduce with simple pir | ||
| chromatic | Throw a test case my way and that'll be one fewer segfault. | 18:48 | |
| cognominal | pmichaud, I agree but the interpetor should to better than a bus error | ||
| pmichaud | correct | ||
| er, correct if you mean that Parrot should do better than a bus error | 18:49 | ||
| cognominal | what is the way to die in pmc code? | 18:53 | |
| chromatic | Throw an exception object. | 18:54 | |
| Infinoid | Andy: ping | ||
| Andy | sir | ||
| Infinoid | hi! do you know what the difference between PARROT_HAS_SNPRINTF and PARROT_HAS_C99_SNPRINTF is? | ||
| Andy | no. | ||
| chromatic | For a piece of candy would you figure it out? | 18:55 | |
| pmichaud | how about a Scooby Snack? | ||
| purl | Rank roo, pmichaud! | ||
| Infinoid | wknight8111 reported RT #51980 to consolidate the two, but I'm not sure whether we want to. (His win32 platform defines the first but not the second; my linux platform defines both.) | ||
| wknight8111 | never discount the possibility that i'm stupid and sleep-deprived | 18:56 | |
| Infinoid | wknight8111: it would be nice to know what the difference is and whether it's important, your solution might be spot-on :) | ||
|
18:59
Psyche^ joined
|
|||
| Infinoid | ok. since noone admits to having anything to do with snprintf, its fair game to rip it apart and see who complains. :) | 19:03 | |
| chromatic | That's why we have the tests. | 19:04 | |
| And may I add, you who are about to die, the rest of us salute you. | |||
| Infinoid cracks up | 19:05 | ||
| chromatic | What, varargs, memory management, and IO all smooshed together don't worry you? | ||
| Infinoid | if snprintf does any IO, I've really broken it | 19:06 | |
| chromatic | I'm thinking of sfnprintf perhaps. | 19:07 | |
| Coke | kid51: have you tried re-installing the developer tools from apple? | 19:08 | |
| (on the chance that the custom gcc 4 overwrote some system file somewhere?) | |||
| svnbotl | r26544 | jonathan++ | trunk: | ||
| : [rakudo] Implement pairs of the form :a(...) (postcircumfix:()). | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26544 | |||
| kid51 | Coke: If I get time I will try that. | 19:09 | |
| Coke | I also wonder if that particular config step is ignoring your explicit settings you've passed to configure. | ||
|
19:10
mire joined
|
|||
| chromatic | If it's the shell script I just looked at, the MACOS_INSTALLATION_TARGET environment variable isn't getting set correctly. | 19:10 | |
| It persists through the Configuration process, but it's not present for the make process (and the linking process). | 19:11 | ||
| kid51 | Coke: I'm pretty sure it's not. I can track those with Parrot::Configure::Trace | ||
| chromatic: The problem is in the configuration process. I can build and test successfully (though perhaps the resulting parrot executable is different). | |||
| wknight8111 | what does the warning mean "Null PMC acces in invoke()"? | 19:12 | |
| chromatic | You tried to invoke something that's not a Sub. | 19:13 | |
| cognominal | that it tries to find a routine and fails | ||
| kid51 | chromatic: Besides: What allison had me set was this: | ||
| [trad] 516 $ echo $MACOSX_DEPLOYMENT_TARGET | |||
| 10.3 | |||
| chromatic | In your .bashrc or .tcshrc or .profile? | 19:14 | |
| kid51 | .bashrc | ||
| cognominal | ... so you get a null PMC on subsequent invoking | ||
| wknight8111 | okay thanks. now i need to debug and figure out what i'm doing wrong | ||
| davidfetter | anybody know when yapc::na's going to announce which talks made it? | 19:15 | |
| kid51 | barney: Does my patch in rt.perl.org/rt3/Ticket/Display.html?id=51860 work for you re manifest tests? | ||
| davidfetter: IIRC Josh extended deadline to Mar 31, so decisions should be made soon after. | 19:16 | ||
| davidfetter | thanks :) | ||
| Coke | So far, only kid51 has updated that wiki page (so says my RSS feed) | 19:17 | |
| davidfetter can most easily make travel plans when he knows he'll be speaking | |||
| Coke | (regarding talks) | ||
|
19:17
contingencyplan joined
|
|||
| barney | kid51: Yes, I've closed that ticket. Thanks. | 19:17 | |
| kid51 | Yes, and I would like some co-leaders to bring off that session. | ||
| barney: Thanks. | |||
| Coke | kid51: depending on when that session is, I will of course be there. | 19:18 | |
| PerlJam makes a(nother) mental note to read kjs' PCT tutorial | 19:23 | ||
| kj | PerlJam: You're editor for the perl review right? | 19:24 | |
| PerlJam | not I | 19:25 | |
| that's bdf | |||
| kj | oh sorry I thought that was you ;-) | 19:26 | |
| PerlJam | kj: Are there no back links to the other episodes (I just glanced at #9) | 19:27 | |
| ? | |||
| kj | no. that's a good point. | ||
| not sure how to do that ... | |||
| something with http....#episode8 I think, right? | |||
| PerlJam | beats me :) | ||
| kj | oh. I'm not really into html | 19:28 | |
|
19:32
peeps[work] joined
19:34
contingencyplan joined
|
|||
| cotto_work | kj, when someone's looking at individual episodes, there are links to the next/prev episodes at the bottom | 19:37 | |
| cognominal | normally imcc trips when compiling a sub with a fake outer: compilers/imcc/pbc.c:969: IMCC_fatal(interp, 1, "Undefined :outer sub '%s'.\\n", | 19:38 | |
| but apparently that's different within an eval | 19:39 | ||
| kj | cotto_work: you mean newer and older post? | 19:40 | |
| cotto_work | eys | ||
| kj | that works kinda, but it's not ideal | ||
| cotto_work | s/ey/ye/ | ||
| kj | i mean, it's not clear what those posts are | ||
| but it's not a big deal I think | |||
| pmichaud | imcc gets called differently from within parrot than as parrot | 19:42 | |
| for example, try compiling a string using the object that comes back from $P0 = compreg 'PIR' | |||
| I had a post (perhaps a ticket) that illustrated this -- just a sec | |||
|
19:43
marmic joined
|
|||
| Coke needs a tagline description of parrotblog.org | 19:46 | ||
| chromatic | It's a blog. For parrots. | ||
| Coke | ... right. committing... | ||
| pmichaud | rt.perl.org/rt3/Ticket/Display.html?id=47956 | 19:47 | |
| shows an example where invoking imcc as "parrot" and using the internal compreg "PIR" compiler produces different results | 19:48 | ||
| kid51 | Coke: apropos parrotblog.org. Couple of weeks ago, I posted on list re difference between that site and planetparrot. Didn't get any replies. | 19:49 | |
| cognominal | pmichaud: interesting | ||
| pmichaud | difference between planetparrot and parrotblog: | 19:52 | |
| planetparrot is an aggregation of feeds/blogs that are related to parrot (could come from multiple sources) | |||
| parrotblog is a place where people can blog about parrot that isn't use.perl (i.e., some parrot news might not be appropriate for a perl-only forum, or perhaps should have a larger reach) | 19:53 | ||
| jonathan really should get around to writing a Rakudo-related blog post sometime soon. | 20:00 | ||
| Coke | kid51: I have that request starred to entice me to reply once my waiting for allison times out. =-) | 20:04 | |
| planet parrot is an aggregate of any parrot-related blogs. | 20:05 | ||
| parrotblog is, er, for, um, parrot related bloggin? | |||
| Coke seems pmichaud has already opined on this. | |||
| kid51 | It would be good to get that distinction added to the Resources page at parrotcode.org | 20:10 | |
| Coke | <small>A blog dedicated to Parrot news, tutorials, and more</small> | 20:18 | |
| vs. | |||
| <small>An aggregator of select Parrot-related blogs</small> | |||
| that ok? | |||
| purl | NO, it isn't | ||
| pmichaud | for the second | 20:19 | |
| "An aggregator of blogs from Parrot-related contributors" | |||
| Coke | t/postconfigure/03-revision seems to be hanging pretty regularly now on feather. | ||
| pmichaud | since planetparrot doesn't seem to distinguish non-parrot posts from parrot posts | ||
| or better | 20:20 | ||
| "An aggregator of blogs from selected Parrot contributors" | |||
| Coke | +1 | ||
| purl | 1 | ||
| cotto_work | +1 1 | 20:21 | |
| Coke | and 04-revision. | 20:22 | |
| any other feedback before i commit this version? | 20:25 | ||
| pmichaud's version. | |||
| svnbotl | r26545 | coke++ | trunk: | 20:32 | |
| : [icc] | |||
| : RT #52028 ([PATCH] Do not split macro invocations that use CONST_STRING into multiple lines) | |||
| : Matt Kraai++ | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26545 | |||
| jonathan | pmichaud: Got a moment to give me hints on a parsing bug? | 20:55 | |
| pmichaud | sure | 20:56 | |
| jonathan | This works: | 20:57 | |
| my $x = <-> $a { say $a; }; $x(42); | |||
| 42 | |||
| But this doesn't: | |||
| my $x = -> $a { say $a; }; $x(42); | |||
| Statement not terminated properly at line 1, near "= -> $a { " | |||
| I am pretty sure, it's trying to parse that as prefix:- or something. | 20:58 | ||
| But can't confirm that in any way (not sure how). | |||
| pmichaud | it's undoubtedly seeing that as prefix:- | 20:59 | |
| kj | isn't -> a prefix op too? | ||
| pmichaud | no, it's part of the <pblock> rule | ||
| the best workaround I can come up with for now would be to create a prefix:-> that "fails" | 21:00 | ||
| jonathan | Issue with longest token rule and bottom-up parsing is my guess? | 21:01 | |
| pmichaud | yes | ||
| jonathan | I don't understand PGE anything close to enough to know where to start fixing that. | ||
| pmichaud | well, PGE is likely going to need some massive redesign for longest token rule, and for that I need to look at TimToady's work on his parser | 21:02 | |
| jonathan | I'm not blocking on it as such, so if you can see it being fixed on the scale of weeks then it's fair enough. | ||
| Ah, OK. | |||
| pmichaud | I can see us being able to create a prefix:-> workaround fairly quickly | ||
| jonathan | Maybe a workaround is the way to go. | ||
| Coke | Ugh. So we now have stuff on the web in the wiki, combust, the repository, and the blog. | ||
| pmichaud | I don't have a good time estimate for longest token rule. | ||
| jonathan | Sure, it looks to me like a *serious* amount of work. | 21:03 | |
| pmichaud | well, fortunately TimToady has one working (at least to some degree) already, so if I have a template/design to follow I'm hoping it won't be too onerous | 21:04 | |
| jonathan | Here's hoping. :-) | ||
| pmichaud | if I had to come up with it myself, I'd be a lot more pessimistic about it | ||
| jonathan | What are you thinking of working on next Rakudo wise, beyond catching up on what @other have been doing? | 21:05 | |
| pmichaud | refactoring classes and protoobjects, with an eye towards .HLL | 21:06 | |
| other items would be regex/rule/token, and getting 'return' to work | |||
| (since 'return' is needed for PCT completion) | |||
| jonathan | OK, cool. | 21:07 | |
| They are things I'm less comfortable working on, so I'm happy to not have to worry about them. :-) | |||
| pmichaud | anything you'd particularly like to see me work on ? ;-) | ||
| I do take requests :-) | 21:08 | ||
| jonathan | Actually, the above list is pretty much what I would have asked for. | ||
| kj | i think the control stuff like break/continue/return is interesting, but needs better parrot support | ||
| it would be on My Wishlist ;-) | |||
| pmichaud | I think parrot is pretty close, it's just PCT that needs to support it | ||
| simply being able to throw exceptions is all that I need parrot to do | |||
| (throw exceptions with a payload, that is) | 21:09 | ||
| jonathan | I take requests too, if there's anything in Rakudo you want me to look at. | ||
| kj | ok. I don't really see how it would work frankly, as you have to wrap stuff in exceptions | ||
| not very efficient anyway | |||
| pmichaud | however, it would be very nice if Parrot had something equivalent to Perl's "Capture" object that can package up positional and named arguments into a single PMC | ||
| jonathan | My plans for next stuff is to get fatarrow and colonpair passing named parameters. | ||
| Hmm, a capture PMC. | 21:10 | ||
| purl | it has been said that a capture pmc is quite useful, similar to a DOM tree | ||
| pmichaud | there's already a Capture pmc in Parrot, but it's broken. It needs to be re-done with the new pdd17 model in mind | ||
| and the Capture object that PGE/PCT uses is written entirely in PIR, so it's a bit slow | |||
| jonathan | Does the one that PAG and PCT use have the correct semantics? | 21:11 | |
| Coke | control-flow-exceptions: we should standardize on how we do this for HLL interop. | ||
| jonathan | s/PAG/PGE/ | ||
| pmichaud | Coke: that's what I'm intending for PCT, yes | ||
| jonathan: there are a few minor changes to be made, but essentially the semantics are correct, yes. | |||
| Coke | right now tcl is just throwing exceptions and using one of the slots to store the control-flow type. | ||
| (corresponding to the values at: www.tcl.tk/man/tcl8.5/TclCmd/return.htm) | 21:12 | ||
| -> | 21:13 | ||
| kj | it'd be nice if under the hood, so in PIR, return statements are still return statements, and not exceptions. Even if they're using the exception mechanism | ||
| jonathan | pmichaud: Where can I find the PIR version? | ||
| purl | the PIR version is gone i think | ||
| pmichaud | jonathan: runtime/parrot/library/Parrot/Capture_PIR.pir | 21:14 | |
| kj: that's my intent | |||
| nopaste | "cognominal" at 82.67.232.89 pasted "unsucessful fix" (21 lines) at nopaste.snit.ch/12571 | ||
| pmichaud | kj: there will likely be a 'return' op node in PCT | ||
| kj | right. but what I meant is, that there's also PIR syntax hiding the exception stuff | ||
| cognominal | I try that but it still fails :( | 21:15 | |
| jonathan | pmichaud: Thanks, will keep that in mind as something to work on soon. | ||
| pmichaud | oh, I don't think the PIR version of 'return' needs to be exception-based | ||
| we already have 'throw' for that :-) | |||
| on phone | |||
| chromatic | Where's the Capture PMC? | 21:16 | |
| purl | the Capture PMC is probably quite useful, similar to a DOM tree | ||
| pmichaud | src/pmc/capture.pmc, I think | 21:17 | |
| chromatic | Hm, I updated it if it's there. | 21:18 | |
| pmichaud | oh, perhaps I need to re-test it then | ||
| chromatic | It may still be broken, but it should at least compile correctly. | 21:19 | |
| pmichaud | well, it may work, but I was under the impression that the new PMC implementation would allow us to be more efficient in implementing stuff like this (i.e., a capture needs a separate Hash and Array component) | 21:21 | |
| previously it was somewhat complex because there was really only one data slot | 21:22 | ||
| chromatic | Yeah, that's doable. | ||
|
22:09
Limbic_Region joined
|
|||
| jonathan | Wheee.. | 22:15 | |
| class Foo { has $.a; } | |||
| my $x = Foo.new(a => 42); say $x.a; | |||
| 42 | |||
| kj | jonathan++ | 22:16 | |
| seems like rakudo is nearing completion :-P | |||
| I have no clue how much more must be implemented... | |||
| jonathan | You haven't seen the Perl 6 spec, have you? :-P | ||
| cognominal | :) | 22:17 | |
| kj | I scrolled through it and thought: too much for me | ||
| :-) | |||
|
22:17
cotto_work joined
|
|||
| kj | then again, pure size doesn't say anything | 22:17 | |
| cognominal | jonathan, what is the perl6 incantation to ask to use registers for lexical variables? | 22:18 | |
| cuz lexpads are costly | |||
| there must be a way otherwise why native types | |||
| jonathan | kj: There's still a *lot* to do in Rakudo. | ||
| PerlJam | cognominal: I doubt any such mechanism is specced. | 22:19 | |
| jonathan | cognominal: my int $x; # should, one day, be a Parrot int register | ||
| The lowercase types are the native ones. | |||
| kj | jonathan: yeah i didn't expect otherwise; but it's very difficult to get any clue about which parts. At least for outsiders like myself | ||
| jonathan | However, that's not implemented at the moment. | ||
| cognominal | I know that :) | ||
| PerlJam | oh. /me was thinking of registers as in the C sense. Silly me. | ||
| cognominal | but some day someone will want to do fibonacci with radkudo | 22:20 | |
| svnbotl | r26546 | jonathan++ | trunk: | ||
| : [rakudo] Treat pairs in parameter lists as named arguments. | |||
| r26547 | jonathan++ | trunk: | |||
| : [rakudo] Fix new method for Object. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26547 | |||
| jonathan | kj: At the moment, it'd probably be easier to point out the bits that are implemented, than the bits that aren't. ;-) But a version of the spec that had the bits that Rakudo implements highlighted green or something, or that it partially implements that are buggy in yello, would be cool to have. | 22:21 | |
|
22:21
jrt4 joined
|
|||
| kj | jonathan: yeah, that'd be cool. When selecting grammar bits to implement, do you look at the spec? | 22:22 | |
| I mean, how do you decide what to do | |||
| PerlJam | jonathan: I've thought it would be cool if you could somehow do that with STD.pm vs. grammar.pm (but that's just parsed, not implemented) | ||
| jonathan | I'm going for a breadth-first approach at the moment, which basically means I'm trying to get little bits of all sorts implemented. | ||
| Part of it is certainly driven, by, which bits of the spec do I look at and have a good idea of how to implement. | 22:24 | ||
| I'm also trying to get a lot of the common cases covered, though. | |||
| PerlJam | kj: When ever I attempt to hack on rakudo, I look at STD.pm and I try to make grammer.pm look more like STD.pm :) | ||
| kj | mm I don't even know how to get at the STD.pm | ||
| jonathan | So when I give Perl 6 talks, I can say "and you can run this in Rakudo today". :-) | ||
| PerlJam | kj: invariably though, I run into problems hacking the corresponding actions.pm part as I don't do it enough for it to be comfortable. | ||
| kj: it's in the pugs repo | 22:25 | ||
| jonathan | kj: svn.pugscode.org/pugs/src/perl6/STD.pm | ||
| svnbotl | r26548 | infinoid++ | trunk: | ||
| : [io] Apply patch similar in spirit to RT #51988 | |||
| : Hopefully this will resolve warnings on win32/msvc. I'm pretty sure it won't | |||
| : affect any other platform. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26548 | |||
| kj | is it me, or is this a very complex spec? :-P | ||
| chromatic | It's not just you. | 22:26 | |
| PerlJam | kj: This is "perl 6", not "python 3000" :-D | ||
| kj | ha ha ;-) | ||
| chromatic | You mean Python 2.7? | ||
| PerlJam | whatever they're calling it these days | ||
| kj | i think it's "3" these days... | ||
| it seems to me that the spec contains executable code to parse this... Am i right in that? | 22:27 | ||
| PerlJam | kj: read the comments | ||
| jonathan | Happily, someone++ already did named params. So this works now too... | 22:30 | |
| sub foo (:$bar) { say $bar; } | |||
| foo(bar => 42); | |||
| 42 | |||
| And foo(:bar(42)) of course. | 22:31 | ||
| kj | :bar(42) is same as bar=>42? | ||
| jonathan | Yes. | ||
| kj | just as in PIR, kinda | ||
| a Perl 6 specification tutorial wouldn't be useless ;-) (hint, hint) | 22:34 | ||
| jonathan | kj: What would you want it to cover? | 22:36 | |
| cognominal | jonathan : default_statement should be $<sym>=[default| '*'] | ||
| kj | jonathan: well I guess it's just a bit confusing how this stuff works. It's not just anohter grammar specification, like any other language. This is way more complex. | 22:37 | |
| and I don't understand why all this complexity... | 22:38 | ||
| pmichaud | why should default_statement include '*' ? | ||
| cognominal searches the relevant synopsis | |||
| jonathan | pmichaud: I don't think it should. But when * is equivalent to default | 22:39 | |
| But that waits until we implement Worreva. | |||
| pmichaud | jonathan: yes, in which case it's a when_statement :-) | ||
| jonathan | Right. | ||
| And I don't think it's a special case either. | |||
| Just that the Whatever type has a very simple ACCEPTS method. :-) | 22:40 | ||
| pmichaud | correct | ||
| jonathan | token whatever { '*' {*} } | ||
| Hmm, should that just instantiate the Whatever class? | |||
| pmichaud | seems reasonable enough for now. Either that or return the Whatever protoobject, or a singleton instance of Whatever | 22:41 | |
| cognominal | oops | ||
| it reads default { ... } is exactly equivalent to when * {...} | 22:42 | ||
| jonathan | The protoobject makes sense. | ||
| pmichaud | right... but 'when * { ... }' is an example of a when_statement, not a default statement | ||
| cognominal | yes, I was wrong | ||
| pmichaud | well, I don't know what sort of definedness we need for '*' | 22:43 | |
| jonathan | Well, I'll stub it in enough to make when * work... :-) | ||
| pmichaud | sounds great :-) | ||
| cognominal | I can't remember every synopsis :( | ||
| pmichaud | neither can I, which is why I had to look it up also :) | 22:44 | |
| jonathan | cognominal: If you could, I'd be terrified of you. | ||
| cognominal | I have seen you arenot omniscient either :) | ||
|
22:44
mire joined
|
|||
| jonathan | Oh, hmm. While whatever is defined in STD.pm, it's not mentioned nearly anywhere else in the grammar. | 22:45 | |
|
22:46
skids joined
|
|||
| cognominal | * means many different things in many place, that's the ultimate joker | 22:46 | |
| jonathan | Well, I'm not implementing all of it's meanings before I go to bed. :-P | 22:47 | |
| pmichaud | I think the concept of 'whatever' is often more context-sensitive than syntax | 22:48 | |
| jonathan | That's my impression from S02. | 22:49 | |
| I remember seeing Whatever for the first time at some YAPC::EU in a Larry keynote and thinking "wow, that's nice...but I wouldn't want to be implementing that". Ah well... | 22:50 | ||
| skids | jonathan: www.perlfoundation.org/perl6/index....witch_star | ||
| cognominal | variables with a + twigil are dynamically scoped? | 22:51 | |
| I see them in many places in STD.pm? | 22:52 | ||
| pmichaud | they're contextual variables | ||
| which means we look up the call stack to find the scope in which it's defined | |||
| cognominal | ok, that's what I call dynamical scope | ||
|
22:52
spez joined
|
|||
| cognominal | some lisp did that too | 22:53 | |
| so we do both lexical and dynamic | |||
| pmichaud | the variable in the outer caller scope also has to be defined with the 'context' trait | ||
| yes, we do both lexical and dynamic | 22:54 | ||
| jonathan | I haven't thought much about how to implement those just yet. :-) | ||
| pmichaud | oh, it's easy -- PCT is going to implement dynamic scope | ||
| essentially we just use getinterp and traverse the caller stack looking for a matching lexical | |||
| jonathan | Oh, wow. It's easy. | 22:55 | |
| :-) | |||
| skids: Thanks. :-) | |||
| pmichaud | (we'll have to do some trickery to handle the 'context' trait and skip over entries that aren't 'context'... but we can work that out) | ||
| jonathan | Hmm, getting PCT to do that neatly could be fun. | ||
| As in, in a language-independent way. | 22:56 | ||
| pmichaud | I'm thinking it's just a PAST::Var of :scope('context') | ||
| jonathan | Or we could just replace its 'dynamic' with our own by fiddling the namespace. :-) | ||
| Or that. | |||
| Oh, fiddling the namespace breaks other languages we want to compile. Forget that. | |||
| pmichaud | and PCT will convert that to call a subroutine that handles the callstack | 22:57 | |
| note that it's not really namespace related | |||
| or, for that matter, I could just leave it up to the HLL to define its own method for grabbing a context var | |||
| jonathan | I was referring to putting a new Sub into the namespace entry for 'dynamic' in the PCT namespace. ;-) | ||
| But it's wrong, wrong wrong. | 22:58 | ||
| pmichaud | ohhhh | ||
| no, the way to do that is to subclass PAST::Var (or whatever) and add a new method | |||
| purl | okay, pmichaud. | ||
| jonathan | :-) | ||
| Oh yes, I know how to do OOP. | |||
| jonathan shouldn't try and think about anything much when he's this tired | 22:59 | ||
| pmichaud | afk for a while | 23:01 | |
| jonathan | say *.WHAT; | 23:02 | |
| Whatever | |||
| woo | |||
| wknight8111 | in PIR, i would use the 'exit' keyword to exit the program, right? | 23:08 | |
| because i'm calling exit, and nothing happens | |||
| jonathan | wknight8111: Try end instead | ||
| wknight8111 | like "end 0"? | ||
| jonathan | Just end | ||
| wknight8111 | ok | 23:09 | |
| kj | wknight8111: it's "exit 1" and "end" | 23:10 | |
| wknight8111 | that works like a charm. Thanks | ||
| kj | so exit takes an integer arg | ||
| wknight8111 | i was doing exit, nothing happened | ||
| kj | exit 1 didnt' work? | ||
| wknight8111 | no | ||
| kj | mmm. i don't remember whether i used that.. prob not then | 23:11 | |
| wknight8111 | it doesnt error either, it just ignores the command | 23:12 | |
| chromatic | There's an end op and an exit I op | ||
| wknight8111 | i'll stick with "end", but the exit thing should probably be fixed | ||
| chromatic | Okay, I can't find the exit op, just its documentation. | ||
| pmichaud | there's a test for it | 23:13 | |
| t/pmc/exception.t | |||
| wknight8111 | i found the exit command in the perl6 builtins/control.pir, so that might be worth testing | 23:14 | |
| jonathan remembered to update MANIFEST, for once. | |||
| pmichaud | looks like it's in core.ops | 23:15 | |
| chromatic | Ah, there it is. | ||
| Somehow I couldn't find it. | |||
| pmichaud | wknight8111: could you nopaste the code you were using to test exit? | ||
| or else file a ticket for it? | |||
| wknight8111 | it's rediculously simple: .sub 'exit' exit 1 .end | 23:16 | |
| pmichaud | so how do you know it's not working? | ||
| wknight8111 | because when I call that function, it doesnt exit | ||
| when i switch the "exit 1" to "end", it exits | 23:17 | ||
| pmichaud | oh | ||
| jonathan | Does exit just set the exit code? | ||
| And end actually ends the program? | |||
| pmichaud | according to core.ops, it throws an exception | ||
| jonathan | Ah. | ||
| pmichaud | inline op exit(in INT) { do_exception(interp, EXCEPT_exit, $1); | ||
| } | |||
| so if there's something catching exceptions, then it would be caught/handled | 23:18 | ||
| in rakudo's case, that means that the interactive mode wouldn't "exit" | |||
| (or in anything using PCT's interactive mode) | 23:19 | ||
| svnbotl | r26549 | jonathan++ | trunk: | ||
| : [rakudo] Add the Whatever class and * syntax for it, and give it an ACCEPTS method so when * { ... } always runs. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26549 | |||
| wknight8111 | okay, so that must be the problem then. I was testing it interactively | 23:20 | |
|
23:20
rdice joined
|
|||
| pmichaud | right. PCT's interactive mode catches exceptions so that a syntax error or floating point error doesn't exit Parrot | 23:20 | |
| but it's not smart enough yet to distinguish an "exit" exception from others | |||
| (although I thought it was smart enough to do that...) | 23:21 | ||
| wknight8111 | is there a flag we can test to determine if we are running interactively? | ||
| pmichaud | not really | ||
| wknight8111 | fair enough | 23:22 | |
| Limbic_Region | wknight8111 - implement -T | ||
| pmichaud | I just double-checked -- HLLCompiler just catches all exceptions in interactive mode, but doesn't check the type of exception to decide if it should be rethrown | ||
| Limbic_Region | er, -t | ||
| cognominal | hum, how STD.pm does hash composers? | 23:27 | |
| pmichaud | block | ||
| { a => 3, b => 4 } is just a block | 23:28 | ||
| jonathan | OK, now Whatever's stubbed in, I'll get some sleep. :-) | ||
| cognominal | jonathan++ | ||
| but, it is executed immediately | 23:29 | ||
| jonathan | night all | ||
| cognominal | g'night jonathan | ||
| pmichaud | it's not executed immediately when used as an rvalue | ||
| my %a = { a => 3, b => 4 } | |||
| information about hash composers is in S04, starting with "Anywhere a term is expected, a block is taken ... " | 23:32 | ||
| cognominal | but it seems that it is a hash composer only if the first expression is pair or hash like | ||
| pmichaud | correct. If the closure contains only a comma-separated list starting with a pair or hash, the closure is treated as a hash composer | ||
| (or if the closure is empty) | |||
| either way, it parses as a closure (which is what STD.pm is all about) | 23:33 | ||
| cognominal | immediatly meaning at affection time | ||
| affectation! | |||
| pmichaud | it's up to something outside of STD.pm to decide if the closure is a hash composer or a closure | 23:34 | |
| (in rakudo, this will be the action methods of noun or term, probably) | |||
| cognominal | hum what is the english word for affectation? | ||
| assignment! | 23:35 | ||
| purl | well, assignment is different in scalar contexts than in array context | ||
| cognominal | I suppose that actions.pm should look into the block content | 23:36 | |
| currently > my %a = { a => b }; gives Statement not terminated properly at line 1, near "=> b };\\n" | 23:37 | ||
| hum that the fat comma | 23:38 | ||
| pmichaud | actions.pm will look into the block content when the block is being used as a term/noun, probably | 23:40 | |
| cognominal | btw STD.pm says an ident at the left of a => but the example in S04 contain "a" => 1 | 23:41 | |
| pmichaud | it should allow ident or term. but fatcomma in std.pm might be handling only barewords on the lhs, leaving infix:=> to handle the other cases | ||
| (I haven't looked) | |||
| cognominal | I think it can be legitimate to assign a block to a scalar | 23:42 | |
| ha, ok. I get it. this business of expressions handled outside the "main grammar trick me | 23:43 | ||
| I just figured out how the assignment gets a different precedence according to the list or scalar context | 23:44 | ||
|
23:45
kid51 joined
|
|||
| cognominal | should follow jonathan's example and go to bed... | 23:45 | |
| wknight8111 | bed is for the weak | ||
| I wish some of the PCT error messages were a little more descriptive. This debugging is an uphill battle | 23:47 | ||
| cognominal | I am past the age when I feel I have to prove somehow my manhood. | ||
| wknight8111 | I agree, i'm headed to bed before too long myself | ||
| :) | |||
| kid51 muses, "Let me see; where is my manhood? I think I left it around here somewhere." | 23:48 | ||