Camelia, the Perl 6 bug

IRC log for #parrot, 2010-03-13

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 tetragon joined #parrot
00:16 kid51 joined #parrot
00:53 AndyA_ joined #parrot
01:02 Whiteknight does the new nqp support multi-dimensional keys with native syntax?
01:02 Whiteknight like, can I do $c[1, 2]?
01:04 ash_ you can do $c[0][1];
01:04 ash_ or $c[1][2]; in your case
01:05 ash_ http://github.com/perl6/nqp-rx/b​lob/master/t/nqp/40-lists.t#L42 tests that syntax so, i assume it should be working
01:09 Whiteknight I'm not sure I really understand that test
01:09 Whiteknight is that last test directing to get_pmc_keyed with [0;1], or is it calling get_pmc_keyed_int with 0 then 1?
01:12 AndyA joined #parrot
01:18 ash_ i think its doing get_pmc_keyed_int with 0 then 1
01:18 ash_ i am recompiling right now, otherwise i'd tell you for sure one way or the other
01:35 dukeleto 'ello
01:45 Whiteknight hello duke
01:45 Whiteknight ash_: okay, thanks
01:49 Austin_away whiteknight: it's two different evals
01:49 Whiteknight Austin: what?
01:50 Austin The [0][1] thing is two different get_pmc_keyed ops.
01:50 Austin And yeah, I committed todo.
01:50 Austin To kakapo master.
01:51 Whiteknight damnit
01:52 Austin Sorry, now there's no excuse for not testing
02:04 Whiteknight Austin: is todo_test exported?
02:04 Austin It should be exported as "todo"
02:05 Whiteknight oh
02:05 Austin So you can do "use( 'UnitTest::TestCase' );" .... method test_something() { todo("Not working"); }
02:05 eternaleye joined #parrot
02:07 Whiteknight yeah
02:07 Austin Look at t/UnitTest/TapListener.nqp
02:07 Austin At the bottom is a todo
02:07 Whiteknight right
02:08 Whiteknight one of my test methods is hanging
02:08 Austin Heh
02:08 Austin I know the feeling.
02:08 Austin pir::trace(4)
02:08 Whiteknight and since it's randomly ordered, i donk know which
02:09 Austin do this:  method main() { self.set_up(); self.test_foo(); }
02:09 Austin You can run just one test, with no tap
02:10 Austin Or just run the .nqp file directly, and you'll get the tests that *do* pass listed.
02:10 Austin austin$> t/UnitTest/TapListener.nqp
02:11 Whiteknight I am running it directly
02:11 Austin How many tests do you have?
02:13 Austin Never mind. Try putting this method in your testcase:
02:13 Austin method run_test() { say("Running test: ", self.name);  super(); }
02:14 Whiteknight found the test
02:14 Austin Cool.
02:15 nopaste "whiteknight" at 68.46.29.192 pasted "test hang for Austin++" (15 lines) at http://nopaste.snit.ch/19936
02:16 Austin I think your $a := 1+1i is creating a string pmc.
02:16 Whiteknight any obvious faux pas?
02:17 Austin ^^
02:17 Austin Try pir::assign__vPS($a, '1+1i');
02:17 Whiteknight well, that's not intended, but will that hang the test?
02:17 Austin Oh, the hang is in the exception handler.
02:18 Austin You shouldn't catch that exception - use assert_throws_nothing.
02:18 Austin But if you *are* going to catch exceptions, you catch them, record them, exit the catch block (and the try block) and then throw them.
02:19 Whiteknight where to do that, end of the try?
02:19 Austin Because the fail() throws an exception, which the CATCH catches, and then fail() throws an exception, which the CATCH catches, and then ...
02:20 Whiteknight with assert_throws_nothing, do i need try{} at all?
02:21 Austin Have a look at "assert_throws" at line 122 in src/UnitTest/Assertions.nqp for an example of how I do it.
02:21 hudnix joined #parrot
02:21 Austin No, you just make the assertion about a block. I do the catching, and if anything is thrown, I fail.
02:21 Austin assert_throws_nothing("WTF? I said throws NOTHING!!", { throw Exception.new; } );
02:22 Whiteknight ah, so i need a block.
02:22 Austin Or a sub
02:23 Austin assert_throws_nothing("should not throw", { my $m := ... });
02:24 Austin FYI: I know about the whole catch/throw/rethrow because I spend an hour or so chasing that particular snipe...
02:34 Whiteknight infinite exception loops are lousy, but remarkably easy to do in parrot
02:35 Whiteknight I can't even imagine a way to do it in C#, definitely not in a way that would be unintentional
02:44 dalek kakapo: 023da94 | austin++ | src/Internals/ (2 files):
02:44 dalek kakapo: Added $Id$ to Kakapo.nqp, with a sub to access it.
02:44 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
02:44 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/023da9437b6a289e4ec089ce09e6b1e92cbf33d2
02:44 Whiteknight If I had a dollar for every stupid I was, I would be a damn billionaire
02:44 Austin Heh.
02:59 Whiteknight can we create subs in subs in nqp?
03:00 Whiteknight or, can I make a block that takes arguments?
03:00 Austin Yeah
03:01 Whiteknight one of them pointy doodads?
03:01 Austin my &block := -> *@args, *%named { say("Blah blah: ", %named<foo>); };
03:01 Austin You want a sub, or a closure?
03:02 nopaste "Austin" at 68.39.12.202 pasted "Closures in nqp" (33 lines) at http://nopaste.snit.ch/19938
03:02 Austin Worked on that last night, I think
03:02 Austin For the Cuckoo stuff
03:03 Whiteknight I need a callback function that takes a fixed parameter list
03:03 Whiteknight so I guess a pointy block
03:04 Whiteknight can pointy blocks have return values?
03:04 Austin Sure
03:04 Austin They're subs.
03:05 Austin my &block := { 1; };  say( &block() );
03:05 Whiteknight nevermind, the test passes so I guess I can return a value
03:06 Austin :)
03:06 mikehh joined #parrot
03:06 Austin Or the test is wrong...
03:06 Austin but shhh..
03:10 dalek parrot-linear-algebra: beb7e09 | Whiteknight++ | t/pmc/complexmatrix2d.t:
03:10 dalek parrot-linear-algebra: update complexmatrix2d.t to kakapo's UnitTest framework. Code is MUCH nicer
03:10 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/beb7e09bac97a9af63ffb6c81152105e199c231e
03:26 Whiteknight is there syntactic sugar for getattribute/setattribute?
03:26 Whiteknight like $m.attr = whtever
03:26 Whiteknight or am I calling pir::getattribute()?
03:27 Austin You're calling getattribute, unless you've got it in self.
03:28 Austin If it's in self, you can say  7    has $!foo;    and then reference $!foo, but the twigil has to be a '!' (sigil can be anything: $@%&)
03:28 Whiteknight for non-self, I can do $m.attr := "whatever"?
03:28 Austin Nope.
03:29 Whiteknight damn
03:29 Austin Kakapo classes can do that, because I autogenerate those accessors.
03:29 Austin But your PMC stuff isn't a kakapo class.
03:29 Austin Unless you register and proxify it.
03:29 Austin (And then it'll work.)
03:32 nopaste "Austin" at 68.39.12.202 pasted "Whiteknight, try this" (18 lines) at http://nopaste.snit.ch/19940
03:33 Austin Modulo spelling of Char2d
03:33 Whiteknight okay, I see what you
03:34 Whiteknight re doing
03:34 Austin That would set up a proxy namespace, which is probably enough for what you want.
03:48 janus joined #parrot
04:05 Whiteknight okay, I'm out for the night. Later
04:09 dalek parrot-linear-algebra: fb070be | Whiteknight++ | t/pmc/complexmatrix2d.t:
04:09 dalek parrot-linear-algebra: fixes/updates for complexmatrix2d.t
04:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/fb070be0d34c28aae55d8b808c7e21f5fc377724
04:09 dalek parrot-linear-algebra: 3ddc267 | Whiteknight++ | t/pmc/pmcmatrix2d.t:
04:09 dalek parrot-linear-algebra: convert pmcmatrix2d.t to use kakapo
04:09 purl I don't know how to convert pmcmatrix2d.t to use kakapo.
04:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/3ddc267d678afcd6c9575165849facc360619d44
04:09 dalek parrot-linear-algebra: af8af91 | Whiteknight++ | t/pmc/ (2 files):
04:09 dalek parrot-linear-algebra: start updating nummatrix2d.t to use Kakapo. Lots of work here yet to go
04:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/af8af91690450fa316462752023ad712da12c4cd
04:30 atrodo joined #parrot
04:30 tetragon joined #parrot
04:34 mikehh joined #parrot
04:34 tetragon_ joined #parrot
04:36 parthm joined #parrot
05:06 plobsing_ joined #parrot
05:10 parthm left #parrot
05:13 bubaflub joined #parrot
05:41 kurahaupo joined #parrot
05:50 sorear joined #parrot
06:37 plobsing joined #parrot
08:21 sorear Is it possible for code which is called from deep inside a PMC vtable method to call back into Parrot code?  (for binding to C libraries with callbacks)
09:00 iblechbot joined #parrot
09:02 payload joined #parrot
09:15 payload joined #parrot
09:18 chromatic sorear, see Parrot_pcc_invoke_sub_from_c_args
09:20 sorear I see.  How does this interact with continuations, in particular continuations that return more than once?
09:49 chromatic The same way anything you invoke from C interacts with C.
09:54 sorear I don't quite follow
09:55 sorear Parrot_pcc_invoke_sub_from_c_args; free(tmp); /* is this a double free waiting to happen? */
10:00 chromatic You invoke a Parrot sub from C.
10:00 chromatic It returns to C.
10:00 chromatic You decide what happens next.
10:01 sorear chromatic: I invoke a Parrot sub from C.  It captures the current continuation somehow.  It returns to C twice.  The next line of code is executed twice, causing a double free.
10:01 payload joined #parrot
10:02 chromatic Why does it return to C twice?
10:03 sorear Because it stores the continuation somewhere and calls it again after already having returned once
10:03 sorear Or are Parrot continuations only usable once?
10:03 chromatic They're full continuations.
10:03 chromatic If you capture them, you can invoke them as many times as you like.
10:04 chromatic Once Parrot has returned to C, how does Parrot magically invoke that continuation again?
10:05 sorear Because the C code might call Parrot again
10:06 chromatic Yes, with either a new continuation you've created for calling into Parrot or an existing continuation you've retained for calling into Parrot again.
10:07 sorear (define evil (if (not-nil? storedcont) (storedcont) (call/cc (lambda k (set! storedcont k)))))
10:07 chromatic Why is that evil?
10:07 sorear Parrot_invoke_blah("evil"); printf("How many times is this printed?"); Parrot_invoke("evil")
10:08 chromatic One time.
10:08 purl one time is enough
10:08 sorear Why
10:08 sorear The continuation is saved
10:08 chromatic Parrot's continuations don't capture C's control flow.  Why would they?  (Better yet, *how* would they?)
10:08 payload joined #parrot
10:08 sorear Because I don't see how they *couldn't*
10:09 chromatic Why would they?  They have nothing to do with C calling conventions, because C doesn't support continuations.
10:09 sorear After the second call to evil, if parrot doesn't return to C again, where does control transfer to?
10:09 chromatic It returns to C again, after the second function call to C.
10:09 chromatic Just like calling any other C function.
10:10 sorear But the return continuation which would have caused the second call to return, was discarded
10:12 chromatic I don't know how to respond to that.
10:13 chromatic Perhaps you can tell me why you think that is the case and I can tell you how Parrot works.
10:15 sorear consider the case of continuations used to implement (cooperative) multithreading
10:15 chromatic Sure, I know how that works.
10:15 sorear now there's a parrot function coop_thread_yield() which captures the current continuation, attaches it to the current thread, and restores the continuation for the next thread
10:16 sorear now suppose you have a couple long C functions which call coop_thread_yield in the middle
10:16 sorear both of them have activation records; how does Parrot switch between them
10:16 chromatic The C functions?
10:16 purl the c functions are generally byte string operators
10:17 sorear Yes, the C functions.
10:17 purl the c functions are generally byte string operators
10:17 chromatic Parrot doesn't.
10:17 chromatic Parrot's not in charge of however you call into libparrot.
10:17 sorear What does Parrot do instead?
10:17 sorear In the presense of continuational control flow, how does Parrot_call know when to return?
10:18 chromatic It invokes the appropriate return continuation and returns to C.
10:18 chromatic Or, more precisely, the little state machine which implements Parrot ops hits the invoke op for the return continuation created when you called Parrot_call and exits the state machine.
10:19 sorear What happens if the wrong return continuation is hit?
10:19 sorear C -> Parrot -> save continuation here -> C -> Parrot -> invoke saved continuation
10:20 chromatic Then you get to keep both pieces as a reminder not to do silly things.
10:20 chromatic Let me be clear.
10:20 allison joined #parrot
10:20 chromatic What makes you think Parrot_call saves the state of the C stack?
10:21 sorear Nothing, which is precisely what makes me wonder about the semantics involved
10:21 chromatic What makes you think Parrot continuations care about the C stack?
10:21 chromatic Because they don't.
10:21 sorear If Parrot_call did save the C stack, things would be simpler (and wrong)
10:21 sorear simpler to explain that is
10:21 sorear to me
10:22 chromatic Parrot_call is a C call which follows C's calling conventions.
10:22 chromatic When does it return?  When C thinks it returns.
10:22 sorear Next question: s/continuations/exceptions/
10:23 chromatic If Parrot invokes the "wrong" return continuation, that's something you did wrong within Parrot.
10:23 chromatic That has nothing to do with C.
10:23 chromatic That has nothing to do with *where* you return in C.
10:23 chromatic Parrot_call does not call setjmp and there's no longjmp involved in invoking a return continuation.
10:25 sorear In other words, it is an error/bad idea/won't work to use a continuation to attempt to exit the dynamic scope of Parrot_call.
10:25 chromatic Sure it'll work.
10:26 chromatic You call Parrot_call.  It creates return continuation Alpha.  It invokes several Parrot subs.  Deep in that call graph, something invokes return continuation Alpha.
10:26 chromatic BAM.
10:26 chromatic Parrot's run out of inputs for its little state machine.
10:26 chromatic Parrot_call returns.
10:26 sorear By the dynamic scope of Parrot_call, I was including alpha
10:27 kjeldahl joined #parrot
10:27 chromatic Where's the problem then?
10:27 purl the problem then is just getting users to use it.
10:28 sorear Parrot_call never returns and the abstract view of C functions as the same as Parrot functions breaks down and you have to deal with a slightly less mathematically perfect world
10:29 chromatic Why does Parrot_call never return?
10:29 chromatic I can assure you with the full force of the Parrot test suite that it indeed does return.
10:30 sorear 02:24 < sorear> C -> Parrot -> save continuation here -> C -> Parrot -> invoke
10:30 sorear saved continuation
10:30 sorear 02:24 <@chromatic> Then you get to keep both pieces as a reminder not to do
10:30 sorear silly things.
10:30 purl silly things are missing. or just don't work.
10:30 sorear I took that to mean:
10:31 sorear The inner Parrot_call doesn't return because the continuation it's waiting for is never hit.
10:31 chromatic Parrot_call doesn't care about continuations.
10:31 sorear No, but runops does
10:31 chromatic Sure, and when runops runs out of ops to execute, it returns.
10:32 sorear but it will never run out of ops to execute, because the saved continuation pointed entirely outside of the callback
10:32 chromatic The saved continuation doesn't care about the callback.
10:33 sorear exactly
10:33 chromatic So what's the problem?
10:33 sorear there isn't one
10:33 sorear you've already explained it to me
10:34 sorear except that when I tried to explain it to you, you said I was wrong
10:34 chromatic Then why do you say " but it will never run out of ops to execute, because the saved continuation pointed entirely outside of the callback"?
10:34 sorear so now the "problem" is in your courtr
10:34 sorear chromatic: Op chains only end inside callbacks.  Leave the dynamic Parrot scope of the callback, and the op chain has no end.
10:35 chromatic Nonsense.
10:35 purl nonsense is probably http://stopgeek.com/wp-conte​nt/uploads/2007/07/sense.jpg or http://www.ratemyeverything.net/post/121​9/Bunny_with_a_Pancake_on_Its_Head.aspx
10:36 sorear ok
10:36 sorear suppose I have a function
10:37 sorear (define (exceptions-were-nih) (call/cc (lambda k (external-function (lambda () (k))))) (exceptions-were-nih))
10:37 sorear if external-function is implemented in Parrot, and calls its first argument, this is simply an infinite loops
10:38 sorear -s
10:38 chromatic Sure.
10:38 sorear if external-function is implemented in C, and Parrot works like I understand, this function leaks memory
10:38 chromatic Sure, it consumes the C stack.
10:39 sorear yes
10:39 chromatic So far so good.
10:39 sorear because the recursive calls to Parrot_call never return in C-space
10:39 chromatic Right.
10:40 chromatic But not because you're not "invoking the right return continuation", but because you're never returning from *anything*.
10:41 sorear Ok, so I was just using a different definition of "return", confusion solved
10:41 sorear now suppose I change that function to use exceptions instead of call/cc
10:42 sorear will it still leak C stack frames?
10:42 chromatic That... depends on what kind of exception handler you have.
10:43 sorear A totally vanilla unwinding try{}catch kind.
10:43 sorear I don't remember how they're spelled in Scheme
10:43 chromatic Implemented in C or in PIR?
10:43 chromatic I don't know anything about Scheme exception handling.
10:43 chromatic If it's in PIR, you're fine.
10:44 sorear Neither do I, so a change of language is in order
10:44 chromatic If it's in C, I haven't convinced myself that our current implementation is free of bugs.
10:44 sorear while(1) { try { external_func(); } catch(Exception ex) {} }
10:44 chromatic And you want to talk about the PIR equivalent of this?
10:45 sorear yes
10:45 sorear where external_func is C
10:46 chromatic That I honestly don't know.
10:46 chromatic I haven't read that code with that use case in mind.
10:46 sorear I guess I'll have to test it when my project is more advanced then
10:47 chromatic That one's tricky.
10:47 sorear easy to test though
10:47 chromatic You have to cross the C barrier backwards, with an exception at the PIR level.
10:48 sorear just put it in an infinite loop, with a small stack rlimit, and leave it running for a month
10:48 sorear *minute
10:48 sorear what a typo
10:48 purl rumour has it a typo is a bitch to run
10:48 sorear Is the PIR level the same as the HLL level in this context?
10:48 chromatic allison or Tene should know better.
10:48 chromatic Yes, it's effectively the same.
10:49 sorear goody
10:49 * sorear is mucking around with perl5/parrot binding
10:50 chromatic Yes, I'm interested to see that working.
10:53 sorear so am I
10:54 sorear I wanted to use perl5 from perl6, johnathan said he needed a perl5 guts expert, no knowledge of Parrot required, hey I fit the bill
10:55 chromatic Things shouldn't be too awful.  See ext/Parrot-Embed/ in the Parrot source distribution for some starters.
10:55 sorear yeah, starters I need
11:00 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32648) at r44906 - Ubuntu 9.10 amd64 (g++ with --optimize)
11:00 sorear mm
11:00 sorear interesting
11:06 sorear though I want to do better :)
11:10 fperrad joined #parrot
11:37 payload joined #parrot
11:45 bacek joined #parrot
12:08 iblechbot joined #parrot
12:25 dalek blizkost: e8b44cd | (Stefan O'Rear)++ | docs/SEMANTICS:
12:25 dalek blizkost: Add a design draft
12:25 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​e8b44cd4dab798e24f7abbb98bb68170993e60fe
12:27 sorear where do I tell dalek that I'm actually sorear
12:59 payload joined #parrot
13:16 Whiteknight joined #parrot
13:21 joeri joined #parrot
13:35 mikehh joined #parrot
13:53 dalek parrot-linear-algebra: c658172 | Whiteknight++ | t/pmc/nummatrix2d.t:
13:53 dalek parrot-linear-algebra: more updates for nummatrix2d.t. Still not complete
13:54 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/c6581725fc8e47b8463334e63ee011e960585894
14:06 kid51 joined #parrot
14:24 payload joined #parrot
14:33 ruoso joined #parrot
15:31 TiMBuS joined #parrot
15:36 dalek rakudo: a078e49 | masak++ | src/core/Any-str.pm:
15:36 dalek rakudo: [Any-str] format should be hexadecimal, not float
15:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​078e497ded8165b83ff1bc5e3d5e0d59fc90255
15:54 fperrad joined #parrot
16:14 theory joined #parrot
16:30 ash_ joined #parrot
16:44 dolmen joined #parrot
17:14 brooksbp joined #parrot
17:19 Patterner joined #parrot
17:22 brooksbp joined #parrot
17:25 tetragon joined #parrot
17:40 dalek blizkost: 1dd01ce | (Stefan O'Rear)++ | docs/SEMANTICS:
17:40 dalek blizkost: Braindump insights on generic HLL protocol
17:40 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​1dd01ce0de16c9451f5d7c338524dbfee4754762
17:40 bubaflub joined #parrot
17:57 chromatic joined #parrot
19:18 bacek joined #parrot
19:43 bacek ~~
19:43 bacek Morning
19:59 dalek rakudo: 3ddd002 | jonathan++ | src/ (3 files):
19:59 dalek rakudo: Implement 'use MONKEY_TYPING'; augment and supersede are now forbidden without it. Infinitesimally small chance of entire works of Shakespeare being written as a side effect.
19:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​ddd00236bebbe1c1fad0cbd0fc80f15243cf996
20:28 bacek msg cotto opsc now in same stage as before grammar changes - failing pct/complete_workflow.
20:28 purl Message for cotto stored.
20:28 dalek parrot: r44907 | bacek++ | branches/ops_pct/compilers/ops​c/src/Ops/Compiler/Actions.pm:
20:28 dalek parrot: Fix handling of 'restart NEXT'
20:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44907/
20:28 dalek parrot: r44908 | bacek++ | branches/ops_pct (2 files):
20:28 dalek parrot: Use 'goto ADDRESS' in find_method. 'restart ADDRESS' is broken in trunk
20:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44908/
20:38 payload joined #parrot
20:39 davidfetter joined #parrot
20:43 dukeleto 'ello
20:43 davidfetter oh hai
20:44 dalek parrot: r44909 | bacek++ | branches/ops_pct/compilers/opsc/TODO:
20:44 dalek parrot: Update TODO.
20:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44909/
20:54 mikehh bacek: ops_pct branch - make corevm/make coretest PASS, make test FAIL - t/compilers/pct/complete_workflow.t
20:55 mikehh still need to work on codetest
20:57 mikehh got a lot of it but problems with nqp files
20:58 mikehh and of course testing generated files
21:13 bubaflub joined #parrot
21:14 dalek tracwiki: v17 | dukeleto++ | AllHackathons
21:14 dalek tracwiki: http://trac.parrot.org/parrot/wiki/All​Hackathons?version=17&amp;action=diff
21:14 dalek tracwiki: v1 | dukeleto++ | OpenSourceBridge2010Hackathon
21:14 dalek tracwiki: http://trac.parrot.org/parrot/wiki/OpenSource​Bridge2010Hackathon?version=1&amp;action=diff
21:17 dukeleto cardinal?
21:17 purl rumour has it cardinal is http://mail.freesoftware.fsf​.org/pipermail/cardinal-dev/ or the Ruby-on-Parrot project. or http://xrl.us/uyz3
21:17 dukeleto languages?
21:17 purl somebody said languages was https://trac.parrot.org/parrot/wiki/Languages or http://icanhaz.com/parrotlang
21:18 dukeleto http://cardinal2.rubyforge.org/ is sorely out of date
21:18 Tene dukeleto: http://github.com/cardinal/cardinal/
21:18 bubaflub afternoon dukeleto
21:20 dukeleto bubaflub: howdy
21:20 purl hey, dukeleto.
21:21 dukeleto Tene: yes, but if you search for "cardinal parrot" on google, that link comes up first and the github link is nowhere to be found
21:21 Tene that's unfortunate
21:22 dukeleto Tene: yes
21:23 davidfetter any way to take that rubyforge link down?
21:23 Tene treed: SEO better!
21:23 Tene davidfetter: maybe ask tewk...
21:24 Tene tewk: any way to take http://cardinal2.rubyforge.org/ down, do you know?
21:24 * davidfetter wonders whether mr. tew is around
21:24 treed Huh?
21:24 treed I SEO like shit.
21:25 Tene Exactly.
21:26 treed Actually.
21:26 treed I have time to work on shit now.
21:26 treed I probably should.
21:27 treed You needed test cases for exceptions and subclassing, yeah?
21:27 Tene treed: maybe we should work on Cardinal when I visit on Friday.
21:27 Tene treed: Yeah.  They work in the exceptions_refactor branch.
21:28 treed No tests yet?
21:28 treed By they you mean both?
21:28 treed Or just exceptions?
21:28 Tene Erm, what do you mean "both"?  Subclassing works in general, it's just specific cases where it doesn't.
21:29 treed Subclassing Class?
21:29 Tene subclassable exceptions work in that branch.
21:29 Tene No, that doesn't work anywhere.
21:29 treed Yeah.
21:29 Tene And afaik, it's not tested either.
21:29 treed That's what I was asking about.
21:30 Tene there's been some discussion on parrot-dev recently about how it might be mixed.
21:30 Tene fixed.
21:30 Tene But nobody's working on it yet.
21:30 treed I think I'm ready to abandon the has-a approach.
21:30 treed It's just too hard to work on.
21:30 treed Too many levels and directions of indirection to keep in my head at once.
21:31 dalek tracwiki: v2 | dukeleto++ | OpenSourceBridge2010Hackathon
21:31 dalek tracwiki: http://trac.parrot.org/parrot/wiki/OpenSource​Bridge2010Hackathon?version=2&amp;action=diff
21:38 treed I'm not actually sure how to get at that branch.
21:39 Tene git checkout -b er exceptions_refactor
21:39 Tene if using git
21:39 treed git svn
21:39 Tene svn co https://.../branches/exceptions_refactor
21:39 Tene if using svn
21:39 Tene Yeah.
21:39 treed k
21:39 treed Actually.
21:39 treed No, it is svn
21:39 purl okay, treed.
21:39 treed purl forgot it
21:39 purl treed: what?
21:39 treed purl forget it
21:39 purl treed: I forgot it
21:40 Tene purl: gdiaf
21:40 purl Tene: huh?
21:40 treed I really wish I knew how to fix this HD issue without buying a new HD.
21:40 treed I'm pretty certain it's just contention.
21:40 treed But it shouldn't be this bad.
21:41 Tene use ionice on the non-interactive disk-using apps?
21:41 treed OS X
21:42 treed I mean, I can't listen to music and browse the web at the same time without things stuttering.
21:42 Tene ouch
21:42 treed It didn't do this before.
21:43 treed Spotlight is completely disabled because it made things even worse.
21:43 treed May just need a new HD, but I also just want to replace the laptop wholesale.
21:43 treed I just need to save more.
21:58 chromatic msg whiteknight See r44911; I think we're very close.  The interaction of :vtable and :method might not be quite right yet though.
21:58 purl Message for whiteknight stored.
21:58 hercynium joined #parrot
22:06 dalek parrot: r44910 | chromatic++ | branches/tt389_fix/src/pmc/pmcproxy.pmc:
22:06 dalek parrot: [PMC] Tidied some code in PMCProxy; no functional changes.
22:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44910/
22:06 dalek parrot: r44911 | chromatic++ | branches/tt389_fix/src (4 files):
22:06 dalek parrot: [OO] Made second stage class initialization create a PMCProxy for all intrinsic
22:06 dalek parrot: PMC types and made intrinsic method registration use that proxy.  Several tests
22:06 dalek parrot: fail, but this is closer to fixing TT #389.
22:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44911/
22:19 dukeleto we have a hackathon planned for OSBridge: http://opensourcebridge.org/20​10/wiki/HackerLoungeHackathons
22:20 dalek tracwiki: v3 | dukeleto++ | OpenSourceBridge2010Hackathon
22:20 dalek tracwiki: http://trac.parrot.org/parrot/wiki/OpenSource​Bridge2010Hackathon?version=3&amp;action=diff
22:20 dalek tracwiki: v1 | dukeleto++ | OSCON2010Perl6Hackathon
22:20 dalek tracwiki: http://trac.parrot.org/parrot/wiki/OSCON20​10Perl6Hackathon?version=1&amp;action=diff
22:34 dalek rakudo: 5ec16a7 | jonathan++ | src/core/ (4 files):
22:34 dalek rakudo: Get several more cases of smart-matching to work again.
22:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​ec16a7798c50b602cb810ec39336e647a0df76e
22:34 dalek rakudo: 8edd6c9 | jonathan++ | t/spectest.data:
22:34 dalek rakudo: Turn five more test files on again.
22:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​edd6c934d6933e320f3a5104c606e7d1037a6e4
22:34 kid51 joined #parrot
22:38 dalek parrot: r44912 | mikehh++ | branches/ops_pct/lib/Parrot/Ops2c/Utils.pm:
22:40 dalek parrot: tidy up Utils.pm to conform to coding standards a bit more
22:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44912/
22:40 dalek parrot: r44913 | mikehh++ | failed to fetch changeset:
22:40 dalek parrot: replace generated files
22:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44913/
23:13 dalek parrot: r44914 | mikehh++ | branches/ops_pct/lib/Parrot/Distribution.pm:
23:13 dalek parrot: put core_ops files in exemptions
23:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44914/
23:29 dalek parrot: r44915 | mikehh++ | branches/ops_pct/t/codingstd/linelength.t:
23:29 dalek parrot: put src/ops/core_ops.c in ignored files
23:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44915/
23:38 dalek rakudo: 04102ca | jonathan++ | src/ (3 files):
23:38 dalek rakudo: Get $x.Foo::bar method syntax working again, minus a bug the version in alpha had.
23:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​4102ca84d4a5d7651ecd0c5fad01f4a0be9e854
23:38 dalek rakudo: 3282274 | jonathan++ | t/spectest.data:
23:38 dalek rakudo: Turn back on two inheritance related test files.
23:38 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​28227447f920434edfc389adf4ed82276312032
23:45 dalek parrot: r44916 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops (2 files):
23:45 dalek parrot: remove trailing spaces
23:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44916/
23:58 kurahaupo joined #parrot

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

Parrot | source cross referenced