Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-31

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 AndyA joined #parrot
00:08 Whiteknight I may be missing something, but on i386 systems is there a difference between "return(0);" and "__asm__("ret")"?
00:09 TiMBuS you'd need to put 0 in eax
00:09 Whiteknight I mean, besides the fact that "return(0)" is going to null out EAX?
00:09 Whiteknight Okay, so I'm not missing any other differences? I feel like I'm going crazy over here
00:10 TiMBuS if the function requires some stack fixing up there might be a difference, but the compiler should fix that
00:10 TiMBuS theres also the leave opcode or something.
00:10 Whiteknight I'm trying to get rid of the cpu_ret opcode, which uses the __asm__("ret"). I want to replace it with the end opcode which does return(0)
00:11 Whiteknight and if the translation is as straight-forward as I seem to think it is, this should be very easy.
00:12 Andy joined #parrot
00:31 Coke I have resurrected my power ppc darwin box for the evening.
00:31 * Coke wonders if rurban is about.
00:33 Coke irclogs
00:33 Coke irclogs?
00:33 purl irclogs is probably http://irclog.perlgeek.de/parrot/today
00:34 * Coke is reminded AGAIN it would have been quicker to rsync with a local copy of the repository than it would have been to do an svn checkout.
00:49 * Coke hopes this laptop is only so slow running configure.pl because he's also running software update for the first time in a year.
00:58 chromatic Also it's haunted.
01:01 kj joined #parrot
01:02 altious joined #parrot
01:04 kid51 joined #parrot
01:28 particle joined #parrot
01:38 Tene_ joined #parrot
02:31 ask_ joined #parrot
02:41 Andy joined #parrot
02:45 Coke laptop was haunted; after software update, it won't reboot.
02:46 kid51 Let me guess:  Ubuntu 8.10?
02:48 kid51 Coke:  Any feedback on these TTs?  107 109 255 108 107
02:54 Coke 107??
02:54 Coke ah.
02:54 Coke for some reason, trac showed me 170.
02:55 Coke I just commented on 107.
02:57 dalek parrot: r36180 | coke++ | trunk/DEPRECATED.pod:
02:58 dalek parrot: track TT #109
02:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36180/
02:58 Coke #255: no commment
03:00 Coke You had 107 on there 2x.
03:00 Coke I commented on the rest.
03:06 kid51 Saw your comments.  Fixed one patch but taking no other action pending deprecation decisions.
03:16 * Coke wonders what the point of https://trac.parrot.org/parrot/wiki/BuildStatus is.
03:16 Coke Don't we have tickets for things that break the build?
03:16 Coke I could see having a BuildWarnings page, as those don't need tickets.
03:19 Infinoid ...especially when it lists issues with tickets that have since been closed...
03:19 * Coke adds one.
03:19 kid51 And 2/3 of the info is out-of-date.  t/shootout was fixed by chromatic and has been running smoothly for months.  t/stm/* doesn't exist anymore.
03:21 Coke feel free to kill the page, then.
03:22 Coke (it's linked to from the front page of the wiki)
03:23 kid51 How does one actually kill a wiki page?
03:23 kid51 kill -9 ?
03:23 purl REALLY dirty AND bad-mannered
03:23 Tene_ a wiki tire iron?
03:24 kid51 It's a secret:  Hit the button that says "Delete page'
03:25 * kid51 now has Wiki blood on his hands!
03:34 Coke https://trac.parrot.org/parrot/changeset/35977 is slooooooow
03:48 dalek parrot: r36181 | coke++ | trunk/compilers/imcc/optimizer.c:
03:48 dalek parrot: eliminate reference to rejected TODO ticket.
03:48 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36181/
03:50 dalek parrot: r36182 | coke++ | trunk/compilers/imcc/optimizer.c:
03:50 dalek parrot: remove reference to obsolete ticket.
03:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36182/
03:53 * kid51 must sleep
03:53 purl $kid51->sleep(8 * 3600);
03:53 dalek parrot: r36183 | coke++ | trunk/compilers/imcc/optimizer.c:
03:53 dalek parrot: remove confusing bit of function doc and reference to rejected ticket.
03:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36183/
03:55 Whiteknight Coke, pic_callr__ is still used in JIT
03:55 Whiteknight I think I can come up with a workaround for it, but I don't have one yet
03:56 Coke except that there's an item in the ticket to remove it.
03:56 Coke so there's no point to keeping a ticket to fiddle with it.
03:58 Whiteknight when is the remove_pic branch trying to land?
03:58 Coke 2 releases ago.
03:58 Coke the only thing holding it up is that jit invocation.
04:13 Theory joined #parrot
04:14 dalek parrot: r36184 | coke++ | trunk:
04:14 dalek parrot: Welcome to the shadowy underworld of a file... that does not exist.
04:14 dalek parrot: (update pointers to the new trac page that houses this information)
04:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36184/
04:16 Topic for #parrotis now Parrot 0.9.0 | http://parrot.org/ | 566 RTs left.
04:22 Coke msg jonathan if you could remove Data::Escape from dotnet, that'd be helpful.
04:22 purl Message for jonathan stored.
04:25 rg coke: unfortunately a simple perl rt account can't close old tickets.
04:43 ChrisDavaz joined #parrot
04:47 Theory_ joined #parrot
05:16 clunker3__ joined #parrot
05:33 ChrisDavaz left #parrot
05:39 Theory joined #parrot
06:08 cognominal joined #parrot
06:13 Zaba_ joined #parrot
06:39 dalek parrot: r36185 | petdance++ | trunk/src/pmc/resizablebooleanarray.pmc:
06:39 dalek parrot: removed unused variable
06:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36185/
06:55 Tene_ Coke: was it you who cared about throwing exceptions from within an EH?
07:00 dalek parrot: r36186 | petdance++ | trunk/src/io/unix.c:
07:00 dalek parrot: consting, removed an unused return
07:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36186/
07:01 dalek parrot: r36187 | petdance++ | trunk/src/ops/set.ops:
07:01 dalek parrot: removed unused var
07:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36187/
07:02 dalek parrot: r36188 | petdance++ | trunk/src/pmc/packfiledirectory.pmc:
07:02 dalek parrot: consting
07:02 purl i guess consting is even more dire now that I got GCC's flags the way I want 'em.
07:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36188/
07:02 Andy purl, forget consting
07:02 purl Andy: I forgot consting
07:03 Tene_ Oh, argh, nevermind, that won't work.
07:26 iblechbot joined #parrot
07:41 rurban_ joined #parrot
08:09 riffraff joined #parrot
08:15 HG` joined #parrot
08:36 Tene_ ARGH PARROT
08:36 Tene_ I'm running out of ideas here.  I'm looking for a way for an exceptionhandler to determine if an exception was thrown from itself.
08:46 MagnusShortwave joined #parrot
09:27 TiMBuS Tene_, set up an exception handler.. in your handler?
09:29 Tene_ TiMBuS: right now in parrot if you throw an exception from within an exception handler, that same handler catches that exception
09:30 TiMBuS really? even if you push a new handler?
09:30 Tene_ well, no, not if you pushed a new handler.
09:30 Tene_ if you pushed a new handler from the handler, the new handler would catch it.
09:31 Tene_ The issue is that you can get infinite loops when an EH catches an exception thrown from itself and doesn't know what to do with it or it causes some other sort of error, so another exception, etc.
09:32 TiMBuS well an exception thrown from a handler should only be caused by unexpected errors in a handler shouldnt they?
09:32 Tene_ That's right.
09:33 Tene_ So the general answer right now is "Just be careful"
09:33 TiMBuS well, i dunno if its unexpected you can't tell what it is, so maybe set up handlers that only deal with specific error codes otherwise they rethrow
09:33 Tene_ Right.
09:34 Tene_ The issue is that Parrot should probably at least do something helpful in that case instead of an infinite loop.
09:34 TiMBuS orr, put a handler in your handler that will mark a 'handler exception' that is ignored by handlers or something
09:34 Tene_ Sure.
09:34 TiMBuS thats a terrible way to fix it :/
09:34 Tene_ i'm not looking for workarounds.  I'm trying to figure out how i can get Parrot itself to detect this case and do something helpful.
09:36 riffraff joined #parrot
09:36 TiMBuS that difficult. id assume people sometimes want to throw an exception from a handler?
09:36 Tene_ Nobody currently wants to do that.
09:37 lathos There's no real reliable way to detect an infinite loop, rather than just a very deep loop.
09:37 Tene_ Occasionally people have run into this situation by accident.
09:37 TiMBuS yeah i have
09:37 TiMBuS called die from inside an error handler
09:37 Tene_ lathos: there *should* be a way for the EH to detect that the exception is being thrown from the EH, though.
09:38 lathos Why would an EH ever throw an exception that it can't handle?
09:38 Tene_ dunno
09:38 TiMBuS well say you try to perform an operation on a pmc that cant be done..
09:39 TiMBuS in your handler.
09:39 lathos Yes. You get an exception. Which you handle.
09:40 Tene_ {handler:\n$I0 = 1/0} (approximately) will infinite loop in Parrot.
09:40 TiMBuS but you arent really expecting that kind of error since the handler was likely set up for a different reason? at least thats where i expect infinite loops to form
09:40 lathos Tene_: Yes, but that would be an unwise thing to do.
09:41 lathos TiMBuS: But if you're not expecting that error, you pass it (I'm assuming you *can* pass it down the stack.)
09:41 TiMBuS but it shouldnt loop forever =/
09:41 Tene_ lathos: more commonly, you write a generic catchall handler only expecting a single specific type of exception.  If a different type of exception comes in and you try to operate on it, you might run into problems.
09:41 Tene_ if any of those operations fail, infinite loop
09:42 moritz in assembler you can simply loop with `dec EIP'
09:42 lathos Tene_: Then you need to manage your expectations better.
09:42 Tene_ lathos: Sure.
09:42 TiMBuS i dont think you're allowed to dec eip are you?
09:42 lathos If you don't code an *exception handler* - of all things - with the expectation that things might go wrong, you probably deserve the infinite loop.
09:42 TiMBuS you have to do a short jmp -5 or something
09:44 moritz TiMBuS: I never actually tried it :/
09:47 * Tene_ sleep
09:55 alvar joined #parrot
10:05 altious joined #parrot
10:34 AndyA joined #parrot
10:35 AndyA joined #parrot
11:07 barney joined #parrot
11:08 Ademan joined #parrot
11:36 jan_ joined #parrot
12:01 MagnusShortwave joined #parrot
12:06 dalek parrot: r36189 | fperrad++ | trunk:
12:06 dalek parrot: [perldoc] fix RT #62920
12:06 dalek parrot: (bug introduced by r36115)
12:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36189/
12:07 schmalbe joined #parrot
12:12 dalek parrot: r36190 | barney++ | trunk/README:
12:12 dalek parrot: [docs] Use the regukar char for underlining
12:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36190/
12:15 cotto It is very dark.  Zcode is likely to be eaten by a grue.
12:29 rg joined #parrot
12:31 rg tene_: that was me with the exceptions. reading logs now.
12:32 dalek parrot: r36191 | barney++ | trunk/docs/gettingstarted.pod:
12:32 dalek parrot: [docs] s/svn.perl/svn.parrot/
12:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36191/
12:32 dalek parrot: r36192 | barney++ | trunk/docs/gettingstarted.pod:
12:32 dalek parrot: [doc] Add link to ParrotDeveloperGuide
12:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36192/
12:39 rg i think it's totally valid code to throw an exception from an exception handler.
12:39 rg i'm thinking of the usual try/.catch cenario here.
12:41 rg like this: try { try { <code throwing exception> } catch { handler throwing exception> } } catch { <handler supposed to catch the inner handler's exception> }
12:47 rg message tene please try and ping me if you're going to work on exception handlers
12:47 purl Message for tene stored.
12:47 rg (actually anyone really ;))
12:49 cotto rg, noted
12:50 cotto Is there anything I should be especially cognizant of?
12:50 rg for one, the example i just gave should be doable ;)
12:51 dalek parrot: r36193 | barney++ | trunk:
12:51 dalek parrot: [docs] s/parrotcode.org/parrot.org/
12:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36193/
12:51 dalek parrot: r36194 | barney++ | trunk/docs/gettingstarted.pod:
12:51 dalek parrot: [docs] refer to submissions.pod for submitting patches and reporting
12:51 dalek parrot: bugs
12:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36194/
12:54 rg cotto: are you planning to work on exceptions?
12:55 cotto nothing more involved than updating some code to use ATTRs.
12:56 cotto iirc Exceptions already use them, but ExceptionHandlers still have some PMC_x_val instances.
12:56 altious joined #parrot
12:58 rg i don't think that touches on the problem i'm trying to figure out.
13:00 cotto Probably not, but I've created two (known) obscure bugs so far in converting other PMCs.
13:27 dalek parrot: r36195 | rurban++ | trunk/t/native_pbc/number.t:
13:27 dalek parrot: [test] TT #254. mark as TODO for big-endian numval transform.
13:27 dalek parrot: Only on darwin/PPC so far.
13:27 dalek parrot: Note: intval transform in darwin/PPC works okay (endianness-transform),
13:27 dalek parrot: but the numvalsize is equal and fails on the endianness-transform.
13:27 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36195/
13:28 rurban message kid51 can you please commit a t/native_pbc/number_2.pbc for darwin/PPC so that I can test the failing numval transformer.
13:28 purl Message for kid51 stored.
13:28 rurban anyone with darwin/ppc around?
13:42 rurban anyone with a big-endian machine around?
13:59 masak joined #parrot
14:04 schmalbe http://cia.vc/stats/project/parrot in now polling the new svn repository,
14:04 schmalbe however some commits were skipped
14:06 schmalbe bbl
14:09 Whiteknight joined #parrot
14:11 flh joined #parrot
14:17 altious joined #parrot
14:18 contingencyplan joined #parrot
14:22 altious joined #parrot
14:26 kid51 joined #parrot
14:38 dalek parrot: r36196 | whiteknight++ | trunk/docs/book/ch02_getting_started.pod:
14:38 dalek parrot: [Book] Add some notes about some of our development requirements. Thanks to an email from fperrad++ for the information
14:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36196/
14:38 masak http://www.parrotcode.org/docs/roadmap.html is _empty_. if it's superceded by another page, I think it should at least contain a link to the new page. it's still very easy to end up there with a google search.
14:50 altious joined #parrot
14:51 dalek parrot: r36197 | whiteknight++ | trunk/docs/book/ch03_pir_basics.pod:
14:51 dalek parrot: [Book] A few updates to chapter 3. Talk more about creating new classes, create a section for an indepth discussion of vtables, and remove some erroneous whitespace
14:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36197/
14:56 dalek parrot: r36198 | fperrad++ | trunk/lib/Parrot/Distribution.pm:
14:56 dalek parrot: [lib] find more Perl files
14:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36198/
14:58 dalek parrot: r36199 | fperrad++ | trunk/config/gen:
14:58 dalek parrot: [codingstd] fix Perl coding standard in template files.
14:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36199/
15:01 dalek parrot: r36200 | fperrad++ | trunk:
15:01 dalek parrot: [configure] rename a Perl template & fix coding standard
15:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36200/
15:11 rurban kid51: can you please commit a t/native_pbc/number_2.pbc for darwin/PPC so that I can test the failing numval transformer. see tt #254
15:22 Limbic_Region joined #parrot
15:28 dalek parrot: r36201 | fperrad++ | trunk/t/codingstd:
15:28 dalek parrot: [t] no need to skip generated files
15:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36201/
15:40 rurban_ joined #parrot
15:56 nopaste "kid51" at 71.247.39.207 pasted "number_2" (17 lines) at http://nopaste.snit.ch/15468
15:56 kid51 rurban: Is that what you were looking for?
15:57 rurban kid51: no, I'd need the n.pbc
15:57 rurban best commit it as number_2.pbc
15:58 rurban t/native_pbc/number_2.pbc exactly
15:59 kid51 I don't understand what you mean by "commit" it.  It's in SVN:              36200    35854 chromatic    t/native_pbc/number_2.pbc
15:59 rurban yes, but pdump cannot read it. we need to update it with every byteocde version change
16:00 kid51 So what do I have to do next?
16:00 rurban mv n.pbc t/native_pbc/number_2.pbc
16:00 rurban svn commit t/native_pbc/number_2.pbc
16:01 rurban and as commit message: "TT #254, PPC double float 32 bit BE opcode_t"
16:02 kid51 Well, I committed it before I saw the commit message you wanted.
16:02 dalek parrot: r36202 | jkeenan++ | trunk/t/native_pbc/number_2.pbc:
16:02 dalek parrot: Committing latest n.pbc.
16:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36202/
16:02 rurban not problematic, thanks
16:03 rurban I'll document the format in number.t
16:05 kid51 BTW, t/native_pbc/number.t just passed for me on Darwin/PPC.
16:05 Tene joined #parrot
16:05 rurban Great. it fails in the same way as yours, so I can fix it, in one way at least.
16:11 dalek parrot: r36203 | rurban++ | trunk/t/native_pbc/number.t:
16:11 dalek parrot: Add the "PPC double float 32 bit BE opcode_t" test as 2nd. r36202.
16:11 dalek parrot: This was the third test before.
16:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36203/
16:25 Whiteknight rurban, where do you want me to send my .pbc files?
16:25 Whiteknight I have the two you asked for in the email, and I posted my results from pdump to the ticket
16:26 kid51 Now, t/native_pbc/number. t fails again on Darwin/PPC, i.e., after r36203
16:27 kid51 Should I have rebuilt Parrot?
16:29 kid51 bbl
16:32 rurban Whiteknight: to parrot-dev probably
16:32 Whiteknight rurban: Okay! I'll attach them and send out an email now
16:32 rurban kid51: no, parrot rebuild is not necessary
16:34 rurban kid51: I'll fix the bug in parrot first, then I'll adapt the tests. wait a sec...
16:41 dalek parrot: r36204 | fperrad++ | trunk/config/gen/config_pm.pm:
16:42 dalek parrot: [configure] use a more standard header in Generated.pm
16:42 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36204/
16:48 lathos joined #parrot
16:49 rurban ok, I found the packfile reader bug, It assumed a IEEE-754 8 byte double was 12 bytes long
16:53 Whiteknight that fixes the problem for integer.t also?
16:54 rurban No. I'm just testing the double problem first.
16:54 Whiteknight oh, ok
16:54 rurban Anyone has a system with long double also?
16:54 Whiteknight what file are you looking in, src/packfile.c?
16:55 rurban my fix is in src/packfile/pf_items.c:623
16:55 rurban ! pf->header->floattype => pf->header->floattype
16:55 Whiteknight ah, I see it now
16:55 rurban it converts a 12-byte long double to a 8-byte double
16:56 rurban but the stream advance was wrong
16:56 rurban 12 mixed up with 8
16:56 rurban I inverted it and now it works fine
16:56 Whiteknight how do I set up the build to use a long double?
16:56 rurban ?? if I know I would have done it :)
16:58 rurban Floattype 1 = x86 little endian 12 byte long double is the problematic one
17:03 nopaste "rurban" at 212.183.63.195 pasted "tt254-floattype1-bug.patch" (32 lines) at http://nopaste.snit.ch/15469
17:06 LimbicRegion joined #parrot
17:06 Whiteknight perl Configure.pl --floatval="long double"
17:07 Whiteknight I'm building with that right now
17:08 rurban Interesting. I'd like to hear the results. you can easily test it with number_1.pbc and number_2.pbc. I attached my fix also to the ticket.
17:10 Whiteknight didn't even build.
17:10 rurban what makes me wonder is that Floattype 1 = little endian only
17:11 rurban looks like some very special case here
17:11 rurban I'm testing on more platforms now, and apply my fix then.
17:14 Theory joined #parrot
17:18 rurban kid51: can you test the failing integer.t with this patch: https://trac.parrot.org/parrot/attachmen​t/ticket/254/tt254-floattype1-bug.patch
17:18 shorten rurban's url is at http://xrl.us/beefz7
17:27 rurban kid51: we have a minor problem with your number_2.pbc. it was based on number_2.pasm, not number_1.pasm
17:27 rurban can you rebuild it on darwin?
17:36 chromatic joined #parrot
17:36 rurban Whiteknight: excellent. your two files have the untested **need** opcode transform. all works for me.
17:41 dalek parrot: r36205 | rurban++ | trunk/src/packfile/pf_items.c:
17:41 dalek parrot: Fix the failing t/native_pbc/number.t tests in TT #254.
17:41 dalek parrot: The pf->header>floatval logic was wrong. only floattype 1 = 12 byte
17:41 dalek parrot: Fixes the pf_item floatval reader if a conversion is requested,
17:41 dalek parrot: and floatval is a normal IEEE-754 8 byte double.
17:41 dalek parrot: The bug was a wrong advance of 12 byte on
17:41 dalek parrot:   (NUMVAL_SIZE == 8 && ! pf->header->floattype)
17:41 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36205/
17:42 chromatic It's not possible to say rurban++ enough for that.
17:42 PacoLinux joined #parrot
17:44 rurban chromatic; we'd need more native pbc's. little-endian 64-bit tru64, big-endian 64-bit irix, ...
17:44 rurban I wanted to get that fixed before 1.0
17:44 chromatic I'm not sure we have hackers on those platforms, let alone successful builds.
17:45 chromatic I've fixed as much as I can of Jarkko's Tru64 problems, but I'm sure others remain.
17:45 chromatic He suggested finding a picky Sparc somewhere.
17:45 rurban I see. Do you have any idea where the strange floattype 1 "x86 little endian 12 byte long double" came from?
17:46 rurban This is special cased.
17:46 lathos DOn't forget that things like qemu let you make funny computers for free.
17:47 rurban I know. But setting up those beasts needs a lot of time. My Solaris 10 (sun5 64bit) image still misses a c compiler
17:47 rurban dtrace is working ok though.
17:49 chromatic I have no idea about 12 bytes.
17:50 alvar joined #parrot
17:58 dalek parrot: r36206 | rurban++ | trunk/t/native_pbc:
17:58 dalek parrot: t/native_pbc/*_3.pbc:
17:58 dalek parrot: - Add Whiteknight's "x86_64 double float 64 bit opcode_t" pbc's (as _3)
17:58 dalek parrot: - darwin/ppc pbc's need to be regenerated (as _2)
17:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36206/
18:01 kid51 joined #parrot
18:01 rurban Hi kid51, I need you again :)
18:01 kid51 ?
18:02 rurban your number_2.pbc was based on number_1.pasm, not number_1.pasm, so we'll get wrong results.
18:02 rurban And getting an updated integer_2.pbc would also be nice.
18:02 rurban Should I send you instructions?
18:03 kid51 ok.  I don't know much about this area and so I'm proceeding blindly.  Yes, send instructions (or paste).
18:03 rurban ... your number_2.pbc was based on number_1.pasm, not number_2.pasm, so we'll get wrong results.
18:05 kid51 Am now rebuilding after svn up to r36206.
18:05 Whiteknight rurban++
18:08 nopaste "rurban" at 212.183.63.195 pasted "for kid51: on darwin/ppc" (13 lines) at http://nopaste.snit.ch/15470
18:11 kid51 Will integer_2.pbc and number_2.pbc be present after just 'make'?
18:12 chromatic You'll have to rebuild them explicitly.
18:12 kid51 And the best way to do that is ... ?  (I was running t/op/number.t earlier.)
18:13 rurban kid51: see http://nopaste.snit.ch/15470
18:14 kid51 So that's what happens with ./parrot -o  ?
18:14 rurban yes. brute-force
18:15 kid51 K.  waiting on 'make', which is slow on this iBook
18:15 rurban great! thanks
18:17 dalek parrot: r36207 | barney++ | trunk/config/gen/makefiles/dynpmc_pl.in:
18:17 dalek parrot: [codingstd] perlcritic.t
18:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36207/
18:17 dalek parrot: r36208 | barney++ | trunk/languages/pipp:
18:17 dalek parrot: [Pipp] add support for lone semicolons
18:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36208/
18:30 Whiteknight rurban: I'm still getting failures in both those tests after a realclean and an update
18:31 Whiteknight is there anything else I need to do on my end?
18:31 Whiteknight do I need to regenerate those .pbc files?
18:31 kid51 rurban:  I got this:  ./parrot -o t/native_pbc/number_2.pbc t/op/number_1.pasm
18:31 kid51 Error reading source file t/op/number_1.pasm.
18:32 kid51 Looks like I'll have to run t/op/number.t first.
18:32 rurban yes, sorry
18:37 nopaste "kid51" at 71.247.39.207 pasted "Another try at pbc" (257 lines) at http://nopaste.snit.ch/15471
18:38 kid51 rurban  Take a look at that before I commit.
18:39 rurban yes, both look good. please commit
18:40 rurban with the integer.pbc we have now an interesting test for - as filename. tools/util/dump_pbc will not like it :)
18:40 dalek parrot: r36209 | jkeenan++ | trunk/t/native_pbc:
18:40 dalek parrot: Fix #254: regenerate darwin/ppc native_pbc tests as _2
18:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36209/
18:40 rurban jkeenan++ thanks
18:41 rurban and another one for kid51++
18:41 kid51 So, do you have more work to do before the tests will pass on all OSes?
18:41 rurban I believe it should pass now, but we will see tomorrow
18:42 rurban litlle-endian integer 64-bit would be interesting
18:43 rurban can you try x86_64 with ICC?
18:43 nopaste "kid51" at 71.247.39.207 pasted "t/native_pbc/*.t on Darwin/PPC after r36209" (15 lines) at http://nopaste.snit.ch/15472
18:44 rurban great. looks like this was the only bug. I remove now the todo's from the tests
18:44 kid51 rurban:  I don't have x86_64 w/ICC ... IIRC that was infinoid.
18:47 kid51 No , not infinoid ... dmajnem2 (See http://irclog.perlgeek.de/parrot/2009-01-30 at 01:50)
18:48 kid51 be back later tonight.
18:49 ask_ joined #parrot
18:59 davidfetter joined #parrot
19:00 rindolf joined #parrot
19:00 rindolf Hi all.
19:01 rindolf I'm having trouble with my parrot svn working copy:
19:01 rindolf svn: Repository moved temporarily to 'https://svn.parrot.org/parrot/trunk'; please relocate
19:01 moritz rindolf: well, relocate :-)
19:01 rindolf moritz: I did that.
19:01 moritz rindolf: there's an announcment on parrot.org
19:01 rindolf moritz: but it still warns me.
19:02 rurban how did you relocate?
19:02 rindolf rurban: svn switch --relocate
19:02 moritz that worked for me
19:02 rurban there are two args missing
19:02 rurban from to
19:03 rindolf rurban: well - svn switch --relocate 'http://svn.perl.org/parrot/' 'https://svn.perl.org/parrot/'   - is the complete command
19:03 rurban do you have https:// in your . svn/entries ?
19:04 rurban most likely it's https:// vs http://
19:04 moritz rindolf: it might be easiest to do a new checkout
19:04 rurban oh no. you have to switch from perl to parrot.  svn switch --relocate https://svn.perl.org https://svn.parrot.org
19:05 moritz (and if you have local changes, safe them to a patch first)
19:05 rindolf rurban: oh, I see.
19:10 dalek parrot: r36210 | fperrad++ | trunk/config/gen:
19:10 dalek parrot: [configure] update the generation of config_lib.pasm
19:10 dalek parrot: - detabify
19:10 dalek parrot: - rename template
19:10 dalek parrot: - more standard header
19:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36210/
19:11 dalek parrot: r36211 | rurban++ | trunk/t/native_pbc:
19:11 dalek parrot: [test] native_pbc: remove todo's for new darwin/ppc pbc's.
19:11 dalek parrot: - added with r36209.
19:11 dalek parrot: - Add missing headers for ppc and x86_64
19:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36211/
19:11 dalek parrot: r36212 | fperrad++ | trunk/MANIFEST:
19:11 dalek parrot: rename file, so update MANIFEST
19:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36212/
19:13 dalek parrot: r36213 | fperrad++ | trunk/editor:
19:13 dalek parrot: svn:ignore pir.vim (generated file)
19:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36213/
19:16 dalek parrot: r36214 | fperrad++ | trunk/lib/Parrot/Configure/Compiler.pm:
19:16 dalek parrot: [configure] remove vim ft generation
19:16 dalek parrot: vim ft (file type) must be a part of code coda
19:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/36214/
19:31 Tene rg: ping
19:37 rg pong
19:38 rg tene: did you read what i said earlier today?
19:40 Tene rg: just the hilights where you mentioned my name.  If there's more I'll go back and read.
19:42 Tene rg: the problem is in differentiating between an exception thrown earlier in the same PIR sub and an exception thrown from the handler part of that sub.
19:43 rg my main point is to get this to work: try { try { <code throwing exception> } catch { <handler throwing exception> } } catch { <handler supposed to catch the inner handler's exception> }
19:43 Tene rg: that *can* work if you're careful about setting what types of exceptions can be caught.
19:44 iblechbot joined #parrot
19:44 rg to trigger the problem let's assume it's the same e3xception (or simply a catch all)
19:44 Tene try { try { <throw IOexception> } catch IOException { <throw SomeOtherException> } } catch { ... }
19:45 Tene Right.
19:45 Tene I'm just not sure that it's possible for the EH to detect whether the exception was thrown from earlier in the PIR sub or from the handler itself.
19:46 Tene .sub 'foo'; push_eh handler; throw exception; pop_eh; .return (); handler:; throw secondexception; .end
19:46 rg i don't think you have to. in pir you can just pop_eh your handler after getting your exception
19:47 Tene If you're the top-level handler
19:47 Tene rg: you can also inspect the exception and choose to rethrow it, which doesn't run into this problem.
19:49 Tene I can detect if it was thrown from the same PIR sub by comparing the from_context of the resume continuation in the exception against the context of the EH.
19:49 rg but won't the first handler be called again when a new throw happens in the next handler?
19:49 Tene But that would match in both of the cases in that example.
19:50 Tene rg: I think so, yes.  I'm not certain.
19:50 rg that's what i have to avoid
19:51 Tene Out of curiosity, what's the reason you're throwing from an EH anyway?
19:52 rg just an exceptional condition i'd like to handle with a more global handler. i find that quite common in java for example.
19:52 Tene why is the more global handler throwing more exceptions?
19:52 rg no, the more specific handler is throwing the exception
19:54 Tene I think I'm confused.
19:54 rg sorry ;)
19:54 rg let's go back to the try/catch example.
19:56 rg the inner (more specific) handler caught an exception and decides "well there's nothing i can do about it here, let's throw a new exception". none of the hlls i know have a rethrow.
19:58 Tene Rakudo handles it by generating code to check the 'handled' attribute and rethrow if it's not set.
19:58 rg of course it doesn't want to handle that exception again, it needs to go to an outer handler
19:58 Tene fwiw
19:58 rg i don't think rakudo has it right, either. but that may be me not knowing enough perl6 yet ;)
19:58 Tene It probably doesn't.
19:59 Tene Anyway, you've satisfied my curiosity.
19:59 Tene My next goal is to try looking in the backtrace of the exception for clues.
19:59 rg try running this in rakudo (but not by polyglotbot, it's an ionfinite loop):
19:59 rg try { die("dead"); CATCH { say "handler: $_"; die("deader"); } }
19:59 Tene Yes, that will loop.
19:59 rg is that intentional?
20:00 Tene I'm not sure.  Probably not.
20:00 Tene rakudo: try { try { die("dead"); CATCH { say "inner handler: $_"; }} CATCH {say "outer handler: $_"; }}
20:00 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "CATCH {say"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 32164 (src/gen_grammar.pir:3388)␤called from Sub 'parrot;Perl6;Grammar;statementlist'
20:00 polyglotbot ..pc 30812 (src/gen_grammar.pir:2855)␤called from...
20:01 Tene Anyway, I agree that this needs to work.
20:01 Tene I just don't know how I can even detect this case at all yet.
20:02 Tene If all EHs were in their own subs instead of labels, I could make it work now.
20:02 Tene I don't know if that works in Parrot or not.
20:02 rg i'm wondering if any skipped or called handler should be removed from the stack
20:03 rg but i don't know enough about continuations yet to know if that could work.
20:03 Tene they're removed from an iterator that the exception holds to use for rethrow.
20:04 rg so imagine they were really removed from the stack. rethrow differs from throw only for noting the stack trace. what would happen?
20:05 geof joined #parrot
20:05 Tene how would they get restored when you invoke the resume continuation?
20:06 rg either the continuation has a copy of the (exception) stack at the point of the throw or it keeps the list of removed handlers
20:07 Tene That solution feels very wrong to me.  I'm not completely convinced, but it's my inclination.
20:07 Tene I'll think about it.
20:07 rg i'm not sure it's the way to go, either. i'm just tossing out ideas ;)
20:08 rg do you know an example where an eh would want to catch an exception it throws itself?
20:11 Tene I don't.  I agree that this is probably the way it should work.  I'm just having issues with the implementation.
20:12 rg sorry, i haven't made my way through the parrot code far enought to be of help. but i'll keep reading ;)
20:18 rg maybe you can help me understand something related. i've read that a hll return statement is also implemented using exceptions. how does that fit in?
20:19 moritz the sub or method from which return() returns installs an exceptoin handler
20:19 Tene grep CONTROL_RETURN runtime/parrot/include/except_types.pasm
20:19 moritz and return() throws the corresponding exception
20:19 Tene that EH is set up with a filter to only catch CONTROL_RETURN exceptions
20:19 Tene and ignore all others
20:21 rg and do my own ehs automatically ignore CONTROL_RETURN exceptions? are they removed from the stack?
20:21 Tene your own ehs won't ignore control_return unless you ask for it.
20:23 rg how do i do that? and will they be removed from the stack when a return happens?
20:23 Tene eh = new 'ExceptionHandler'; set_addr eh, handler; eh.'handle_except'(.CONTROL_RETURN); push_eh eh
20:24 Tene and yes, removed from the stack when a return happens.
20:24 rg ah. good. thanks.
20:25 Tene bbl, errands.
20:28 Whiteknight rakudo: say $x;
20:28 polyglotbot OUTPUT[Scope not found for PAST::Var '$x' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤called from Sub 'parrot;PAST;Compiler;post_children' pc 2075 (src/PAST/Compiler.pir:410)␤called from Sub 'parrot;PAST;Compiler;call' pc 4312
20:28 polyglotbot ..(src/PAST/Compiler.pir:1094)␤called from Sub 'parrot;PAST;Compiler;post_chil...
20:28 Whiteknight rakudo: my $x; say $x;
20:28 polyglotbot OUTPUT[Use of uninitialized value␤␤]
20:41 Whiteknight rakudo: my $x = 5; { say OUTER::$x; }
20:41 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "::$x; }"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 32164 (src/gen_grammar.pir:3388)␤called from Sub 'parrot;Perl6;Grammar;statementlist' pc
20:41 polyglotbot ..30812 (src/gen_grammar.pir:2855)␤called from Su...
20:41 Whiteknight rakudo: my $x = 5; { say OUTER::$x; };
20:41 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "::$x; };"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 32164 (src/gen_grammar.pir:3388)␤called from Sub 'parrot;Perl6;Grammar;statementlist'
20:41 polyglotbot ..pc 30812 (src/gen_grammar.pir:2855)␤called from S...
20:41 Whiteknight rakudo: my $x = 5; { say $OUTER::x; };
20:41 polyglotbot OUTPUT[Use of uninitialized value␤␤]
20:42 Whiteknight rakudo: my $x = 5; do { say $OUTER::x; };
20:42 polyglotbot OUTPUT[Use of uninitialized value␤␤]
20:42 Whiteknight rakudo: $x = 5; do { say $OUTER::x; };
20:42 polyglotbot OUTPUT[Scope not found for PAST::Var '$x' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤called from Sub 'parrot;PAST;Compiler;post_children' pc 2075 (src/PAST/Compiler.pir:410)␤called from Sub 'parrot;PAST;Compiler;call' pc 4312
20:42 polyglotbot ..(src/PAST/Compiler.pir:1094)␤called from Sub 'parrot;PAST;Compiler;post_chil...
20:51 particle doesn't matter how many times you shout it, OUTER isn't implemented.
20:53 mberends joined #parrot
21:01 Whiteknight ah, that would be my problem
21:01 Whiteknight thanks for the notice
21:10 Tene joined #parrot
21:34 clunker9 joined #parrot
21:47 Theory joined #parrot
21:56 idemal joined #parrot
22:03 cognominal joined #parrot
22:19 alvar joined #parrot
22:32 altious joined #parrot
22:49 jrockway joined #parrot
22:49 altious joined #parrot
23:20 Eevee joined #parrot
23:24 Theory joined #parrot
23:40 rurban_ joined #parrot
23:50 kid51 joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced