Camelia, the Perl 6 bug

IRC log for #parrot, 2008-09-06

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 AndyA joined #parrot
00:34 cout joined #parrot
00:36 particle1 joined #parrot
00:38 cotto_work #57668, #54220 and #53156 seem to refer to the same issue
00:38 mj41_ joined #parrot
01:27 kid51 joined #parrot
01:39 TiMBuS joined #parrot
02:05 dalek r30800 | jkeenan++ | trunk:
02:05 dalek : Applying patch submitted by Andy Dougherty in
02:05 dalek : http://rt.perl.org/rt3/Tic​ket/Display.html?id=57920:  steps toward making
02:05 dalek : auto::aio more rational.
02:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30800
02:05 Theory joined #parrot
02:09 bacek joined #parrot
02:10 grim_fandango joined #parrot
02:18 dalek r30801 | cotto++ | trunk:
02:18 dalek : [imcc] add a test for .includes with absolute paths, closing #32087
02:18 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30801
02:18 cotto_home ticket_count--
02:28 Ademan joined #parrot
02:46 kid51 Does anyone know julianalbo's #parrot nick?
02:46 kid51 We have perlcritic failures in a file he contributed today:  examples/nci/xlibtest.pl
02:47 paco kid51: he is NotFound
02:48 nopaste "kid51" at 68.237.0.112 pasted "examples/nci/xlibtest.pl: New file has perlcritic errors" (14 lines) at http://nopaste.snit.ch/13975
02:50 kid51 paco;  thx.  I messaged him.
02:51 paco kid51: I will remind him tomorrow  ..
02:53 paco kid51: here in spain is very late in the night ..
02:56 chromatic joined #parrot
02:56 chromatic kid51, that file isn't Perl 5; it's NQP.
02:57 kid51 Yes, I noticed that.  And since I haven't played with NQP, I decided not to try to fix the problems myself, lest I make it worse.
02:57 chromatic The tabs we can fix, but strict and warnings....
02:57 kid51 paco:  I didn't know where you or he were terrestrially located.
02:57 paco :)
02:59 chromatic Changing the file extension will work though.
03:00 kid51 �Cu�l parte de Espa�a?
03:00 paco kid51: he lives in Santiago de Compostela
03:01 paco kid51: in the north
03:06 dalek r30802 | chromatic++ | trunk:
03:06 dalek : [examples] Changed file extension of NQP xlib example so that Perl::Critic
03:06 dalek : doesn't try to apply Perl coding standards.
03:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30802
03:14 * kid51 also realizes it's late and he hasn't had any dinner.
03:14 kid51 Time sure flies when you're reading perl.qa ;-)
03:34 PerlJam anyone know how to just test PGE?
03:37 PerlJam like if I make a change to PGE how do I test that a) I didn't break anything and b) that my change does what I think it should
03:41 chromatic I usually test Pheme and Rakudo.
03:42 PerlJam Hmm. lots of machinery betwixt me and PGE at that level.
03:43 chromatic Sadly yes.
03:44 chromatic I'm sure PGE could use more comprehensive tests.
03:46 dalek r30803 | chromatic++ | trunk:
03:46 dalek : [PMC] Replaced the abomination which is a call to key_string() from outside of
03:46 dalek : a Key PMC with VTABLE_get_string(), which should do the right thing almost
03:46 dalek : everywhere instead.  Unfortunately, it doesn't yet DTRT absolutely everywhere,
03:46 dalek : so you'll see it in other places... for now.  See RT #53156 for some
03:46 dalek : justification.
03:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30803
03:49 Theory joined #parrot
03:59 clunker9__ joined #parrot
04:02 dalek r30804 | chromatic++ | trunk:
04:02 dalek : [src] Replaced more key_string() calls with VTABLE_get_string().
04:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30804
04:10 dalek r30805 | chromatic++ | trunk:
04:10 dalek : [regex] Replaced key_string() with VTABLE_get_string() in regex language.
04:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30805
04:10 dalek r30806 | chromatic++ | trunk:
04:10 dalek : [src] Removed key_string() from public API.
04:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30806
04:14 s1n chromatic: what was wrong with key_string?
04:20 chromatic There's a potential infinite loop between it and get_string in the Key PMC.
04:20 chromatic I'm trying to get rid of it by making sure that everything outside of Key and Key-like PMCs calls get_string on the PMC rather than key_string directly.
04:29 s1n iirc one of the backtraces of those 64bit crashes always seemed to originate around key_string calls
04:30 s1n i'll test some stuff tomorrow with my nightly, maybe that cleared it up
04:31 Andy joined #parrot
04:42 apannu__ joined #parrot
05:05 dalek r30807 | tene++ | trunk:
05:05 dalek : [cardinal]
05:05 dalek : * String <<
05:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30807
05:08 dalek r30808 | tene++ | trunk:
05:08 dalek : MANIFEST and metadata changes for a new test file
05:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30808
06:07 dalek r30809 | cotto++ | trunk:
06:07 dalek : [pdd] replace some stray tabs with spaces
06:07 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30809
06:07 cotto_home would there be anything wrong with excluding draft pdds from t/codingstd/pdd_format.t by default?
06:08 cotto_home or perhaps having a separate todo'd test for the draft pdds
06:20 dalek r30810 | cotto++ | trunk:
06:20 dalek : [pdd] make non-draft PDDs pass pdd_format.t
06:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30810
06:25 chromatic_away Is there any reason why draft PDDs shouldn't pass the format tests?
06:44 Zaba joined #parrot
06:44 cotto_home they're at a stage where the content is still in flux and it's more likely that (relatively) frequent edits will cause test failures
06:46 cotto_home when I was looking at the hll interop pdd, it seemed odd to reformat an active discussion
06:53 dalek r30811 | cotto++ | trunk:
06:53 dalek : [pmc] POD fix
06:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30811
07:14 cotto_home clunker = sqrt(clunker)
08:02 martin joined #parrot
08:31 moritz does that imply clunker = 1 ? ;-)
08:34 NotFound Someone wants to play a little with the first attempt of a mysql module?
08:37 moritz NotFound: later, now I'm trying go fudge 2.6k lines for rakudo :/
08:37 nopaste "NotFound" at 213.96.228.50 pasted "Mysql test module" (307 lines) at http://nopaste.snit.ch/13976
08:37 nopaste "NotFound" at 213.96.228.50 pasted "Mysql test module - perl6 usage" (28 lines) at http://nopaste.snit.ch/13977
08:51 dalek r30812 | chromatic++ | trunk:
08:51 dalek : [IO] Added explicit fsync() call to PIO_unix_close() in an attempt to fix
08:52 dalek : FreeBSD failures in t/pmc/io.t.
08:52 dalek : Improved diagnostic line number reporting in t/pmc/io.t.
08:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30812
08:59 Ademan joined #parrot
09:00 Tene Huh.  Adding an hll_map method to the interpreter pmc was almost trivial.
09:01 nopaste "tene" at 166.70.38.237 pasted "METHOD hll_map" (29 lines) at http://nopaste.snit.ch/13978
09:01 Tene Anyone up willing to look at it for me?
09:09 NotFound Tene: how can be tested?
09:11 Tene http://rt.perl.org/rt3/Ticket/Att​achment/467150/216640/hllmap.pir
09:11 Tene Ew, that asks for login?
09:12 nopaste "tene" at 166.70.38.237 pasted "METHOD hll_map test" (19 lines) at http://nopaste.snit.ch/13979
09:14 iblechbot joined #parrot
09:17 NotFound Tene: it says: Foo
09:17 Tene Yeah, as it should.
09:18 Tene It's more functionality that I'm worried about, not bugs.  That example is almost identical to the example pmichaud asked for, though.
09:18 NotFound Compiles fine without warnings with C++
09:20 dalek r30813 | moritz++ | trunk:
09:20 dalek : [rakudo] added bool.t to spectest_regression, and s/pge-tests/rx/
09:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30813
09:22 NotFound Tene: CONTEXT(interp)->current_HLL is the HLL of the current .sub ?
09:23 Tene Yeah.
09:23 Tene Maybe it should be looking at SELF instead.  I'm unsure.
09:25 dalek r30814 | allison++ | trunk:
09:25 dalek : [cage] Update two draft PDDs so they meet the coding standards.
09:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30814
09:27 NotFound I'm worried about core_type_id. Maybe the type of self is the one to ne mapped.
09:29 rurban joined #parrot
09:30 NotFound An interesting question comes to me: are the HLL common to all running interpreters? Or I can, for example, have an stable perl6 in the main interpreter and load a testing version in a child interpreter?
09:31 rurban I've started now with java as language/jvm. Is then name okay? I copied from dotnet and want a class2pbc.pbc. But maybe we want to parse java sources also. Then this could go another language, like language/java. Or should this be combined into a bytecode converter and a java parser within the same language?
09:33 NotFound rurban: I don't think that the parser must be bound to the jvm. The parser can be used to generate parrot code.
09:33 barney joined #parrot
09:34 rurban Sure. It's almost bidi - as particle named it yesterday. parse the bytecode and parse the source.
09:35 NotFound An by the way, there are already java compilers targetting jvm, no urgency to write another ;)
09:35 rurban It's just that I build all the exception classes and other helpers which should be used by the source parser and by the bytecode converter
09:35 rurban I want to target parrot of course.
09:35 Tene rurban: languages/jvm is a good name
09:36 rurban The main reason is that perl6 can use java classes then. swing and such.
09:36 rurban php, pynie and ruby also of course
09:36 NotFound rurban: and maybe use jdbc drivers
09:37 rurban There's a huge common lisp converter (java => cl) around, which I saw at the last conference. I'll check it out.
09:38 rurban With this step I've moved languages/dotnet/build/SRM to compilers/SRM
09:38 rurban (Stack to Register Mapping)
09:39 rurban Maybe some other languages want such perl5 classes also. But it's only useful for bytecode with stack vm's.
09:39 NotFound Soemone is working on a csharp compiler?
09:40 Tene Not that I've seen.
09:40 NotFound Just curious.
09:40 rurban Jonathan via C#=> dotnet dll => PIR
09:42 rurban Different to Jonathan I want to generate most of the opcode table, the translation rules, automatically.
09:43 jonathan Best just to do .Net => PBC
09:44 jonathan Because then C#, VB.NET and other things will "just work"
09:44 dalek r30815 | moritz++ | trunk:
09:44 dalek : [rakudo] implement Code::REJECTS that doesn't set $/ and doesn't die.
09:44 dalek : I don't really know if that's correct, though. Will ask p6l for clarification
09:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30815
09:44 rurban Or I'll use a table structure similar to the perl5 byteode.pl which I also maintain. We will see.
09:48 dalek r30816 | moritz++ | trunk:
09:48 dalek : [rakudo] fix POD in Code.pir
09:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30816
09:52 bacek joined #parrot
09:54 rurban jonathan: How about your opinion of moving SRM to compilers? It's used in dotnet, WMLScript and maybe jvm
09:56 jonathan rurban: I purposefully kept that stuff factored out, with the view that it could be useful elsewhere or that we could implement better algorithms and test them.
09:57 rurban Ok.
09:57 jonathan So yes, if multiple langauges can use it, it's perhaps a good idea.
09:57 jonathan I think have at least a couple using it first, though.
09:57 jonathan Just to show that it can work.
09:57 rurban The next problem is that such compilers will not get installed. I hope the translator will work without it.
09:58 rurban I'll try it out in my branch
09:58 rurban The special translator.pl exceptions need to be factored out to the rules file @need_enum_fix
10:00 jonathan IIRC, it's just used for building.
10:00 rurban The WMLSCript SRM::Register and SRM::Stack look also much simplier than yours.
10:08 jonathan I wrote three different ones.
10:09 jonathan They varied in complexity. The most complex one gave the best results.
10:35 rurban Now with the move to compilers/SRM the SRM .pm files do not pass perlcritic. hundreds of violations :)
10:37 jonathan Haha!
10:38 jonathan I bet many of them are style things.
10:38 rurban Stupid little style errors. This will cost my afternoon.
10:38 jonathan Oh, just add an exception for those files.
10:39 rurban But the refactoring of dotnet and WMLScript didn't break more. That's good.
10:39 jonathan Some of the coding standards tests are a PITA, IMO.
10:39 rurban I did of lot of renaming and moving in WMLScript
10:39 jonathan (Especially trailing_whitespace.t...)
10:40 rurban Most are just Subroutine prototypes and PIR code coda present'
10:40 rurban trailing whitespace is okay (and trivial to fix)
10:41 rurban I'll ignore those for now and finish the jvm rules.
10:42 jonathan Cool
10:49 rurban I go shopping now. bye
10:49 jonathan And I'm off to Vienna...cu
10:56 iblechbot joined #parrot
11:17 Zaba_ joined #parrot
11:29 dalek r30817 | julianalbo++ | trunk:
11:29 dalek : some improvements in Xlib examples
11:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30817
11:30 NotFound Some good guy can make examples/nci/xlibtest.p6 more perlish?
11:53 moritz how so?
11:54 NotFound Don't know. If I know, I've already wrote that way myself ;)
11:55 moritz ;)
11:55 moritz I've seen no obvious way to make it perlish
11:56 NotFound Using shorter and more idiomatic loops, mainly.
11:58 moritz does it run yet?
11:58 NotFound The version I commited in r30817, I mean.
11:59 NotFound It runs, but I dislike to have bad style examples in examples.
12:00 moritz indeed, it runs ;)
12:00 NotFound And now you don't lose your masterpiece of art when hiding the window.
12:00 moritz list assignment would be more perlish, but that's not yet implemented in rakudo
12:01 * moritz should really svn up && make
12:02 moritz NotFound: are you going to commit your mysql module?
12:02 NotFound moritz: I'm cleaning it now.
12:03 moritz masak and viklund will love you ;)
12:04 NotFound I'll prefer woman's love, but thanks anyway ;)
12:05 moritz ;)
12:06 moritz I'm currently making a few of these loops more perlish
12:07 NotFound Thanks
12:12 rurban Whatwas languages/bc ?
12:12 rurban bytecode?
12:12 purl it has been said that bytecode is the actual code that is executed
12:12 moritz rurban: maybe the 'bc' calculator?
12:13 NotFound Calculate Back Christus dates?
12:13 TiMBuS|Away joined #parrot
12:14 rurban Because WMLScript references to languages/bc/<stuff> in its pods.
12:14 dalek r30818 | moritz++ | trunk:
12:14 dalek : [examples/nci] make xlibtest.p6 more perlish
12:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30818
12:16 dalek r30819 | julianalbo++ | trunk:
12:16 dalek : added Mysql module and simple programs to examples/nci
12:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30819
12:23 NotFound moritz: nice. And it even runs! ;)
12:27 moritz ;)
12:28 moritz I have some more in preparation
12:31 dalek r30820 | moritz++ | trunk:
12:31 dalek : [examples/nci] make xlibtest.p6 even more perlish (smaller scopes)
12:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30820
12:33 moritz now it doesn't look like perl assembler anymore ;)
12:33 dalek r30821 | moritz++ | trunk:
12:33 dalek : [examples/nci] more readability improvements in xlibtest.p6
12:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30821
12:35 moritz NotFound: mysqltest.p6 segfaults after printing 5 rows
12:36 moritz (with 64 rows in the table)
12:39 moritz afk &
12:44 NotFound moritz: can't reproduce with a short table. Have a backtrace?
12:47 NotFound moritz: in xlibtest.pl: I don't see a 'my' for $l, is automatically scoped?
12:47 NotFound .p6, I mean
12:52 NotFound moritz: A NULL value? It segfaults with that for me.,
12:58 NotFound It was UnManagedStruct's fault. Fixed.
12:58 dalek r30822 | julianalbo++ | trunk:
12:58 dalek : return NULL parrot string on NULL c string from UnManagedStruct
12:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30822
13:09 rurban I'm just inspecting Sun's HotSpot GC
13:09 rurban and comparing it to Google's v8 new GC
13:11 rurban Sun calls it Mark&Sweep, but in fact it's a compating sweep. Just as google's. And it's precise also. For the foreign objects
13:11 jrockway joined #parrot
13:24 Zaba joined #parrot
13:36 moritz NotFound: -> $x { ... } makes a formal parameter, no my needed
13:37 NotFound Some day I'll learn perl6 ;)
13:40 kid51 joined #parrot
13:43 contingencyplan joined #parrot
13:49 iblechbot joined #parrot
14:05 martin joined #parrot
14:08 mberends joined #parrot
14:11 tetragon joined #parrot
14:35 jrockway joined #parrot
14:37 Andy joined #parrot
14:42 moritz yes, NULL values were the problem
14:42 Whiteknight NULL values always seem to be a problem
14:44 dalek r30823 | julianalbo++ | trunk:
14:44 dalek : add some Atom functions and disable debug output in example Xlib module
14:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30823
14:44 PerlJam That's why Date and Codd didn't want them
14:44 NotFound Not a problem, just a feature that was still not implemented ;)
14:46 PerlJam anyone familiar with PGE awake?
14:47 NotFound There are other features expecting to be implemented in NCI. For example, Xlib functions that returns C strings that must be freed with XFree
14:48 moritz PerlJam: just a tiny bit
14:49 PerlJam I'm taking a stab at implementing  thingy**sep and I'm not sure what class of PGE::Exp to call thingy.  When it's first parsed it's a PGE::Exp::Quant, but then I need to change it to something else once I realize I'm dealing with the separator version of **.  What should the something else be?
14:49 PerlJam basically  A**B  becomes A[BA]*
14:50 PerlJam I think PGE::Exp::Subrule should do it, but I'm not sure.
14:50 moritz uhm, I never said I'm familiar with the internals (just with using it ;)
14:50 PerlJam heh
14:51 PerlJam moritz: then, do you know of a good way to test PGE?  It seems there's always an extra layer of stuff between me and it.
14:52 moritz PerlJam: t/compilers/pge/*
14:55 PerlJam I could use that for regression testing I guess, but when I ack '\*\*' there doesn't seem to be any tests for the version of A**B that we currently have  (or what I find doesn't look like what I would expect for such tesets)
14:55 PerlJam s/sets/sts/
14:56 moritz try ack -a
14:56 PerlJam doh!  thanks
14:57 PerlJam ah ... I've looked at this stuff before (the last time I mucked with ** probably)
14:57 * moritz abused them yesterday for testing rakudo
15:06 PerlJam so ... how do I run just the pge tests?
15:09 PerlJam nevermind
15:09 PerlJam I'm just a little slow sometimes
15:23 jrockway_ joined #parrot
15:35 Zaba_ joined #parrot
15:45 Zaba joined #parrot
15:53 Ron joined #parrot
15:56 particle joined #parrot
16:02 NotFound languages/pipp/README still has the explanation of the old name plumhead
16:07 tewk joined #parrot
16:12 TimToady so Failure ~~ messid("F_42") or some such
16:12 TimToady whoops, wrong window
16:17 cotto_home NotFound, not for long
16:19 cotto_home NotFound++
16:20 dalek r30824 | cotto++ | trunk:
16:20 dalek : [pipp] delete explanation of the name "Plumhead"
16:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30824
16:20 NotFound What languages can use pir modules? Only rakudo?
16:31 moritz Tene tried to make cardinal compiler modules to pir
16:31 moritz don't know if he succeeded
16:39 Tene cardinal can
16:39 moritz Tene++
16:39 Tene set RUBYLIB env variable, I think
16:39 Tene right now it only checks cwd
16:39 Tene or patch it to search in the right place
16:39 Tene languages/cardinal/src/builtins/eval.pir
16:40 NotFound Tene: The eval_parrot .sub ?
16:40 NotFound label, I mean.
16:41 Tene the search path
16:41 Tene $:
16:41 Tene I think
16:41 Tene bbiab, gf dragging me away.
16:42 kid51 OT:  Anyone know how you would write the equivalent of Perl 5 'split' in C?
16:43 NotFound kid51: with care.
16:43 moritz man strtok 3
16:43 moritz erm, man 3 strtok
16:44 kid51 $ man 3 strtok
16:44 kid51 No manual entry for strtok in section 3
16:44 moritz or strsep, dunno
16:44 moritz kid51: you need to install the developr manual pages
16:45 NotFound "This  page  is  part of release 2.77 of the Linux man-pages project."
16:45 kid51 That would not come with a standard Debian install?
16:45 moritz not with standard, no
16:46 kid51 Any idea what I would search for with apt?
16:46 NotFound kid51: library functions pages usually are not required for standard users ;)
16:46 moritz apt-get install manpages-dev
16:46 kid51 I have it on my iMac.
16:46 NotFound Or just google: man strtok
16:46 NotFound Sometimes is faster than man itself X-)
16:47 kid51 moritz:  Thanks.  That worked.
16:48 NotFound kid51: other way: embed parrot and let parrot do it.
16:49 dalek r30825 | fperrad++ | trunk:
16:49 dalek : [Lua] struct library
16:49 dalek : - implement struct.size()
16:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30825
17:12 rurban_ joined #parrot
17:16 Zaba joined #parrot
17:41 Andy joined #parrot
17:43 dalek r30826 | julianalbo++ | trunk:
17:43 dalek : quick test of setting properties and allow closing windows in examples Xlib module
17:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30826
17:57 rurban jonathan: back from vienna?
17:57 rurban seen jonathan
17:57 purl jonathan was last seen on #parrot 7 hours, 7 minutes and 47 seconds ago, saying: And I'm off to Vienna...cu
18:16 dalek r30827 | julianalbo++ | trunk:
18:16 dalek : add Esc key check and disable debug info in example xlibtest.p6
18:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30827
18:26 dalek r30828 | pmichaud++ | trunk:
18:26 dalek : [rakudo]: Revert r30815 and r30816.
18:26 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30828
18:37 dalek r30829 | julianalbo++ | trunk:
18:37 dalek : politely destroy windows in Xlib examples
18:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30829
19:01 Andy joined #parrot
19:04 dalek r30830 | julianalbo++ | trunk:
19:04 dalek : throw exception instead of exiting on failure in example Xlib module
19:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30830
19:04 moritz pmichaud: negated smart match is broken currently. Should I fudge the tests in rx.t, or do you want to fix it?
19:06 pmichaud how is it broken?
19:06 pmichaud is there a ticket?
19:16 Ademan joined #parrot
19:34 daxelrod joined #parrot
19:44 NotFound pmichaud: on your messsage on pdd23: the sub usage seems broken because the handler finder try to call a 'can_handle' method on it, and throws an exception because can not.... and from here, infinite recursion.
19:45 pmichaud oh, so it's really only working with ExceptionHandler pmcs?
19:46 NotFound pmichaud: judging by the code, no other pmc can work.
19:47 pmichaud well, my next message points out some other weirdnesses about pdd23
19:47 NotFound I've readed now.
19:48 pmichaud ick, and 'can_handle' doesn't do what I would want/expect it to do
19:48 pmichaud it appears to check if the handler has been previously invoked, and returns false if it has
19:51 pmichaud ahhh, very interesting.
19:51 pmichaud I see how things are being handled internally.
19:51 pmichaud the push_eh LABEL opcode simply creates a new ExceptionHandler
19:53 pmichaud perhaps the can_handle method is what causes that handler to only be be invocable once
19:53 dalek r30831 | chromatic++ | trunk:
19:53 dalek : [t] Added skip support to t/op/sprintf.t; the data file t/op/sprintf_tests uses
19:53 dalek : it, but nothing in this file parsed it.  This should clear up some failures on
19:53 dalek : OS/390, VMS, MSWin32, HP-UX, OpenBSD, NetBSD, and Irix.
19:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30831
19:55 Tene pmichaud: that's exactly right.  it's the set-integer on exceptionhandler which is used to avoid an infinite loop when throwing an exception inside an exception handler
19:55 NotFound Looks like is no exactly avoiding it.
19:56 Tene according to allison that can  e removed when all EHs check the type of exception and rethrow exceptions they don't want to handle
19:56 NotFound I've goy 4819 calls in a backtrace, enough infinite for my machine.
19:58 Tene Also, I like your throw/EH api refactor proposal. That's exactly what I wanted earlier when I was working on it, but I'm not comfortable proposing architecture changes yet.
19:58 Tene I should get over that.
19:59 Tene pmichaud: there's some other significant weirdness with the exception system right now.
19:59 Tene I ca show you notes when I'm back from being gone ll day.
19:59 NotFound Avoiding the method call if not found in the pmc avoids the recursion, but dies on an assertion.
20:00 pmichaud avoiding the method call is probably not the right approach
20:00 Tene The gf dragged me off to visit with her family all day today
20:00 NotFound pmichaud: If a Sub must ve a valid handler, don't see other way.
20:00 NotFound s/ve/be
20:01 Tene http://pleasedieinafire.net​/~tene/parrotexceptionnotes I think was the start of working towards tickets.
20:01 Tene I don't remember what's there right now.
20:02 pmichaud Tene: no problem re: today -- this isn't a huge blocker for me at the moment.  I was starting to work towards getting break/continue/next/last/redo semantics working, but I was looking for non-label ways to do the exception handling
20:02 chromatic joined #parrot
20:03 pmichaud it is very interesting to me when an exception is thrown and a handler catches it, the handler isn't really popped from the stack (a la pop_eh) -- it's simply "disabled"
20:03 NotFound "Check if it's an Exception and if it has already been handled once (rethrow)."
20:03 NotFound This is not what the code do.
20:04 NotFound The code first call can_handle, ane then check if it's an exception, not the other way.
20:04 chromatic There are infinite loops in exceptions right now; I think we have workarounds in place but not real fixes.
20:04 NotFound No workaround for a .sub handler.
20:05 Andy joined #parrot
20:08 NotFound The fail with my attempt of fix is inside args passing code, an area that I've never be able to understand.
20:09 pmichaud NotFound: I think that any "simple fix" will likely make things even more convoluted -- there probably needs to be some underlying redesign done
20:09 NotFound pmichaud: was just curiosity, anyway.
20:09 pmichaud right
20:10 * NotFound kills a kitty
20:10 pmichaud I think I can get the same effect using a label-based exception handler, though
20:10 pmichaud basically:
20:10 pmichaud push_eh somelabel
20:10 pmichaud ...
20:10 pmichaud somelabel:
20:10 pmichaud myhandler(...)
20:11 Tene pmichaud: I've been trying to get someone else to look at this stuff for a while, so I'm interested in this discussion happening.
20:11 pmichaud Tene: well, perhaps I can push it a long a bit since rakudo will be needing it :-)
20:11 pmichaud s/a long/along/
20:13 Tene That would be great.
20:14 NotFound By the way: is giving/when working on rakudo?
20:14 dalek r30832 | pmichaud++ | trunk:
20:14 dalek : [rakudo]: spectest-progress.csv update: 156 files, 2798 passing tests
20:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30832
20:14 Tene pmichaud: the "disable" is to work around an infinite loop bug with throwing an exception from a handler. for normal rethrow and such, an iterator of handlers is stored in the exception.
20:15 NotFound s/giving/given
20:15 Tene NotFound: it will once this specific issue is resolved of EHs being disabled.
20:15 pmichaud NotFound: given/when is what I was thinking about when I started looking at exceptions
20:16 Tene Although maybe I could hack around it by explicitly re-enabling the handler.
20:16 pmichaud I'm working on how to implement 'break' and 'continue'
20:16 Tene pmichaud: did you see my interp.hll-map patch?
20:16 pmichaud Tene: saw that you did one (yay!)  haven't looked at the contents yet
20:16 Tene kk
20:16 pmichaud once chromatic asked about it being method-based I figured it wouldn't be all that difficult to do
20:17 Tene 3 lines
20:17 pmichaud it will probably prompt me to go back and look at HLL handling in p6object and PCT again :-)
20:17 pmichaud I _think_ that is the last semi-major obstacle to getting rakudo into its own hll space
20:17 pmichaud (from a design perspective, anyway.  There's still a not-so-small-matter-of-programming involved.)
20:20 Tene That would be fun to work on.
20:21 pmichaud things that have to be done:  (1)  make p6object hll-aware, (2) symbol export/import from PCT into HLL namespaces, (3) HLL type mapping
20:22 Tene I'll be back in about 3 hours, I hope.
20:22 pmichaud okay, have fun
20:25 chromatic Tene, align the = and it looks great.
20:25 chromatic pmichaud, looks like we lost a few hundred tests in the past day.
20:26 NotFound Talking about exceptions: some comment on my patch in RT#48320 ?
20:26 chromatic NotFound, it looks sane to me.
20:28 NotFound I'll commit it, then.
20:31 Auzon joined #parrot
20:32 Ivatar joined #parrot
20:48 dalek r30833 | julianalbo++ | trunk:
20:48 dalek : allow Exception initialization from PMC (RT#48320)
20:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30833
20:50 dalek r30834 | julianalbo++ | trunk:
20:50 dalek : fix codingstd in examples/nci/xlibtest.pir
20:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30834
20:51 Tene The only issue raised with my patch last night was weather it should modify the types table of INTERP or SELF.
20:52 Tene pmichaud: is there a list of what p6object needs to do re: hll-aware?
20:54 NotFound A good thing towards hll interoperability will be to have a list of languages that can use external modules with a short example.
20:57 pmichaud chromatic: yes, I think moritz and TimToady turned off the regex tests that were put in the day before
20:57 pmichaud the test file needed some major refactoring, and it was really slow
20:57 moritz pmichaud: we replaced them by a different test
20:57 moritz that has all the regexes inline
20:57 pmichaud moritz: yes, I saw that
20:58 pmichaud but as of 00:00 CDT today, it apparently wasn't in the regression suite :-)
20:58 Zaba_ joined #parrot
20:58 moritz pmichaud: r30828 broke that, because !~~ dies with Null PMC access in set_pmc_keyed()
20:59 pmichaud moritz: do we have an example...?
20:59 moritz if "a" !~~ /b/
20:59 moritz { ... }
20:59 pmichaud okay, I'm sure I can fix that quickly.
20:59 moritz good
20:59 moritz (otherwise we have 700 failing test in our results :/ )
21:00 NotFound The !~~ operator looks like a logo for a Surfers club.
21:00 Tene it's trying to get caller's lexpad, but it's being called from REJECT instead of directly
21:00 Tene ACCEPT is, that is.
21:00 Tene to set $/
21:02 chromatic Tene, INTERP looks fine to me.
21:04 chromatic Have I mentioned today how worthless the trailing spaces test is?
21:04 PerlJam no.  go ahead and mention it.  :)
21:04 chromatic Worthless.
21:04 purl The US Dollar!
21:05 PerlJam Where does that meme come from anyway?  I've never had a problem with trailing spaces
21:05 chromatic They're useless, but they're not actually harmful to anything.
21:06 chromatic Which, in my mind, makes them not worth testing.
21:06 pmichaud PerlJam: re:  A**B in PGE -- I'm not sure that translating that into A[BA]*  is the right thing
21:06 PerlJam pm: por que no?
21:06 chromatic "Oh dear, something's failing in Smolder!  Oh, there's a trailing space.  How useful."
21:06 pmichaud A could contain a closure or something where repeating it isn't appropriate
21:06 pmichaud or a declaration
21:06 purl i think a declaration is a bit
21:06 NotFound chromatic: maybe they are not causing problems just because they are tested and cleaned.
21:06 PerlJam Hmm.
21:07 chromatic I saw nothing in the PDD about them.
21:07 chromatic PDD 07 that is.
21:08 pmichaud chromatic: maybe disable the trailing spaces test and see who complains :-)
21:08 pmichaud (hint: not me)
21:08 PerlJam chromatic: what pm said.  And whoever complains, beat into submission  :)
21:08 pmichaud I need to switch locations -- bbiab
21:08 PerlJam (unless they can come up with a really good reason to keep the test)
21:09 Andy joined #parrot
21:12 PerlJam pm: I still think A**B should become A[BA]* and if A is a closure or something, caveat emptor (for now)
21:13 PerlJam (mainly because I can't think far enough ahead to how to do it otherwise just yet)
21:17 pmichaud PerlJam: the real solution is to provide a PGE::Exp::Quant node that can do it
21:17 pmichaud that's actually not that difficult
21:18 pmichaud I haven't done it yet because I haven't needed it for any of the language tools, and I'd rather do it as part of the PGE redesign/refactor
21:18 pmichaud but I suspect that would actually be less difficult than trying to transform (arbitrary_regex)**B into (arbitrary_regex)[B(arbitrary_regex)]*
21:19 pmichaud (which would require two deep copies of the AST for (arbitrary regex))
21:20 PerlJam heh, which is right about where I've gotten in trying to do it.
21:20 pmichaud it's easier to fix the PGE quant node :-)
21:22 PerlJam If you say so.  I'm looking at it now and it looks greek so far.
21:24 pmichaud it probably deserves a special PGE::Exp::QuantExp node then
21:24 pmichaud since ::Quant is really designed for numeric quantification
21:27 PerlJam so, when we get to the point of parsing the B part of A**B and realize we've got separator rather than a quantifier, is the right way to switch the object like mob = mob.'new'(mob, 'rw' => 1, 'grammar' => 'PGE::Exp::QuantSep')   ?
21:27 pmichaud I'm looking at it now...
21:28 pmichaud no, I think I'll want to leave it as a Quant node but give it a second child (the AST for B)
21:29 pmichaud so we know it's a separator Quant by virtue of having two children
21:30 pmichaud I'll have to look and see how many places the Quant nodes are being optimized out of the AST, though, and make sure that doesn't happen
21:30 pmichaud (PGE recognizes things like **{1} as being optimizable)
21:32 pmichaud PerlJam: if you could just get the parser to recognize A**B as being a separator quantifier, that'd be a big help.  I could do the code generation from there.
21:32 pmichaud also, we need to make sure that the ? and ! modifiers are in the right place -- I don't know if that's been done already
21:34 pmichaud moritz: !~~ should be working again.
21:34 PerlJam pm: There are already checks to see if the first char of B is a { or a number and do something appropriate.  I was going to say "if not a { or a number, then it must be a separator"
21:35 dalek r30835 | pmichaud++ | trunk:
21:35 dalek : [rakudo]:  Restore Code.REJECTS, but have it set $/ like Code.ACCEPTS does.
21:35 dalek : This is a workaround until we have infix_prefix_meta_operator:<!> implemented.
21:35 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30835
21:35 pmichaud PerlJam: that works.  But you also have to get it to read just a single regex atom
21:35 PerlJam yeah, thinking about that now
21:36 pmichaud look at the alias syntax for some clues -- it does the same thing
21:37 pmichaud ouch, no clues there
21:37 pmichaud ummmm....
21:37 rdice joined #parrot
21:37 PerlJam Thinking is hard when the twins keep bringing me stuff to look at (especially when some of the stuff is semi-dangerous ... "where did you find those scissors?")
21:38 pmichaud it's also tricky because whitespace binds funny with **
21:39 pmichaud i.e., we have to know if there's whitespace anywhere around the **
21:40 s1n pmichaud: i responded to your email
21:42 dalek r30836 | fperrad++ | trunk:
21:42 dalek : [Lua] struct
21:42 dalek : - start pack() & unpack()
21:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30836
21:42 PerlJam yeah, that whitespace thing was bothering me.
21:43 pmichaud PerlJam: we might be able to get away with only honoring whitespace following the '**' for now
21:44 pmichaud anyway, let's worry about the case without sigspace for now :-)
21:44 pmichaud s1n: getting together to review PIR sounds like an excellent idea.  what's your schedule look like this upcoming week?
21:45 s1n heh that depends
21:45 s1n pm
21:56 tetragon joined #parrot
22:03 PerlJam Have I mentioned how cool git is?
22:04 PerlJam "Oh, you've got some commits in the middle of a series of commits that you want to disappear, git rebase -i to the rescue"
22:05 PerlJam git almost has the perl-nature of "easy things easy, hard things possible"
22:16 cotto_home is $P1 = new ['parrot';'exception'], $P0 an obsolete way to create a new PMC, or should it still work?
22:22 chromatic cotto_home, I don't see any tests for creating exceptions that way, but as far as I know it should work.
22:24 s1n chromatic: last we talked, you pointed out something goofy in that stacktrace i uploaded, what was obviously wrong about it?
22:24 dalek r30837 | chromatic++ | trunk:
22:24 dalek : [t] Corrected name of file within test.
22:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30837
22:27 chromatic s1n, it didn't match up with the source code as it exists now.
22:32 cotto_home Class 'parrot;exception' not found
22:32 cotto_home it works fine with ['Exception']
22:32 cotto_home it also eats up all my memory and core dumps if I use a comma
22:32 pmichaud ['parrot';'exception']  was speculative
22:33 pmichaud it's never worked
22:33 chromatic How about [ 'parrot'; 'Exception' ] ?
22:33 pmichaud as things stand now, that won't work either, unless/until there's a ['parrot';'Exception'] class
22:33 chromatic That seems suboptimal, as does the IMCC bug with the comma.
22:33 cotto_home chromatic, nope
22:34 s1n chromatic: i do nightly builds, so unless something was checked in after 2am that day, it's up to date
22:34 cotto_home nopaste
22:34 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
22:35 pmichaud I think the intent was that ['parrot';'Exception'] would look up the Exception class in the parrot HLL namespace, but Parrot has never actually worked that way
22:35 pmichaud currently any keyed values to 'new' are relative to the current HLL, always.
22:35 nopaste "cotto_home" at 96.26.202.243 pasted "kill imcc with a comma" (29 lines) at http://nopaste.snit.ch/13980
22:36 chromatic #3  0xb7cd0ebe in mem_sys_allocate (size=3085053745) at src/gc/memory.c:51
22:36 chromatic That's one long string.
22:36 pmichaud I think when pdd23 was drafted they were hoping to work towards resolution of having multiple classes of the same name
22:36 pmichaud but that never actually happened.
22:38 chromatic cotto_home, [ 'parrot', 'exception' ] gets parsed as a slice.
22:38 PerlJam pm: how does pge handle balanced delimiters?
22:42 pmichaud PerlJam: you mean like [...] and (...)?  It's built into the circumfix: processing of the OPP
22:42 pmichaud so, PGE recognizes that an expression can't terminate as long as a circumfix remains open.
22:43 TiMBuS joined #parrot
22:44 PerlJam I was thinking that parsing an atom might be a matter of recognizing (), [], "", '', and some sequence of characters that does not start with a number or {
22:44 PerlJam er, add <> to that
22:45 cotto_home NotFound, ping
22:46 NotFound pong
22:46 cotto_home I'm curious about the code you posted in #48320
22:47 nopaste "cotto_home" at 96.26.202.243 pasted "code from #48320" (5 lines) at http://nopaste.snit.ch/13981
22:47 cotto_home were you assuming that $P1 = new ['parrot';'exception'], $P0  was valid, or did you test it?
22:47 NotFound I think it was a typo.
22:48 PerlJam heh, that's some typo!
22:48 NotFound Let me check my tests.
22:48 NotFound Was this: $P1 = new ['Exception'], $P0
22:49 cotto_home ok.  I've seen that work.
22:49 NotFound I'll post a correction now.
22:50 cotto_home If nobody minds, I'll fix the pdd23 example to use the more common syntax without brackets.
22:52 Tene joined #parrot
22:53 cotto_home done
22:53 dalek r30838 | cotto++ | trunk:
22:53 dalek : [pdd] make the exception-throwing example in pdd23 work
22:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30838
22:56 NotFound By the way, I noted that when trying to override init_pmc in a pir class, still uses the argument as a hash of attributes.
22:57 NotFound That forces to use for argument names only valid attributes.
22:59 NotFound Not a big problem, but overriding it can make shorter code in some cases.
23:14 dalek r30839 | chromatic++ | trunk:
23:14 dalek : [IMCC] Refactored grammar so that all attempts to instantiate a new object via
23:14 dalek : a key require a valid namespace key.
23:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30839
23:19 dalek r30840 | julianalbo++ | trunk:
23:19 dalek : redrawing on Expose event in example xlibtest.pir
23:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30840
23:20 NotFound Now a completely unfair comparaison can be done: draw some lines and compare redrawing speed between pir and p6 versions.
23:25 chromatic cotto_home, here comes an IMCC patch for you.
23:27 cotto_home in the meantime, how do I get the current LexPad in PIR?
23:29 dalek r30841 | chromatic++ | trunk:
23:29 dalek : [IMCC] Forbade attempts to instantiate an object with a slice key.
23:29 dalek : Instantiation keys have to be real namespace keys, otherwise you get weird out
23:29 dalek : of memory errors at runtime (reported by Christoph Otto).
23:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30841
23:30 cotto_home chromatic++ #disallowing stupid stuff
23:31 chromatic The more of these we fix before anyone else finds them, the fewer exist for anyone else to find.
23:32 cotto_home I'll write a test for that.
23:32 chromatic Already done; see t/oo/new.t.
23:34 cotto_home That's what I get for not looking at the diff.
23:36 NotFound I have some problem like that when doing the Exception init_pmc thing, but forgot to take note.
23:37 chromatic This is specifically where you write $P0 = new [ 'some', 'class' ] instead of $P0 = new [ 'some'; 'class' ]
23:38 chromatic Hm, the OpenBSD Smolder tests are all over the place.
23:38 NotFound Don't remember if was that.
23:44 cotto_home chromatic: how do I get the current LexPad in PIR?  The only ops that call Parrot_find_pad (which looks like it does what I want) are store_lex and find_lex.
23:44 chromatic cotto_home, I'm not sure.
23:44 chromatic The Rakudo patch I did the other day touched similar code (r30772).
23:45 chromatic You might get some inspiration there.
23:45 cotto_home actually, it might be good enough to explicitly create a DynLexPad, since all I'm doing it testing the iterator
23:58 dalek r30842 | cotto++ | trunk:
23:58 dalek : [doc] add external resources to dotnet
23:58 dalek : patch courtesy of Reini Urban
23:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30842

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

Parrot | source cross referenced