Camelia, the Perl 6 bug

IRC log for #parrot, 2011-02-07

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:06 shockwave left #parrot
00:20 lucian left #parrot
00:20 dukeleto plobsing: thanks for the heads up about that
00:33 dukeleto shockwave: i agree with you
00:34 dukeleto shockwave: i think you are the first person to create an app that calls into Parrot so often
00:34 dukeleto shockwave: so perhaps the GC defaults are not in your favor
00:34 dukeleto shockwave: which version of parrot are you using?
00:38 lucian joined #parrot
00:51 dukeleto one OSCON proposal down. Two more to go.
00:54 lucian left #parrot
00:55 whiteknight plobsing++ on the ohm-eta release
00:55 lucian joined #parrot
00:56 * whiteknight really needs to get cracking on PLA and ParrotSharp releases soon
01:01 Coke left #parrot
01:24 lucian left #parrot
02:04 dalek TT #165 closed by pmichaud++: Disable perl6-internals@perl.org mailing list.
02:04 dalek TT #165: http://trac.parrot.org/parrot/ticket/165
02:27 sorear if calling a method 30 times per second is bogging down Parrot, something is seriously wrong, or he's trying to run it on a PC/XT
02:28 kid51 joined #parrot
02:32 dalek parrotsharp: 060ae04 | Whiteknight++ | src/P (9 files):
02:32 dalek parrotsharp: cleanups, region/endregion organizations, some TODO notes
02:32 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/060ae0412d
02:32 dalek parrotsharp: bbd7d5c | Whiteknight++ | / (9 files):
02:32 dalek parrotsharp: fix everything so we build again
02:32 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/bbd7d5cdd6
02:33 whiteknight left #parrot
02:44 dalek parrot/tt1988_pmcemitter: 6a4fdb9 | jkeenan++ | / (6 files):
02:44 dalek parrot/tt1988_pmcemitter: Update copyright date on files with revisions.
02:44 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/6a4fdb9832
03:15 dalek website: jkeenan++ | Feedback on Jan 29 2011 Parrot Developers Summit:  Were Users' Needs Served?
03:15 dalek website: http://www.parrot.org/content/feedback-jan-29-2011​-parrot-developers-summit-were-users-needs-served
03:22 shockwave joined #parrot
03:27 dalek parrot: 24a57a3 | jkeenan++ | docs/project/release_manager_guide.pod:
03:27 dalek parrot: Clarify: perl6-internals list is inactive; do not mail release notice there.
03:27 dalek parrot: review: https://github.com/parrot/parrot/commit/24a57a37af
03:55 shockwave I'm trying to make use of some VTABLE functions. I have to hack their usage a little because I'm making use of the new Parrot_api_* functions, which unfortunately is still young and thus lacking many functions.
03:55 shockwave I'm getting a link error: unresolved external symbol _PMCNULL
03:56 shockwave I've searched for this _PMCNULL in the parrot codebase, but have not been able to find it.
03:56 shockwave Does anyone know what this is?
03:56 sorear try looking for PMCNULL instead
03:57 sorear (are you on some version of windows?)
03:57 kid51 left #parrot
03:58 shockwave Yes, I'm on Windows 7.
03:58 shockwave I've found PMCNULL all over the place.
04:19 cotto kid51++ for deleting unneeded code
05:10 allison left #parrot
05:11 allison joined #parrot
05:54 particle joined #parrot
05:57 theory left #parrot
06:00 rurban_ joined #parrot
06:05 rurban left #parrot
06:05 rurban_ is now known as rurban
06:10 bacek_at_work msg kid51 Can you look at Pmc2c::Method and ::MethodEmitter? It's same problem as PMC/PMCEmitter.
06:10 aloha OK. I'll deliver the message.
06:14 bacek_at_work cotto, can you make "architectural decision" on http://trac.parrot.org/parrot/ticket/774 ?
06:17 cotto looking
06:18 cotto bacek_at_work, if there's on hll that depends on it, I'll rip it out with great glee
06:18 cotto I don't like that misfeature.
06:18 * bacek_at_work thinking about resurrecting 2 years old branch :)
06:19 cotto bacek_at_work, which one?
06:19 bacek_at_work cotto, actually we can reintroduce it on top of 6model (I think). But with role composition.
06:19 * Tene regularly thinks about resurrecting 1.5 years old branch
06:19 bacek_at_work cotto, pmc_pct :)
06:19 cotto bacek_at_work, yes.  That's a proper way to do it.
06:20 cotto I hate it because it's not even clear that it's an intended feature.
06:20 cotto A proper implementation is fine.
06:24 cotto The only condition I have for # 774 is that Lua work without it.  I know that partcl was already fixed.
06:24 bacek_at_work cotto, in Lua only single pmc uses multiple inheritance.
06:24 bacek_at_work LuaFunction
06:24 cotto How easy is it update?
06:24 bacek_at_work no idea...
06:24 cotto ok
06:24 cotto let me take a quick look
06:25 bacek_at_work "copy paste" according to fperrad.
06:33 cotto It's times like this that the old static vtables were nice.
06:34 bacek_at_work somethink like this
06:36 plobsing luaany feels very role-ish. no attributes and vtables that provide default implementations unless they are overriden in concrete instances.
06:56 fperrad joined #parrot
06:57 cotto speaking of lua
07:03 cotto fperrad, how much copy/pasting would be required to make LuaFunction not depend on pmc multiple inheritance?
07:04 cotto I see 15 functions that it inherits from Sub, but I don't know how necessary they are.
07:09 nopaste "cotto" at 192.168.1.3 pasted "list of VTABLE functions in LuaFunction that are inherited from Sub" (16 lines) at http://nopaste.snit.ch/30744
07:10 bacek_at_work cotto, for PCC it needed only .invoke afaik.
07:10 bacek_at_work So, can be changed from is-a to has-a
07:12 bacek_at_work afk # going home
07:21 plobsing need freeze/thaw/visit for serialization to bytecode
07:37 fperrad cotto, the current implementation of LuaFunction is always synchro with Parrot (without effort),
07:37 fperrad so, I don't like the idea of copy/paste
07:37 fperrad the bacek's idea (ie. delegation) is better
07:44 cotto fperrad, something like calling Parrot_Sub_invoke in LuaFunction.invoke?
07:47 bacek cotto, ATTR PMC *sub; LuaFunction.invoke() { GET_ATTR_sub(sub); VTABLE_invoke(sub) }
07:47 cotto ok
07:47 cotto It
07:48 cotto It's up to fperrad what he'd like to do, of course.
07:50 mikehh left #parrot
08:38 cosimo left #parrot
09:54 dalek parrot/generational_gc: f57f392 | bacek++ | include/parrot/pobj.h:
09:54 dalek parrot/generational_gc: Add need_write_barrier_flag and standard flags setters
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/f57f3925ae
09:54 dalek parrot/generational_gc: 63c685d | bacek++ | src/gc/gc_gms.c:
09:54 dalek parrot/generational_gc: Use PObj flag 'accessors'
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/63c685d381
09:54 dalek parrot/generational_gc: 15641e4 | bacek++ | include/parrot/gc_api.h:
09:54 dalek parrot/generational_gc: Add GC_WRITE_BARRIER macro.
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/15641e42de
09:54 dalek parrot/generational_gc: 30c2e12 | bacek++ | / (3 files):
09:54 dalek parrot/generational_gc: Use GC_WRITE_BARRIER macro and set need_write_barrier flag in GMS.
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/30c2e124fe
09:54 dalek parrot/generational_gc: 1959d92 | bacek++ | src/ (4 files):
09:54 dalek parrot/generational_gc: Use GC_WRITE_BARRIER macro
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/1959d922ae
09:54 dalek parrot/generational_gc: be32682 | bacek++ | lib/Parrot/Pmc2c/ (3 files):
09:54 dalek parrot/generational_gc: Always generate write_barrier for VTABLE.
09:54 dalek parrot/generational_gc:
09:54 dalek parrot/generational_gc: Reason for it next:
09:54 dalek parrot/generational_gc: 1. Aggregate PMC in Gen0.
09:54 dalek parrot/generational_gc: 2. We invoke write_barrier(PMC). Which is ignored.
09:54 dalek parrot/generational_gc: 3. VTABLE_foo() allocate new PMC.
09:54 dalek parrot/generational_gc: 4. Aggregate PMC moved into Gen1.
09:54 dalek parrot/generational_gc: 5. Content of PMC gets updated without triggering write barrier.
09:54 dalek parrot/generational_gc:
09:54 dalek parrot/generational_gc: To avoid it we store result of original VTABLE and invoke write_barrier
09:54 dalek parrot/generational_gc: after.
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/be32682387
09:54 dalek parrot/generational_gc: e54611c | bacek++ | src/ (2 files):
09:54 dalek parrot/generational_gc: Switch GMS to use 'always-write-barriered-vtables' logic without WB variant vtable
09:54 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/e54611c77f
09:56 lucian joined #parrot
09:58 bacek rakudo; my @arr; say @arr[-1]
09:58 bacek rakudo: my @arr; say @arr[-1]
09:58 p6eval rakudo 989883:  ( no output )
09:58 bacek erm...
09:58 bacek rakudo: my @arr = <foo bar baz>; say @arr[-1]
09:58 p6eval rakudo 989883:  ( no output )
09:58 bacek seen moritz
09:58 aloha moritz was last seen in #parrot 2 days 13 hours ago saying "5! in math would be factorial of 5".
09:59 moritz .
09:59 bacek or here :)
09:59 bacek moritz, should @arr[-1] dies?
09:59 moritz yes
09:59 bacek eval_dies_ok '@arr[-1]', "readonly accessing [-1] of normal array is compile-time error";
09:59 tadzik rakudo: my @a = 1, 2, 3; say @a[*-1]
09:59 p6eval rakudo 989883: OUTPUT«3␤»
10:00 bacek (from S02/array)
10:00 bacek rakudo: my @arr = <foo bar baz>; my $i = -1; say @arr[$i]
10:00 p6eval rakudo 989883:  ( no output )
10:00 bacek hmmm...
10:00 moritz it probably fail()s
10:00 tadzik bacek: what's the problem?
10:00 bacek tadzik, testing Rakudo on gen_gc
10:00 tadzik I see
10:00 bacek not ok 72 - readonly accessing [-1] of normal array is compile-time error
10:01 moritz rakudo: try { <foo bar>[-1]; CATCH { say "OH NOEZ!" } }
10:01 p6eval rakudo 989883:  ( no output )
10:01 bacek it's what I'm trying to find out..
10:01 bacek rakudo: try { <foo bar>[-1]; CATCH { say "OH NOEZ!" } }; say "Bang-bang"
10:01 p6eval rakudo 989883: OUTPUT«Bang-bang␤»
10:01 bacek it's just fail silently...
10:02 moritz that's another long standing bug in rakudo
10:02 bacek but test isn't fudged....
10:02 moritz it certainly isn't compile time as it should
10:02 moritz std: <a b>[-1]
10:02 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of [-1] subscript to access from end of array; in Perl 6 please use [*-1] at /tmp/0R_nN13ZNe line 1:␤------> [32m<a b>[-1][33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 119m␤»
10:03 bacek Looks like exception handling is broken in recent parrot.
10:05 bacek rakudo: try { die "horribly"; CATCH { say "NOOOOO" } }
10:05 p6eval rakudo 989883: OUTPUT«NOOOOO␤»
10:05 bacek hmm...
10:05 bacek Something _is_ broken
10:06 bacek rakudo: try { my $i = -1; <foo bar>[$i]; CATCH { say "NOOOOO" } }
10:06 p6eval rakudo 989883:  ( no output )
10:06 bacek indeed.
10:06 bacek This should emit runtime error
10:07 bacek rakudo: my @arr[8];
10:07 p6eval rakudo 989883:  ( no output )
10:07 bacek rakudo: my @arr.[8];
10:07 p6eval rakudo 989883: OUTPUT«===SORRY!===␤Confused at line 22, near "my @arr.[8"␤»
10:07 bacek oookey
10:07 Kulag left #parrot
10:07 bacek rakudo: use Test; plan *; eval_dies_ok('my @arr.[8];'); done_testing
10:07 p6eval rakudo 989883: OUTPUT«ok 1 - ␤done_testing() has been renamed to done(), please change your test code␤  in 'Test::done_testing' at line 243:Test.pm␤  in main program body at line 22:/tmp/TCwLh87d4B␤»
10:08 bacek rakudo: use Test; plan *; eval_dies_ok('my @arr.[8];'); done;
10:08 p6eval rakudo 989883: OUTPUT«ok 1 - ␤1..1␤»
10:09 Kulag joined #parrot
10:10 mikehh joined #parrot
10:11 dip joined #parrot
10:18 Kulag left #parrot
10:18 Kulag joined #parrot
10:19 dalek parrot/generational_gc: 6c5b416 | bacek++ | src/ (10 files):
10:19 dalek parrot/generational_gc: Use more GC_WRITE_BARRIER macros
10:19 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/6c5b4166c3
10:31 lucian left #parrot
10:33 dalek parrot/generational_gc: c885727 | bacek++ | include/parrot/gc_api.h:
10:33 dalek parrot/generational_gc: Change mark macros to master version. We don't need these hacks anymore.
10:33 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/c885727624
10:33 dalek parrot/generational_gc: ff2b207 | bacek++ | lib/Parrot/Pmc2c/PCCMETHOD.pm:
10:33 dalek parrot/generational_gc: Drop write_barrier before PCCMETHOD.
10:33 dalek parrot/generational_gc:
10:33 dalek parrot/generational_gc: If object is in GenN where N is greater than 0 it's write-barriered already.
10:33 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/ff2b207e36
10:33 dalek parrot/generational_gc: 7a577bc | bacek++ | src/gc/api.c:
10:33 dalek parrot/generational_gc: Undisable old shortcut.
10:33 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/7a577bcc69
10:33 dalek parrot/generational_gc: 0af820b | bacek++ | src/call/args.c:
10:33 dalek parrot/generational_gc: Restore master version of pcc_merge_signature_for_tailcall
10:33 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/0af820b54c
10:35 fperrad left #parrot
10:38 fperrad joined #parrot
10:40 bacek seen jnthn
10:40 aloha jnthn was last seen in #perl6 11 hours 17 mins ago saying "sleep &".
10:46 Themeruta joined #parrot
10:46 NotFound left #parrot
10:53 mikehh bacek: how's generational_gc goin'
10:53 bacek mikehh, pretty good actually.
10:54 bacek will probably call for help from rakudo land.
10:54 mikehh bacek: ready for testin'
10:54 bacek And testing on something different from linux/i386 always welcome :)
10:54 mikehh I can test on amd64 later
10:56 bacek mikehh, excellent!
10:56 dalek parrot/generational_gc: b57cc9e | bacek++ | src/gc/gc_gms.c:
10:56 dalek parrot/generational_gc: Remove now unused swap_vtable function.
10:56 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/b57cc9eb14
10:56 dalek parrot/generational_gc: e9da989 | bacek++ | lib/Parrot/Pmc2c/PMC/WB.pm:
10:56 dalek parrot/generational_gc: Don't touch wb_variant_vtable. It's not used anymore
10:56 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/e9da989036
10:56 dalek parrot/generational_gc: 3da3aa9 | bacek++ | src/pmc (2 files):
10:56 dalek parrot/generational_gc: Don't touch wb_variant_vtable. It's not used anymore
10:56 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/3da3aa914e
10:56 dalek parrot/generational_gc: 1b7e332 | bacek++ | lib/Parrot/ (4 files):
10:56 dalek parrot/generational_gc: Get rid of generating wb_variant_vtable
10:56 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/1b7e332d59
10:59 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#7977) fulltest) at 3_0_0-475-g24a57a3 - Ubuntu 10.10 i386 (g++-4.5)
11:00 dalek parrot/generational_gc: f2d574b | bacek++ | t/pmc/namespace.t:
11:00 dalek parrot/generational_gc: Fix test after removing wb_variant_vtable
11:00 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/f2d574b73f
11:00 dalek parrot/generational_gc: ae60ed4 | bacek++ | src/ (2 files):
11:00 dalek parrot/generational_gc: Remove old hacks for wb vtables
11:00 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/ae60ed44eb
11:00 dalek parrot/generational_gc: 2ad2e10 | bacek++ | src/pmc/scheduler.pmc:
11:00 dalek parrot/generational_gc: Align with master
11:00 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/2ad2e10a44
11:00 bacek mikehh, fixing c++ build will also help
11:00 bacek (If it's broken)
11:04 dalek parrot/generational_gc: 9f8e952 | bacek++ | config/gen/makefiles/root.in:
11:04 dalek parrot/generational_gc: Fix gc_gms dependencies.
11:04 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/9f8e952ee0
11:10 dalek parrot/generational_gc: 7cbe8a2 | bacek++ | src/pmc/class.pmc:
11:10 dalek parrot/generational_gc: Align with master.
11:10 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/7cbe8a232e
11:19 bacek aloha, (30-26)/30*100
11:19 aloha bacek: 13.3333333333333
11:20 bacek hmm... Only 13% faster...
11:20 moritz what is 13% faster?
11:20 bacek gen_gc
11:20 moritz yes, but on what benchmark?
11:20 bacek make test in rakudo
11:21 bacek And I will loose some performance after implementing "STRING" part properly.
11:21 bacek Sigh.
11:26 nopaste "bacek" at 192.168.1.3 pasted "gc test in rakudo. Looks about all right :)" (38 lines) at http://nopaste.snit.ch/30745
11:26 bacek moritz, check nopaste :)
11:38 tadzik not bad!
11:44 Drossel joined #parrot
11:46 Kulag left #parrot
11:51 bacek aloha, log10(100)
11:51 bacek bah... stupid girl...
12:27 bacek moritz, ping
12:30 dalek parrot/generational_gc: 5b175bb | bacek++ | src/vtable.tbl:
12:30 dalek parrot/generational_gc: Mark .init* functions with :write.
12:30 dalek parrot/generational_gc:
12:30 dalek parrot/generational_gc: During initilization of PMC we can trigger GC. In this case we have to
12:30 dalek parrot/generational_gc: put freshly allocated PMC into dirty_list to preserve old-to-young
12:30 dalek parrot/generational_gc: pointers.
12:30 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/5b175bb2e2
12:32 moritz bacek: pong
12:33 bacek moritz, I'm trying to find TimToady's "Turtle test" which shows GC pauses.
12:33 bacek One on rosettacode doesn't work.
12:33 moritz it should
12:34 bacek It fails with "Method 'invert' not found for invocant of class ''
12:34 bacek On line     my @num-to-dir = Dir.invert.sort».value;
12:34 bacek (On rakudo HEAD + parrot master HEAD)
12:35 bacek rakudo: enum Dir < north northeast east southeast south southwest west northwest >; my @num-to-dir = Dir.invert.sort».value; say @num-to-dir;
12:35 p6eval rakudo 989883: OUTPUT«Method 'invert' not found for invocant of class ''␤  in main program body at line 22:/tmp/m4exPkeLUA␤»
12:35 bacek yes
12:35 bacek this one
12:36 bacek Any ideas why it's broken?
12:36 moritz because it's not being tested
12:36 bluescreen joined #parrot
12:36 bacek fair enough :)
12:36 moritz rakudo: enum Dir < north northeast east>; say Dir ~~ EnumMap
12:36 p6eval rakudo 989883: OUTPUT«Bool::False␤»
12:36 moritz that's why, it seems
12:37 bacek erm... I don't quite understand
12:38 bacek Especially I don't understand how to fix it...
12:39 moritz might be an easy fix in src/glue/enum.pm
12:39 moritz lemme try (now compiling for 20 minutes... )
12:39 bacek moritz, ok, thanks
12:40 moritz rakudo: enum Dir < north northeast east>; say Dir.values.invert
12:41 p6eval rakudo 989883: OUTPUT«Method 'invert' not found for invocant of class 'List'␤  in main program body at line 22:/tmp/Rna4q0T900␤»
12:41 moritz rakudo: enum Dir < north northeast east>; say Dir.values.hash.invert
12:41 p6eval rakudo 989883: OUTPUT«Odd number of elements found where hash expected␤  in '!STORE' at line 5254:CORE.setting␤  in 'List::hash' at line 2937:CORE.setting␤  in main program body at line 22:/tmp/awkX5G1Ske␤»
12:44 bacek rakudo: enum Dir < north northeast east>; say hash(Dir.values Z Dir.keys)
12:44 p6eval rakudo 989883: OUTPUT«()        0␤»
12:44 bacek rakudo: enum Dir < north northeast east>; say Dir.values
12:44 p6eval rakudo 989883: OUTPUT«()␤»
12:44 bacek rakudo: enum Dir < north northeast east>; say Dir.keys
12:44 p6eval rakudo 989883: OUTPUT«0␤»
12:44 moritz rakudo: enum Dir < north northeast east>; say Dir.values.perl
12:44 p6eval rakudo 989883: OUTPUT«()␤»
12:44 moritz huh.
12:45 bacek whoot?
12:49 moritz anyway, fix pushed
12:49 bacek thanks!
12:55 Coke joined #parrot
12:59 Coke .
13:16 PacoLinux joined #parrot
13:16 cognominal left #parrot
13:20 cognominal joined #parrot
13:22 dalek parrot/generational_gc: 56e58b1 | bacek++ | src/gc/gc_gms.c:
13:22 dalek parrot/generational_gc: Update GC stats during sweep
13:22 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/56e58b1098
13:22 dalek parrot/generational_gc: 6df3be9 | bacek++ | src/gc/gc_gms.c:
13:22 dalek parrot/generational_gc: Fix output of stats after Pointer_Array updates.
13:23 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/6df3be989b
13:23 dalek parrot/generational_gc: cbb4ca1 | bacek++ | src/gc/gc_gms.c:
13:23 dalek parrot/generational_gc: Implement STRING generations.
13:23 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/cbb4ca1f50
13:23 dalek parrot/generational_gc: 0bcfe06 | bacek++ | src/gc/gc_gms.c:
13:23 dalek parrot/generational_gc: Implement string part of GMS.
13:23 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/0bcfe06045
13:24 whiteknight joined #parrot
13:27 whiteknight good morning, #parrot
13:28 bluescreen left #parrot
13:37 dalek parrot: 3dce212 | (Gerd Pokorra)++ | compilers/data_json/data_json.pir:
13:37 dalek parrot: make the example easier to appreciate
13:37 dalek parrot: review: https://github.com/parrot/parrot/commit/3dce212c93
13:42 bluescreen joined #parrot
13:54 jsut_ joined #parrot
13:54 Hackbinary good afternoon whitenight
13:54 Hackbinary ;)
13:57 whiteknight Hello Hackbinary, how are you today?
13:57 Hackbinary I'm alright, how are you?
13:58 jsut left #parrot
13:58 Hackbinary although it's a little cold here ... brrrr
13:58 whiteknight I'm doing well. tired and not looking forward to the work week, but good otherwise
13:58 whiteknight where are you at?
13:59 Hackbinary I'm looking for work :S  I have to go down to a charity and do some work on  a PHP app this afternoon
13:59 Hackbinary I'm in Scotland
14:00 rurban_ joined #parrot
14:00 whiteknight oh, stinks you're looking. If you know C# and are willing to relocate to the US my company is hiring
14:00 Hackbinary you?
14:00 Hackbinary don't really know c#
14:01 Hackbinary where are you in the US?
14:01 * moritz loves Scotland, and had a late Burns Supper on Saturday :-)
14:01 whiteknight I;m in US, PA, Philadelphia. It's cold here too. Lots of snow
14:01 whiteknight actually, the snow is covered with ice now
14:02 Hackbinary It's not really that cold here, it is just the buildings here are really old, and very poorly weather proofed.  And heating/Energy is expensiv
14:03 whiteknight Yes, same here. Very old, very shoddy brick building.
14:05 Hackbinary bleck ... I hate energy inefficient buildings, even if they look perty
14:05 rurban left #parrot
14:05 rurban_ is now known as rurban
14:05 whiteknight yeah, same
14:16 plobsing left #parrot
14:22 mtk joined #parrot
14:26 bluescreen left #parrot
14:39 nopaste "bacek" at 192.168.1.3 pasted "gen_gc performance" (37 lines) at http://nopaste.snit.ch/30749
14:40 dalek parrot/generational_gc: c70a78f | bacek++ | src/gc/gc_gms.c:
14:40 dalek parrot/generational_gc: Add more stats to GMS.get_info
14:40 bacek kind of slow...
14:40 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/c70a78f60e
14:40 dalek parrot/generational_gc: 0307643 | bacek++ | src/gc/gc_gms.c:
14:40 dalek parrot/generational_gc: Fix debug build.
14:40 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/0307643353
14:40 dalek parrot/generational_gc: c69344f | bacek++ | src/gc/gc_gms.c:
14:40 dalek parrot/generational_gc: Fix is_string_ptr copy-paste bug.
14:40 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/c69344f504
14:40 dalek parrot/generational_gc: 525f42d | bacek++ | src/gc/gc_gms.c:
14:40 dalek parrot/generational_gc: Add more validations.
14:40 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/525f42d825
14:40 bacek Good night, humans
14:50 whiteknight that's that environment variable that I can set to keep around the temporary test-generated files?
14:59 whiteknight apparently it's POSTMORTEM, but that didn't seem to be working well for me
15:00 dalek parrot/whiteknight/callcontext_reset: f0c28dc | Whiteknight++ | / (2 files):
15:00 dalek parrot/whiteknight/callcontext_reset: Add in an API function so that we can reset and reuse an existing CallContext for multiple repeated calls without needing to reallocate
15:00 dalek parrot/whiteknight/callcontext_reset: review: https://github.com/parrot/parrot/commit/f0c28dcd12
15:00 dalek parrot/whiteknight/callcontext_reset: 731602b | Whiteknight++ | t/src/embed/api.t:
15:00 dalek parrot/whiteknight/callcontext_reset: Add in a test for Parrot_api_reset_call_signature
15:00 dalek parrot/whiteknight/callcontext_reset: review: https://github.com/parrot/parrot/commit/731602b8b5
15:01 whiteknight mikehh: ping
15:01 jnthn whiteknight: I guess once needs to be sure that a continuation or closure using that context won't be taken, ir you're going to re-use it?
15:01 jnthn s/once/one/
15:02 whiteknight jnthn: it's from a thread on the mailing list. shockwave wants to be able to call a method repeatedly in a loop without having to reallocate a new CallContext for each call
15:02 whiteknight a reset method clears state in the CallContext and allows it to be reused again for a new call
15:11 mikehh whiteknight: pong
15:13 Coke don't you need a context to invoke a method?
15:15 theory joined #parrot
15:19 mikehh whiteknight: got to go out for a bit - bbl
15:19 * mikehh be back in an hour or so
15:20 Themeruta is now known as NotFound
15:27 plobsing joined #parrot
15:28 mtk left #parrot
15:31 dngor left #parrot
15:32 dngor joined #parrot
15:34 plobsing left #parrot
15:39 Andy joined #parrot
15:43 vmspb joined #parrot
15:48 whiteknight Coke: yes. you need the method PMC and the Context PMC
15:53 dmalcolm joined #parrot
16:03 eternaleye left #parrot
16:06 vmspb left #parrot
16:16 Patterner left #parrot
16:16 Psyche^ joined #parrot
16:16 Psyche^ is now known as Patterner
16:24 dukeleto ~~
16:25 Andy left #parrot
16:28 benabik_away is now known as benabik
16:37 Coke whiteknight: so we need a Context Pmc to reset a context pmc? ;)
16:39 whiteknight the reset thingy isn't a method. It's an API function
16:39 plobsing joined #parrot
16:40 cotto_work ~~
16:43 dukeleto cotto_work: mornin'
16:43 cotto_work hio dukeleto
16:46 contingencyplan joined #parrot
16:50 benabik o/
16:50 dalek winxed: r800 | NotFound++ | trunk/winxedst0.cpp:
16:50 dalek winxed: message for $include_const unsupported in stage 0
16:50 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=800
16:51 Coke whiteknight: ok. you had said method earlier, just making sure. Danke.
16:52 plobsing left #parrot
16:55 lucian joined #parrot
16:57 dukeleto cotto_work: http://trac.parrot.org/parrot/ticket/1999 <-- care to answer this?
16:58 plobsing joined #parrot
17:01 cotto_work dukeleto: did you see the documentation of that VTABLE function in docs/pdds/pdd17_pmc.pod ?
17:02 dukeleto cotto_work: sadly, i didn't read that, but since you are mentioning it, I probably should have
17:03 dukeleto cotto_work: yes read the docs in there, but my question still stands
17:06 cotto_work Before you asked, I didn't realize we had that VTABLE function.
17:07 dukeleto cotto_work: yeah, i didn't either. This TPF grant is actually forcing me to understand how every single VTABLE function works, which is quite a lesson.
17:07 cotto_work I bet.
17:07 dalek TT #1999 created by dukeleto++: Parrot_PMC_get_pmc : Does it work correctly?
17:07 dalek TT #1999: http://trac.parrot.org/parrot/ticket/1999
17:08 cotto_work That slot looks ill-defined to me.  I don't know if there is a single reliable correct behavior.
17:08 cotto_work allison: ping
17:08 allison cotto_work: pong
17:09 cotto_work allison: what's the intent of the get_pmc VTABLE function?
17:09 cotto_work The docs seem to say it either returns a SELF.
17:09 dukeleto allison: if you could comment on http://trac.parrot.org/parrot/ticket/1999 , that would be much appreciated
17:09 allison it's the same as get_integer, get_number, etc, just a PMC format
17:10 allison that is, it's general-purpose, and can return whatever the PMC wants to return
17:10 cotto_work allison: ok.  That's the impression I got.  Thanks.
17:11 * cotto_work sees a new Yapsi release and looks forward to reading the announcement
17:14 dukeleto allison: currently, the fact that calling get_pmc on an RPA iterator returns the totaly number of elements is undocumented, and in my opinion, not intuitive
17:14 dukeleto s/totaly/total/
17:15 dukeleto where can we document that?
17:15 plobsing left #parrot
17:16 cotto_work dukeleto: from code it looks like ArrayIterator should return the underlying array PMC on get_pmc.
17:17 dukeleto cotto_work: yeah, the current behavior doesn't even seem very useful
17:21 whiteknight nuke it
17:22 dukeleto FROM SPACE
17:28 cotto_work Tracing what Parrot_printf does is fun.
17:29 benabik left #parrot
17:29 benabik joined #parrot
17:29 mikehh ~~
17:30 dukeleto our NEWS file is pretty empty right now
17:30 mikehh whiteknight: you still around?
17:30 mikehh dukeleto: yeah - please add to it
17:30 dukeleto mikehh: will try
17:30 dukeleto mikehh: you might want to send an email to parrot-dev reminding people to add to it
17:31 mikehh dukeleto: will do
17:31 whiteknight mikehh: yessir
17:32 mtk joined #parrot
17:32 whiteknight mikehh: What's the deadline for merging branches? I would like to merge whiteknight/callcontext_reset
17:32 mikehh whiteknight: you pinged me earlier, but I had to go out for a bit
17:33 mikehh whiteknight: probably Saturday, as long as we have a nice bugfest
17:33 whiteknight okay
17:35 dukeleto whiteknight: i agree with your most recent reply on parrot-dev about embed/extend stuff, but I wanted to clarify to people what the current situation was :
17:35 dukeleto :) , rather
17:36 whiteknight right. At the same time, I don't want to tell people that the old, bad way is still the accepted ok way
17:36 whiteknight We really need to get users in the habit of "follow the docs, and if you don't see something you need, ask"
17:37 NotFound whiteknight: BTW, I think Parrot_api_pmc_clone might be neccessary.
17:37 whiteknight NotFound: it might be. Do you have a particular use in mind?
17:38 NotFound whiteknight: the same discussion that lead to callcontext_reset
17:46 dukeleto whiteknight: can you add something about Parrot_ext_try to NEWS ?
17:46 dukeleto NotFound: ^^^
17:46 * dukeleto got confused
17:48 NotFound Going..
17:49 NotFound What's the appropiate section? API Changes ?
17:50 dukeleto NotFound: Core, i guess. Whatever you think is best
17:53 Coke (merging, bugfest) - it would be super awesome if we had no smoke before then.
17:55 plobsing joined #parrot
17:57 dalek parrot: 125ee38 | NotFound++ | NEWS:
17:57 dalek parrot: NEWS note for Parrot_ext_try
17:57 dalek parrot: review: https://github.com/parrot/parrot/commit/125ee38216
18:10 cotto_work get_pmc gets the array, which seems sensible to me
18:10 cotto_work dukeleto: It looks like what you're actually seeing is the result of VTABLE_get_string being called on the result of ArrayIterator.get_pmc, which returns the array that's being iterated over.
18:12 cotto_work If you look at the type I'm sure the test will make more sense.
18:15 benabik Hm.  Trying to test generational_gc...  Configure.pl fails at init::manifest: "No such file: lib/Parrot/Pmc2c/PMC/WB.pm"
18:16 cotto_work benabik: just a sec
18:16 NotFound Then will be better to use elements, to make the intention clear.
18:17 * benabik knows only enough about the build system to run it, not fix it when it goes wrong. ~.~
18:17 dalek parrot/generational_gc: bb5dedd | cotto++ | MANIFEST:
18:17 dalek parrot/generational_gc: manifix
18:17 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/bb5dedd620
18:17 cotto_work benabik: all better now (I hope)
18:19 benabik cotto_work: Yup!  Thanks.
18:26 cotto_work dukeleto: does that answer your question?
18:34 benabik gen_gc failed a few tests on Darwin/i386...  Smolder 8045.  3 GC tests, 2 checkdepend, and 1 in dynpmc/rotest.t
18:35 benabik Trying rakudo build anyway.  :-D
18:36 dalek parrot: 089c0b4 | dukeleto++ | NEWS:
18:36 dalek parrot: Update NEWS a bit
18:36 dalek parrot: review: https://github.com/parrot/parrot/commit/089c0b424c
18:36 benabik Ew.  Segfault compiling Perl6::Grammar.
18:37 dukeleto cotto_work: i think i see what is going on now. thanks!
18:42 zby_home joined #parrot
18:46 benabik msg bacek You wanted more tests of gen_gc.  Tried it on Darwin/i386: failed some tests (smolder #8045), and then segfaulted on src/Perl6/Grammar.pm in Rakudo.
18:46 aloha OK. I'll deliver the message.
18:57 cotto_work dukeleto: explanation added to the ticket
19:04 pyrimidine joined #parrot
19:07 dukeleto othanks!
19:07 dukeleto cotto_work: thanks! i meant.
19:07 cotto_work oyourewelcome
19:09 dukeleto otay
19:22 dalek parrot: 4c0e404 | jkeenan++ | / (14 files):
19:22 dalek parrot: Merge branch 'tt1988_pmcemitter'
19:22 dalek parrot: review: https://github.com/parrot/parrot/commit/4c0e404bcb
19:23 plobsing left #parrot
19:29 plobsing joined #parrot
19:37 jsut_ is now known as jsut
19:38 dalek TT #2000 created by jkeenan++: lib/Parrot/Pmc2c/MethodEmitter.pm: make file match package
19:38 dalek TT #2000: http://trac.parrot.org/parrot/ticket/2000
19:39 Coke jkeenan++ # our 2000th customer.
19:40 dukeleto darn, he beat me to it.
19:40 benabik dukeleto, thanks for playing though.  :-D
20:01 benabik left #parrot
20:01 benabik joined #parrot
20:09 whiteknight the spam emails we're getting on parrot-dev have become so heart-wrenching as to be comical
20:09 whiteknight "I am Mrs. Cynthia kouema devoted Christian and now ageing widow suffering from long time illness. I have a blood cancer and right now I am admitted in a hospital "
20:10 whiteknight I was not concerned about the poor widow until I saw she had a blood cancer
20:10 benabik "But I'll get better if you give me your bank account information"?
20:11 whiteknight "...for the glory of god"
20:11 whiteknight that phrase was in the email3 separate times
20:11 tadzik spam emails on parrot-dev?
20:12 * tadzik strokes spamassassin
20:12 NotFound msg bacek with generational_gc winxed example fly works much better without its explicit sweep than never before. The gc related pauses are still clearly viewable, though.
20:12 aloha OK. I'll deliver the message.
20:12 atrodo You know, first thing I do when I'm admitted to a hospital is write emails to complete strangers asking for help
20:13 cotto_work I think that everyone on parrot-dev needs to hear about that.  It's completely relevant to the ongoing technical discussion on how to improve Parrot.
20:13 cotto_work whiteknight++ for filtering out that garbage
20:14 nopaste "fperrad" at 192.168.1.3 pasted "bacek, cotto, my current work on LuaFunction" (159 lines) at http://nopaste.snit.ch/30777
20:14 NotFound atrodo: at least your are admitted.
20:14 whiteknight she said she wanted to donate her fortune to charity, minus my 15% cut of course. I'm thinking maybe I can convince her to donate do PaFo
20:15 atrodo What could possibly go wrong?
20:15 NotFound is now known as charity
20:15 whiteknight all I need to do is fly to Nigeria, wear a clown outfit with a signed blank check taped to my forehead
20:15 charity Please do
20:15 dukeleto whiteknight: that would be a great PR campaign for PaFo
20:15 charity Oldes irc joke ever
20:15 charity is now known as NotFound
20:16 NotFound Widows of the world, PaFo wants yo!
20:18 cotto_work fperrad: thanks for working on that.  I'll take a look when I get home.  I like the idea of getting away from PMC MI.\
20:18 cotto_work aloha: coverage?
20:18 aloha cotto_work: coverage is http://cv.perl6.cz or http://tapir2.ro.vutbr.cz/cover/cover-results/
20:18 plobsing dukeleto: http://code.google.com/p/es-lab/ does cool stuff with ecmascript5 and OMeta
20:19 whiteknight PMC MI?
20:20 cotto_work multiple inheritance
20:20 whiteknight ah yes
20:20 cotto_work known by many, loved by few
20:20 whiteknight worst. inheritance. ever.
20:21 lucian meh, i often like MI
20:22 whiteknight no, MI is a good thing
20:22 whiteknight Parrot's implementation of it for built-in PMCs is not
20:22 cotto_work whiteknight: exactly
20:22 whiteknight our implementation of it for Object PMCs is a little clunky and fragile, but not bad or unusable
20:24 lucian whiteknight: i see
20:24 NotFound "Because you have a father and a mother"
20:24 NotFound Quoted in some Stroustrup book, don't remember now...
20:30 benabik is now known as benabik_away
20:31 fperrad left #parrot
20:33 whiteknight NotFound: And some classes have a father, a mother, and an IDataContextQueryable
20:36 TimToady moritz: a working turtle is on http://wall.org/~larry/turtle
20:38 TimToady though the GC seems improved from the standpoint of visual pauses
20:38 tadzik what kind of a turtle is that?
20:38 TimToady some combo of chromatic++'s GC improvements and rakudo putting less pressure on GC
20:39 TimToady ascii turtle graphics
20:39 TimToady does zigzag and spiral arrays currently
20:39 whiteknight nwellnhof recently merged a nice branch that helped with long GC pauses
20:39 whiteknight I think this is his work
20:40 TimToady nwellnhoff++ then
20:40 TimToady nwellnhof++ even
20:41 tadzik I'm still waiting for ForestFire to become watchable :)
20:43 whiteknight ForestFire?
20:44 nopaste "tadzik" at 192.168.1.3 pasted "Forest Fire" (74 lines) at http://nopaste.snit.ch/30780
20:44 tadzik from Rosetta Code
20:45 PerlJam It's certainly watchable already.  Perhaps in the manner that wind erosion of a mountain is watchable, but still  ....  :)
20:45 tadzik :)
20:46 tadzik Rakudo: See the grass growing!
20:50 ilia joined #parrot
20:53 plobsing left #parrot
21:02 plobsing joined #parrot
21:13 zby_home left #parrot
21:24 moritz ... from below!
21:25 ttbot left #parrot
21:25 whiteknight left #parrot
21:25 ttbot joined #parrot
21:27 dalek parrotsharp: 7659136 | Whiteknight++ | / (5 files):
21:27 dalek parrotsharp: fixes and cleanups, especially to tests
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/7659136808
21:27 dalek parrotsharp: 19ae906 | Whiteknight++ | / (4 files):
21:27 dalek parrotsharp: Add some new test files
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/19ae90687f
21:27 dalek parrotsharp: ee9d944 | Whiteknight++ | / (4 files):
21:27 dalek parrotsharp: an interface for Integer-like PMCs, and add in a property on Integer to retrieve the primitive value
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/ee9d9444d7
21:27 dalek parrotsharp: 408a38b | Whiteknight++ | / (3 files):
21:27 dalek parrotsharp: cleanup Parrot constructors
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/408a38b308
21:27 dalek parrotsharp: beef018 | Whiteknight++ | src/Parrot.cs:
21:27 dalek parrotsharp: more small cleanups
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/beef018a01
21:27 dalek parrotsharp: 74aa8ca | Whiteknight++ | / (12 files):
21:27 dalek parrotsharp: changes and fixes.
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/74aa8ca4d6
21:27 dalek parrotsharp: 359b93e | Whiteknight++ | ParrotSharpTest/Parrot_Test.cs:
21:27 dalek parrotsharp: fix some test brokenness. We still can't create multiple top-level interpreters yet.
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/359b93e5f2
21:27 dalek parrotsharp: 20f131a | Whiteknight++ | src/Pmc/ (2 files):
21:27 dalek parrotsharp: fixes to the interface for IPMCFactory. We now have Instance to create an instance with an optional initializer, and Cast, to take an existing pointer and wrap it up into the correct PMC wrapper type
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/20f131a549
21:27 dalek parrotsharp: ecf9b92 | Whiteknight++ | src/Pmc/ (2 files):
21:27 dalek parrotsharp: more tweaks to PMCFactory
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/ecf9b92cfa
21:27 dalek parrotsharp: aeed240 | Whiteknight++ | / (6 files):
21:27 dalek parrotsharp: Add in a String role and use that in CallContext. Expose String.replace and add a test for it
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/aeed240113
21:27 dalek parrotsharp: 17f3bd0 | Whiteknight++ | / (10 files):
21:27 dalek parrotsharp: +some test files I forgot to git add. Add in a Sub PMC wrapper type. Cleanup Sub invocation logic to use the new type
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/17f3bd0b3b
21:27 dalek parrotsharp: 31f60a1 | Whiteknight++ | / (2 files):
21:27 dalek parrotsharp: fixes
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/31f60a1e7c
21:27 dalek parrotsharp: d021d06 | Whiteknight++ | src/ (4 files):
21:27 dalek parrotsharp: fixes to the way methods are invoked. Run everything through the new Sub PMC
21:27 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/d021d06152
21:30 dalek parrot/generational_gc: 5fdd2b3 | bacek++ | src/gc/gc_gms.c:
21:30 dalek parrot/generational_gc: Enable GC validations in debug builds
21:30 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/5fdd2b36b5
21:30 ilia left #parrot
21:32 allison left #parrot
21:42 cotto_work That forest appears to be fire-proof.
21:46 plobsing left #parrot
21:46 plobsing joined #parrot
21:50 Hackbinary what's parrot sharp?
21:50 ryan joined #parrot
21:51 Hackbinary nevermind
21:53 silug joined #parrot
21:59 allison joined #parrot
22:00 rurban_ joined #parrot
22:05 rurban left #parrot
22:05 rurban_ is now known as rurban
22:08 minusnine joined #parrot
22:15 benabik joined #parrot
22:15 minusnine allison (or others): is the current pynie repo in google code or yours on bitbucket? the bitbucket repo has a few more (seemingly minor) commits than google code, and the former is referenced on the parrot wiki
22:16 tadzik I think lucian was working on Python on Parrot recently, not sure if that was Pynie
22:16 allison minusnine: the google code repository is the old one, and the bitbucket repository is the new one
22:16 lucian tadzik: more precisely, i was *thinking* of working on it :)
22:16 lucian minusnine: and get the bb one
22:16 tadzik lucian: gotcha :)
22:17 lucian minusnine: i got it to build, but i think eval is still broken
22:17 minusnine allison, lucian: thanks
22:17 tadzik lucian: besides eval everything works?
22:18 lucian tadzik: not really. recent parrot deprecation broke stuff
22:18 allison tadzik: it's a fairly minimal implementation, too, so only a small set of features
22:18 tadzik lucian: is your code available somewhere?
22:18 lucian tadzik: it's in that bb repo
22:18 tadzik allison: are you planning to continue working on that?
22:18 lucian just a couple of patches
22:18 lucian i think the plan was to rewrite it in python
22:19 lucian at least the compiler, anyway
22:19 allison tadzik: I don't plan on continuing with that implementation. I would like to keep working on Python on Parrot, as I have time, but lucian and I have some shared ideas on a better way to do it.
22:20 allison tadzik: Basically what he said, depend only on Parrot and not on NQP, integrate with PyPy as much as possible (with one of various alternative ways to go about that).
22:20 tadzik I see
22:21 lucian the latter bit is where we don't entirely agree :)
22:21 allison lucian: aye, and that's part of why I leave it as a big question mark with "as much as possible"
22:22 allison lucian: I think it's best to focus on the immediately practical, even if I might have hopes for more in the future
22:22 allison lucian: and any modestly complete implementation of Python 3 on Parrot would be a huge advantage
22:22 lucian i think that's getting objects to work
22:23 allison yes, agreed that's the key
22:23 lucian ideally, rewriting as much as possible in python(3).
22:24 lucian but for that to really work, i think parrot needs better reflection
22:24 allison reflection is built into the object model
22:24 lucian which one? PMC or Object?
22:24 allison part of implementing Python's object model is implementing the reflection features that go with it
22:25 pyrimidine left #parrot
22:25 allison lucian (re "which one?") neither, I mean Python's (which is built on top of PMC/Object)
22:25 lucian well, thankfully python only has one or two kinds of reflection
22:25 lucian yeah, i got that
22:26 lucian there's basically just attribute lookup
22:26 benabik left #parrot
22:27 allison I'd be interested to see/do some work on implementing Python's basic objects for Parrot as either a pure PMC or as a subclass of Parrot's Class/Object
22:27 minusnine (I'm happy to have stimulated such discussion with my simple question! :-P)
22:27 allison minusnine: :)
22:28 NotFound minusnine: there are no simple question in parrot land
22:28 lucian minusnine: in fact, i think it's a bit sad
22:28 NotFound (even if they have simple answers)
22:28 allison lucian: I wish I had more time for pynie over the past year
22:28 * lucian too
22:29 lucian now i'm stuck writing some fun games :)
22:29 lucian (uni coursework)
22:30 allison minusnine: I started experimenting with starting over at https://bitbucket.org/allison/pygmy, but you can see I didn't check in much
22:31 minusnine allison: cool, will check it out.
22:31 allison minusnine: (pygmy, as in a very small python core for bootstrapping)
22:32 minusnine alison: I'm meeting with JimK tomorrow to talk about pynie... I'm interested in helping out, but am starting a new (python-based) job next week, so I'm not sure what my time commitment can be like in the short-term
22:32 minusnine allison: (typo)
22:32 lucian allison: what i'd love to see is a pure-python compiler that compiles a subset of python sufficient for implementing the rest (this would mean a parrot module that links into PIR-like stuff)
22:32 allison minusnine: understandable, and thanks for the interest :)
22:33 lucian allison: is that the CPython 3 grammar, unchanged?
22:33 allison lucian: yes, it's the CPython grammar unchanged
22:33 tadzik FYI, I managed to make pynie compile
22:33 lucian tadzik: try running it
22:34 tadzik lucian: hello world fails
22:34 allison lucian: the idea at the time was to generate a parrot compiler from the CPython grammar
22:34 allison lucian: made decent progress on that
22:34 tadzik >>> print("Hello world")
22:34 tadzik Method 'item' not found for invocant of class 'Pynie;Grammar'
22:34 * allison brb
22:34 lucian tadzik: yep
22:35 lucian allison: nice. i kinda liked https://bitbucket.org/pypy/pypy/src/84​883dd58523/pypy/interpreter/pyparser/
22:35 * allison back
22:36 lucian i was thinking of retargeting the codegen on pypy's compiler
22:36 lucian that would get the first bit done (pure python compiler)
22:36 lucian but it would compile to unexisting types
22:36 lucian inexistant
22:36 allison lucian: as in use pypy's parser, and codegen for Parrot?
22:36 NotFound Talking about bootstrapping ideas, I'm thinking about writing a C++ backend for a subset of winxed with enough features to compile the stage 1 compiler, that will alow to get rid of the hand written C++ stage 0.
22:36 lucian allison: yep
22:36 allison lucian: makes sense, there's no point in reinventing the wheel
22:37 lucian comes with bonuses: continuous development by pypy guys and it's pure-python
22:37 allison lucian: types can be implemented
22:37 allison lucian: yes, definite advantages
22:37 lucian allison: yes, but i'd rather implement them in something close to python
22:38 lucian like, say, minipynie
22:38 allison lucian: there's a bit of overhead in implementing in a high-level language
22:38 lucian with dicts, lists, tuples, functions and structs
22:38 lucian allison: perhaps
22:38 allison lucian: CPython implements them in C, what does Pypy do?
22:38 lucian but it should be faster to write
22:38 lucian allison: RPython
22:38 lucian not very helpful
22:39 lucian the thing is, dicts, lists tuples, functions, strings, structs and numbers are already in parrot
22:39 lucian they just need a little renaming
22:39 allison lucian: (re "not helpful") that depends, is there any chance we could reuse Pypy's implementations of the core types?
22:39 allison lucian: they do exist in Parrot, but what's there isn't a very good match for Python semantics
22:39 lucian allison: not really. RPython manipulates interpreter-level objects
22:39 allison lucian: there's a lot of hidden Perl-ish assumptions buried in there
22:40 lucian so to do 1 + 2 at the application level, you'd have to write in RPython something like space.W_add(1, 2)
22:40 lucian allison: yes, there are some annoying perlisms
22:40 allison lucian: as in, RPython depends on a fully-working CPython implementation of objects?
22:40 lucian however, this minipynie could be used to implement the real deal
22:41 lucian RPython is translated using an existing full python interpreter, yes
22:41 allison doesn't minipynie need objects?
22:41 NotFound Why do you want a fast bootstrap? You can compile with other python until there is one version complete enough.
22:41 lucian allison: they can just be PMCs
22:41 lucian NotFound: it still requires writing the core types in PIR or similar
22:41 allison lucian: yes, at some level we need the base for the bootstrap
22:42 lucian allison: http://codespeak.net/pypy/di​st/pypy/doc/translation.html will be enlightening, albeit long
22:42 allison lucian: and depending on how good the core types for minipynie are, we might use them for macropynie too
22:42 NotFound lucian: that's why I ask, there is enough work even without the urgence for bootstraping.,
22:42 lucian allison: yes, pynie could inherit minipynie types
22:43 lucian NotFound: the compiler part is easy, there already are good pure-python python compilers
22:43 lucian NotFound: but writing python core types is still annoying, i was thinking of making it easier
22:44 NotFound I think I don't know enough python to appreciate the problems.
22:44 lucian NotFound: python needs full objects to even work at all
22:45 lucian allison: so this minipynie would be closer to old pynie, but with a good mapping to PIR
22:45 lucian if this fails, core types can just be written in winxed or something
22:46 lucian this all might be silly, though
22:46 bacek_at_work msg behabik Thanks! gc failures in make test are "eligible"
22:46 aloha OK. I'll deliver the message.
22:47 allison lucian: thanks for the link, that's useful
22:47 allison lucian: yes, closer to old pynie, but without any dependency on NQP
22:48 allison lucian: and more of a compiler (to PIR) than an interpreter
22:49 lucian yep, certainly a compiler
22:49 lucian i'd like full pynie to be a compiler too, not an interpreter
22:49 benabik joined #parrot
22:49 lucian otherwise, we might as well write a parrot backend for PyPy. which would be very slow
22:50 allison lucian: yes, I suspect you're right there
22:50 NotFound lucian: winxed has an almost untested mininal support for HLLed namespaces, waiting mosty for a use case.
22:50 lucian NotFound: heh
22:51 benabik left #parrot
22:51 lucian NotFound: winxed is indeed close to what this minipynie i'm thinking of
22:51 lucian s/what//
22:53 NotFound lucian: one more tool to write HLLs will also be nice.
22:53 lucian NotFound: i'm of the opinion that one more tool to write HLLs is the worst solution
22:54 NotFound Maybe not, but variety may be good to attract new people.
22:54 Tene Someone was in here recently wanting to write HLLs in Java/XML.
22:54 minusnine allison, lucian: then, what are the short-term goals of pynie as it stands?
22:55 lucian Tene: i think java may be a easier. it's actually not very OO at all. gnu classpath might not be that hard to bootstrap
22:55 NotFound Tene: I hope that winxed/ohm-eta will be a better way to people liking java-like syntax.
22:55 lucian minusnine: run, at all
22:55 Tene lucian: The part that was weird to me was they wanted the grammar and actions class to be in XML.
22:55 Tene I'm very curious about what that would look like, but not very hopeful about it as something I'd like.
22:56 lucian they're probably used to antlr
22:57 NotFound I predict that some day someone will write a compiler in schematron
22:57 plobsing left #parrot
22:57 lucian NotFound: that thing looks ugly
22:58 minusnine lucian: heh. okay. but that requires objects, so i hear. so what is the strategy for implementing objects in the short-term?
22:58 allison minusnine: the goal of pynie is to get a working implementation of Python 3 on Parrot
22:58 NotFound lucian: all xml things looks ugly to me, but xml oriented people loves it, it seems.
22:58 lucian minusnine: probably writing them in PIR/winxed
22:59 NotFound I love much better the simplicity of json.
22:59 lucian NotFound: i tend to prefer the even more spartan s-expressions
22:59 lucian or yaml
22:59 * lucian would like to see a fusion between yaml, lisp and python
23:01 cosimo joined #parrot
23:01 lucian minusnine: if i had more time, i'd play around with PyPy's compiler to create minipynie
23:01 lucian and go from there
23:01 NotFound yamlispy sounds funny :)
23:02 whiteknight joined #parrot
23:02 lucian heh
23:04 allison minusnine: and I'd be happy to help you break that (minipynie using PyPy's compiler) into smaller tasks, if you'd like to work on it
23:04 minusnine lucian: understood, thanks
23:04 allison lucian: one catch, PyPy is Python 2.x, not Python 3.x
23:05 lucian allison: meh, it can be ported after it works
23:05 allison lucian: but either one working on Parrot would be a step in the right direction
23:05 lucian there was another pure-python parser
23:05 minusnine allison: that would be useful, even if it's just to see how *you* would approach it
23:05 NotFound Prototypying objects in winxed, even if you plan to later reimplement them in pir or a PMCs can be a time saver.
23:05 lucian NotFound: yes. i'm trying to write an ad-hoc spec for minipynie
23:05 allison minusnine: I see it as more of an interactive thing, as in not "how I'd do it" but, "let's work out a good way to do it"
23:06 minusnine allison: heh, yes, agreed, I just meant that y'all have more experience with language implementation on parrot than I do, so you may have a better pattern
23:07 lucian minusnine: not really, i'm just a noob
23:08 allison minusnine: ah, yeah, makes sense. I figure the way I'd go about it might not necessarily be approachable for general developers, so that's why I'd really appreciate your input on breaking it down into steps that any contributor could step up and help with.
23:08 NotFound And you might found that winxed is not slower than hand-written pir ;)
23:08 Tene I really should consider trying to prototype cardinal's ideal object model on nqp-nom
23:08 lucian NotFound: i never really assumed that. winxed is very thin
23:09 allison minusnine: like link it in with pointers to how various things work, for "learning by doing"
23:10 minusnine allison: certainly, as I'll probably be doing exactly that myself
23:10 mtk left #parrot
23:11 lucian bah, minipynie might be totally unfeasible
23:12 allison lucian: well, it's feasible in one way or another, it's just a question of which way :)
23:12 lucian this looks horribly high-level https://gist.github.com/815487
23:13 * lucian has lisp boostrap envy right now
23:13 NotFound BTW while doing some experiments that in order to implement some objects models a way to tell the class to not use the method cache might be neccessary.
23:13 NotFound I found that
23:13 allison lucian: is that adding "parrot" as an output formatter to PyPy?
23:14 lucian allison: sort of, yes
23:14 lucian i'm just thinking of what it might look like
23:16 mtk joined #parrot
23:18 lucian i'm realising that i'm basically imagining winxed with a bit more pythonic syntax
23:19 lucian NotFound: mind if i try to mutilate winxed to be indentation-sensitive?
23:21 lucian actually, i think it'll be easier (and less susceptible to bitrot) to generate winxed from a subset of python
23:27 lucian_ joined #parrot
23:31 lucian left #parrot
23:47 dalek parrot/generational_gc: 856ff16 | bacek++ | config/gen/makefiles/root.in:
23:47 dalek parrot/generational_gc: Fix GMS dependencies.
23:47 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/856ff168d6
23:48 kid51 joined #parrot
23:57 minusnine left #parrot

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

Parrot | source cross referenced