|
parrot.org/ - clean up those smolders for the release! Set by moderator on 20 October 2008. |
|||
|
00:09
AndyA joined
00:16
Debolaz joined
00:20
pjcj joined
|
|||
| dalek | Krishna Sethuraman | Parrot Development on Windows: | 00:22 | |
| link: www.perlfoundation.org/parrot/index...on_windows | |||
| pmichaud | particle: All modules assigned to PARROTRE | 00:25 | |
|
00:35
particle joined
|
|||
| GeJ | Infinoid: could the thread race be flirting with the GC? | 01:03 | |
| GeJ reads docs/stm/thread-issues.pod/Dead Object Destruction with fear | 01:04 | ||
| chromatic | Someone needs to run it through Helgrind. | ||
| GeJ | it's part of the valgrind package, correct? | 01:07 | |
|
01:08
petdance joined
|
|||
| Infinoid | yeah, its a valgrind thing | 01:09 | |
| chromatic | That's right. | ||
|
01:14
Ademan joined
01:22
chromatic joined
01:34
purl joined
|
|||
| Infinoid | aaw, the helgrind in valgrind 3.x hates x86-64. | 01:51 | |
| ...and I can't reproduce it on 32-bit linux x86 | 01:52 | ||
| how does the command line flag "-t" and threads interact? is only the first thread traced? | 02:01 | ||
| chromatic | Probably, but I don't know for sure. | 02:02 | |
| Infinoid | I don't see anything else running when the first thread goes to sleep. (the test does a "sleep 1", presumably to let a child thread let it do the stm_start thing.) | 02:04 | |
| heh. with a load average of around 7, its harder to reproduce. | 02:06 | ||
| Infinoid reads up on STM | 02:11 | ||
| if you're using pthreads to support the stm test, is it fair to use a pthread conditional to make sure all the threads are ready first? | 02:20 | ||
| that "sleep 1" doesn't seem healthy to me. | |||
|
02:41
Psyche^ joined
02:58
jsut joined
03:06
integral joined
03:15
stockwellb joined
|
|||
| Infinoid | in fact, since I've had enough problems in the past with using sleeps for multithreaded tests, how about just replacing these tests with race-free ones? | 03:16 | |
| the following nopaste contains a test which runs reliably for me, and runs a lot faster than the existing stuff. | |||
| nopaste | "Infinoid" at 75.28.74.251 pasted "race-free STM test" (81 lines) at nopaste.snit.ch/14356 | ||
| Infinoid | that runs successfully for me 100 times in a row, on a box that was intermittantly failing basic_mt.t test #4. | 03:17 | |
| ever notice how you're 10 times more likely to spot errors after you've already clicked the Send button? sigh. | 03:19 | ||
| stockwellb | anyone familiar with "make reallyinstall"? I'm wondering why my runtime/library doesn't work. e.g. I can't run the tutorial 90_writing_tests.pir | 03:24 | |
| Infinoid | stockwellb: parrot doesn't install very happily. until that stuff is fixed, it's preferred to just run it out of the source directory. (maybe symlink the parrot binary into your path if it helps) | 03:25 | |
| stockwellb | everything works fine if I pass in the library path with -L, I just aliased that into my .bashrc and everything seems to be going smooth. Just thougt that might be a poor workaround. | 03:27 | |
| Infinoid | eh, that works. its more trouble to set up than just running it out of the source tree, but it sounds convenient. | 03:29 | |
| stockwellb | I guess I just wanted to try to run it on the system for real. Symlinking the binary, as you pointed out, does sound like a better idea. Thanks | 03:31 | |
| Infinoid | ok :) | 03:34 | |
| the other thing I should mention is... "reallyinstall" tends to confuse things when the machine has had 2 versions of parrot installed at some point | 03:35 | ||
| stockwellb | I really didn't have too many problems. I'm runnng ubuntu 7.10 and I had originally installed the parrott package 0.4.something so I uninstalled that and ran "reallyinstall" The only big problem was with /usr/local/lib not being in the config path. I fixed that an the basic install seems to work fine. | 03:38 | |
| Infinoid | cool. | 03:39 | |
|
03:41
chromatic joined
|
|||
| stockwellb | There, I removed the alias and symlinked parrot from my local build. #Infinoid do you symlink any other binaries or just parrot? | 03:43 | |
| Infinoid | depends on what you want to do with it. you might try "make perl6" and symlinking that binary too | ||
| stockwellb | I was just browsing and looking at some others that I've never used like pbc_to_exe, pbc_merge etc. | 03:44 | |
| Infinoid | yeah, those are internal build tools | 03:45 | |
| stockwellb | Cool, I'm building perl6 now. No stones please, I'm not really a perl guy. Mostly python and ruby. I do however really dig playing around with pir. | 03:47 | |
| Tene | stockwellb: we've got a ruby and python implementation that could both use some help. :) | ||
| Infinoid | yep, cardinal and pynie | 03:48 | |
| lots of languages in various stages of completion. :) | |||
| stockwellb | I'm such a newbie at all of this I'm not sure I would even be a benefit. I fear I'd be more of a burden by asking all sorts of stupid questions. | 03:49 | |
| Tene | stockwellb: always feel free to ask questions here. If nobody wants to answer or is around, no harm done. | ||
| Infinoid | yep, parrot is what we're here for after all | 03:50 | |
| stockwellb | This is actually my first irc. 40yo virgin! Well not anymore. | 03:51 | |
| Infinoid | cool. I've been on IRC for more than a decade, but ... you weren't missing much | 03:52 | |
| stockwellb | #Infinoid, thanks for catching me up on 10 years of chat. I feel very current now! | 03:53 | |
| Infinoid | that was easy, huh? | ||
| stockwellb | Sure was, now could you do the same for Perl? | 03:54 | |
| Tene | In the beginning, there was Larry. | ||
| Infinoid | and then we revved him 6 times or so | ||
| stockwellb | Wow, now I'm really feeling the way of the camel. | 03:55 | |
| So do you guys (#Tene, #Infinoid) do much PIR programing? | 03:56 | ||
| Tene | Yeah, sometimes. | ||
| Infinoid | I do a little. I've written a few tests | ||
| Tene | I wrote most of Cardinal. | 03:57 | |
| Lolcode. | |||
| purl | lolcode is probably HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE or at lolcode.com/ | ||
| stockwellb | I was looking at LOLCODE the other day! | ||
| Infinoid | we have that too. :) | ||
| hmm. by the way, learning perl took me a while, and wasn't exactly a straightforward process | |||
| I think it took me a couple of tries. | |||
| and I'm still trying to wrap my head around perl 6 | 03:58 | ||
| chromatic | Race free tests sound good to me. | 03:59 | |
| Infinoid | chromatic: I will get back to you on that, once I've got race-free versions with the same semantic coverage | 04:00 | |
| stockwellb | I'm just working through the tutorials for PIR and trying out little goofy things. I did a bubble sort about hour ago. So you can see I'm entry level and not so hard core as you folks. | ||
| Infinoid | it isn't a competition. glad you're doing interesting things :) | 04:01 | |
| stockwellb | Thanks, but seeing chromatic in here makes me think there's probably a better place for a newbie to be. | 04:03 | |
|
04:03
Aisling joined
|
|||
| chromatic | Oh I won't abuse you too much, don't worry! | 04:03 | |
| stockwellb | Thanks #chromatic, I should get some points for reading almost everything you've written. | 04:04 | |
| Infinoid | heh. the "when I am emperor" series is classic | ||
| anyway, if you're interested in parrot, we got parrot, you're in the right place. | 04:05 | ||
| chromatic | I need to update that, but I really need to finish the next novel. | ||
| GeJ | stockwellb: just remember it's CAPITAL_P-erl-SPACE-6 and you should be safe. | ||
| Infinoid | svn commits are logged here, blog updates are logged here, we have eval bots, the works | ||
| lolcode: VISIBLE "HAI" | |||
| polyglotbot | OUTPUT[HAIā¤] | ||
| stockwellb | I'm most gracious to all of you. | 04:06 | |
| Tene | stockwellb: don't feel overwhelmed. I knew nothing at all about parrot when I started hanging out here. | 04:07 | |
| Infinoid | I still don't know much about most of parrot... it's a big project | ||
| Tene | I think there's a part where we have some compilers or something. | ||
| And, like, some tests, kinda? | 04:08 | ||
| Infinoid | people get lost in imcc one day and never come back | ||
| now that the release is out the door, I'm going to get rid of the pdd13pbc branch and move my PMCs to trunk and just develop them there... I don't really have anything branch-worthy to do until I start migrating everything over to the PMC interface | |||
| stockwellb | Maybe I could start at the absolute most bottom floor e.g. parking level -3. | ||
| Infinoid | until then, merging is a pain that isn't really worth it | 04:09 | |
| chromatic | Even with SVN 1.5? | ||
| Tene | Does 1.5 still need that tags thing everyone does? | 04:10 | |
| chromatic | As I understand it, 1.5 remembers merge points... so hopefully not. | ||
| Infinoid | still an extra step. every time I merge I get the latest features and also the latest bugs, which means I have to pay more attention to the rest of the system to know when to merge the fixes for those. its more than I need to be paying attention to. | 04:11 | |
| I have a limited attention span, I'm easily distracted by shiny things. | |||
| Tene commits a lojban grammar to languages/ | 04:12 | ||
| Infinoid | I'm hoping that when it's time to branch (to move over parrot and pdump and everything) the branch will be short-lived this time | ||
| chromatic | I'd like to see much shorter branches. | 04:13 | |
| I'm glad(ish) the MMD branch merged sooner rather than later, but the fallout has been unpleasant. | |||
| Tene | hllmagic branch was short! | ||
| ;) | |||
| Infinoid | are there any known outstanding issues from MMD? | 04:14 | |
| chromatic | The Complex PMC. | ||
| Re-entering the runloop from C tends to lose PIR parameter locations in the bytecode, or at least the context structure. | |||
| I fixed the nasty weird of the CPointer PMC last night. | 04:15 | ||
| Infinoid | is that related to pmichaud's subclassing woes, or some other nasty weird? | 04:19 | |
| chromatic | CPointer was something else. | ||
| Infinoid | oh, oops. | ||
| stockwellb | I did an svn update, make clean, make. I'm still at version 0.7.1 shouldn't I be at 0.8.0? | 04:23 | |
| chromatic | Did you perl Configure.pl in the middle there? | 04:25 | |
| I *think* that's what updates the version, but I don't know for sure. | |||
| stockwellb | Uhmm I didn't configure again, I didn't think I had to do that everytime. | 04:26 | |
| I'll try that right now. | |||
| chromatic | Normally you don't, but that updates some files. The version number may be one of them. | ||
| stockwellb | After running Configure.pl and doing make clean, make I've got all sorts of Parrot_DynOp_core_cgp_0_7_1 errors. | 04:30 | |
| Infinoid | confusion from the "reallyinstall"'ed files? | ||
| stockwellb | should I just kill directory and pull down the files again? | 04:31 | |
| chromatic | Try make realclean first. | ||
| stockwellb | I'm at 0.8.0 Thanks. I did have an error though. Cant' write-open packfile-c.pod: permission denied at /usr/shar/perl/5.8/Pod/Perldoc.pm | 04:37 | |
| cotto | what'd the release name end up as? | 04:43 | |
| nm. | |||
| found it | |||
| stockwellb | ls | 04:44 | |
| oops sorry | |||
| what is miniparrot? | 04:47 | ||
| purl | miniparrot is not working yet, is it? | ||
| chromatic | In theory, it's a stripped-down version of Parrot written in ANSI C that we can use to bootstrap the rest of Parrot. | 04:48 | |
| In practice, it's more or less the same as parrot. | |||
| stockwellb | In other words, "Bruce can ignore it". | 04:49 | |
| dalek | r32095 | infinoid++ | trunk: | 04:50 | |
| : [PDD13] Move the packfile PMCs into trunk. | |||
| : * PDD13 isn't anywhere near done, but there's no point in doing this stage | |||
| : of the work in its own branch. | |||
| : * Add EXCEPTION_MALFORMED_PACKFILE to exceptions.h. | |||
| : * Update MANIFEST. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32095 | |||
| stockwellb | Exterminate!!! | 04:51 | |
| purl | EXTERMINATE! EXTERMINATE! EXTERMINATE! | ||
| dalek | r32096 | infinoid++ | pdd13pbc: | 04:52 | |
| : [PDD13] Remove the badly-maintained pdd13pbc branch; development is occurring in trunk for now. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32096 | |||
| Infinoid | good night folks & | 05:12 | |
| stockwellb | Night people. Thanks for helping me out. I definately going to come back and bother you all some more. :) | 05:14 | |
| chromatic | Good luck! | ||
| purl | good luck is all I can say. | ||
|
05:16
stockwellb left
05:25
Bzek joined
06:12
cognominal joined
06:29
iblechbot joined
06:31
uniejo joined
07:08
allison joined
|
|||
| cotto | Are there very many good recruiters, because I'm not running into any. | 07:08 | |
|
07:14
cosimo joined
07:15
clunker3 joined
07:36
barney joined
07:37
Zaba joined
07:45
Zaba joined
08:26
tomyan joined
|
|||
| dalek | r32097 | rurban++ | trunk: | 08:31 | |
| : [cage] fix cuddled_else.t | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32097 | |||
|
09:23
mberends joined
09:24
Infinoid joined
09:38
mberends joined
09:48
barney joined
09:54
particle1 joined
10:23
mberends joined
10:28
bacek joined
10:32
kj joined
|
|||
| barney | Is TAP::Harness required for Parrot, or only for 'languages/perl6' ? | 10:53 | |
| dalek | r32098 | bernhard++ | trunk: | 11:06 | |
| : [perl6] Spelling and add some newlines. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32098 | |||
|
11:23
tomyan joined
|
|||
| dalek | r32099 | bernhard++ | trunk: | 11:27 | |
| : Beautify Perl 5 code in Parrot::Test::Harness. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32099 | |||
| DietCoke | cotto: Yes, there are some, but it's a crapshoot finding one. | 11:42 | |
|
12:04
mberends joined
12:13
Lorn joined
|
|||
| dalek | r32100 | bernhard++ | trunk: | 12:30 | |
| : [Pipp] Explicitly use use TAP::Harness 3.0. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32100 | |||
|
12:54
grim_fandango joined
13:11
gryphon joined
|
|||
| dalek | r32101 | bernhard++ | trunk: | 13:25 | |
| : [Pipp] Explicitly execute the t/pmc/*.t test files with 'parrot' | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32101 | |||
|
13:53
Theory joined
15:00
hercynium joined,
xinu joined
15:01
xinu left
|
|||
| Infinoid | good morning | 15:06 | |
| jhorwitz | ~~ | 15:08 | |
| particle1 | holy crap, i can get round trip to sfo for $96 on virgin america | 15:09 | |
| Tene | nice | 15:10 | |
| particle | almost worth flying down for dinner :) | ||
| pmichaud | should I be going ahead and booking flights for the summit? | 15:21 | |
| particle | i'll get back to you in a few hours | 15:22 | |
| pmichaud | okay | 15:23 | |
| I just know that rates will start to go up soon | |||
|
15:25
mj41 joined
15:31
allison joined
15:33
johbar joined
|
|||
| DietCoke apparently *really* should have gone to PPW. ah well | 15:38 | ||
| barney | Can RT##48014 be closed, and the deprecation item be removed? It appears so from RT. | 15:56 | |
|
16:00
jq joined
|
|||
| particle | pmichaud: let me know when you are able to discuss my import patch | 16:05 | |
| dalek | r32102 | bernhard++ | trunk: | 16:06 | |
| : [doc] mmdvtregister and mmdvtablefind have been removed, | |||
| : so don't mention them in DEPRECATED.pod and in docs/book/ch13_reference.pod | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32102 | |||
| particle | THANK YOU to everyone who updated NEWS and fixed bugs to make the release go more smoothly | ||
| pmichaud | particle: the biggest item I notice in the patch is that it's trying to do the import from actions.pm | 16:09 | |
| that won't work for a precompiled module | |||
| (either running a precompiled module that does 'use Foo', or if 'Foo' is precompiled) | 16:10 | ||
| particle | ok, i wasn't sure about that | ||
| so, i should do it within 'require' in src/builtins/eval.pir then | |||
| pmichaud | except it really doesn't belong in 'require' | 16:11 | |
| it should go in 'use' | |||
| particle | no, require does import as well, according to spec | ||
| pmichaud | ah | ||
| then require is okay | |||
| particle | the differences from perl 5 is that require does import, and that the symbols are scoped to the current block, not current package | 16:12 | |
| pmichaud | but it should go straight to the EXPORT::WHATEVER namespace, iterate over the symbols and bind them into the caller's namespace | ||
| oh, into the current block | |||
| particle | *caller's block | ||
| pmichaud | that's going to be a real issue | ||
| particle | yeah. | ||
| pmichaud | we may have to create our own LexPad PMCs for that | ||
| for the time being I'd bind into the caller's namespace, though, just to get things moving. | |||
| particle | urk. hadn't connected those dots | 16:13 | |
| pmichaud | oh, it might not be so bad, actually | 16:14 | |
| after loading the module (via 'require') we can iterate over the EXPORT::WHATEVER namespace and use that to define lexicals in the current block | |||
| at any rate, the iteration needs to be over the EXPORT NameSpace itself. | |||
| particle | yes | 16:15 | |
| pmichaud | as opposed to trying to walk the AST tree | ||
| particle | ok. that part aside, you can see that tree walking is ugly | ||
| i don't have a valid use case for doing it now, though | 16:16 | ||
| pmichaud | ...because you're looking for a specific type of node? | ||
| particle | yes | ||
| this is where tge is nicer | |||
| pmichaud | correct | ||
| particle | find me all the Op nodes under this one, and do this {...} | 16:17 | |
| pmichaud | at some point I expect someone will come up with a Perl 6 equivalent (see the articles on p6l about tree pattern matching) | ||
| particle | yep | ||
| we may need captures in nqp then | |||
| pmichaud | but we could also provide some stuff in PCT to make it easier to find nodes | ||
| $block.find_node(...query parameters...) | |||
| particle | hrmm | ||
| moritz | speaking of exporting... when I compile a script to PIR, and the script uses Test.pm, it can't find plan() when I execute the PIR | ||
| pmichaud | moritz: yes, this is exactly the issue we're looking at resolving. | 16:18 | |
| particle | ayep | ||
| moritz | ah, ok | ||
| that will make the November hackers happy ;) | |||
| particle | i'm halfway there, moritz :) | ||
| in the meantime, Test.pm can be annotated with 'is export()' | |||
| pmichaud | ....well, if testing becomes part of the builtins, then eventually Test.pm itself will disappear (or, more likely, become part of the prelude) | 16:19 | |
| particle | yes, but that hasn't happened yet | ||
| pmichaud | but yes, annotating with 'is export' would be a very good thing soon. | ||
| particle | i'll annotate them now | ||
| pmichaud | bbiab | 16:20 | |
| DietCoke bleats at tge. | |||
| dalek | r32103 | particle++ | trunk: | 16:28 | |
| : [rakudo] mark Test.pm with export traits | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32103 | |||
| DietCoke | ok. someone help me out with latest debugging techniques. | ||
| Tene | Sure. | 16:30 | |
| What's up? | |||
| purl | Your face, Tene. That's what. | ||
| DietCoke | I have a parrot exception that is not getting any line # information reported. | ||
| so it's coming from somewhere in the bowels of tcl. | |||
| or pge. or tge. | |||
| Tene | Ouch. | ||
| What's the message? | |||
| purl | Perhaps you mean "messages", or "message nickname blah blah", or "messages help", or.. eh, just forget it. | ||
| DietCoke | Null PMC access in invoke() | 16:31 | |
| Tene | Ew. | ||
| DietCoke | which makes sense, since I'm trying to fix the bits where I'm looking up "foo::bar" but really mean ['foo'; 'bar'] | ||
| parrot -t4 doesn't help; since that ends up running different code. (at least, I get a different error msg.) | 16:32 | ||
| hurm. perhaps -D60 will help, and I can just look at the last EVAL_ file for a likely culprit. | |||
| oooh! someone at work just asked me about a potential use of perl. whee. | 16:34 | ||
| Tene | Nice. | ||
| DietCoke | (I work in CFMX all day) | ||
| Tene | Hmm. I think I'll go try to learn where the stack trace information comes from to deal with the rethrow issue. | ||
| CFMX? | |||
| DietCoke | cold fusion. | 16:35 | |
| purl | Coming soon in just 20 years! | ||
| DietCoke | no, the other cold fusion | ||
| CFMX is cold fusion (the php-ish kind, not the nuc-u-lar kind) | |||
| Tene | I'm trying to deal with a problem through Oracle tech support in the middle of class right now. | 16:36 | |
| It's... typical Oracle. | 16:37 | ||
| DietCoke wonders why line_number = get_hll_global ['PGE';'Util'], 'line_number' | |||
| is used in PGE instead of get_root_global | |||
| er, in PGE/Util | |||
| particle | does it matter? isn't parrot both the default hll and root? | 16:38 | |
| dalek | r32104 | bernhard++ | trunk: | 16:39 | |
| : #58238: [PROPOSAL][PIR] remove special handling of "addr" -> set_addr instruction mapping | |||
| : Removed pseudo opcode 'addr' | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32104 | |||
| DietCoke | particle: great. what if you're not IN the default HLL when you're invoked? | 16:41 | |
| hurm. at this point, I can't even find pge/util's split, it seems. | 16:42 | ||
|
16:43
jq joined
|
|||
| dalek | r32105 | bernhard++ | trunk: | 16:43 | |
| : [doc] Start a NEWS section for the November 2008 release | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32105 | |||
| Tene | DietCoke: when code is running in PGE, it's hll is parrot. | 16:46 | |
| nopaste | "coke" at 72.228.52.192 pasted "PGE/Util borked?" (19 lines) at nopaste.snit.ch/14360 | ||
| "coke" at 72.228.52.192 pasted "PGE/Util borked?" (9 lines) at nopaste.snit.ch/14361 | 16:47 | ||
| DietCoke | tene; yes, but PGE/Util isn't -in- PGE. | ||
| is it? | |||
| purl | it's it! | ||
| particle | that's a big bug | 16:50 | |
| DietCoke | ticket opened. | 16:52 | |
| Tene | DietCoke: is it .include'd or .load_bytecode'd? | ||
| DietCoke again wonders why that patch got applid to trunk. | |||
| in my bug, it's load bytecoded. | |||
| particle | tene: svn diff -c 31862 runtime/parrot/library/PGE/Util.pir | ||
| Tene | ah | ||
| Tene bbiab | |||
| DietCoke | "invalid option character c" | 16:53 | |
| particle | how old is your svn, coke? | ||
| -c was like 1.3 or something | |||
| DietCoke | svn, version 1.3.2 (r19776) | 16:55 | |
| Tene | I see what you mean now. | ||
| particle | need to load_bytecode P6object.pbc in pge | ||
| Tene | I was rather confused by what you meant. | ||
| particle | coke: add load_bytecode 'P6object.pbc' | ||
| Tene | particle: probably PGE should be doing that. | 16:56 | |
| particle | just before .local pmc p6meta | ||
| Tene | Ah, that's what you're saying. | ||
| particle | in PGE/Util.pir | ||
| Tene needs reading skills. | |||
| nopaste | "coke" at 72.228.52.192 pasted "p6object insufficient?" (12 lines) at nopaste.snit.ch/14363 | 16:58 | |
| particle | P6object should be loaded in pge, and pge rebuilt | ||
| DietCoke | that doesn't help those of us trying to hit the 0.8.0 release. | ||
| but yes. =-) | |||
| particle | i may release 0.8.1 to fix this | 16:59 | |
| DietCoke | meh. | ||
| particle | damn it. i should have caught this yesterday, but i was in a hurry. | ||
| DietCoke | we collectively should have caught this when the initial :: -> ; branch was merged back. | ||
| but -that- was done in a hurry. | 17:00 | ||
| Tene | Except nobody was using .HLL back then, so there were no tests to fail. | ||
| DietCoke | tene: I'm _right here_ | ||
| PerlJam | Hurry up and slow down! | ||
| :-) | |||
| particle | :) | ||
| DietCoke: you're not in core anymore. do you still count? :P | |||
| DietCoke | particle: I apparently didn't count when I was in core. | 17:01 | |
| :P | |||
| dalek | r32106 | bernhard++ | trunk: | 17:02 | |
| : #45967: [TODO] Consolidate readable_name(), key_set_to_string() and get_repr() | |||
| : Remove unused function readable_name(). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32106 | |||
| DietCoke | barney: "psuedo". (typo in NEWS) | ||
| er, ue? eu? still, ending in e is probably wrong. =-) | |||
| particle | pseudo | 17:03 | |
| Tene | DietCoke: tcl wasn't in trunk for me to test with back when I was working on that branch. | 17:04 | |
| barney | DietCoke: TNX, fixed | 17:05 | |
| DietCoke | it is entirely possible, tene, that it was a different thing that broke tcl. My apologies. | ||
| ah, yes. it was the mmd mergeback. | 17:06 | ||
| dalek | r32107 | bernhard++ | trunk: | ||
| : Fix spelling of pseudo in three places. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32107 | |||
| DietCoke | and once tcl was borked as a result of that, there wasn't much anyone else could do. | ||
| We probably still could have tested it as a patch against a version in which tcl did still work. | |||
| <shrug> | 17:07 | ||
| I'm happy to let that lie. just don't (particle) give me crap about not being in core anymore. | 17:08 | ||
| (because it doesn't help. =-) | |||
| particle | i'm glad you're not in core. just wish we had a better infrastructure to support you | ||
| and kea-cl, amber, etc | |||
| DietCoke | don't be so ambitious; support the languages in core first, those should be easier. =-) | 17:09 | |
| particle | still, we can't support them | 17:10 | |
| do we have *any* language smokers? | |||
| Tene bbiab, teaching | |||
| particle | can we smoke a lang in a branch? | ||
| with a patch applied? | |||
| DietCoke | at that point, you might as well just ask for a manually accounting. | ||
| "manual". Unless we have the ability to farm out specific work like that. | 17:11 | ||
| particle | we need an automated solution | ||
| i can design one | |||
| DietCoke | I would devise a manual solution first. | ||
| particle | sure | ||
| DietCoke | since we don't even have that. | ||
| then you can work with the smolder guy for ways of making it less painful. | 17:12 | ||
| pmichaud | any questions on pge or pge/util before I head to lunch? (I'll be back online in an hour) | ||
| DietCoke | pmichaud: just the ticket I just opened on PGE/Util. | ||
| pmichaud looks. | |||
| particle | pmichaud: make sense that pge/util should load_bytecode p6object.pbc? | ||
| if so, maybe it's time to rename P6object.pbc | |||
| DietCoke | particle: I also need a workaround for the version in 0.8.0 | ||
| (i'll add that to the ticket.) | 17:13 | ||
| pmichaud | particle: if PGE/Util is useful without PGE.pbc itself, then yes, load_bytecode would be okay. | ||
| particle | ok, yeah, need it then | ||
| pmichaud | I think PGE/Util somewhat expects that PGE is loaded, which would cause P6object.pbc to be loaded | ||
| what routine in PGE/Util doesn't require PGE? | |||
| particle | tcl loads pge/util directly | 17:14 | |
| pmichaud | but doesn't tcl also load PGE? | ||
| DietCoke | Yes. | ||
| pmichaud | loading PGE also causes P6object.pbc to be loaded. | ||
| if anything, PGE/Util.pir should do load_bytecode of PGE.pbc, not P6object.pbc | 17:15 | ||
| because it really depends on PGE | |||
| (and then PGE.pbc would cause P6object.pbc to load) | |||
| DietCoke | fair enough. I was trying to debug a much larger issue with tcl, and was breaking it down into chunks. I was surprised this chunk didn't work. | ||
| pmichaud | a quick check of PGE::Util's subs shows that all of them require PGE in one form or another | 17:16 | |
| I don't mind if PGE::Util does a (often redundant) load_bytecode of PGE; or we could put it in the docs that PGE/Util expects PGE to be loaded. In some sense I'm trying to avoid redundant load_bytecode ops. | 17:17 | ||
| also, much of PGE::Util will become obsolete with the PGE refactor | |||
| 'split' might remain, though. | |||
| DietCoke | now to figure out why i can't find PGE Utils's split anymore. | 17:18 | |
| tcl is using split. | |||
| so, let's keep something like that in core. | |||
| (or a library, or something) | |||
| pmichaud | library, which is effectively what PGE::Util is :-) | 17:19 | |
|
17:19
ruoso joined
|
|||
| pmichaud | also, PGE::Util currently has | 17:19 | |
| p6meta = new 'P6metaclass' | |||
| that should be | |||
| p6meta = get_hll_global 'P6metaclass' | 17:20 | ||
| anyway, time for lunch here -- bbiah | |||
| DietCoke | as long as I have you here, how -should- I be trying to get at 'split' ? | ||
| nevermind. | 17:21 | ||
| pmichaud | oh, I can answer that one | ||
| I would think a simple symbol lookup | |||
| get_*_global ['PGE';'Util'], 'split' | |||
| where * is hll, root, or empty as appropriate | |||
| (and if 'root', it would need to be get_root_global ['parrot';'PGE';'Util'], 'split' | 17:22 | ||
| eventually I expect there to be a "Parrot" HLLCompiler object that can handle exports more reasonably | 17:23 | ||
| but haven't gotten to that yet. | |||
| DietCoke | ok. pretty sure that wasn't working, I'll see if I can track down why not, or what other stupid thing is broken. (see "unable to debug parrot" rant, previously) | ||
| pmichaud | as far as throw/rethrow goes, pdd23 indicates that rethrow is basically identical to 'throw' | ||
| however, I think another difference should be that 'throw' sets the location of the backtrace in the exception, while 'rethrow' leaves it alone. | 17:24 | ||
| dalek | r32108 | bernhard++ | trunk: | ||
| : [doc] Mention that new_class splits class names on '::'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32108 | |||
| pmichaud | so, if I throw an exception, then any backtrace that comes up shows the location of the throw. if I rethrow an exception, then the exception retains its current backtrace location | 17:25 | |
| I need to add that comment to the thread on the m/l -- just wanted to note it here in case Tene or someone else wants to pick it up | 17:26 | ||
| anyway, lunch. | |||
| purl | i think anyway, lunch is sounding like a good idea about now | ||
| DietCoke | that's how I expect it to work. but if it's not going to work that way, why do we even -have- rethrow? it is twiddling a bit in the C code whose effect is non-obvious | ||
| pmichaud | I think it's just that throw/rethrow still need some design work | ||
| throw should be "pass this exception through all active handlers" | |||
| rethrow should be "pass this exceptions through all handlers that haven't yet seen it" | 17:27 | ||
| (or, more to the point, "pass this exception to the next handler that hasn't seen it yet" | |||
| ...in fact | 17:28 | ||
| perhaps 'throw' should attach a list of the current handlers to the exception (and invoke the first on the list), while 'rethrow' just invokes the next handler on the list. | |||
| DietCoke gives up fighting with parrot today. | 17:29 | ||
| pmichaud | but I'm getting well beyond my range of expertise there. | ||
| so, lunch. | |||
| bbl | |||
| dalek | r32109 | moritz++ | trunk: | 17:30 | |
| : [cage] fix double words words in documentation and comments | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32109 | |||
| particle | yay! 0.8.0 finally indexed properly. | 17:32 | |
|
17:36
cognominal joined
17:37
stockwellb joined
17:38
chromatic joined
|
|||
| DietCoke | ... RANT. I just accidentally committed something to a tag. | 17:41 | |
| dalek | r32110 | coke++ | RELEASE_0_8_0: | 17:42 | |
| : [docs] note a dependency for this library. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32110 | |||
| particle | won't it be great when we own the repo and can put seatbelts to stop people like coke from doing silly things? | 17:43 | |
| chromatic | How about remote control cattle prods? | ||
| DietCoke grumbles. | 17:46 | ||
| Tene | pmichaud: throw/rethrow already do that, actually. | 17:48 | |
|
17:49
cognominal joined
|
|||
| Coke | I see this sort of thing in java code all the time; someone catches an exception, and re-throws it, hiding the original stack trace. makes things a PITA to debug. | 17:51 | |
| I need to dig through the new exceptions handler stuff and see if I can declare a handler that catches only my subclass of exception. | 17:52 | ||
| particle | so, are you going to revert that patch to the tag? | ||
| Coke | No. I'm walking away before I do more damage. | 17:53 | |
| I figure a cleaner fix would be to drop the tag, and recreate it. | |||
| Tene | Coke: are you subclassing exception, or using an exception type? | ||
| Coke | tene;at the moment, neither. | 17:54 | |
| Tene | as in runtime/parrot/include/except_types.pasm | ||
| Coke | but I doubt the builtin types are fine grained enough to do what I want. | ||
| most of my exceptions are CONTROL_ types. | |||
| Tene | You can limit it to catch only control_exceptions or only exceptions of a range of severities. | ||
| Coke | that's fine if I abuse the range of severiteis. | 17:55 | |
| but then I'm not really interoperating well. | |||
| Tene | except_normal? | ||
| I'd imagine that all control exceptions should be except_normal. | |||
| and you can still rethrow the other control exceptions that you're not using. | 17:56 | ||
| Coke | if this were java, I'd have a subclass of a particular type that I could throw in a specific case where that was the ONLY exception i wanted to catch. | ||
| (rethrow) no, I can't. see my ticket. =-) | |||
| Tene | Coke: at least you'd be rethrowing many fewer exceptions. Are the ones you're currently rethrowing of severity except_normal? | 17:57 | |
| Coke | I have no idea what severity they are. | ||
| Tene | Yes, there are plans to move to that architecture eventually. | ||
| Coke | (many fewer) I doubt that. | ||
| Tene | Are you setting your control exceptions to severity except_normal or setting their types to anything? | 17:58 | |
| Tene scans scrollback looking for a ticket. | |||
| Tene checks out a copy of partcl | 18:00 | ||
| .macro rethrow ()\\n throw exception\\n .endm | 18:02 | ||
| Interesting. | |||
| Coke | yup. but changing that to rethrow has no effect. =-) | 18:04 | |
| those macros are older than dirt. | |||
| chromatic | And not the good kind of designer dirt you buy at yuppie farmers markets around here. | ||
| Coke hurls www.boingboing.net/2008/10/21/playi...siden.html for chromatic | 18:05 | ||
| cognominal | chromatic: is your true name Don Quixote? there is almost no day without one of your crusade against some windmill :) | ||
| chromatic | Hombre de la Perla | ||
| NotFound | Donkey Xote? | 18:06 | |
| cognominal | is windmill used for the stuff that generates electricity? | 18:08 | |
| NotFound | www.youtube.com/watch?v=YcASkdv105Y | ||
| moritz | cognominal: it's used for mulling over windy thoughts in your brain ;) | 18:09 | |
| cognominal | well, us americansdon't need that, just a pipe from alaska | ||
| Tene | Coke: Okay, you are checking for .CONTROL_CONTINUE and friends. | ||
| So yes, this can be made better | |||
| chromatic | WINDMILLS DO NOT WORK THAT WAY! | ||
| Tene | Lemme make a patch for something. | ||
| chromatic | They keep Dutch people cool. | 18:10 | |
| Coke | tene; in certain cases, yes. | ||
| Tene | Those cases can be made better, then. | ||
| Coke | tene; commit bits? | ||
|
18:11
jan joined
|
|||
| Tene | I'd need to figure out how to run tcl against parrot in another directory | 18:11 | |
| Coke | just need a googlecode id. | ||
| cognominal | digg() ==> suck() # sarah palin in perl6 | ||
| Coke | code.google.com/p/partcl/wiki/PartclSource | ||
| Tene | So I just check it out in languages/tcl ? | 18:12 | |
| Coke | ayup | 18:13 | |
| Tene | I'd be very surprised if I didn't screw up and accidentally commit parts of it back to the parrot trunk. | ||
| moritz | Tene: you'd have to call 'svn add' to do that | 18:14 | |
| Tene | Yes, I know. | ||
| particle | don't put it past him ;) | ||
| nopaste | "tene" at 148.87.66.57 pasted "One ExceptionHandler update for Coke" (16 lines) at nopaste.snit.ch/14364 | ||
| Coke | as I have already proved today.... right. | ||
| Tene | I don't deal well with svn even in good cases. | ||
| cognominal | wind turbine! I learn a word today | ||
| learnt... | 18:15 | ||
| Tene | Coke: you want me to do the rest of those? | ||
| Coke | sure. might be able to simplify the handler if we only have those 2 types to deal with. | 18:16 | |
| I'd gladly apply that. | |||
| NotFound | cognominal: I heard that in North America eolic energy is used for demolitions, mainly in Kansas. | ||
| Coke | (presuming it works against -r31835) | ||
| Tene | Coke: if you want to give commit rights to tene@allalone.org, I'll commit it once I'm done. | ||
| Coke | (and if not, I will save the patch until I get partcl working against head) | ||
| tene;access... granted | 18:17 | ||
| cognominal | I have seen my first wind turbine at Palm Springs 20 years ago. well, all of america was new to me anway | 18:18 | |
| later, to set my mind in place, I discovered there was places like East Palo alto. | 18:19 | ||
| Coke | most of america is new to most of america. =-) | 18:22 | |
| chromatic | At least to most of California anyway. | 18:23 | |
| cognominal | especially if you come from wasilia | ||
| davidfetter | heh | ||
| cognominal | some journalist from LA said that Wasilla urban planning was worse than in La... | 18:25 | |
| Coke | Tene: that patch seems to work against the old versino of parrot I'm currently targeting. woot. | 18:29 | |
| the handler is being setup at -runtime-, not compile time, huh? | 18:30 | ||
| particle | isn't that when the exceptions occur? | 18:31 | |
| Coke | that doesnt' mean you want to incur the cost of setting up the handler for it at runtime too. | ||
| (yes, I appreciate the irony of the partcl guy saying that.) | 18:32 | ||
| particle | you can set up handlers at compile time | ||
| Coke | (and it was probably mostly runtime with the old scheme, too.) | ||
| chromatic | Partcl does something at compile time? | 18:35 | |
| Coke | mostly whinge about how slow parrot is. | 18:36 | |
| moritz | purl: msg Whiteknight the headings in docs/book/ are inconsitent - some begin at =head1, some at =head0... would you mind if I changed all to =head0? (I'd welcome it if you did it yourself, of course ;-) | ||
| purl | Message for whiteknight stored. | ||
| particle | is head0 valid pod, or is that pseudopod-specific? | 18:37 | |
| moritz | purl: that's pseudopod | ||
| purl | moritz: what? | ||
| moritz | erm, particle I meant ;) | ||
| p<tab>-- | |||
| PerlJam | particle: head0 isn't specced that I know of. | ||
| moritz | particle: like all the rest of the book | ||
| particle | ok, i thought we were moving away from pseudopod, but that's just a fuzzy memory | 18:38 | |
| chromatic | =head0 is PseudoPOD | ||
| chromatic is not fast at backlogging | |||
| Coke | I am not a big fan of having YADS in the repo. | ||
| moritz | particle: I don't know, but I don't think that normal POD support tables | 18:39 | |
| particle | nope, doesn't | ||
| nopaste | "Coke" at 72.228.52.192 pasted "psuedopod errors." (44 lines) at nopaste.snit.ch/14365 | 18:44 | |
| Coke | from Pod::PseudoPod::Checker; | 18:45 | |
| dalek | r32111 | particle++ | trunk: | 18:48 | |
| : [t] fix packfile test assumptions for path slashies | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32111 | |||
|
18:54
allison joined
|
|||
| pmichaud | note that "push_eh commandexception" also sets up the handler at runtime. :-| | 18:55 | |
| Tene | ... okay, we really need a macro for .push_eh_typed | ||
| I can't find where to add standard macros, though | 18:56 | ||
| pmichaud | personally I'd go for push_eh commandexception, type | ||
| more generically, push_eh label, type | |||
| Tene | Sometimes you want to handle multiple types. | ||
| pmichaud | sure, for that we can explicitly create the exception | ||
| unless handling multiple types is more common than handling a single type | 18:57 | ||
| I'm thinking that handling a single type is the common case. | |||
| particle | tene: you need to create a file in runtime/parrot/include/ | ||
| Tene | Handling multiple types is more common in tcl. ;) | ||
| pmichaud | ah. | ||
| Tene | Dunno how well that generalizes, though. | 18:59 | |
| I haven't seen that in Rakudo or Cardinal. | |||
| pmichaud | I expect that the loop control exceptions will have one handler for multiple types. | ||
| nopaste | "tene" at 148.87.66.57 pasted "EHs tcl patch for pmichaud" (140 lines) at nopaste.snit.ch/14366 | ||
| Tene bbiab, teaching. | |||
| Coke | how would deal with a single block that could throw a break or a continue? | 19:00 | |
| (or whatever they're called in perl) | |||
| pmichaud | it would check the type of the exception that is caught | ||
| NotFound | You can subclass ExceptionHandler and do the handled types setting in his constructor. | ||
| pmichaud | but there's enough commonality in the handling code to potentially make it worth being handled by a single handler instead of a separate one for each | 19:01 | |
| Coke | How would have 2 handlers for the same block of code? | ||
| 'you' | |||
| pmichaud | I don't understand the question. | ||
| Coke | 14:59 <@pmichaud> I expect that the loop control exceptions will have one handler for multiple types. | 19:02 | |
| ah. | |||
| I misread that. | |||
| pmichaud | even so, having two handlers for the same block of code isn't an issue, is it? | ||
|
19:03
masak joined,
gryphon joined
|
|||
| particle | push_eh eh1 ; push_eh eh2 | 19:04 | |
| Coke | and when eh1 fires, how do you say that eh2 is nolonger in effect? | ||
| eh1: pop_eh eh2 .... eh2: pop_eh eh1 ? | 19:05 | ||
| pmichaud | just pop_eh | ||
| doing the alternate version, where eh2 fires and you want to get rid of eh1, might be a bit trickier | 19:06 | ||
| Coke | that's my concern, ja. | ||
| who the hell has their music cranked. | 19:07 | ||
| dalek | r32112 | julianalbo++ | trunk: | ||
| : some cargo cult programming to make parrot_debugger work again with HLLs | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32112 | |||
|
19:08
eternaleye joined
|
|||
| pmichaud | note that subclassing ExceptionHandler PMC currently has some issues. | 19:08 | |
| pop_eh won't work on a subclass of ExceptionHandler at the moment. | |||
| (I may be reading the code wrong, there.) | 19:09 | ||
| NotFound | pmichaud: Something specific, or just the generic problems of subclassing pmcs? | ||
| pmichaud | src/scheduler.c:501 | 19:10 | |
| chromatic concurs | 19:12 | ||
| pmichaud | note that I don't _need_ the capability to subclass ExceptionHandler yet, but it's something I noticed while reviewing the code. | ||
| NotFound | We must have a test for that, even if todo'ed | 19:13 | |
|
19:14
eternaleye joined
|
|||
| dalek | r32113 | pmichaud++ | trunk: | 19:17 | |
| : Remove note about :: classes from DEPRECATED.pod, as we've completed the change. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32113 | |||
| particle | i'm consistenly getting a passed todo in rakudo | 19:20 | |
| t\\spec\\S06-signature\\named-parameters.rakudo | 19:21 | ||
|
19:21
eternaleye_ joined
|
|||
| particle | test 2 | 19:21 | |
| moritz doesn't | |||
|
19:22
stockwellb joined
|
|||
| pmichaud | seems to me that the test should be passing. | 19:22 | |
| (building now so I can test) | |||
| nopaste | "stockwellb" at 70.160.222.145 pasted "Failing tests" (8 lines) at nopaste.snit.ch/14368 | 19:23 | |
| particle | c:\\Users\\particle\\dev\\parrot\\trunk\\languages\\perl6>..\\..\\parrot perl6.pbc -e "sub a($x = 4) { return $x }; a(g=>7);" | 19:24 | |
| too many named arguments - 'g' not expected | |||
| stockwellb | can anyone help me pass the tests I'm failing? | ||
| moritz | that's nto a test failure | 19:25 | |
| *not | 19:26 | ||
| stockwellb | it's a failure that occurs during 'make test' | ||
| particle | it's a make failure | ||
| moritz | and it's a permission issue | ||
| pmichaud | looks like no write permission to parrot/docs | ||
| moritz | stockwellb: what's the output of `ls -ld docs/' ? | 19:27 | |
| (without the quotes, of course) | |||
| NotFound | How todo a pir test? | 19:28 | |
| stockwellb | drwxr-xr-x 16 stockwellb stockwellb 4096 2008-10-22 00:43 docs/ | ||
| moritz | that's weird. | 19:29 | |
| chromatic | NotFound, is the test runner PIR or Perl 5? | ||
| particle | NotFound: perldoc runtime/parrot/library/Test/More.pir | 19:30 | |
| stockwellb | moritz: what do you think? | ||
| purl | I think stockwellb should try flossing more often! | ||
| NotFound | chromatic: pir | ||
| pmichaud | stockwellb: does packfile-c.pod already exist? If so, what are its permissions? | 19:31 | |
| moritz | stockwellb: 21:29 <@moritz> that's weird. | ||
| chromatic | NotFound, todo( $I0, 'reason' ) | 19:32 | |
| particle | is it possible something was running in parallel, and has already locked the file? | 19:35 | |
| chromatic | That may be the case for a parallel build. I keep finding and fixing those. | ||
| NotFound | Looks like todo is not exported. | 19:41 | |
| chromatic | Feel free to add it to test_more.pir, or whatever the wrapper file is. | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "ExceptionHandler subclass test" (71 lines) at nopaste.snit.ch/14369 | 19:44 | |
| pmichaud | NotFound: that test doesn't seem to check the pop_eh instruction | 19:46 | |
| (i.e., the ability to pop a subclass of ExceptionHandler) | |||
| masak | for some reason, I'm not experiencing #59112 any more. should I close it? | ||
| pmichaud | masak: checking... | ||
| NotFound | pmichaud: don't know how to check something that doesn't work | ||
| moritz takes a look | 19:47 | ||
| masak | it also seems that #57286 might be a dup | ||
| pmichaud | notfound: create an instance of 'MyHandler' | ||
| notfound: push it, pop it | |||
| verify it doesn't get called. | |||
| moritz | masak: I get a different error in that file :/ | 19:48 | |
| NotFound | pmichaud: ah, yes, I don't understood | ||
| masak | moritz: sounds like #59924, then :) | ||
| moritz | oh wait, no | ||
| masak | I don't get an error | ||
| moritz | ah, #59924 it is | ||
| masak | :) | 19:49 | |
| pmichaud | masak: you could report that #59112 isn't a problem for you any more, but enough others have commented on the ticket that I'd be curious to see if others are seeing similar things | ||
| NotFound | pmichaud: but I'm not sure how to prevent that the todo is never executed if the pop dies abnormally | ||
| masak | pmichaud: oki. I'll add a comment to the ticket. | ||
| pmichaud | NotFound: just pop_eh prior to throwing the exception | 19:50 | |
| if pop_eh fails, then your first exception handler will catch that. | |||
| perhaps set a flag prior to the 'throw' | 19:51 | ||
| so you can tell if it was the pop_eh or the throw that generated the exception caught by your handler | |||
| (the first handler, the non-subclassed one) | |||
| NotFound | I'll try that. | 19:53 | |
| dalek | r32114 | pmichaud++ | trunk: | 19:54 | |
| : [rakudo]: spectest-progress.csv update: 204 files, 4413 passing | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32114 | |||
| Tene | Coke: do I need ot set a password somewhere to commit, or do I use my gcode password, or how do I check out something I can commit to, or should i just send you a patch, or what? | 19:55 | |
| I think I'm done. | |||
|
19:56
stockwellb joined
|
|||
| dalek | r32115 | julianalbo++ | trunk: | 19:57 | |
| : export 'todo' in test_more.pir | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32115 | |||
| nopaste | "tene" at 148.87.66.57 pasted "Tcl EH filters for Coke++" (184 lines) at nopaste.snit.ch/14370 | ||
| stockwellb | no ideas regarding my packfile-c.pod Permission problem? | ||
| pmichaud | 19:31 <pmichaud> stockwellb: does packfile-c.pod already exist? If so, what are its permissions? | ||
| stockwellb | I answered that already?! It doesn't exist. | 19:58 | |
| pmichaud | I didn't see your answer -- your client timed out or something. | ||
| stockwellb | I'm new to IRC I'm sorry if I timed out and didn't realize it. | ||
| pmichaud | no problem. :-) | ||
| moritz | stockwellb: does 'touch docs/packfile-c.pod' work without error? | 19:59 | |
| Tene | purl: coke? | 20:00 | |
| purl | coke is mailto:will@coleda.com or just a figurehead. or coke-floats.blogspot.com/ or DietCoke or a pest. | ||
| stockwellb | oooo it does. this is some kind of rookie trap isn't it :) | ||
| Tene sends mail to coke anyway, not wanting to figure out svn yet again | |||
| TimToady | phone | ||
| pmichaud | phone | ||
| TimToady | :) | ||
| moritz | phone? | ||
| purl | phone is probably 1/4". | ||
| TimToady | phono? | 20:01 | |
| purl | i heard phono was RCA. | ||
| moritz | no, phone is always interrupting | ||
| purl | okay, moritz. | ||
| Coke | tene: hio | ||
| ack, phone. | |||
| Tene | Coke: you have mail, 'cos I'm too lazy to wait. | 20:02 | |
| stockwellb | ok so touch fails silently if there is no file. Is this proof enough that the file doesn't exist? | ||
| should I have run touch as sudo? | 20:03 | ||
| moritz | no. | ||
| Tene | no, you shouldn't | ||
| unless you're in a root-owned directory | |||
| touch should create the file if it's not there. | |||
| stockwellb | I'm in my own directory | 20:04 | |
| moritz | stockwellb: if touch can't create the file, so can't the tool that's used during the build | ||
| NotFound | touch must not fail silently | ||
| stockwellb | I didn't fully understand that touch created files. I thought it updated existing files | 20:05 | |
|
20:05
sjansen joined
|
|||
| Tene | It does both. It's overloaded. | 20:05 | |
| Coke | allison: ping? | ||
| stockwellb | see the tatoo "Newbie" on my forhead! :) | ||
| Tene | You're not the first person to find touch's overloading to be weird. | 20:06 | |
| NotFound | stockwellb: you can use ' > file ' instead of touch if you don't care about an existing file | ||
| Coke | tene++ # will apply that when I get a chance. | 20:07 | |
|
20:07
bacek joined
|
|||
| NotFound | But a lot of people also does not understand this > usage X-) | 20:07 | |
| Tene | jhorwitz: I was just scheduled for a class in KoP next week. Are you going ot be around? | 20:08 | |
| NotFound: that usage will zero out an existing file. | |||
| Coke | tene (not all tests pass with that patch, fyi, but most of it looks good.) | ||
| Tene | NotFound: better to use: >> file | ||
| NotFound | Tene: yes, but I say if you don't care about it. | ||
| jhorwitz | Tene: yes, the first half of the week. | ||
| Tene | Coke: I couldn't get anything to work with it, but I thought it was still broken. | ||
| Coke: I'm only barely halfway here, so I wouldn't be surprised if I've done something stupid in there. | 20:09 | ||
| Coke | ah. | ||
| stockwellb | ok, now that I've touched packfile-c.pod make test rolls past that on too ops/bit.pod. So this really is some serious permissions issue. Perhaps I ran svn co as me and all these make commands as sudo could that be the issue? | 20:10 | |
| NotFound | stockwellb: most probably yes | ||
| moritz | but it wouldn't explain stockwellb's `ls -l` output. Weird. | 20:11 | |
| japhb | Coke: I was told a few days ago that you can fix the problem on Planet Perl 6 where someone else's feed is showing up with my name on it? | ||
| stockwellb | so kill the dir and start over with svn co as sudo? | ||
| moritz | stockwellb: no, don't do *anything* with parrot as sudo. | ||
| NotFound | stockwellb: better does not use sudo at all | ||
| stockwellb | make fails unless I run it as sudo | ||
| moritz | then remove the current checkout, and try again, but without using sudo at all | 20:12 | |
| Tene | stockwellb: Yes, that's likely the problem. You NEVER want to run 'make' as root. | ||
| NotFound | stockwellb: diagnose and solve that problem, instead of crating new ones | ||
| Tene | And yes, I made that mistake many many times over in the past to learn it. :) | ||
| moritz learned about `sudo chown moritz.moritz -R .' | 20:13 | ||
| NotFound | xkcd.com/149/ | ||
| moritz | NotFound: as soon as I saw the xkcd link I knew what was coming ;) | 20:14 | |
| chromatic | mmm sandwiches | ||
| stockwellb | Ok, checking out trunk as stockwellb... | 20:15 | |
| Configure worked... | 20:16 | ||
| allison | Coke: pong? | ||
| Coke | phone. =-) | 20:18 | |
| stockwellb | make worked... | ||
| Coke | japhb: I might have the keys to that planet. | 20:19 | |
| NotFound | The sandwich? | ||
| purl | the sandwich is a sandwich. The styles are very different. or a continuation sandwich. Yum! | ||
| japhb | Coke: excellent | ||
| stockwellb | Note to self. parrot + sudo = bad. | ||
| Thanks everyone for being so patient. | |||
| masak | more like make + sudo = bad. | ||
| moritz | note to stockwellb: sudo + anything that modifies file in your home dir = bad | 20:20 | |
| NotFound | * + sudo = bad unless you have a very good reason | ||
| masak | aye | ||
| chromatic | Evil is a very good reason, but when you're bad, so bad it's good, and that's the evilest thing of all. | ||
| stockwellb | Now I understand the critisms that I've read regarding sudo. | 20:21 | |
| Coke | japhb? | ||
| purl | i think japhb is Geoffrey Broadwell, mailto:geoff@broadwell.org | ||
| Coke | [www.oreillynet.com/pub/feed/31?au=2333] | ||
| name = Geoff Broadwell | |||
| title = Geoff Broadwell | |||
| link = www.oreillynet.com/pub/au/2333 | |||
| NotFound | stockwellb: well, sudo is like any other tool, it can be used or abused | 20:22 | |
| stockwellb | apparently I'm and abuser. | ||
| s/and/an | |||
| japhb | Coke: well, the bio link is correct ... but the feed link is insane | 20:23 | |
| chromatic says that oreillynet changed the system by which feeds are generated, apparently breaking the old link. | |||
| Coke | looks like the title and link lines were added by robert as a bugfix. | ||
| japhb | I have no idea the correct replacement, | ||
| Coke | before that, they were empty. | ||
| japhb | But in any case, since I don't blog there any more, just pull me from the Planet for now. | ||
| stockwellb | wow 614 subtests skipped! You guys should stop gabbing with newbies and get back to work!! :) | 20:24 | |
| NotFound | To avoid pesky permission problems the correct tool is no sudo, is ms-dos X-) | ||
| japhb | Coke: er ... please. :-) | ||
| moritz | stockwellb: "patches welcome", as the saying goes | ||
| stockwellb | I'd be glad to help, but I've never done anything like this before. I'd need some serious guidance. | 20:25 | |
| Coke | japhb: "svn commit" -> | ||
| svn: Commit failed (details follow): | |||
| svn: CHECKOUT of '/perl.org/!svn/ver/1145/planets/trunk/sites/sixperl/config.ini': 403 Forbidden (svn.perl.org) | |||
| sorry. apparently I only have the keys to parrot. | |||
| japhb | bugger all | 20:26 | |
| purl | i dunno, japhb | ||
| moritz | stockwellb: what programming languages do you know? | ||
| purl | programming languages is, like, (see language list) | ||
| Coke | language list? | ||
| purl | language list is at ftp://ftp.wustl.edu/doc/misc/lang-list.txt or I18N::LangTags::List | ||
| japhb | wustl! Blast from the past. | ||
| Coke: any idea who might have said keys? | |||
| Coke | hell, you can almost say that about ftp now. | ||
| japhb: I would email webmaster@perl.org | 20:27 | ||
| japhb | true | ||
| Coke | I can even give you a patch. moment. | ||
| japhb | thx | ||
| stockwellb | python;ruby(learning);c#;lua... I mess around with lots of stuff, just not an expert in any. | ||
| nopaste | "coke" at 72.228.52.192 pasted "patch for japhb" (17 lines) at nopaste.snit.ch/14371 | 20:28 | |
| moritz | neither of those are my area of expertise, so I can't really tell :( | ||
| stockwellb | I'd like to do things in PIR. It seems fun to me. Not that othe languages aren't. | ||
| moritz | well, some builtins need to be written in PIR. | 20:29 | |
| Coke | why do we now have a .include version and a library version of test more? I know I did test_more originally,but if it's all being done on teh library load anyway... | ||
| moritz | maybe cargo-culted from Perl 6? | 20:30 | |
| stockwellb | Here's an example of some simple PIR I did last night. | ||
| nopaste | "stockwellb" at 70.160.222.145 pasted "PIR example" (112 lines) at nopaste.snit.ch/14372 | ||
| Coke | ah. the update in Test/More.pir is actually in the -DOCS- | ||
| ... that seems suboptimal, but less so than duplicating the actual code. | 20:31 | ||
| NotFound | Coke: just for brevity, I suppose. The include makes the loads and exports in one shot. | ||
| stockwellb | Where do I find out what parrot grunt work needs to be done? | ||
| moritz | stockwellb: rt.perl.org/rt3/ | ||
| Tene | Is there a url for a cage cleaner task search on rt.perl.org? | ||
| Coke | NotFound: I clearly remember that intent when committing the file, yes. =-) | ||
| NotFound: note that Test/More.pir doesn't actually export anything. | 20:32 | ||
| stockwellb: the best way is usually to ask here or on list. If you're brave, you can check the rt.perl.org queue or the website. | 20:33 | ||
| lemme find you some urls. | |||
| rt.perl.org/rt3/NoAuth/parrot/ParrotTODO.html | |||
| www.perlfoundation.org/parrot/index...rt_queries | |||
| stockwellb | Well I'm trying to get my feet wet...slowly. | 20:34 | |
| NotFound | I checked the cage task a lot of times and never found one adequate for novices. | ||
| Coke | rt.perl.org/rt3/NoAuth/parrot/List....alue=Patch | ||
| (patches are a good one as you can help out just by seeing if the patch still applies cleanly) | |||
| NotFound | Looks like the main reason to mark some task as CAGE is "Too boring to me" }:) | ||
| Coke | www.parrot.org/dev/cage-cleaners | ||
| NotFound: heh. | 20:35 | ||
| the theory (not to scare the new guy) is that a cage task shouldn't have any functional impact on the built parrot. It's more to ease development or maintenance. | |||
| stockwellb | Alright, got my bitcard account and logged into perlbug. I've got to go start dinner. I'll bug you folks later. | 20:37 | |
| Coke | hokay. | ||
| moritz | .oO( shouldn't you *de*bug us? ;-) |
20:38 | |
| NotFound | Is a shame that not experienced people adding or dropping const modifiers usually worsen maintenance. | ||
| moritz | in soviet USA software bugs you ;) | ||
| Coke | perhaps if we #define HUGS const, they'll leave it alone. | ||
| particle: rt.perl.org/rt3/Ticket/Display.html?id=58946 is still open | 20:39 | ||
|
20:45
particle1 joined
|
|||
| nopaste | "Coke" at 72.228.52.192 pasted "counter-offer patch for tene that only fails one test in t/cmd_upvar.t; looks like catch.pir could use some work, too." (171 lines) at nopaste.snit.ch/14373 | 20:49 | |
| dalek | mgrimes@cpan.org | Convert existing tests to parrot: | 20:54 | |
| link: www.perlfoundation.org/parrot/index..._to_parrot | |||
| Tene | Coke: catch.pir doesn't use rethrow? what work could it use? | 20:55 | |
| nopaste | "NotFound" at 213.96.228.50 pasted "ExceptionHandler subclass test that fails to fail nicely" (93 lines) at nopaste.snit.ch/14374 | 20:58 | |
| NotFound | Changing the base type check to a VTABLE_isa in sheduler.c:Parrot_cx_delete_handler_local seems to solve the pop_eh thing | 21:11 | |
| Coke | tene: it still only intends to catch those 5 types. | ||
| with your patch to src/tclsh.pir (which isn't in my counter), btw, [exit] generated extra whitespace; and it wasn't rethrowing, just dying, so I undid that bit. | 21:12 | ||
| particle1 | NotFound: that seems the proper fix | 21:13 | |
| NotFound | Testing now to see if brokes something else | ||
| particle1 | unless we have a 'does' for exception handlers not inheriting from EH | ||
| but we don't have that yet, and i'm not sure we ever will | 21:14 | ||
| so isa is a better way :) | |||
| NotFound | Looks like there is no way to todo a pir test that can die... and maybe is not possible at all. | 21:16 | |
| Coke | I think you'd have to roll your own there. | 21:17 | |
| that is, put a push_eh/pop_eh around it and then check the resulting exception object is what you expect. | 21:18 | ||
| That could probably be wrapped into a handler. | |||
| NotFound | Coke: in that case, parrot just die telling that there is no handler. We can't catch that. | ||
| Coke | can't catch -what- ? | 21:19 | |
| an exception? | |||
| purl | hmmm... an exception is only printing the line in dyfrgi's code where it's getting triggered, so I'm debugging into it mostly to figure out where it's dying. | ||
| Coke | purl, forget an exception | ||
| purl | Coke: I forgot exception | ||
| particle1 | a compile-time error | ||
| NotFound | Can't handle a situation when parrot fails to locate the handler. | ||
| particle1 | you can create a pir compiler, and pass the source to it | ||
| Coke | you say "die", I think "die opcode", and "catchable exception" | 21:20 | |
| particle1 | then invoke the result | ||
| $P0 = compreg 'PIR' | |||
| NotFound | Coke: is a catchable excpetion, but fail to locate the handler. | ||
| Coke | ... how do you fail to locate the handler? | ||
| NotFound | Coke: the test I nopasted some lines ago. | 21:21 | |
| particle1 | coke: one way would be push_eh PMCNULL | ||
| Coke | particle1: why the hell would you do that if you're trying to catch the exception? | ||
| particle1 | it's a test | ||
| i didn't look at it, though | 21:22 | ||
| NotFound | particle1: yes, that is the only way I see to make the test pure-pir | 21:23 | |
| The test of popping a subclassed handler, without the fix I'm trying, fails to pop and also to find the previous handler. | 21:25 | ||
| Coke | NotFound: so if the feature worked, the code work work, neh? | ||
| "would work" | |||
| dalek | r32116 | moritz++ | trunk: | 21:26 | |
| : [rakudo] another OO test for 'make spectest' | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32116 | |||
| NotFound | Coke: yes, but I can't add it as 'todo' before fixing, because it does not reach the 'todo' call. | ||
| No problem now I have the fix, of course. | 21:27 | ||
| Coke | it looks like you're already trying to do what I was saying, have a fallback exception handler. | 21:29 | |
| I can stare at this more later. good luck. | 21:30 | ||
| -> | |||
| NotFound | Coke: yes, pmichaud suggested that way and I was trying it, but int the pop_eh case it does not work. | ||
| dalek | r32117 | allison++ | calling_conventions: | 21:34 | |
| : [calling_conventions] Bringing the calling_conventions branch up-to-date with | |||
| : trunk r32115. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32117 | |||
|
21:36
Whiteknight joined
|
|||
| dalek | r32118 | julianalbo++ | trunk: | 21:39 | |
| : allow pop_eh of a subclass of ExceptionHandler and add a test for it and a todo'ed test for ExceptionHandler subclass exception handling | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32118 | |||
|
21:42
peepsalot joined
|
|||
| pmichaud | && VTABLE_isa(interp, handler, CONST_STRING(interp, "ExceptionHandler"))) { | 21:51 | |
| it _always_ bugs me to see us using strings to test 'isa' semantics. | |||
| what if another HLL defines its own "ExceptionHandler" class? | 21:52 | ||
| particle1 | good point. | ||
| pmichaud | I see that stuff throughout the Parrot core, and it really concerns me. | 21:53 | |
| particle1 | well, now we have the ability to fix it | ||
| it's a pretty big cage task, though | |||
| chromatic | It ought to be does, and there ought to be a way to identify it as a core PMC. | ||
|
21:54
cognominal joined
|
|||
| GeJ | Good morning | 21:55 | |
| dalek | r32119 | moritz++ | trunk: | ||
| : [rakudo] another OO test for spectest.data | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=32119 | |||
| pmichaud | particle: oh, it's worse than you think | 21:56 | |
| particle: even the isa_pmc VTABLE method ends up doing a string comparison. | 21:57 | ||
| particle1 | well, geez. | ||
| NotFound | We have lots of string comparaison in lots of core functionality. | ||
|
21:58
petdance joined
|
|||
| pmichaud | see src/pmc/default.pmc:922 | 21:59 | |
| allison | 'isa' is a great candidate for caching, do the lookup once, and save it | 22:02 | |
| pmichaud | (I don't quite see how that applies here, but okay.) | 22:05 | |
| allison | it's not the efficiency of string comparisons that you dislike, but the general fact that we're doing them at all? | 22:06 | |
| pmichaud | yes | ||
| allison | (in the context of class comparisons) | ||
| pmichaud | "what if another HLL defines its own 'ExceptionHandler' class?" | 22:07 | |
| and as I mentioned -- it's currently pervasive -- even when passing a class object to 'isa', the result is currently that we stringify the classname and then use that for the 'isa' check. | 22:08 | ||
| allison | well, VTABLE_isa is under the control of the particular class in question | ||
| pmichaud | most classes don't redefine 'isa' | 22:09 | |
| allison | even the default is only searching its parents of the class to see if they report that they are 'ExceptionHandler' | ||
| it's not searching all classes defined on the system | 22:10 | ||
| pmichaud | yes, but if my HLL defines its own 'Integer' class, that isn't a subclass of Parrot's Integer class, then the current implementation would report true for $P0 = get_class 'Integer'; $I0 = isa $P1, $P0 even if $P1 isn't the appropriate type of Integer | 22:12 | |
| NotFound | The question for this particular case is: what is the condition to be a valid exception handler? Inherit from ExceptionHandler? A role? | ||
| allison | well, it isa 'Integer' | ||
| 'isa' is like 'can' | |||
| I mean, a particular class can even override isa to report true for any query | 22:13 | ||
| pmichaud | again, I'm just talking about Parrot's default behavior here | ||
| allison | (useful in mock objects for testing) | ||
| yes | |||
| pmichaud | is there a way for me to verify that a particular object is of my class 'Integer' and not a Parrot 'Integer'? | ||
| allison | probably doesn't work now, but the best way to do that would be a fully-specified key | 22:14 | |
| pmichaud | I think it should be the class object, myself | ||
| allison | [ 'parrot'; 'Integer' ] | ||
| pmichaud | $P0 = get_class 'Integer'; $I0 = isa $P0, $P1; | ||
| (assuming that get_class 'Integer' returns the class object I expect) | |||
| allison | more specifically get_class [ 'perl6'; 'Integer' ] | 22:15 | |
| pmichaud | fair enough | ||
| and I have my isa arguments backwards | |||
| so: $P0 = get_root_class ['perl6';'Integer']; $I0 = isa $P1, $P0; | |||
| allison | yes, a class object is always the preferred way to be absolutely sure of what you've got | ||
| pmichaud | I'm simply saying that the current implementation of 'isa' does a string comparison instead of a class comparison | 22:16 | |
|
22:16
sjansen joined
|
|||
| pmichaud | i.e., internally it's doing the equivalent of $S0 = $P0; $I0 = isa $P1, $S0 | 22:16 | |
| allison | that's because 'isa' only takes a string argument | ||
| well VTABLE_isa | |||
| purl | VTABLE_isa is under the control of the particular class in question | ||
| allison | purl, forget VTABLE_isa | 22:17 | |
| purl | allison: I forgot vtable_isa | ||
| pmichaud | I'm simply saying that isa_pmc shouldn't be defined in terms of isa (string) | ||
| allison | ewww! Um, the default PMC's isa and isa_pmc need to be updated... | 22:18 | |
| pmichaud | yes, that's my point! :-) :-) | ||
| chromatic | They used to be more expensive. | ||
| Trust me on this. | |||
| NotFound | allison: what about the exception handler particular case? | 22:19 | |
| pmichaud | and it likewise bugs me when I see us doing VTABLE_isa(..., <string>) instead of VTABLE_isa_pmc(..., exception_class) | ||
| or, as chromatic correctly notes, VTABLE_does( ..., <exception>) | 22:20 | ||
| allison | digging through Object and Class... | ||
| chromatic: my objection is that default isn't actually scanning MRO at all, it's using the old isa_hash | 22:21 | ||
| chromatic | isa_hash isn't that old. | 22:22 | |
| allison | on Class, you're right, there isn't any code in isa_pmc to simply check if the lookup is a class object, and then check if that class object is a parent of the current class | ||
| chromatic | You should see what isa_hash replaced. | ||
| particle1 | no, she shouldn't. | ||
| pmichaud | I'm more interested in Object, since that's where the bulk of 'isa' tests will occur. | ||
| it's not often that I'm doing 'isa' on a Class PMC | 22:23 | ||
| NotFound | We have laws against torture ;) | ||
| allison | patrick: it does a Parrot_oo_get_class call without even checking if it has a class object already | ||
| patrick: object just calls isa_pmc on its class | |||
| (I checked Object first) | |||
| pmichaud | allison: object.pmc:520 | 22:24 | |
| if (SUPER(lookup)) | |||
| return 1; | |||
| purl | return 1; is it a value? a flag? truth? perhaps this is a shell programmer and he's really trying to say false! | ||
| pmichaud | if I read that correctly, it *first* calls the vtable_isa_pmc in default.pmc | ||
| and if that returns true, it never gets to the Class PMC check. | |||
| allison | yes, that's true | 22:25 | |
| pmichaud | thus, in the case of something like isa $P1, $P0, it would do the string-comparison-based check before ever getting to the Class PMC version. | 22:26 | |
| allison | but, only low-level PMCs use the isa_hash, so that'll return false, and go on to the Class PMC check | ||
| pmichaud | okay, that may indeed be true -- I didn't look too closely at isa_hash | ||
| particle1 | Integer is a low-level pmc | ||
| pmichaud | but, if my $P1 is a low-leve..... right. | ||
| allison | the SUPER is there to handle cases of multiple inheritance from Class and another low-level PMC | 22:27 | |
| pmichaud | so, if $I0 = isa $P1, $P0 has $P1 as an instance of a low-level PMC, it ends up doing the string comparison check | ||
| which is precisely the case I was trying to guard against :-) | |||
| chromatic | The string check is expensive, too. | ||
| pmichaud | (note that I don't have any outstanding tickets or blockers on this particular issue, it's just been a long-time "I'm really worried about this" sort of thing.) | 22:28 | |
| allison | ummm.. I'm not convinced SELF->vtable->isa_hash is a string hash | ||
| I thought it was a hash of class pointers | |||
| I'll check... | |||
| particle1 | NameSpace isa Hash? | 22:29 | |
| pmichaud | does it matter, since we're obviously looking for a string key? | ||
| (default.pmc:925) | |||
| chromatic | It's a hash of STRING pointers. | ||
| STRING => PMCNULL pairs, to be precise. | |||
| NotFound | Please don't forget the current question: is VTABLE_isa the correct way to identify a valid exception handler? | 22:30 | |
| allison | NotFound: ah, I missed the start of the question, the answer is "no, any object that satisfies the interface of an exception handler qualifies" | 22:31 | |
| pmichaud | NotFound: it's at least the current practice. | ||
| my concern is about the current practice. | |||
| NotFound | pmichaud: it is since my last commit ;) | ||
| chromatic | VTABLE_does then is more correct, as long as people add the appropriate notation. | 22:32 | |
| allison | but, IIRC there is code in place currently that's literally checking for the type number of the ExceptionHandler PMC | ||
| pmichaud | NotFound: I mean that it's the current practice in other similar situations within the Parrot code base | ||
| allison: that's what NotFound just replaced | |||
| allison | yes, you're right to replace it | ||
| pmichaud | allison: because I pointed out that subclasses of ExceptionHandler wouldn't be properly recognized. | ||
| allison | and 'does' is the more appropriate replacement in the long-term rather than 'isa' | 22:33 | |
| pmichaud | agreed | ||
| NotFound | And still are not, the patch just allows them to be popped. | ||
| allison | popped? | ||
| NotFound | pop_eh'd | ||
| pmichaud | allison: pop_eh wouldn't remove exception handlers that didn't have a type id of enum_class_ExceptionHandler | ||
| allison | oh, ok | ||
| yes, that's true | 22:34 | ||
| pmichaud | and since an earlier discussion was talking about the possibility of using subclasses of ExceptionHandler to do various polymorphic type things, I pointed out that didn't quite work yet. | ||
| allison | also, exceptions only dispatch to enum_class_ExceptionHandler | ||
|
22:35
apeiron joined
|
|||
| NotFound | If does is the way to go, did we already have a role for that? | 22:35 | |
| particle1 | how do i get a .Sub or .MultiSub to return its name? | 22:36 | |
| allison | right, I used id comparisons as a cheap start when putting in the new exception handler code, always intending that it would be replaced when exception handlers got broader use (YAGNI principle, though more of a YDNIY principle) | ||
| NotFound: not yet | 22:37 | ||
| chromatic | ExceptionHandler IS a role. | ||
| particle1 | ah, i see... interpinfo has that | ||
| allison | er, that's not defined in the PMC (that I see) | 22:38 | |
| should be declared with 'pmrole' or whatever we called them | |||
| pmichaud | afk, dinner | ||
| NotFound | So in the meantime I can keep the VTABLE_isa and go sleep? ;) | ||
| chromatic | The way VTABLE_does works now is that it falls back to VTABLE_isa. | 22:39 | |
| allison | 'prole' | ||
| if 'isa' works, yes, keep it for now | 22:40 | ||
| progress is progress | |||
| NotFound | Ok | ||
|
22:45
mberends joined
|
|||
| particle1 | actually, interpinfo has current sub name | 22:49 | |
| particle1 builds rakudo after coding a first attempt at importing | 22:56 | ||
| rats. | 23:04 | ||
| pmichaud | why would sub name be needed for import? | ||
| particle1 | i'm using the !EXPORT sub in guts.pir | ||
| '!EXPORT'( symbols, 'from'=>ns_default, 'to'=>ns_caller ) | |||
| pmichaud | oh | 23:05 | |
| but wouldn't the list of symbols come from NameSpace keys? | |||
| nopaste | "particle" at 32.158.105.22 pasted "import" (52 lines) at nopaste.snit.ch/14375 | ||
| particle1 | yes, that's how i did it | ||
| didn't need the sub names after all | |||
| pmichaud | also, why not just do push $P0, 'DEFAULT' after the other push? ;-) | 23:06 | |
| particle1 | the diff looks sane (to me) but doesn't work | ||
| because eventually i'll need to loop MANDATORY,DEFAULT,my_tag | 23:07 | ||
| so it's pseudo-factored-out | |||
|
23:07
petdance joined
|
|||
| pmichaud | I don't think I'd use !EXPORT | 23:08 | |
| i kinda expect it to go away at some point | |||
| particle1 | well, it was there, so i decided to use it | ||
| pmichaud | my suggestion would be to go ahead and bind the symbols directly | ||
| particle1 | i expect to use an Exporter pmc, when i fix it to work with MultiSubs | ||
| ok, so the namespace values are the symbols | 23:09 | ||
|
23:09
TiMBuS joined
|
|||
| pmichaud | the iterator returns the keys | 23:09 | |
| using the keys on the namespace gets the corresponding pmcs | |||
| particle1 | and the keys are strings | ||
| pmichaud | and then you bind them into the caller's namespace | ||
| particle1 | oh of course | ||
| pmichaud | using the same algorithm as what !EXPORT does now, probably. | 23:10 | |
| or at least a similar one. | |||
| ....but actually | |||
| the logic of grabbing all of the symbols from a namespace and binding into a caller's namespace should be written as an 'EXPORT' method on NameSpace, if I read S11 correctly. | |||
| particle1 | i'll take another look at that when i get home | 23:11 | |
| gotta run now & | |||
| pmichaud | then it's just (1) find the correct namespace, (2) call EXPORT on the namespace | ||
| (3) repeat for DEFAULT, MANDATORY, tagset | |||
| allison | pmichaud: question about how you're currently using the Capture PMC | 23:12 | |
| pmichaud | I'm currently not using it. | ||
| all of the tools use Capture_PIR | |||
| allison | pmichaud: er, the PGE PMC of whatever type that Capture is based on | 23:13 | |
| pmichaud | okay. | ||
| allison | pmichaud: does the array/hash contain the match object itself? | ||
| pmichaud | I'm confused by the question | ||
| a Match object isa Capture | |||
| (Capture_PIR) | |||
| allison | pmichaud: yes, perhaps there's not a good parallel | ||
| pmichaud: I'm trying to decide if invocants should be stored in the arguments of the CallSignature PMC, or as a separate attribute | 23:14 | ||
| pmichaud | Perl 6 has them as part of the Capture, iiuc | ||
| allison | (CallSignature is a child of Capture, for now, but vastly extended) | ||
| how do you flag them? | 23:15 | ||
| that is, how do you identify the invocant from the other parameters? | |||
| pmichaud | I think there may be only one invocant. | ||
| and it's not treated like a "parameter" | |||
| allison | yes, but sub calls have no invocant | ||
| pmichaud | in that case the invocant acts as the first argument. | ||
| (I haven't studied this deeply yet, so I may be in error on some of the details.) | 23:16 | ||
| allison | oh, you're talking about your system where every call can be either a method or a sub, yes? | ||
| pmichaud | well, I wouldn't call it "my system". :-) | ||
| allison | I mean PGE's calling pattern | ||
| chromatic | THE EVIL | 23:17 | |
| purl | i think the evil is its own reward or www.cubicao.tk/stupidevil1.html or a padwalker or a girlfriend in its most pure, concentrated form or www.thinkgeek.com/geektoys/games/9766 | ||
|
23:17
vhold joined
|
|||
| pmichaud | it was just borrowed from Perl 6's calling pattern at the time. | 23:17 | |
| allison | yes | ||
| pmichaud | (and implemented by Parrot.) | ||
| I'm not intentionally being obtuse -- sorry -- I'm just not sure about the question. (more) | |||
| PGE's intended design is to follow Perl 6 calling conventions | 23:18 | ||
| allison | as it should, since it's an implementation of Perl 6 grammars | 23:19 | |
| the options I'm weighing are either, keep the invocant as a separate attribute within the CallSignature, or to flag it in the PCC signature string, possibly something like "PiP->P", where the 'i' flags the invocant | |||
| pmichaud | at one time there was a "method fallback to sub" feature of Perl 6 that PGE was trying to make sure it supported | ||
| that feature of Perl 6 is now gone | |||
| Tene | Why was that, again? | ||
| allison | the advantage of the former, is that you don't have to parse the signature string to know if you've got a method call signature | ||
| pmichaud | Tene: why was what? | ||
| Tene | Why is that feature gone? | ||
| pmichaud | Tene: I think it was originally a way to help out with multimethod dispatch | 23:20 | |
| allison | the advantage of the latter is that you only have to look at the signature string to know all the arguments you're processing | ||
|
23:20
apeiron joined
|
|||
| vhold | Is the parrot-devel link on parrot.org/download known to be broken? | 23:20 | |
| pmichaud | tene: in particular, something like $x.abs() could "fall back" to abs($x) so that we would define a "abs" builtin function instead of a .abs method | 23:21 | |
| allison | vhold: works for me, but sometimes it takes a while for the CPAN mirrors to update | ||
|
23:21
bacek_ joined
|
|||
| pmichaud | Tene: but that didn't work out too cleanly in practice because of all of the type manipulations and coercions involved, so it's since been defined that methods like .abs are defined on the Any class, and they coerce the invocant to be the appropriate type for the operation | 23:22 | |
| allison | pmichaud: that's good to know | ||
| pmichaud | then the 'is export' trait on a method causes it to be exported as a function, so that it can also be called as abs($x) | ||
| vhold | Ah, I figured it out.. it had some geodns thing in a cookie that was making it totally wig out.. | ||
| pmichaud | I don't know if Perl 6 explicitly says that the abs() function and abs method have to be the same underlying object. | 23:23 | |
| obviously Parrot supports that sort of thing (sub PMC doubling as method and function) | 23:24 | ||
| allison | subs are just invocable objects, so are methods | 23:25 | |
| pmichaud | right | ||
| (I'm still evaluating allison's comment about signature types) | |||
| ...what does "PiP->P" indicate, anyway? | 23:26 | ||
| allison | that would be a method call with a single invocant, a single PMC argument, and a PMC return value | 23:27 | |
| the alternative is "P->P" which only represents the arguments and return values | |||
|
23:27
Ademan joined
|
|||
| pmichaud | so, we could have "PiP->PiPPP" to mean a method call with a single invcant, single PMC argument, returning an invocant and three PMC return values? | 23:28 | |
| allison | (the invocant is handled separately, since it's in neither the argument call list, or the parameter list) | ||
| no, only argument lists have invocant | |||
| have an invocant | |||
| pmichaud | return values in Perl 6 have invocants also | ||
| allison | ? | ||
| what is a return value invocant? | 23:29 | ||
| just the first return argument? | |||
| pmichaud | reviewing S06 to find the appropriate reference. | ||
| allison | some kind of functional notation, where it immediately invokes another method on the invocant using the other return values as arguments? | ||
| dalek | Krishna Sethuraman | Parrot Development on Windows: | 23:30 | |
| link: www.perlfoundation.org/parrot/index...on_windows | |||
| pmichaud | it may have been changed since I last saw it | 23:31 | |
| allison | pmichaud: that wouldn't be surprising, given the general change rate | ||
| pmichaud | at one time one could do return $x: "Foo"; which would return an invocant $x and an argument "Foo"; | 23:33 | |
| allison | ok | ||
| pmichaud | then it could be bound into a capture on the caller side | ||
| but I don't see it now. | |||
| allison | is that a feature you've used | 23:34 | |
| pmichaud | no, I'm just looking ahead to what Perl 6 needs. | ||
| (based on the spec) | |||
| how do named parameters appear in the signature, ooc ? | |||
| allison | yup, makes sense | ||
| with an 'n' adverb | |||
| pmichaud | so, 'PPn -> PPPPn' ? | 23:35 | |
| allison | so, SnP, would be a named parameter, with a string name and a PMC value | ||
| pmichaud | ah | ||
| so, 'PSnP -> PPPSnP' would be called with one PMC argument, one named PMC argument | |||
| and return three positional PMC arguments and one named PMC argument | |||
| allison | yes | ||
| though, I don't think PCC is doing named returns yet | 23:36 | ||
| pmichaud | (and no spaces :-) | ||
| Tene | And a named invocant? | ||
| ;) | |||
| allison | SniP | ||
| :) | |||
| pmichaud | I haven't tested named returns, although it's been defined for a long time. | ||
| allison | the one thing that inclines me somewhat toward putting the method invocant inside the signature string, is that MMD technically has multiple invocants | ||
| so PiPiPiPP, would be five PMC arguments, the first 3 of which are significant for multiple dispatch | 23:37 | ||
| this seems more obvious if regular method calls already use the 'Pi' syntax | |||
| pmichaud | my feeling is that Perl 6 acts like the invocant(s) is part of the calling arguments | 23:39 | |
| allison | yes, and seems more familiar from the Perl 5 perspective as well, where even method calls can slurp up all the arguments including the invocant into an array | ||
| pmichaud | yes, I agree. | 23:40 | |
| allison | 'k, thanks, wanted to talk through the options outloud | 23:42 | |
| er, virtually | |||
| pmichaud | it might be worth looking at S06 "Longname parameters" | ||
| that talks about Perl 6's multiple dispatch and self | 23:43 | ||
| cognominal | filed the 'bug" I discovered this summer with dtrace. | 23:45 | |
| allison | mmm... looks like that's largely unchanged, good | ||
| pmichaud | to return to your original question, it looks to me as though invocants are part of the CallSignature PMC arguments. | 23:46 | |
| allison | pmichaud: don't have a strategy for supporting the "Conjecture" comment, but it's still conjecture | ||
| pmichaud: well, at the moment CallSignature doesn't support invocants at all | |||
| so, it can't handle method calls | |||
| pmichaud | allison: I suspect our first approximation for Conjecture will be to use wrapper subs and tailcalse | ||
| er tailcalls | |||
| allison | we're working on that in the calling_conventions branch | ||
| pmichaud: that could work | 23:47 | ||
| pmichaud: if needed, we can also define extensions to the signature syntax | |||
| pmichaud | I tend to think of method calls in two phases -- the first is resolution, where we figure out which method(s) are to be invoked based on the invocant type | ||
| the second phase is invocation, where the invocant is just another argument to the invoked sub(s) | 23:48 | ||
| that could be a very naive and incorrect view, but it tends to work for me thus far. | |||
| allison | right, for the first it is slightly more convenient to have the invocant out-of-band, but not enough of an advantage to be worth it | 23:49 | |
| (the first being 'find_method' in the Parrot context) | |||
| pmichaud | well, any time we're doing a method call I tend to think the invocant is immediately available at the caller's level | ||
| i.e., foo.'method'() is always a method call, and 'method'(foo) is never a method call | 23:50 | ||
| and the caller (or whatever processor is looking at the source) can figure out the difference. | 23:51 | ||
|
23:51
petdance joined
|
|||
| pmichaud | but I know there are still a couple of holes in that view, such as methods that multiple dispatch. | 23:53 | |
| anyway, enough from me for now -- hope this helped. | |||
| chromatic | Scared Andy away. That's worth something. | 23:55 | |