Camelia, the Perl 6 bug

IRC log for #parrot, 2012-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:00 cotto one of the faces on http://open-advice.org looks familiar
00:02 jevin joined #parrot
00:07 whiteknight hello Util
00:07 whiteknight cotto: yes, that's an awfully leto-looking handsome man
00:14 bluescreen_ joined #parrot
00:34 bacek_at_work whiteknight, ping
00:34 whiteknight pong
00:35 bacek_at_work whiteknight, you did ask about better alternative for PMC VTABLE. Have a look at PackFile "vtable" functions.
00:35 bacek_at_work I prefer this approach when we have "properly typed objects"
00:36 whiteknight bacek_at_work: what do you mean? They only have like 5 function pointers
00:36 bacek_at_work whiteknight, they are "class specific"
00:36 bacek_at_work or look at 6model
00:37 whiteknight bacek_at_work: then why have "vtables" at all? Just use find_method and have methods
00:37 bacek_at_work in the nutshell - we should have set of specific functions for specific tasks
00:37 bacek_at_work whiteknight, not true
00:37 bacek_at_work 6model has special methods (similar to our vtables) for something like get_int/_str/_num
00:37 whiteknight okay, so different roles implement different vtables?
00:37 bacek_at_work yes
00:38 whiteknight I like that
00:39 bacek_at_work e.g. "Foo does GCable does Invokable does Blah"
00:39 whiteknight since most of our vtables are arithmetic-related, and most of our PMCs aren't numeric types, that makes a lot of sense
00:39 bacek_at_work in C code we pass specific part of Foo instead of generic PMC
00:39 whiteknight ok
00:40 whiteknight that makes sense for the lowest-level PMCs. I really think we need fewer PMCs at that level
00:41 bacek_at_work PMC should die
00:42 bacek_at_work we need GCable role
00:42 bacek_at_work and 6Object
00:42 bacek_at_work GCable { mark(); destroy() }
00:43 bacek_at_work 6Object { find_method() }
00:43 bacek_at_work and PMC can be something like PMC does GCable does 6Object { init() }
00:43 bacek_at_work or 6object can be "does GCable"
00:44 benabik GCable is probably part of the REPR in 6modelworld
00:45 bacek_at_work benabik, hmm. May be.
00:45 bacek_at_work I just don't want to see big-fat PMC.
00:45 bacek_at_work Not on VM level
00:45 bacek_at_work Not on C level
00:45 whiteknight does it make sense to have an object that isn't GCable?
00:46 benabik C structs that are managed by an external library?
00:46 bacek_at_work does it make sense to have GCable that isn't Object?
00:46 bacek_at_work This is the question
00:48 benabik The GC probably wants to, at some level, just worry about memory regions.  No reason to have a large amount of data attached to the backing data on a buffer, for example.
00:48 whiteknight bacek_at_work: probably not
00:49 bacek_at_work whiteknight, I disagree.
00:49 whiteknight for small fixed-size things?
00:49 bacek_at_work whiteknight, for them as well.
00:56 whiteknight I want to get started on 6model soon. I'm thinking a straight-forward copy+paste merge first, then we can start rearranging PMC internals to use it better
00:57 whiteknight The high-level interface of 6model is already good, so we can hide changes behind that
02:56 woosley joined #parrot
03:18 benabik joined #parrot
03:20 nbezzala joined #parrot
03:53 Psyche^ joined #parrot
04:52 nbezzala joined #parrot
04:59 Psyche^ joined #parrot
05:28 Psyche^ joined #parrot
05:30 wagle joined #parrot
05:55 Psyche^ joined #parrot
05:59 losinggeneration joined #parrot
06:28 Timbus joined #parrot
06:41 Psyche^ joined #parrot
07:56 PacoAir joined #parrot
08:37 mj41 joined #parrot
08:57 woosley joined #parrot
09:20 fperrad joined #parrot
09:22 lucian joined #parrot
09:47 jsut_ joined #parrot
10:01 moritz how do I move files in parrot?
10:04 moritz it seems that both os and file dynpmcs offer a 'rename', but I guess they have the same limitations as perl 5's rename function?
10:05 woosley joined #parrot
10:07 moritz nom: pir::set__PS('os').rename('foo', 'bar')
10:07 p6eval nom 33fb02: OUTPUT«Null PMC access in set_string_native()␤  in block <anon> at /tmp/UxbTmXuT5N:1␤  in <anon> at /tmp/UxbTmXuT5N:1␤»
10:07 moritz nom: pir::set__PS('os').rename('foo', 'bar'); 1
10:07 p6eval nom 33fb02: OUTPUT«Null PMC access in set_string_native()␤  in block <anon> at /tmp/OteMxtgtA6:1␤  in <anon> at /tmp/OteMxtgtA6:1␤»
10:07 moritz nom: my str $x = 'foo'; pir::set__PS('os').rename($x, $x);
10:07 p6eval nom 33fb02: OUTPUT«set_string_native() not implemented in class 'Str'␤  in block <anon> at /tmp/U_Hp_pptm7:1␤  in <anon> at /tmp/U_Hp_pptm7:1␤»
10:20 moritz nom: my str $x = 'foo'; pir::set__PS('OS').rename($x, $x);
10:20 p6eval nom 33fb02: OUTPUT«set_string_native() not implemented in class 'Str'␤  in block <anon> at /tmp/BZx1zG7GHx:1␤  in <anon> at /tmp/BZx1zG7GHx:1␤»
10:21 moritz nom: my str $x = 'foo'; pir::new__PS('OS').rename($x, $x);
10:21 p6eval nom 33fb02: OUTPUT«rename failed: No such file or directory␤  in block <anon> at /tmp/KOqz0Sj5Ps:1␤  in <anon> at /tmp/KOqz0Sj5Ps:1␤»
10:21 moritz it helps to use the right op :-)
10:22 masak heh ;)
11:19 woosley joined #parrot
12:15 PacoAir joined #parrot
12:34 bluescreen joined #parrot
12:38 benabik joined #parrot
12:48 benabik o/ #parrot
12:50 moritz \o benabik
12:51 benabik moritz: How's things?
12:51 moritz kinda ok
12:53 benabik Well, that's kinda good.  :-/
12:53 moritz :-)
12:53 moritz what about you?
12:54 benabik I'm limping less than last week, so that's progress.  :-D
12:55 moritz progress++
13:03 dalek rakudo/nom: 8c84b8e | moritz++ | src/core/ (2 files):
13:03 dalek rakudo/nom: implement &rename
13:03 dalek rakudo/nom:
13:04 dalek rakudo/nom: ... until we get the real thing.
13:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c84b8ed97
13:33 dalek rakudo/nom: 96ef170 | moritz++ | src/SAFE.setting:
13:33 dalek rakudo/nom: mask &rename in SAFE.setting
13:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/96ef170ae2
13:33 dalek rakudo/nom: 0dc3384 | moritz++ | tools/build/Makefile.in:
13:33 dalek rakudo/nom: missing dependency in Makefile
13:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0dc3384527
13:53 benabik joined #parrot
14:34 jwilliams joined #parrot
14:45 jwilliams is parrot vm based on shared memory model?
14:46 benabik jwilliams: Not completely sure what you mean, but I bet the answer is now.
14:46 benabik *no
14:51 jwilliams I read that (http://parrot.org/content/hybrid-threads) parrot using hybrid thread. so it looks like it has green thread. is it event based?
14:53 benabik I'm not completely up to date on the threading work, sadly.
14:53 benabik Last I knew, we only had the green threads.
14:53 benabik Which do share memory.  They were originally only co-operative, not sure if pre-emption got in there.
14:55 * benabik digs around with git-log
14:55 jwilliams which part i can start from if i want to looks into the source about that?
14:55 benabik scheduler.c, at least.
14:56 jwilliams thanks you.
14:56 benabik Looks like preemption was installed.  I think it's just time based though.  (Would be happy to be wrong.
14:56 benabik nine and whiteknight were the ones working on it, IIRC
14:56 dalek rakudo/nom: 925e3cd | moritz++ | src/core/List.pm:
14:56 dalek rakudo/nom: return Nil for ().pick and .roll (RT #110038)
14:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/925e3cd0fd
15:23 dmalcolm joined #parrot
15:24 jwilliams1 joined #parrot
15:46 Psyche^ joined #parrot
15:49 jwilliams1 left #parrot
16:03 contingencyplan joined #parrot
16:23 dukeleto ~~
16:25 wagle joined #parrot
17:20 slavorg joined #parrot
17:57 bluescreen joined #parrot
18:14 cotto ~~
18:30 dalek rakudo/nom: 9d8b140 | moritz++ | src/ (3 files):
18:30 dalek rakudo/nom: implement &copy
18:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d8b140d57
18:39 lucian joined #parrot
18:40 dalek rakudo/nom: 3808f94 | moritz++ | src/core/Exceptions.pm:
18:40 dalek rakudo/nom: awesomize error messages, PerlJam++
18:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3808f94670
18:42 mj41 joined #parrot
19:23 dalek rakudo/nom: d69ad77 | moritz++ | src/core/IO.pm:
19:23 dalek rakudo/nom: fix class name, kboga++
19:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d69ad77a1d
19:30 jsut joined #parrot
19:32 cotto #ps in now
19:34 dalek rakudo/nom: a0a467a | moritz++ | src/core/IO.pm:
19:34 dalek rakudo/nom: fix previous commit, moritz--
19:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a0a467a890
20:06 lucian joined #parrot
20:12 aloha (parrot/parrot) Issues opened : 713 (Need more reliable file moving capabilities) by moritz : https://github.com/parrot/parrot/issues/713
20:50 perlite_ joined #parrot
20:59 dalek rakudo/nom: 0711f9f | moritz++ | src/ (2 files):
20:59 dalek rakudo/nom: X::Undeclared errors for undeclared variables
20:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0711f9f510
22:13 bluescreen joined #parrot
23:10 whiteknight joined #parrot
23:10 whiteknight good evening, #parrot
23:19 benabik o/ whiteknight
23:20 whiteknight howdy, benabik
23:23 whiteknight I wasn't aware that the rename() call wouldn't just do the right thing
23:23 whiteknight Sometimes I am shocked and disappointed by the inability of basic tools to just do the right thing
23:25 benabik Eh.  To some extent, erring with EXDEV is a useful thing.
23:25 benabik Renaming on the same device is generally atomic.
23:25 benabik No such guarantees cross-device.
23:35 whiteknight we do throw some kind of exception on rename failure
23:35 whiteknight at least, we're supposed to
23:40 jlaire joined #parrot

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

Parrot | source cross referenced