Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 January 2012.
cotto one of the faces on open-advice.org looks familiar 00:00
00:02 jevin joined
whiteknight hello Util 00:07
cotto: yes, that's an awfully leto-looking handsome man
00:14 bluescreen_ joined
bacek_at_work whiteknight, ping 00:34
whiteknight pong
bacek_at_work whiteknight, you did ask about better alternative for PMC VTABLE. Have a look at PackFile "vtable" functions. 00:35
I prefer this approach when we have "properly typed objects"
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"
or look at 6model
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
whiteknight, not true
6model has special methods (similar to our vtables) for something like get_int/_str/_num
whiteknight okay, so different roles implement different vtables?
bacek_at_work yes
whiteknight I like that 00:38
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
bacek_at_work in C code we pass specific part of Foo instead of generic PMC
whiteknight ok
that makes sense for the lowest-level PMCs. I really think we need fewer PMCs at that level 00:40
bacek_at_work PMC should die 00:41
we need GCable role 00:42
and 6Object
GCable { mark(); destroy() }
6Object { find_method() } 00:43
and PMC can be something like PMC does GCable does 6Object { init() }
or 6object can be "does GCable"
benabik GCable is probably part of the REPR in 6modelworld 00:44
bacek_at_work benabik, hmm. May be. 00:45
I just don't want to see big-fat PMC.
Not on VM level
Not on C level
whiteknight does it make sense to have an object that isn't GCable?
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?
This is the question
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
bacek_at_work whiteknight, I disagree. 00:49
whiteknight for small fixed-size things?
bacek_at_work whiteknight, for them as well.
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:56
The high-level interface of 6model is already good, so we can hide changes behind that 00:57
02:56 woosley joined 03:18 benabik joined 03:20 nbezzala joined 03:53 Psyche^ joined 04:52 nbezzala joined 04:59 Psyche^ joined 05:28 Psyche^ joined 05:30 wagle joined 05:55 Psyche^ joined 05:59 losinggeneration joined 06:28 Timbus joined 06:41 Psyche^ joined 07:56 PacoAir joined 08:37 mj41 joined 08:57 woosley joined 09:20 fperrad joined 09:22 lucian joined 09:47 jsut_ joined
moritz how do I move files in parrot? 10:01
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:04
10:05 woosley joined
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␤»
moritz nom: pir::set__PS('os').rename('foo', 'bar'); 1
p6eval nom 33fb02: OUTPUT«Null PMC access in set_string_native()␤ in block <anon> at /tmp/OteMxtgtA6:1␤ in <anon> at /tmp/OteMxtgtA6:1␤»
moritz nom: my str $x = 'foo'; pir::set__PS('os').rename($x, $x);
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␤»
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␤»
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␤»
moritz it helps to use the right op :-)
masak heh ;) 10:22
11:19 woosley joined 12:15 PacoAir joined 12:34 bluescreen joined 12:38 benabik joined
benabik o/ #parrot 12:48
moritz \\o benabik 12:50
benabik moritz: How's things? 12:51
moritz kinda ok
benabik Well, that's kinda good. :-/ 12:53
moritz :-)
what about you?
benabik I'm limping less than last week, so that's progress. :-D 12:54
moritz progress++ 12:55
dalek kudo/nom: 8c84b8e | moritz++ | src/core/ (2 files):
implement &rename

  ... until we get the real thing.
13:03
kudo/nom: 96ef170 | moritz++ | src/SAFE.setting:
mask &rename in SAFE.setting
13:33
kudo/nom: 0dc3384 | moritz++ | tools/build/Makefile.in:
missing dependency in Makefile
13:53 benabik joined 14:34 jwilliams joined
jwilliams is parrot vm based on shared memory model? 14:45
benabik jwilliams: Not completely sure what you mean, but I bet the answer is now. 14:46
*no
jwilliams I read that (parrot.org/content/hybrid-threads) parrot using hybrid thread. so it looks like it has green thread. is it event based? 14:51
benabik I'm not completely up to date on the threading work, sadly. 14:53
Last I knew, we only had the green threads.
Which do share memory. They were originally only co-operative, not sure if pre-emption got in there.
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?
benabik scheduler.c, at least.
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.
nine and whiteknight were the ones working on it, IIRC
dalek kudo/nom: 925e3cd | moritz++ | src/core/List.pm:
return Nil for ().pick and .roll (RT #110038)
15:23 dmalcolm joined 15:24 jwilliams1 joined 15:46 Psyche^ joined 15:49 jwilliams1 left 16:03 contingencyplan joined
dukeleto ~~ 16:23
16:25 wagle joined 17:20 slavorg joined 17:57 bluescreen joined
cotto ~~ 18:14
dalek kudo/nom: 9d8b140 | moritz++ | src/ (3 files):
implement &copy
18:30
18:39 lucian joined
dalek kudo/nom: 3808f94 | moritz++ | src/core/Exceptions.pm:
awesomize error messages, PerlJam++
18:40
18:42 mj41 joined
dalek kudo/nom: d69ad77 | moritz++ | src/core/IO.pm:
fix class name, kboga++
19:23
19:30 jsut joined
cotto #ps in now 19:32
dalek kudo/nom: a0a467a | moritz++ | src/core/IO.pm:
fix previous commit, moritz--
19:34
20:06 lucian joined
aloha (parrot/parrot) Issues opened : 713 (Need more reliable file moving capabilities) by moritz : github.com/parrot/parrot/issues/713 20:12
20:50 perlite_ joined
dalek kudo/nom: 0711f9f | moritz++ | src/ (2 files):
X::Undeclared errors for undeclared variables
20:59
22:13 bluescreen joined 23:10 whiteknight joined
whiteknight good evening, #parrot 23:10
benabik o/ whiteknight 23:19
whiteknight howdy, benabik 23:20
I wasn't aware that the rename() call wouldn't just do the right thing 23:23
Sometimes I am shocked and disappointed by the inability of basic tools to just do the right thing
benabik Eh. To some extent, erring with EXDEV is a useful thing. 23:25
Renaming on the same device is generally atomic.
No such guarantees cross-device.
whiteknight we do throw some kind of exception on rename failure 23:35
at least, we're supposed to
23:40 jlaire joined