Camelia, the Perl 6 bug

IRC log for #parrot, 2011-02-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:01 whiteknight I am not liking how this parrot-instrument library is so heavily dependent on P6object
00:01 whiteknight it's a small nit, perhaps
00:02 whiteknight I see what's happening. The .nqp source files aren't being built by setup.pir. When it tries to instantiate an Instrument;Probe (defined in NQP) IZ T3H FAILZ
00:03 cotto yeah.
00:03 cotto I can add that in a few minutes.
00:05 whiteknight I will probably want to rewrite setup.pir into NQP soon
00:11 cotto yeah
00:11 cotto pir is annoying
00:18 cotto done
00:18 kid51 joined #parrot
00:21 vmspb left #parrot
00:22 Hackbinary hello, is pir what happens after parrot has been eaten by the cat?
00:23 dalek parrot-instrument: 4a0fb2f | cotto++ | setup.pir:
00:23 dalek parrot-instrument: tell setup.pir how to build InstrumentLib
00:23 dalek parrot-instrument: review: https://github.com/Whiteknight/pa​rrot-instrument/commit/4a0fb2fe74
00:24 cotto whiteknight, feel free to rewrite setup.pir now
00:25 contingencyplan left #parrot
00:36 dukeleto ~~
00:37 Hackbinary ~~?
00:39 cotto ()
00:39 Hackbinary $/
00:41 dalek parrot/tt1988_pmcemitter: b8fc5c0 | jkeenan++ | lib/Parrot/Pmc2c/ (2 files):
00:41 dalek parrot/tt1988_pmcemitter: Delete unused functions.
00:41 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/b8fc5c06b9
01:10 dukeleto Hackbinary: ~~ means "hey bots, give me my messages" also, it is the DWIM operator
01:12 whiteknight Oh, I thought it was some weird ascii-artish way to say "waves"
01:12 dukeleto whiteknight: lulz
01:12 dukeleto whiteknight: ~~ is the smart match operator in Perl 5
01:12 cotto if that's what "dwim" means, then that's what it is
01:13 cotto s/"//g
01:13 dukeleto DWIM = Do What I Mean
01:13 dukeleto and DWIM rhymes with SWIM :)
01:13 cotto nm
01:13 * dukeleto is also sickly and slightly delirious
01:14 dalek parrot-instrument: 8ae872e | Whiteknight++ | t/instrument (7 files):
01:14 dalek parrot-instrument: now that we are building the right .pbc, make sure to load it in the test files
01:14 dalek parrot-instrument: review: https://github.com/Whiteknight/pa​rrot-instrument/commit/8ae872e255
01:14 dukeleto it is nice to see gsoc-instreument is compiling again
01:15 cotto dukeleto, verhy
01:19 dalek parrot: 1e98c1e | NotFound++ | t/pmc/resizablepmcarray.t:
01:19 dalek parrot: test RPA new with negative size
01:19 dalek parrot: review: https://github.com/parrot/parrot/commit/1e98c1ed93
01:19 dalek parrot/tt1988_pmcemitter: 7c6b432 | jkeenan++ | lib/Parrot/Pmc2c/PCCMETHOD.pm:
01:19 dalek parrot/tt1988_pmcemitter: Delete 2 more unused functions:  gen_arg_flags(); gen_arg_accessor().
01:19 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/7c6b432232
01:21 theory left #parrot
01:22 dukeleto (deleted dead code)++
01:31 kid51 is now known as kid51_at_dinner
01:33 lucian left #parrot
01:46 dukeleto # Exception is: type 44 severity 2 message 'Multiple Dispatch: No suitable candidate found for 'cmp_pmc', with signature 'PP->P''
01:46 dukeleto is that exception type and severity new stuff?
01:50 dalek Heuristic branch merge: pushed 305 commits to parrot/leto/embed_grant by leto
01:56 Tene dukeleto: eh?
01:56 Tene dukeleto: exception type and severity is very very old; it's been around for a long time
01:56 Tene rather longer than I've been around, at least.
01:59 NotFound dukeleto: looks like info from Parrot_ext_try in extend.t
02:00 benabik_away is now known as benabik
02:00 NotFound I mean extend_vtable.t
02:04 Tene dukeleto: my plan for after my now-dead exceptions subclassing branch was to largely replace types and severities with a real class/role hierarchy.
02:05 Tene dukeleto: there's still code in my exceptions_refactor branch to do class-based exception handling instead of "type and severity number" handling.
02:06 Tene dukeleto: I'm more than glad to talk at length about the exceptions system any time; just let me know.
02:10 whiteknight I definitely do want to switch over to a class-based exception dispatch
02:10 whiteknight it's not super-high on my list of priorities, but I think it would be a very good thing
02:12 Tene the code for it is pretty trivial, iirc
02:13 Tene I even had a patch to get Cardinal's exceptions and handlers working properly, I think.
02:14 Tene I really wish I had got that merged before I dropped out.
02:31 whiteknight undrop out
02:31 whiteknight We need more Tene
02:31 whiteknight MOAR
02:34 cotto whiteknight, do you have any idea what's going wrong with loading InstrumentLib.pbc?
02:35 Tene whiteknight: I seem to be slowly getting more-functional again.  It might happen.  There's an open invitation for anyone to try to motivate me however they like.  I have no recommendations for what might make me more-likely to contribute again.
02:35 kid51_at_dinner is now known as kid51
02:37 whiteknight cotto: I haven't looked at it since the last fix
02:37 whiteknight Tene: I don't want to pressure you, but we can obviously use more programmers with your talents
02:38 whiteknight We always need people with good ideas, and the ability to write good code
02:40 whiteknight and we sometimes need people with really crazy ideas
02:41 cognominal left #parrot
02:41 cognominal joined #parrot
02:42 benabik And if someone with really crazy ideas can write good code, then it's a huge win, right?
02:42 whiteknight benabik: the portion of the time when the crazy ideas turn out good
02:42 dalek parrot: ffc1295 | mikehh++ | src/pointer_array.c:
02:42 dalek parrot: fix a couple of what looks like copy/paste errors
02:42 dalek parrot: review: https://github.com/parrot/parrot/commit/ffc1295da8
02:42 dalek parrot: 9cf3225 | mikehh++ | t/op/gc.t:
02:42 dalek parrot: remove trailing space
02:42 benabik Details.
02:42 dalek parrot: review: https://github.com/parrot/parrot/commit/9cf32257d8
02:47 whiteknight benabik: Why, you have some crazy ideas that need testin'?
02:50 benabik I'd love to say yes, but nothing's come up yet...  Although I do need an MS thesis and if I can make it Parrot/NQP/Perl6 related, so much the better.  :-D
02:51 kid51 benabik:  Over the course of this year we will be setting quite a few roadmap goals that are aimed precisely at the improvement of that chain of programs.
02:52 kid51 So we can certainly use your assistance in that area.
02:53 cotto benabik, fun.  Do you have a specific area of interest?
02:54 benabik key51: Woo!  I plan on registering for GSoC this year, so I might manage to get several months of work in.  :)
02:54 preflex left #parrot
02:55 benabik cotto: Planning on doing a "Compilers & Tools" concentrations.  Haven't actually figured out a thesis yet, but need to do so soon.
02:55 dalek parrot/tt1988_pmcemitter: e221f0e | jkeenan++ | lib/Parrot/Pmc2c/P (2 files):
02:55 dalek parrot/tt1988_pmcemitter: Eliminated these unused functions:
02:55 dalek parrot/tt1988_pmcemitter: Parrot::Pmc2c::Parser::extr​act_bracketed_body_text();
02:55 dalek parrot/tt1988_pmcemitter: Parrot::Pmc2c::PCCMETHOD::find_max_regs();
02:56 dalek parrot/tt1988_pmcemitter: Parrot::Pmc2c::PCCMETHOD::make_arg_pmc().
02:56 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/e221f0e57e
02:56 cotto benabik: sure, but that's a big topic
02:59 preflex joined #parrot
02:59 benabik cotto: Yeah, I know...  :-/  I tend to be fascinated by language design, and I try to pick up a new one every so often.  Just starting to get into implementation, so I'm not sure where my focus is going to land exactly.
03:06 whiteknight left #parrot
03:10 theory joined #parrot
03:16 kid51 left #parrot
03:28 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#7708) fulltest) at 3_0_0-474-g9cf3225 - Ubuntu 10.10 i386 (g++-4.5)
03:32 dalek parrot-instrument: d04d75d | cotto++ | setup.pir:
03:32 dalek parrot-instrument: reorder some files in setup.pir.  still broken
03:32 dalek parrot-instrument: review: https://github.com/Whiteknight/pa​rrot-instrument/commit/d04d75d0e7
04:18 allison left #parrot
04:20 benabik is now known as benabik_away
05:31 dalek parrot-instrument: fbc86c0 | cotto++ | src/runtime/Instrument/Instrument.pir:
05:31 dalek parrot-instrument: load instrument_group via .loadlib
05:31 dalek parrot-instrument:
05:31 dalek parrot-instrument: This may not be the right fix in the long term but it gets some tests
05:31 dalek parrot-instrument: passing (or running at least).
05:31 dalek parrot-instrument: review: https://github.com/Whiteknight/pa​rrot-instrument/commit/fbc86c085f
05:40 cotto msg whiteknight t/instrumentop.t now segfaults in Instrument::run when calling imcc_run_api.
05:40 aloha OK. I'll deliver the message.
05:41 cotto This library is an interesting use case for Parrot.  There aren't usually two or more interps floating around and interacting.
05:54 fperrad joined #parrot
06:00 dukeleto cotto: PL/Parrot has many interps
06:00 rurban_ joined #parrot
06:03 rurban left #parrot
06:03 rurban_ is now known as rurban
06:06 dukeleto cotto: but you statement still stands
06:06 dukeleto cotto: parrot has some rough edges when many interps are alive
06:17 dalek parrot/leto/embed_grant: 9a20528 | dukeleto++ | t/src/extend_vtable.t:
06:17 dalek parrot/leto/embed_grant: Improve Parrot_PMC_cmp_pmc test, but it still isn't passing
06:17 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/9a205289d8
06:17 dalek parrot/leto/embed_grant: 0929079 | dukeleto++ | t/src/extend_vtable.t:
06:17 dalek parrot/leto/embed_grant: [t] Parrot_PMC_concatenate
06:17 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/092907946c
06:23 dukeleto i sure am good at coredumping parrot
06:25 dukeleto cotto: if i pass a Parrot_String instead of a String PMC to some extend_vtable functions, they core dump. Bug or feature?
06:25 dukeleto cotto: it seems we are missing some assertions
06:26 sorear Parrot_String and PMC* sound like they should be incompatible pointer types
06:35 benabik_away left #parrot
06:36 benabik_away joined #parrot
06:36 benabik_away left #parrot
06:36 dukeleto sorear: indeed
06:36 benabik_away joined #parrot
06:39 dalek parrot/leto/embed_grant: 497f573 | dukeleto++ | t/src/extend_vtable.t:
06:39 dalek parrot/leto/embed_grant: [t] Parrot_PMC_concatenate_str
06:39 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/497f573f7a
06:39 dalek parrot/leto/embed_grant: a9050e2 | dukeleto++ | t/src/extend_vtable.t:
06:39 dalek parrot/leto/embed_grant: Fix Parrot_PMC_floor_divide_int test
06:39 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/a9050e2325
06:39 dalek parrot/leto/embed_grant: 53c54f9 | dukeleto++ | t/src/extend_vtable.t:
06:40 dalek parrot/leto/embed_grant: [t] Parrot_PMC_get_iter
06:40 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/53c54f970b
06:40 dalek parrot/leto/embed_grant: 7486820 | dukeleto++ | t/src/extend_vtable.t:
06:40 dalek parrot/leto/embed_grant: [t] Parrot_PMC_get_namespace
06:40 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/7486820c5b
06:40 dalek parrot/leto/embed_grant: ac2ad78 | dukeleto++ | t/src/extend_vtable.t:
06:40 dalek parrot/leto/embed_grant: [t] Parrot_PMC_get_pmc
06:40 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/ac2ad789fc
06:47 dalek parrot/leto/embed_grant: 8003559 | dukeleto++ | t/src/extend_vtable.t:
06:47 dalek parrot/leto/embed_grant: [t] Parrot_PMC_get_pointer
06:47 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/800355954a
06:47 dalek parrot/leto/embed_grant: f4b2391 | dukeleto++ | t/src/extend_vtable.t:
06:47 dalek parrot/leto/embed_grant: [t] Parrot_PMC_hashvalue
06:47 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/f4b2391d52
07:34 cotto dukeleto, it might be nice to add a check for that if we can do so without a significant performance hit, but I'd call it a feature.
07:35 cotto maybe with an unoptimized parrot
07:54 theory left #parrot
08:00 fperrad left #parrot
10:08 cotto The interface for VTABLE_concatenate is lta.
10:09 cotto dukeleto seems to have noticed this.
10:30 contingencyplan joined #parrot
10:56 fperrad joined #parrot
11:41 sheant joined #parrot
11:50 contingencyplan left #parrot
11:51 lucian joined #parrot
11:51 dalek winxed: r796 | NotFound++ | trunk/examples/fly.winxed:
11:51 dalek winxed: more eye candy in example fly
11:51 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=796
12:05 mikehh left #parrot
12:19 mikehh joined #parrot
12:33 sheant left #parrot
12:41 whiteknight joined #parrot
13:29 kid51 joined #parrot
13:34 Hackbinary Hello #parrot
13:35 whiteknight hello Hackbinary
13:35 mikehh hi Hackbinary
13:35 tadzik hi
13:54 ambs joined #parrot
14:00 rurban_ joined #parrot
14:01 whiteknight msg cotto I'm seeing segfaults in other tests too. I don't think it's a problem with IMCC, I think it's a problem with memory corruption. The other segfaults are all also happening inside the GC
14:01 aloha OK. I'll deliver the message.
14:02 dalek parrot/tt1988_pmcemitter: 405ce0e | jkeenan++ | lib/Parrot/Pmc2c/PMC/ParrotClass.pm:
14:02 dalek parrot/tt1988_pmcemitter: Remove lib/Parrot/Pmc2c/PMC/ParrotClass.pm
14:02 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/405ce0e440
14:02 dalek parrot/tt1988_pmcemitter: 55d5820 | jkeenan++ | lib/Parrot/Pmc2c/ComposedMethod.pm:
14:02 dalek parrot/tt1988_pmcemitter: Remove lib/Parrot/Pmc2c/ComposedMethod.pm.
14:02 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/55d5820498
14:03 rurban left #parrot
14:03 rurban_ is now known as rurban
14:17 cotto left #parrot
14:20 mikehh left #parrot
14:24 nwellnhof joined #parrot
14:34 lucian_ joined #parrot
14:34 lucian left #parrot
14:42 dalek winxed: r797 | NotFound++ | trunk/examples/fly.winxed:
14:42 dalek winxed: a bit more of eye candy can't harm
14:42 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=797
14:43 dalek parrot/tt1988_pmcemitter: 98f1766 | jkeenan++ | lib/Parrot/Pmc2c/PMC.pm:
14:43 dalek parrot/tt1988_pmcemitter: For more consistent design, eliminate package scope lexical '' in favor of key-value pair in object.
14:43 dalek parrot/tt1988_pmcemitter: review: https://github.com/parrot/parrot/commit/98f1766623
14:55 jsut_ joined #parrot
15:00 jsut left #parrot
15:07 mikehh joined #parrot
15:11 ambs left #parrot
15:16 kid51 left #parrot
15:19 nwellnhof left #parrot
15:40 lucian_ left #parrot
16:00 vmspb joined #parrot
16:16 Patterner left #parrot
16:16 Psyche^ joined #parrot
16:16 Psyche^ is now known as Patterner
16:28 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#7823) fulltest) at 3_0_0-474-g9cf3225 - Kubuntu 10.10 amd64 (g++-4.5)
16:28 allison joined #parrot
16:36 luben msg bacek I have tested gc_generational branch, it seems there is a problem with Hash PMC - attributes get collected prematureley. For gdb session of the crash, see: http://pastebin.com/nT3NwpJx
16:36 aloha OK. I'll deliver the message.
16:47 dalek nqp-rx/nom: 57d4969 | moritz++ | build/Makefile.in:
16:47 dalek nqp-rx/nom: missing dependency on nqp-builtins.pir
16:47 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/57d4969faa
16:47 dalek nqp-rx/nom: e778745 | moritz++ | / (2 files):
16:47 dalek nqp-rx/nom: add skip() builtin to avoid test-out-of-sequence for skipped tests
16:47 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/e77874559e
16:49 jsut joined #parrot
16:54 jsut_ left #parrot
17:02 edenc is now known as corinthiano
17:02 corinthiano is now known as edenc
17:18 theory joined #parrot
17:23 benabik_away is now known as benabik
17:23 benabik o/
17:36 nwellnhof joined #parrot
17:36 nwellnhof ~
17:37 dukeleto ~~
17:37 dukeleto benabik: i was reading in the logs that you are interested in doing a thesis related to parrot?
17:38 benabik dukeleto: Would be interesting. :-D
17:39 dukeleto benabik: yes, indeed. are you going for a MS or PhD ?
17:39 sheant joined #parrot
17:39 benabik dukeleto: MS
17:40 dukeleto benabik: do you have some kind of concentration? What are you interested in?
17:41 benabik dukeleto: Haven't declared one yet, but I'm trying to get into a compilers "cluster" (as RIT names them).
17:44 benabik dukeleto: Well, it's technically "Languages and tools"
17:51 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#7835) fulltest) at 3_0_0-474-g9cf3225 - Kubuntu 10.10 amd64 (g++-4.5 with --optimize)
17:57 dukeleto benabik: what specifically about compilers interests you? have you hacked on any parrot stuff already?
17:58 benabik dukeleto: I'm just starting to get into parrot.  Only thing I've done was an overview of PCT for my compilers class: http://www.cs.rit.edu/~bcg278​4/Courses/20102/Compiler/PCT/
18:00 dukeleto benabik: cool! I will take a look at that now
18:00 benabik dukeleto: Be sure to let me know where I went wrong.  Wrote it up in a very rushed week.
18:00 dukeleto benabik: are there any languages that you are interested in? We have lots of Parrot languages that need help
18:01 whiteknight Parrot has a recursive-descent parser (NQP) and a PEG parser (ohm-eta). We could use an LALR parser generator
18:01 dukeleto benabik: such as Cardinal
18:01 dukeleto whiteknight: that sounds like a good GSoC project
18:02 whiteknight yes, I have it listed down as an option
18:02 dukeleto whiteknight++
18:02 dukeleto benabik: i think POST stands for Parrot Opcode Syntax Tree
18:02 benabik dukeleto: I thought someone was commenting that Cardinal had issues due to problems between Parrot and Ruby's object models.
18:03 whiteknight dukeleto: It looks like they start accepting GSoC mentoring organization applications on Feb 28. Obviously I want to make that happen. What can I do to get ready for that?
18:03 whiteknight are we going to partner with TPF again?
18:03 dukeleto benabik: yep, it does. Parrots object model will be improving greatly soon, to unblock Cardinal development
18:03 dukeleto whiteknight: not sure. I would prefer the parrot community to decide that, rather than just me.
18:03 benabik dukeleto: 6model or other general improvements?
18:04 dukeleto benabik: mostly 6model "trickling down" to parrot :)
18:05 benabik dukeleto: I don't know where I picked up "Optimized" from.  I was poking around some obsolete docs when I was starting.  :-/
18:05 kid51 joined #parrot
18:05 dukeleto benabik: no worries, this is a really cool intro to PCT
18:06 benabik dukeleto: A bit high level since I was writing for people halfway through a grad course in compiler construction.
18:06 benabik dukeleto: But I tried to keep it fairly step-by-step.
18:07 benabik Ah!  Found it.  The wikibook had it as POptimizedST
18:07 dukeleto benabik: interesting. I think whiteknight wrote that
18:07 dukeleto benabik: also "Register-based instructions can also create far more efficient bytecode than a stack." Do you have a reference to back that up? I am not quite sure that is correct.
18:08 benabik dukeleto: Was based on commentary from the professor, mostly.
18:09 dukeleto benabik: interesting. I would love too see a reference for that. Can you ask you prof for some relevant papers that show that?
18:09 dukeleto s/love too/love to/
18:09 benabik dukeleto: I'm worried it may fall into "common wisdom"...  Which isn't always able to be proved.
18:10 dukeleto benabik: also, i don't see a mention of Parrot being Continuation-Passing-Style vs. stack-based in your presentation
18:10 benabik dukeleto: Because I failed to notice?  ~.~
18:10 benabik It may also depend on how you determine "efficient".  It generally takes less opcodes to do the same thing on reg v stack.
18:10 dukeleto benabik: i am weary of "common wisdom" :) People used to think that the world was flat ...
18:11 dukeleto benabik: but I must say that I have not been keeping up with CS literature
18:11 * benabik checks the dragon book, the most convient reference at the moment.
18:11 dukeleto benabik: Parrot Intermediate Language (PIR) should be Parrot Intermediate Representation
18:12 dukeleto benabik: if you put your git repo on github, i can send you patches :) I hope you don't mind my telling you corrections, I just want you presentation to be as correct as possible
18:13 benabik dukeleto: The presentation itself isn't in the git repo, sadly.
18:13 benabik Although I suppose I could change that.
18:13 dukeleto benabik: ah, i was talking about the text, i haven't checked out the pres yet
18:13 benabik benabik: Well, yes.  That's what I meant.  >.<  I should have breakfast so I can talk clearly.
18:14 dukeleto breakfast++
18:14 dukeleto karma breakfast
18:14 aloha breakfast has karma of 1.
18:14 dukeleto benabik: you also may want to mention that PMCs stand for PolyMorphic Containers, or Parrot Magic Cookies :)
18:14 benabik That seems low.
18:15 benabik dukeleto: That did get mentioned in the slides.  :-D
18:17 dukeleto benabik: cool :)
18:17 dukeleto benabik: s/Rakdudo/Rakudo/ in your Overview
18:18 benabik dukeleto: I did mention rushed, right?
18:18 dukeleto # PARROT_REVISION: a file that should hold the version of Parrot needed to run your language. Unfortunately broken.
18:18 * dukeleto is to blame for that, i guess
18:18 dukeleto benabik: yep, not judging, just helping you improve it :)
18:19 benabik dukeleto: On the list of things that were important when moving SVN->Git, that's fairly low.
18:19 dukeleto benabik: yeah, our svn->git converstion was bloody
18:20 dukeleto benabik: s/Test Anywhere Protocol/Test Anything Protocol/g
18:20 plobsing Test Anywhatsit Protocol
18:21 benabik https://github.com/Benabik/cish
18:24 dukeleto benabik++
18:24 dukeleto Test Aleph_0 Protocol ?
18:26 jan left #parrot
18:38 jan joined #parrot
18:40 mikehh rakudo (684fdf8) - builds on parrot (3_0_0-474-g9cf3225) - make test, make spectest_smolder[(#7843), roast (63157bc)] PASS - Kubuntu 10.10 amd64 (g++-4.5 with --optimize)
18:40 mikehh 27,634 ok, 0 failed, 610 todo, 1,847 skipped and 0 unexpectedly succeeded
18:41 * mikehh afk - bbl
18:44 dukeleto mikehh++ # rakudo testing
18:50 cotto joined #parrot
18:52 tadzik dukeleto: wouldn't that be Too Much testing? :)
18:53 tadzik or should that be Too Many: for it's countable ;)
19:04 plobsing how many testings do we have today?
19:06 plobsing testings is countable, testing is not (unless you count time as discrete)
19:09 tadzik nah, Aleph 0 is countable. *
19:09 allison left #parrot
19:10 allison joined #parrot
19:12 dalek winxed: r798 | NotFound++ | trunk/winxedst1.winxed:
19:12 dalek winxed: refactor argument list handling out of CallExpr and reuse it in return and yield
19:12 dalek winxed: statements, thus now return and yield arguments can have modifiers
19:12 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=798
19:14 NotFound dukeleto: http://en.wikipedia.org/wi​ki/Myth_of_the_Flat_Earth
19:41 dukeleto in case anybody is wondering: OSCON proposals are due by tomorrow
19:43 contingencyplan joined #parrot
19:45 dalek winxed: r799 | NotFound++ | trunk/winxedst1.winxed:
19:45 dalek winxed: fix error in tailcall optimization from r798
19:45 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=799
19:55 Coke left #parrot
20:07 Coke joined #parrot
20:10 benabik For those curious about register vs stack VM, I found an interesting paper: http://www.usenix.org/events/ve​e05/full_papers/p153-yunhe.pdf
20:12 lucian joined #parrot
20:24 dukeleto benabik++
20:24 vmspb left #parrot
20:37 shockwave joined #parrot
20:37 shockwave Hello
20:38 shockwave I have a couple of questions regarding method invocation from an embedding application.
20:40 shockwave What is the function to fetch the return value of a pir-method call.
20:40 shockwave Parrot_api_*?
20:41 plobsing there is none. you need to set up the callcontext with room for return arguments. this can be specified by the signature used.
20:42 shockwave Thanks, plobsing. I read your reply in the mailing list. I've setup the method signature, but I'm not sure how to fetch the return value after the invocation is done.
20:50 jnthn PMC *retval = VTABLE_get_pmc_keyed_int(interp, callctx, 0) # for first positional arg, for example
20:51 jnthn glancing the mail, s/callctx/sig/
20:53 jnthn In Parrot, the same object used to make the call is then re-used for storing the results.
20:55 shockwave jnthn, testing it now...
20:57 mikehh left #parrot
21:01 kid51 left #parrot
21:01 shockwave Thanks, jnthn. I did this and it works:
21:01 shockwave Parrot_PMC ret;
21:01 shockwave Parrot_Int num;
21:01 shockwave Parrot_api_pmc_get_keyed_int(mInterp, sig, 0, &ret);
21:01 shockwave Parrot_api_pmc_get_integer(mInterp, ret, &num);
21:07 shockwave purl paste
21:07 plobsing aloha, purl?
21:07 aloha plobsing: purl is pretty annoying girl
21:08 plobsing shockwave: purl is gone T_T. use aloha in her stead.
21:08 shockwave plobsing. Thanks
21:08 shockwave aloha paste
21:10 plobsing aloha, nopaste?
21:10 aloha plobsing: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
21:11 shockwave Thanks, again :)
21:12 nopaste "shockwave" at 192.168.1.3 pasted "how to continuesly call a pir-method" (15 lines) at http://nopaste.snit.ch/30741
21:13 mikehh joined #parrot
21:13 shockwave Above, i pasted a C++ function that I'm using to continuesly call an update method on the PIR side.
21:14 shockwave The update method runs, but after a second or two, I get a recursion error.
21:14 shockwave The method that is called is empty.
21:15 shockwave Should this line be invoked every time?:
21:15 shockwave Parrot_api_pmc_set_keyed_int(mInterp, mUpdateSig, 0, mMainObject);
21:16 sheant left #parrot
21:18 plobsing so the update method gets called multiple times before the recursion depth error is triggered?
21:18 shockwave plobsing, yes.
21:19 plobsing recursion depth is tracked on the callcontext, so what might be happening is that the recursion counter is not being decremented properly on return. the short-run fix is to just use a new callcontext for every call. the long run fix is to isolate a test case, file a ticket, and alert someone more knowledgable about PCC (eg: whiteknight, chromatic, etc).
21:20 shockwave @plobsing: I see.
21:24 shockwave plobsing: OK. I'll ask a little more info about it to those other parties. I'll see their recommendation.
21:25 NotFound Parrot_pcc_invoke_from_sig_object push a new context and pops it before return.
21:26 jnthn If you're not careful, I suspect reusing a context could mean trouble.
21:27 jnthn Like if it sticks a closure somewhere.
21:28 shockwave I'll try the new context on every call approach. I worry about performance a little because that function will need to complete in below 32 millis.
21:30 shockwave Since the call context is managed by the GC, isn't that going to just explode the memory isuage, since it's being called 30 timers per second.
21:42 bacek_at_work ~~
21:46 nopaste "shockwave" at 192.168.1.3 pasted "Another version of C++ update function." (20 lines) at http://nopaste.snit.ch/30742
21:47 bacek_at_work luben, ping
21:47 shockwave The version I pasted above does not have the recursion error, but the memory comsumption then becomes an issue. The memory will continue to climb just be calling an empty method.
21:47 luben bacek, pong
21:48 bacek_at_work luben, yes, I found very bad behaviour of write_barrier VTABLE override. In the nutshell - it doesn't work in some circumstances.
21:48 NotFound shockwave: you can try to create one time the signature object and clone it in VMachine::update
21:48 bacek_at_work I'll try to come with new solution for it. Worse case scenario - manually put write_barriers everywhere...
21:50 luben ok
21:51 shockwave NotFound: What is the difference between creating a new sig and cloning one? Would new memory still not be created?
21:52 bacek_at_work seen kid51
21:52 aloha kid51 was last seen in #parrot 3 hours 46 mins ago joining the channel.
21:52 NotFound shockwave: that way you don't need to create each time, or to store, the creation auxiliary objects.
21:52 bacek_at_work msg kid51 Can you cleanup "mmd" related stuff in Pmc2c? It's not used anymore (for at least 3 years now).
21:52 aloha OK. I'll deliver the message.
21:53 shockwave NotFound. I'll give it a try. Do you know if there is an example somewhere on how to clone an object?
21:56 NotFound shockwave: include/parrot/extend_vtable.h
21:56 dalek nqp-rx/nom: ad21c53 | jonathan++ | / (5 files):
21:56 dalek nqp-rx/nom: Role composition for when a class just does a single role (we don't do the role summation case just yet). Seems method and attribute composition works, methods in the class beat ones from the role and mentions of $?CLASS are correctly generic.
21:56 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/ad21c534fa
21:57 NotFound newpmc = Parrot_PMC_clone(interp, oldpmc);
21:58 shockwave NotFound: Thanks
22:00 NotFound Maybe we should provide a Parrot_api_pmc_clone function.
22:01 rurban_ joined #parrot
22:02 NotFound shockwave: if you are doing things critical in speed you should consider using the extension api, the embedding one trades off speed for reliability.
22:03 rurban left #parrot
22:03 rurban_ is now known as rurban
22:04 shockwave NotFound: :0
22:05 shockwave NotFound: Currently, I'm just trying to get it to run (also, without eating up all the memory).
22:09 nwellnhof left #parrot
22:09 plobsing shockwave: would it be possible to trigger the GC during a time when you are not making use of parrot otherwise (and in a different thread than your main application)? that could keep your utilization fairly low.
22:12 shockwave plobsing: Based on how I'm planning to embed Parrot, the update function will always be called 30 times per second. Then, the Parrot side of things will have a chance to do the logic stuff. There won't be a time when Parrot is not running. But,
22:13 shockwave I'm also planning to essentially turn off the GC collection. Then, at some point during the game (pause screen, next level, death) perform a full collection.
22:13 plobsing turn... off... collection????
22:14 plobsing parrot is pretty memory hungry. we mainly focus on CPU cycle performance, when we're even trying to go faster.
22:15 plobsing I'm not sure running without GC is feasible for anything more than a toy program. I'd love to be proven wrong.
22:16 shockwave plobsing: By turning off I mean that the GC would still allocate memory, but it wouldn't try to free it on its own. I would tell it when to perform the freeing aspect of the GC.
22:16 plobsing It does provide an interesting game-paradigm tho: finish the level before you run out of memory
22:17 shockwave With the current GC, is it possible to turn off collection?
22:17 shockwave And, likewise, is it possible to instruct the GC to perform a full collection?
22:18 plobsing both are possible. I was trying to get you to perform the later at regular, controlled intervals.
22:18 sorear yes and yes
22:18 cosimo joined #parrot
22:19 shockwave I'm sure I'll have to test the best way to deal with memory issues, and pause times.
22:20 shockwave The first thing will be how to make the C++ update function not constantly consume memory just by calling an empty method.
22:20 sorear I suspect you'll find that leaving the GC turned off for more than a few seconds will be fatal
22:20 sorear but ... only one way to know for sure
22:21 shockwave I'm trying to do the clone thing that NotFound proposed, but there is no Parrot_api_* method for that, so I'm trying emulate a similar functionality.
22:39 PacoLinux left #parrot
23:05 Hackbinary dukeleto, ping
23:06 dukeleto Hackbinary: pong
23:07 dukeleto plobsing: ping
23:07 dukeleto plobsing++ # releasing Ωη;)XD
23:08 Hackbinary dukeleto, I have been running through the PCT tutorial, and I'd like to ammend it.  Is there any source lieing around, or should I just add tutorial repository to my github?
23:08 Hackbinary dukeleto, that would be the squaak tutorial
23:09 benabik I think that's part of the parrot repo:  examples/languages/squaak/doc
23:09 plobsing dukeleto: pong
23:10 sorear shockwave: as part of one of my benchmarks, Parrot can create 500,000 CallContext PMCs per second on a 7 year old computer without running out of memory ever
23:10 dukeleto plobsing: nice work on Ωη;)XD, i am wondering if it can be used with my nascent Jaspers project : https://github.com/leto/jaspers
23:11 dukeleto plobsing: i am currently not attached to a specific PEG library
23:11 dukeleto plobsing: but PEG.js has a javascript parser already
23:11 dukeleto Hackbinary: i would suggest forking parrot.git on github and submitting pull requests. Thanks!
23:12 dukeleto Hackbinary: also, take a look at https://github.com/parrot/parrot/blob​/master/docs/project/git_workflow.pod
23:12 plobsing dukeleto: Ωη bootstraps from OMeta/JS which has a JS grammar in OMeta as part of the implementation
23:12 benabik is now known as benabik_away
23:13 dukeleto plobsing: ooooh, shiny
23:13 dukeleto plobsing: then Ωη could be a viable option for Jaspers
23:13 plobsing OMeta/JS uses JS in stead of Winxed in the semantic actions of course, so there are a couple slight incompatibilities.
23:14 plobsing but yes, I agree that Ωη is a good candidate for implementing JS on Parrot if you like the idea of PEGs
23:14 Hackbinary benabik / dukeleto  thanks :)
23:14 Hackbinary benabik / dukeleto  +1
23:15 plobsing and I include "have not been brain damaged by YACC" in "like the idea of PEGs"
23:19 plobsing dukeleto: https://github.com/alexwarth/ometa​-js/blob/master/bs-js-compiler.txt is the JavaScript grammar
23:29 dukeleto plobsing: thanks! I am very interested in PEGs and have been reading everything I can get my hands on
23:32 plobsing ometa adds some non-standard syntactic sugar to pegs. it took me a while to figure out that "x" desugars to token('x') and ``abcd'' desugars to seq('a', 'b', 'c', 'd')
23:32 plobsing everything else is either standard or fairly self-explanatory
23:34 nopaste "shockwave" at 192.168.1.3 pasted "Method invocation code." (26 lines) at http://nopaste.snit.ch/30743
23:35 shockwave sorear: I don't doubt it's something I could be doing, but I just don't know what's the way to do it right.
23:36 shockwave If I comment out the function above, memory levels at about ~20 megs. If I run the function as above, you can see in the task manager that memory increases about 1 meg per second, and it never decreases.
23:36 shockwave The method it is calling is essentially empty.
23:37 fperrad left #parrot
23:37 shockwave *the PIR method it is calling^^^
23:41 plobsing I'm not sure we can fully eliminate the memory utilization in calling parrot functions. CPS requires heap-allocated call frames almost by definition.
23:42 plobsing the strategy I would advocate is better and more flexible garbage collection schemes to deal with this cost.
23:43 shockwave plobsing: But allocating every call? Why not just once if it is the same call?
23:43 shockwave plobsing: Also, something is going on because memory doesn't go down.
23:44 plobsing memory doesn't go down because the garbage collector doesn't release memory back to the OS. if you run the code for long enough, it should level off once the GC hits the allocation threshold and realizes most of the memory in current use is garbage.
23:45 plobsing but it will not release that memory back to the system. it will hold it in reserve.
23:46 shockwave plobsing: Ok, I'll see how far up it goes.
23:46 shockwave But, it is going up very fast. About 1 meg per second.
23:46 bacek_at_work shockwave, you can call VTABLE_morph(interp, cc, PMCNULL) on old allocated CallContext (totally unspecified "hack")
23:49 shockwave bacek_at_work: I'm currently having issues with those kind of functions, the ones that take a regular interp* as first argument. Since I'm using the Parrot_api_*, and those functions deal with an Interp PMC, I haven't been able to use those functions.
23:49 hudnix joined #parrot
23:50 shockwave I tried using the same method to extract the Interp* from the Interp PMC, but I get endless errors when I try to use the macroes that the Parrot_api_* uses.
23:51 bacek_at_work shockwave, ah. Ok. I think we need dukeleto++ "Embed API" branch for exposing more VTABLEs to embedders properly
23:52 shockwave The GC is going on 200 megs.
23:54 shockwave The GC just passed the 250 meg mark. Something is wrong.
23:55 shockwave There is no way that memory should be going up by a meg per second. And there is no way the GC should allocate all that memory and never clean up.
23:55 contingencyplan left #parrot

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

Parrot | source cross referenced