|
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 © |
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
|
|||