|
Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Test imcc_interfaces and annotations-tree branches Set by moderator on 31 January 2011. |
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8094) fulltest) at 3_0_0-497-g4c0e404 - Ubuntu 10.10 i386 (g++-4.5) | 00:02 | |
| dukeleto | ~~ | 00:10 | |
| mikehh | bacek_at_work: got a bunch of codetest failures in generational_gc branch, you want me to fix (except mabe c++ comments) | ||
| cotto_work | hi dukeleto | ||
| dukeleto | cotto_work: wazzup | 00:15 | |
| we have a release tomorrow, eh? | 00:17 | ||
| cotto_work | a week from tomorrow | ||
| dukeleto | ah, that makes more sense | 00:18 | |
| cotto_work | you must be living in the future | ||
| dukeleto is from THE FUTURE | |||
| dukeleto also FIGHTS FOR THE USERS | |||
| dukeleto just got back from the new Tron movie | |||
| dalek | p-rx/nom: 6e82a8e | jonathan++ | / (4 files): First cut at role summation, so a class can do multiple roles (and if this works then probably so does roles doing roles). Took a couple of liberties since NQP doesn't have roles with anything other than $?CLASS being generic. Can beat my brane up with the harder case when doing Rakudo's meta-objects. |
00:19 | |
| Tene | dukeleto: I very much enjoyed it. You too? | ||
| dukeleto | Tene: indeed. It has many subtle jokes | ||
| TimToady | no spoilers! | 00:20 | |
| cotto_work | +1 | ||
| Tene | I never actually saw the original, fwiw. | ||
| dukeleto | Tene: i don't remember it, if that is worth anything :) | ||
| cotto_work | The original was novel mostly for the way it was filmed, iirc. It didn't seem that special to me, not remembering having seen it growing up. | 00:21 | |
| dukeleto saw the 3D version | 00:23 | ||
| 2D isn't enough D | |||
| dalek | p-rx/nom: 2b9c270 | jonathan++ | t/nqp/56-role.t: Some basic tests for roles, especially $?CLASS genericity. |
00:29 | |
| p-rx/nom: 67623b5 | jonathan++ | t/nqp/56-role.t: Few more tests. |
00:33 | ||
|
00:33
kid51 is now known as kid51_at_dinner
|
|||
| cotto_work | I'm holding out for the 4D version. | 00:34 | |
| dukeleto | cotto_work: how is your lorito spec'ing ? | 00:39 | |
| Ok, who *actually* understands parser derivatives ? | 00:40 | ||
| TimToady: is there a Zen koan for understanding all the different types of parsers and how they compare and contrast? | 00:41 | ||
| TimToady | Yes, there's a koan for that, but no one knows it. | 00:42 | |
| dukeleto | TimToady: i figured | 00:43 | |
| TimToady: the palimpset that it was written on now contains the source code to Windows 3.1 in Braille, probably. | 00:44 | ||
| TimToady | the Braille was probably printed with an Uzi, in fact | ||
| dukeleto laughed so hard he hurt himself | 00:45 | ||
|
00:46
kid51_at_dinner is now known as kid51
|
|||
| kid51 | (dinner not ready yet) | 00:47 | |
| arnsholt | dukeleto: Jeffrey Kegler on blogs.perl.org has written a fair amount about different kinds of parsers | 00:48 | |
| (If you haven't already read his posts) | |||
| dukeleto | arnsholt: i'm not sure, the name sounds familiar | 00:49 | |
| arnsholt | He's the author of Parse::Marpa on CPAN, a sophisticated Earley parser module | 00:50 | |
| Parses many kinds of CFG in linear time, apparently | |||
| He's also written a bit about how Perl 5 is parsed, and why he doesn't like yacc | 00:51 | ||
| dukeleto | arnsholt: ah yes, i have been reading his stuff, but haven't looked at the code | 00:52 | |
| whiteknight | dukeleto: I understand the theory of parser derivatives | 00:56 | |
| never put one together in practice | |||
|
00:59
lucian_ left
|
|||
| dukeleto | whiteknight: i guess i should just read the original paper i have laying around somewhere | 01:00 | |
| whiteknight | it's a.....complicated read | 01:01 | |
|
01:11
kid51 is now known as kid51_at_dinner_mor
01:16
dmalcolm left
01:54
adu joined
|
|||
| dalek | rrotsharp: 3337dab | Whiteknight++ | README.markdown: add a README |
02:03 | |
| bacek_at_work | mikehh, go for it. | 02:04 | |
|
02:14
kid51_at_dinner_mor is now known as kid51
02:18
jsut_ joined
02:23
jsut left
|
|||
| kid51 looks at perl 5 newsgroups for first time in several months | 02:31 | ||
| bacek_at_work | kid51, (mmd in pmc2c) Pretty much everything which much "mmd" in Pmc2c isn't used anymore. | 02:40 | |
| Parser.pm line 296. | 02:41 | ||
| (Start from this) | |||
| kid51 | k | ||
| cotto | ~~ | ||
| dalek | rrotsharp: 68517e4 | Whiteknight++ | / (8 files): Parrot_PMC is now an abstract type. Add in stubs for Interpreter, Null, and Exception PMC types |
02:44 | |
| rrotsharp: cf4fd2e | Whiteknight++ | / (3 files): remove a few more concrete references to Parrot_PMC |
|||
| rrotsharp: 4428817 | Whiteknight++ | src/Pmc/PackFile.cs: Add in a stub for PackFile |
|||
|
02:46
whiteknight left
|
|||
| dalek | rrot: db4035b | jkeenan++ | / (5 files): Move all subroutines from lib/Parrot/Pmc2c/MethodEmitter.pm to |
02:46 | |
| rrot: 58925b9 | jkeenan++ | / (5 files): Merge branch 'tt2000_methodemitter' |
|||
| cotto | dukeleto, ping | 02:52 | |
|
03:11
kid51 left
|
|||
| dalek | rrot/generational_gc: b0fb755 | bacek++ | src/pmc/class.pmc: Write-barriering Class PMC |
03:18 | |
|
03:24
benabik_away is now known as benabik
|
|||
| benabik | dukeleto: ping | 03:29 | |
| dukeleto | benabik: pong | 03:32 | |
| benabik | dukeleto: Wouldn't say I'm an expert on parser derivatives, but I've been reading up on them. | ||
| dukeleto: I understand them enough to try to implement them, but haven't yet... I'm sure lack of knowledge will appear quickly when I try. | 03:33 | ||
| dukeleto | benabik: what are thinking of using? | 03:36 | |
| benabik | dukeleto: I was actually pondering writing it in NQP... | 03:37 | |
| benabik had a dream of Perl 6 rules compiling to derivatives... | 03:38 | ||
| sorear | What are derivatives good for? | ||
| dalek | rrot/generational_gc: 80f2597 | mikehh++ | src/gc/gc_gms.c: fix c coda, update copyright, remove trailing whitespace and remove svn $Id |
||
| rrot/generational_gc: f5b275d | mikehh++ | src/gc/gc_gms.c: fix incorrect indenting in preprocessor directives |
03:39 | ||
| rrot/generational_gc: d1447d5 | mikehh++ | src/gc/gc_gms.c: fix codetest failure - c parens parentheses should not have space immediately after the opening parenthesis nor immediately before the closing parenthesis (are the parens in POBJ2GEN correct - line 128 differs from 129/130) |
|||
|
03:39
plobsing joined
|
|||
| rrot/generational_gc: 0f755c0 | mikehh++ | src/pmc.c: fix codetest failure - c parens |
|||
| dukeleto | sorear: matt.might.net/articles/parsing-wit...rivatives/ | ||
| benabik | dukeleto: Someone brought a copy of "Yacc is Dead" to my compiler class before the holidays and it's been rattling around since. | 03:40 | |
| *rattling around in my head | |||
| mikehh | bacek_at_work: just a start - need some sleep, will work on more later | 03:41 | |
| bacek_at_work | mikehh, ok | 03:44 | |
| dukeleto | sorear: they are a new structure that seems to have lots of CS people arguing | 03:46 | |
| cotto | fsvo "new" | ||
| sorear | sounds theoretically very interesting | ||
| dukeleto | cotto: touche. 1964 is "new" in terms of math, but not so much in CS ;) | 03:47 | |
| sorear | is it likely to interest people who just want to get a p6rules implementation going faster? | ||
| benabik | With appropriate memorization and laziness, they're apparently rather efficient. Although I've been pondering how tough it'll be to include zero-width assertions.. | 03:48 | |
| dukeleto | sorear: it is supposedly a much more flexible parsing tool, that can be easily modified. That is what they say, anyway | ||
| sorear: perhaps, I don't know the details of p6rules | |||
| cotto | It'd be most interesting to see what pmichaud has to say about that. | ||
| dukeleto | benabik: you might want to send some of your ideas to parrot-dev and/or perl6-compiler and you may get some free help | 03:51 | |
| benabik | dukeleto: I need to find the tuits to even start. If I can finish my compiler project, I'll have time but I'm running behind, not ahead on that one. | 03:52 | |
| dukeleto | benabik: concentrate on your project first, but just write down your ideas and keep track of them | ||
| sorear | my practical interest in exotic parsing technology comes from frustration with the speed on all current Perl 6 parsers | ||
| dukeleto | benabik: github is your friend ;) | ||
| sorear | although this seems to be a red herring at this point | 03:53 | |
| cotto | aloha, clock? | ||
| aloha | cotto: LAX: Mon, 19:53 PST / CHI: Mon, 21:53 CST / NYC: Mon, 22:53 EST / UTC: Tue, 03:53 UTC / LON: Tue, 03:53 GMT / BER: Tue, 04:53 CET / TOK: Tue, 12:53 JST / SYD: Tue, 14:53 EST | ||
| benabik | dukeleto: My idea so far is "translate scala to NQP". :-D Not sure I need a git repo to keep that one. | 03:55 | |
| dukeleto needs a git repo for everything | 03:56 | ||
| bacek_at_work | dukeleto, github.com/bacek/everything - feel free to commit everything :) | 03:57 | |
| cotto | bacek++ | 03:58 | |
| bacek_at_work | spam in TT#985 | ||
| cotto | not for long | ||
| nuked | 03:59 | ||
| thanks for reporting | |||
| There's been an upsurge recently, but we're in the fortunate place were "upsurge" means "3 spam posts in the last week". | 04:00 | ||
| benabik | I do have 64 git repos hanging around my $HOME. | ||
| cotto | Maybe we should ask for bank account numbers before we give out wiki edit bits. | ||
| benabik, there should be an achievement for that | 04:01 | ||
| benabik | I'm honestly surprised it's not higher. I've been using git for >4 years judging by my commits in git.git | ||
| Must have nuked some along the way. | 04:02 | ||
| cotto | allison, ping | 04:08 | |
|
04:17
ryan left
|
|||
| cotto | atrodo, ping | 04:25 | |
| dukeleto | benabik: there ya go github.com/bacek/everything | ||
| bacek_at_work | dukeleto, github.com/bacek/everything/commit...06d2221210 :) | 04:27 | |
| cotto | It was only a matter of time. | 04:28 | |
|
04:37
benabik is now known as benabik_away
|
|||
| dukeleto | GCI Stats: google-opensource.blogspot.com/2011...stics.html | 04:56 | |
| 75 | 05:03 | ||
| that was my keyboard falling on the ground, in case anybody was wondering :) | 05:04 | ||
| cotto | how orderly | 05:06 | |
|
05:22
simcop2387_ joined
05:24
simcop2387 left,
simcop2387_ is now known as simcop2387
|
|||
| adu | hi all | 05:29 | |
| sorear | Hello adu. | ||
| dukeleto | adu: howdy | ||
| adu | the parser is going well | 05:30 | |
| dukeleto | adu: which parser? | ||
| adu | hackage.haskell.org/package/language-go | 05:31 | |
| dukeleto | ah, the go parser | ||
| adu | anyways, now that I have a parser, I can start worrying about runtime, and I would like to use Parrot as the runtime | 05:32 | |
| dukeleto | adu: sweeeet | ||
| adu: let us know how we can help | |||
| adu | now Go is supposed to be compiled to binary, but there's no reason why it can't be bytecode/pbc | ||
| dukeleto | adu: parrot has something called "fakecutables" which is just bytecode embedding into a native OS binary | 05:33 | |
| s/embedding/embedded/ | |||
| adu | well, the parser is still iffy, it only parses like 10% of the standard go library | ||
| dukeleto: wow, I didn't know that | 05:34 | ||
| that would make for wonderful distribution ideas | |||
| hmm | |||
| well, I totally forgot about parrot in the last year or so, what should I target? PIR? PASM? PBC? | 05:36 | ||
| dukeleto | adu: target PIR, for now | 05:37 | |
| adu: from PIR, you can get PBC | |||
| adu: we are making it easier to get from PIR to PBC now, but it is still reasonable | |||
| adu: you can do parrot -o foo.pbc foo.pir | 05:38 | ||
| adu | ok | ||
| dukeleto | adu: what language are you writing the stuff that will emit PIR? haskell? | 05:39 | |
| adu | yes | 05:40 | |
| i just found hackage.haskell.org/packages/archiv...e-PIR.html | |||
| dukeleto: I might just emit text | 05:42 | ||
| dukeleto: do you like Go? | 05:46 | ||
| dukeleto | adu: i am interested to learn more about it, but i am not very familiar with it | 05:55 | |
| plobsing | adu: that hackage parrot library looks a little dated. low-numbered registers aren't assigned by convention anymore | 05:56 | |
| cotto | I wonder if audreyt had something to do with it. | ||
| dukeleto | plobsing: that looks like it will take care of a bunch of stuff for you, but like plobsing++ said, might need a little love | ||
| adu | ok, I'll try text then | ||
| dukeleto: Go is basically C + lambdas + type inference + light threads + I/O + type-switch | 05:58 | ||
| plobsing | don't forget multi-return. I loves me some multi-return. | 06:00 | |
| adu | lol | ||
| yes, I only listed about half of Go's features, of course | 06:01 | ||
|
06:02
rurban_ joined
|
|||
| adu | but anyways, the primary Go implementation (not gccgo) uses a very nonstandard customized ABI specific to Go's requirements | 06:02 | |
| as such, it doesn't work with C code (unless you do some marshalling) | 06:03 | ||
| to make matters worse, that marshaling can't be done in either C or Go, but it can be done in assembly | 06:04 | ||
| anyways, one of the reasons why I'm doing this is to have better manipulexity of Go code | 06:05 | ||
|
06:05
rurban left,
rurban_ is now known as rurban
|
|||
| dukeleto | <2 hours for OSCON proposals, in case anybody was wondering | 06:06 | |
| cotto: submitting any OSCON talks? | |||
| cotto | dukeleto, I hadn't planned on it. | 06:07 | |
| adu | I wonder if they would let me talk about how much I love Go | 06:10 | |
| dukeleto | cotto: are you planning on going to any confs this year? Perhaps we can meet up and have a little hackathon at LinuxFest NW ? | 06:19 | |
| cotto: i think i will submit some talks to that. It is pretty close to you, right? | |||
| cotto checks | 06:20 | ||
| it's a little closer than Portland | 06:22 | ||
| bacek_at_work | cotto, I would like to put (do nothing for now) PARROT_GC_WRITE_BARRIER macro into master. | 06:23 | |
| Just to prepare for future merge of gen_gc. | |||
| cotto | bacek_at_work, how would that make the merge easier? | ||
| bacek_at_work | cotto, we have to update HLLs to use them... | ||
| Not sure is it covered by deprecation policy or not. | |||
| cotto | bacek_at_work, it's not a deprecation issue because we're not removing functionality. | 06:24 | |
| bacek_at_work | we are changing it. | ||
| but I hope rakudo, partcl and lua will be happy to get faster parrot :) | |||
| cotto | It's hard to deprecate not having a thing. | 06:25 | |
| but I see your point | |||
| We can put it in now and say that not having them in place is deprecated, I guess. | 06:26 | ||
|
06:26
[hudnix] joined
|
|||
| bacek_at_work | and wait until after 3.3? | 06:26 | |
| cotto | yeah, unfortunately | ||
|
06:27
hudnix left
|
|||
| bacek_at_work | otoh, it's only 3 places in rakudo to use this macro (3 so far) | 06:27 | |
| cotto | dukeleto, is there anything special about LinuxFest NW? It looks like a pretty generic event. | ||
|
06:29
jsut joined
|
|||
| cotto | bacek_at_work, I do like that we can add a noop macro for the transition. What code will require it? | 06:30 | |
| bacek_at_work | which poke into PMC from vtables not marked with :write. | ||
| Usually it's .invoke | |||
| Check Sub PMC in gen_gc branch | 06:31 | ||
| cotto | so that should be reasonably easy to detect by looking at code | ||
| bacek_at_work | mm | ||
| not always | |||
| but something like SET_ATTR is main suspect. | 06:32 | ||
| or "cache" | |||
| cotto | I wish those macros weren't so clunky. It's very tempting to poke directly. | ||
| dalek | rrot/generational_gc: c476e3e | bacek++ | src/pmc/sub.pmc: Use canonical SELF instead of _self in Sub PMC |
||
| bacek_at_work | Sometimes. | ||
| dukeleto | cotto: i hear it is a very good conf, that is about it. more grassroots and less corporate, is the vibe i get | 06:33 | |
| cotto | dukeleto, I get that feeling from the site. | ||
|
06:33
fperrad joined
|
|||
| sorear | Is it possible to instrument the generational GC to blow up if people change pointers without declaring a barrier? | 06:33 | |
| dukeleto | cotto: everyone i talk to seems to have a great time there. I've never been, so I want to fix that. | ||
| sorear: that might be a nice feature | |||
|
06:34
jsut_ left
|
|||
| cotto | dukeleto, good enough for me | 06:35 | |
|
06:36
cosimo left
|
|||
| cotto | dukeleto, do you know anyone in the area? | 06:38 | |
| dukeleto | cotto: i know a few people in Seattle, none in bellingham | 06:39 | |
| cotto: you count, right? ;) | 06:40 | ||
| cotto | Redmond, but yes. | ||
| I'm realizing that I need to start blocking off my schedule for conference season. | 06:41 | ||
| dukeleto | cotto: indeed. | 06:43 | |
| cotto: i have some friend near Redmond that I need to visit. I will definitely let you know when I am in your neck of the woods | 06:44 | ||
| cotto: this might help you a bit www.socialtext.net/perl5/index.cgi?events | |||
| bacek_at_work | sorear, I've got self-validation functionality in debug builds | 06:45 | |
| sorear, helped me a lot | |||
| cotto | dukeleto, www.funnycatpix.com/_pics/relevant_...rests1.jpg | ||
| dukeleto, I had no idea so many perl events were going on. | 06:47 | ||
| dukeleto | cotto: yeah, me neither | 06:49 | |
| also, the Perl Ecosystem Group can provide travel support to people that want to give Perl talks at non-Perl confs | |||
| and Parrot is in the Perl ecosystem, at least in my book | 06:50 | ||
| dukeleto goes for his 3rd and final OSCON talk proposal | |||
|
06:57
mtk left
|
|||
| bacek_at_work | sigh... Lua is crashing badly on gen_gc... | 06:59 | |
| cotto | dukeleto, privmsg ping | ||
|
07:04
mtk joined
|
|||
| dukeleto | bacek_at_work: have you tried logarithms? | 07:09 | |
| bacek_at_work | dukeleto, erm... what? | 07:23 | |
| dalek | nxed: r801 | NotFound++ | trunk/winxedst1.winxed: fix: ClassSpecifier failed to check dowarnings, Issue16, plobsing++ |
07:24 | |
|
07:50
shockwave left
|
|||
| cotto | OSCON talk submitted after a brief near-death experience | 07:53 | |
|
07:53
shockwave joined
|
|||
| moritz | huh, what happened to you? | 07:54 | |
| hope you're allright | |||
| cotto | the proposal, not me | ||
| chrome doesn't handle the back button as nicely as firefox | 07:55 | ||
| adu | Chrome is weird | 08:00 | |
| when it's busy I type into the URL bar, and it totally forgets what I said | 08:01 | ||
|
08:04
theory left
08:16
lucian joined
08:23
lucian left
08:24
shockwave left
|
|||
| dukeleto | bacek_at_work: xkcd.com/451/ | 09:22 | |
|
09:38
adu left
09:52
contingencyplan left
|
|||
| dalek | rrot: 905dd32 | bacek++ | / (3 files): Get rid of PObj_is_special_FLAG. They are all special now. |
10:51 | |
| rrot: 22250ca | bacek++ | include/parrot/pobj.h: Add need_write_barrier_flag and standard flags setters |
|||
| rrot: 56eae14 | bacek++ | include/parrot/gc_api.h: Add GC_WRITE_BARRIER macro. |
|||
| rrot/generational_gc: e8cb426 | mikehh++ | t/op/gc.t: remove trailing whitespace and update copyright |
11:34 | ||
| rrot/generational_gc: 24478fd | mikehh++ | include/parrot/pobj.h: remove trailing comma - trailing commas in enums are not legal C89, and update copyright |
|||
| rrot/generational_gc: 536df45 | mikehh++ | src/pointer_array.c: fix c function documentation and update copyright |
|||
| rrot/generational_gc: c30c825 | mikehh++ | src/gc/gc_gms.c: add c function documentation (probably needs to be reviewed) |
|||
| mikehh | bacek: just ASSERT_ARGS (and c++ comments) left | 11:35 | |
|
11:44
sECuRE_ left,
sECuRE joined
|
|||
| dalek | rrot/generational_gc: b5991e3 | mikehh++ | src/pointer_array.c: fix ASSERT_ARGS (copy/paste?) |
12:16 | |
| rrot/generational_gc: bc26f9b | mikehh++ | src/gc/gc_gms.c: add missing ASSERT_ARGS |
|||
| rrot/generational_gc: 52889c7 | mikehh++ | src/call/context.c: add missing ASSERT_ARGS |
|||
| rrot/generational_gc: 117c0c1 | mikehh++ | src/gc/fixed_allocator.c: fix ASSERT_ARGS (copy/paste?) |
|||
| mikehh | bacek_at_work: bacek: codetest now passes (except for c++ comments) on generational_gc branch | 12:20 | |
| bacek_at_work: bacek: you might need to run make headerizer | 12:21 | ||
| mikehh needs a break - bbl | 12:26 | ||
|
12:52
bluescreen joined
13:00
mtk left
13:06
mtk joined
13:25
mtk left
13:30
mtk joined
|
|||
| dip | can I branch 11.2? | 13:41 | |
| whoops sorry wrong channel | |||
|
13:42
dip left,
dip joined
13:44
whiteknight joined
13:48
benabik_away left,
benabik_away joined
13:58
woosley joined
14:02
rurban_ joined
14:05
rurban left,
rurban_ is now known as rurban
14:11
plobsing left
|
|||
| whiteknight | good morning, #parrot | 14:20 | |
|
14:35
lucian joined
14:38
plobsing joined
14:55
cognominal left
15:27
plobsing left,
benabik_away is now known as benabik
|
|||
| benabik | Morning! o/ | 15:27 | |
| whiteknight | good morning benabik | 15:32 | |
|
15:50
dmalcolm joined
16:07
contingencyplan joined
|
|||
| benabik | Had a problem building gen_gc, fixed it and put a patch in a new TT (#2001). Hopefully that was the right place to put it. | 16:10 | |
| dukeleto | ~~ | 16:11 | |
| cotto_work | ~~ | 16:12 | |
| dukeleto | cotto_work: beat ya ;) | ||
|
16:13
plobsing joined
|
|||
| cotto_work | close timing though | 16:13 | |
| atrodo | cotto_work> pong | 16:14 | |
|
16:16
Psyche^ joined
16:17
Patterner left,
Psyche^ is now known as Patterner
|
|||
| dalek | TT #2001 created by benabik++: generational_gc: Add missing ASSERT_ARGS macros | 16:19 | |
| TT #2001: trac.parrot.org/parrot/ticket/2001 | |||
| dukeleto | 2001: A Trac Odyssey | 16:22 | |
| dalek | rrot/generational_gc: a767871 | dukeleto++ | src/gc/ (2 files): Add missing asserts, benabik++ |
16:26 | |
| benabik | Of course, gen_gc still doesn't pass make test for me, but that made it pass make. :-D | ||
| dukeleto | benabik: thanks for the patch | 16:27 | |
| benabik | dukeleto: I just saw something wrong that I understood for once. :-) | 16:28 | |
| dukeleto | benabik: yes, it is a good feeling :) | 16:29 | |
| lucian | allison: you asked me once what i think parrot's niche could be | 16:34 | |
| dukeleto gets popcorn | 16:36 | ||
| dalek | TT #2001 closed by dukeleto++: generational_gc: Add missing ASSERT_ARGS macros | 16:37 | |
| TT #2001: trac.parrot.org/parrot/ticket/2001 | |||
| TT #1999 closed by dukeleto++: Parrot_PMC_get_pmc : Does it work correctly? | |||
| TT #1999: trac.parrot.org/parrot/ticket/1999 | |||
| allison | lucian: hi | ||
| lucian | right, hi :) | ||
| lucian forgets to salute on irc all the time | |||
| allison | lucian: so, what're your thoughts? | 16:38 | |
| lucian | allison: after trying to define minipynie, i realised that it should be the simplest possible vm to which all (popular) dynamic languages can be compiled directly | ||
| you can't compile python/ruby to the jvm directly, without interpretation | |||
| and you most certainly can't do that on llvm | 16:39 | ||
| if interpretation exists at the vm-level only, many interesting things can happen (some of them having to do with performance) | |||
| allison | lucian: that was the original goal, though ideas have drifted a bit since then | 16:42 | |
| lucian: at the core, it still is an incredibly simple multi-language vm | 16:43 | ||
| lucian | i see. right now it's not really simple and some languages end up being interpreted | ||
| allison | yes, the current tendency toward running an interpreter on top of an interpreter has disadvantages | 16:44 | |
| they tell me they couldn't do it any other way | |||
| I haven't looked into the implementations, so can't really say | |||
| lucian | if it really couldn't be done any other way, i think it's a problem with parrot | 16:45 | |
| allison | lucian: but, I would be interested to see minipynie done that way | ||
| lucian | i'd like to see pynie done that way | ||
| allison | lucian: yes, it would argue a problem in parrot, but I'm not sure if it means that parrot is "too limited" or "to complex" | ||
| lucian | there's really no point in targeting parrot if interpretation is needed. might as well target jvm/.net | ||
| allison | lucian: that is, I'm not sure if we need to strip stuff out of parrot, or add to it | 16:46 | |
| lucian: maybe a little of both | |||
| lucian | well, the compilation&execution pipeline is obvious | ||
| allison | lucian: yes, I agree (on jvm/.net making more sense if you have to write your own runtime anyway) | ||
| lucian | personally, i think it's missing a skinable system languae | 16:47 | |
| language | |||
| and a way to easily configure types, to derive HLL ones, but that ties into the system language | |||
| a very small parrot-specific subset of any language will have semantics similar to winxed | 16:48 | ||
| NotFound | Skinable language? Never heard that concept. | ||
| lucian | NotFound: me neither, i just made it up, really | ||
| think of it like lisp reader macros | |||
| NotFound | Ah, good. | ||
| dalek | rrot: 310adea | dukeleto++ | config/ (2 files): Merge branch 'tt1331-osx-conf-fix' |
||
| NotFound | Winxed semantic is mostly PIR semantic. | ||
| lucian | NotFound: something like a pythonic alternative syntax for winxed (or whatever other blessed system language) | ||
| yes, and that's good for winxed's purposes | |||
| but language writers might prefer to write in a language similar to what they're implementing, rather than winxed | 16:50 | ||
| NotFound | I can understand that, given that I designed winxed in order to have a language similar to what I like ;) | 16:51 | |
| lucian | so this mythical minipynie could be winxed with a modified parser, and would be used for writing the bits of pynie that can't be written in pure python3 | ||
| plobsing | lucian: how is providing a means of "alternative syntax" different from providing a default compiler backend starting with an AST? | ||
| lucian | plobsing: well, it's roughly the same thing | ||
| but i'm talking about the language you implement your types in | 16:52 | ||
| so you don't have to write any PIR at all | |||
| whiteknight | yeah, if we have a good compiler-builder library that takes an AST and converts down to PBC, we can put multiple language frontends onto it | ||
| lucian | the compiler for the full language (in this case, python3) could be written in pure python, to be run on CPython at first | ||
| NotFound | lucian: not a bad idea, it may workable to break more cleanly the winxed workflow in order to have a pluggable... syntax skin? | ||
| plobsing | lucian: sort of like what rakudo does with nqp? | 16:53 | |
| lucian | but the python core types need to be implemented in something more akin to PIR | ||
| plobsing: yes, similar | |||
| it's a good idea | |||
| but obviously only for implementing perl or similar | |||
| tadzik | so it's actually ignoring everything PCT gives? | ||
| lucian | tadzik: yes, which is sad | ||
| dalek | TT #1331 closed by dukeleto++: Mac OS 10.5 configuration fix | 16:54 | |
| TT #1331: trac.parrot.org/parrot/ticket/1331 | |||
| lucian | i'm not convinced this is a good idea at all, btw | ||
| plobsing | lucian: it is possible to generate PAST without using NQP. | ||
| lucian | plobsing: but not from outside parrot, right? | 16:55 | |
| plobsing | if we had something like RMI (shudder), it would be possible even then. | ||
| NotFound | IMO generating pir is far more easier. | 16:56 | |
| lucian shudders as well | |||
| benabik | You could, in theory, make a JSON/YAML/* loader for PAST. | 16:58 | |
| Not sure if that's worth the effort. | |||
| plobsing | in general, such things are a PITA, but it would allow bootstrapping from the language you want to be programming in from the get-go. with decent proxy-objects, it could even look exactly like a fully hosted bootstrapping solution. The question you've got to ask is: "is working in a non-pythonic language more or less distasteful than RMI/COM/CORBA/etc?" | ||
|
16:58
cognominal joined
|
|||
| NotFound | Note that I bootstrapped winxed from C++, which is a lot "foreign" than for example bootstraping a python compiler from cpython. | 16:59 | |
| End even with that distance, I sometimes confused stage 0 code and stage 1 code %-) | 17:00 | ||
| plobsing | yes. please stop doing that. I keep seeing features in commit messages that aren't implemented in st2 yet. | 17:01 | |
| NotFound | So I think a bootstrap from a familiar language is lot more tasteful. | ||
|
17:02
theory joined
|
|||
| NotFound | plobsing: What? Features commited to stage 0 are backports form stage 1 | 17:02 | |
| Coke tries not to think about partcl while he's supposed to be focusing on coldfusion & sql & various dayjobby things. | 17:04 | ||
| NotFound | plobsing: BTW, I'm thinking on a crazy idea: it wll be possible in a ometa based language to have a sort of macro feature that takes code as argument and do some processing with it during compiling? | 17:06 | |
|
17:06
jsut_ joined
|
|||
| plobsing | NotFound: that is explicitly one of the objectives. alessandro has an example of lexically scoped syntax extension somewhere or other (he adds 'say' to Java IIRC) | 17:07 | |
| NotFound | I'm thinking about being to do something like that: derivative(sin(x) ) --> gives cos(x) | ||
| With "derivative" able to work with a lot of float expressions. | |||
|
17:07
vmspb joined
|
|||
| plobsing | NotFound: would that be a symbolic or numeric solution? | 17:07 | |
| NotFound | plobsing: generating the same code as the symbolic expansion. | 17:08 | |
| plobsing | are you going to implement a whole symbolics package on Parrot yourself? port one? implement a language in which one is already defined? | ||
| symbolic math is HARD | |||
| NotFound | plobsing: not, but buliding the support to ba able to make that work. | 17:09 | |
| That is, built in the language to support to write the "derivative" package and use it. | |||
| plobsing | derivative( x <= 0 ? 0 : 1 ) => dirac delta? | ||
| NotFound | Well, maybe the derivative example is too complex as a first example. Better think about something like C++ templates. | 17:11 | |
|
17:11
jsut left
|
|||
| lucian | benabik: that's not a bad idea | 17:11 | |
| plobsing | PCT makes sense under the assumption that compiler backends are sufficiently complex that we should avoid reinventing the wheel. I think if the backend *has* to be that complicated, Parrot has a problem. | 17:13 | |
|
17:17
extreme left
|
|||
| whiteknight | plobsing: okay, so what does the alternative look like? | 17:19 | |
| lucian | plobsing: i mostly agree. i don't think support for writing backends hurts, but i believe the focus should be on helping to implement core types | ||
| this is especially important for existing mature languages, where you can write the compiler in that language (or reuse an existing compiler, much of the time) | 17:20 | ||
| plobsing | what I'm coming to realize is that Parrot should be optimized for ease of compiler targetting, to make simple bootstrapping backends feasible (if it isn't already). I'm not sure what specific actions that entails. | 17:21 | |
| NotFound | plobsing: winxed is the proof that it's already feasible. | 17:22 | |
| plobsing | NotFound: yes, but could it be easier? | ||
| and how can we make that easier? | |||
| lucian | NotFound: i think it was already known to be feasible, most languages already compile that way | 17:23 | |
| NotFound | plobsing: I think the answers to that will come from the process of doing more languages that way. | ||
| lucian | but winxed doesn't need core types beyond what parrot provides | ||
| NotFound | lucian: winxed is designed that way by deliberate decision, not because of parrot limitations. | 17:25 | |
| lucian | NotFound: i know, but that doesn't make it easier for python | 17:26 | |
| and it's great design for a parrot system language | |||
| whiteknight | lucian: let's turn the discussion around a little bit. What do we need to provide to make it as easy as possible for you to start working on the compiler of your dreams? | 17:27 | |
| What do *you* need | |||
| lucian: because I think we all want a Python compiler on Parrot, and I think that being able to write that compiler in Python or something Python-like would make many Python coders happy | 17:28 | ||
| NotFound | Or a python subset. | ||
| lucian | whiteknight: the compiler itself can be written in python and run on CPython | 17:29 | |
| it just generates code (of some sort) | |||
| but in order for anything to work, we need objects and a few other types | 17:30 | ||
| i mean a few other types inheriting from object | |||
| tadzik | what do we need for language interoperability? | ||
| lucian | and that would have to be implemented in PIR or winxed | ||
| tadzik: inherit from parrot's types | |||
| tadzik | fair enough | ||
| lucian | at some point, languages can define how their objects can be exported to other languages in terms of native parrot types | 17:31 | |
| a sort of FFI, but less foreign | |||
| NotFound | Feel free to ask any feature for winxed you may need, BTW. No promises, but I'll try my best. | ||
| lucian | NotFound: you said it can be used to implement HLL types, right? | 17:32 | |
| whiteknight | lucian: Okay, I'm just trying to get this process straightened out in my head. You're going to have a Python compiler, written in Python and running on CPython. It will output PIR or PAST, or something like that? | ||
| lucian | whiteknight: yep | ||
| plobsing | lucian: what stops you from writing definitions for your core types in python and compiling these to <language-that-runs-on-parrot-already>? | ||
| NotFound | lucian: yes, but is an experiment with a few test, will benefit from real world usages. | ||
| lucian | plobsing: in terms of what would i write these core types? | ||
| whiteknight | lucian: so why not write your core types in Python too, and just output them as PIR/PBC during the build? | ||
| lucian | python has no primitives lower level than objects, dicts, lists and tuples | 17:33 | |
| whiteknight: plobsing: i don't really know how i can do that | 17:34 | ||
| maybe a mock 'parrot' module that the compiler can recognise and do special-case generation? but that also defines a subset of python | 17:35 | ||
| plobsing | in terms of runtime, you need to start from somewhere. that somewhere isn't pythonish yet on parrot. that should be fine. implement close approximations to the python core types until you can close your loop of turtles. | ||
| lucian | and makes the compiler more compicated | ||
| NotFound | lucian: maybe in a later phase, when having a working compiler with some extension for parrot native usages. | ||
| lucian | plobsing: i don't see how that would work, in detail | 17:36 | |
| at least i don't see how it would work without writing PIR *somewhere* | 17:37 | ||
| that PIR would be close to unmaintainable by python developers not familiar with parrot | |||
| plobsing | a python on parrot system would be close to unmaintainable by python developers not familiar with parrot | 17:38 | |
| NotFound | And for parrot devlopers not familiar with python, too. | ||
| plobsing | regardless of PIR involvement | ||
| lucian | i guess | ||
| lucian has to go, anyway | |||
| plobsing | lucian: can you not compile python down to PIR with slightly different semantics for the base bootstrapping stage and implement your pythonish base classes then? | 17:39 | |
| whiteknight | There probably isn't going to be any getting around writing the lowest-level stuff in something that isn't python | 17:40 | |
| even if you're "writing it" as part of large text literals in Python source | |||
| Coke | Yah, I'm not sure that avoiding writing things "in parrot" when targetting parrot is a valid base assumption. | 17:41 | |
| (clearly it can be minimized, but at some point, you're using the VM you're using.) | |||
| whiteknight | The question really is, what would the hypothetical python compiler use at that lowest level? PIR? NQP? Winxed? | 17:43 | |
| I suspect Winxed may be the least unpalatable | |||
| I don't think Parrot can really provide something with the features/scope like NQP but with pythonish syntax | |||
| such a thing could be provided, but I don't think it can be a core goal of ours to do it | 17:44 | ||
| NotFound | The advantage of winxed is the easy handling of parrot native int, float and string registers. | 17:45 | |
| whiteknight | yes, that's a key feature | ||
| NotFound | And its advantage in respect to Close is that winxed exists ;) | 17:47 | |
| whiteknight | I had really high hopes for Close | 17:48 | |
| I liked what I was seeing of it | |||
| too bad Austin got too busy to keep up with it | 17:49 | ||
| NotFound | Close was a good idea, but if no one has worked on it... | ||
| cotto_work | It's only dead if nobody wants to resurrect it. | ||
| whiteknight | Kakapo is pretty much broken beyond salvaging at this point | 17:50 | |
| and I know Kakapo was basically the supporting library that Austin was using to build Close | |||
| PLA's test suite is broken because Kakapo's test features are too broken at this point to save | 17:51 | ||
| I really do need to get back to fixing PLA at some point | |||
| tadzik | Close seems awesome | 17:52 | |
| NotFound | We may need a plumage option to skip test or to install ignoring bad test result, BTW. | ||
| whiteknight | yeah, that might be a good thing, but I still do want to fix PLA's tests so I know if it works so I can make a release | ||
| I may have to start working on that tonight, now that I am thinking about it | 17:53 | ||
| tadzik | whiteknight: are you aware what's the state of Close? | 17:54 | |
|
17:54
pain-sama joined
|
|||
| pain-sama | hello :) | 17:55 | |
| tadzik | hello pain-sama | ||
| plobsing | tadzik: it is perpetually almost there | ||
| pain-sama | hi :) | ||
| cotto_work | seen chromatic | ||
| aloha | chromatic was last seen in #parrot 6 days 20 hours ago leaving the channel. | ||
| pain-sama | I am wondering if it is possible to make a programming (scripting) language using Parrot ? | ||
| plobsing | pain-sama: do you have one in mind? | 17:56 | |
| pain-sama | yeah :) | ||
| but I'm newby xD | |||
| Coke | is it a port of an existing one, or a brand new one? | 17:57 | |
| pain-sama | it's very similar to JS :) | ||
| Coke | (pain-sama) | ||
| pain-sama | new one :) | ||
| Coke | Ok. there are already efforts in various states for JS itself, and something winxed, which is JS-sort-of-if-you-squint. | ||
| plobsing | pain-sama: what are the differences? is it identical in object model to JS? | 17:58 | |
| Coke | So yes, definitely possible. | ||
| pain-sama | my language will be oriented to game development :D | ||
|
17:59
vmspb left
|
|||
| pain-sama | so, can I benefit from parrot in my project ? | 18:00 | |
| whiteknight | pain-sama: yes, we have Winxed which is similar to JS in some ways, and there is a JavaScript port called "Jasper" in development | ||
| pain-sama: probably | |||
| pain-sama | can you please tell me how to get started ? | 18:01 | |
| i love doing things my self, as long as I can do it xD | |||
| so I want to make my own programming language, ever for joy :) | |||
| even* | 18:02 | ||
| that's because of my new keyboard :D | |||
| NotFound | pain-sama: if your language is very similar to javascript a way is to borrow from winxed. | 18:03 | |
| whiteknight | pain-sama: okay, we have a few different example compilers you can look at. We also have a tutorial around here for using NQP to write a compiler | ||
| pain-sama | what is NQP ? | ||
| benabik | It's like Perl, but Not Quite. | 18:04 | |
| pain-sama | NotFound that might help xD any link to the project's page ? | ||
| ah :) | |||
| where can I find the tuto ? | |||
| NotFound | pain-sama: winxed.org/ | ||
| pain-sama | thanks :D | ||
| be right back :) | 18:06 | ||
|
18:10
ilbot2 joined
|
|||
| moderator | Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Test imcc_interfaces and annotations-tree branches | ||
|
18:17
lateau joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8274) fulltest) at 3_0_0-504-g310adea - Ubuntu 10.10 i386 (g++-4.5) | 18:28 | |
|
18:32
zby_home joined
|
|||
| NotFound | Proof of concept winxed c++ backend able to compile a helloworld program, big progress X-) | 18:33 | |
|
18:35
vmspb joined
|
|||
| nopaste | "NotFound" at 192.168.1.3 pasted "Bare mininal proof of concept winxed C++ backend" (61 lines) at nopaste.snit.ch/30890 | 18:39 | |
| cotto_work | NotFound: that's exciting | 18:43 | |
| NotFound | The idea, not the implementation ;) | 18:44 | |
|
18:44
nwellnhof joined
|
|||
| plobsing | NotFound: what's the plan with that? check in the generated C++ and not have to maintain a winxed parser/compiler in C++ for st0? | 18:46 | |
| NotFound | In order to be useful it needs at least an obect system able to mimic String, Integer, FileHandle and *Array* PMCs. | ||
| plobsing: yes, that will be the goal. | 18:47 | ||
| plobsing | All Array PMCs? What types does st1 use? which ones could be stripped out for a bare-bones bootstrap? | ||
| dalek | rrot: 942932e | nwellnhof++ | NEWS: Update NEWS |
||
| NotFound | Just the resizable ones, maybe, and Boolean surely is not used. | 18:48 | |
| Oh, and I forgot to mentiont Hash | 18:49 | ||
| plobsing | can the STL types approximate those? | ||
| NotFound | I think so. | ||
| With string and String limited to one encoding, that is. | 18:52 | ||
| plobsing | do you need more than one encoding for bootstrap? | 18:54 | |
| NotFound | I thnk not, but haven't checked that yet. | 18:56 | |
| dukeleto | The next time you can't think of a good name for something, go here: www.classnamer.com | 19:11 | |
| NotFound | ScriptableMessageTester That's good! | 19:12 | |
| dukeleto | that thing is hilarious. We might need editor bindings for that site... | 19:13 | |
| nwellnhof | BasicGirlfriendVisitor, lol | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8281) fulltest) at 3_0_0-504-g310adea - Ubuntu 10.10 i386 (g++-4.5 with --optimize) | ||
| NotFound | nwellnhof: at least is Basic, not Advanced | 19:14 | |
| plobsing | SecureGirlfriendImpl | 19:15 | |
|
19:15
pain-sama left
19:16
Andy joined
|
|||
| cotto_work | We need at least one ScriptableLolcatDispatcher, stat. | 19:16 | |
| dukeleto gets to work | |||
| whiteknight | LegacyCharacterWindow | 19:25 | |
| SimpleGirlfriendTokenizer | 19:29 | ||
| That's it. There goes the rest of my work day. | 19:32 | ||
| NotFound | For consistency, the site name should be: SimpleClassNamer | 19:33 | |
| whiteknight | AbstractClassNamer | ||
| FlexibleFileFactoryFactory | 19:37 | ||
| bacek | Good morning, humans | 19:38 | |
| whiteknight, you lied in your latest post about Parrot's GC :) | 19:39 | ||
| mikehh | WhatonEarthWouldYouEverWantaSimpleClassNameFor | ||
|
19:39
jan left
|
|||
| dukeleto | BuffaloBuffaloBuffaloFactoryFactory | 19:40 | |
| this is getting out of hand | |||
| mikehh | hiho bacek | ||
| bacek | aloha, mikehh | ||
| thanks for fixing codetest in gen_gc | |||
| whiteknight | bacek: what did I lie about? | ||
| mikehh | will keep checkin' | 19:41 | |
| bacek | whiteknight, you described GC MS, not GC MS2. | ||
| whiteknight | I "dramatically oversimplified", but not lied | ||
| bacek | MS2 maintain list of objects and don't iterate over slabs | ||
| whiteknight | yes, you're right. I should note that change | ||
| bacek | And gray objects aren't explicitly coloured. We just create new list of life objects during mark. | 19:42 | |
| gc_ms2.c, around line 1026 | 19:43 | ||
|
19:45
jan joined
|
|||
| bacek | Almost same algo as "TriColour M&S" on trac.parrot.org/parrot/wiki/GCMassacre | 19:45 | |
| whiteknight | I'll mention those specifics in the next post | ||
| thanks for pointing them out | |||
| bacek | You welcome :) | 19:46 | |
| cotto_work | #is in 39 | 19:50 | |
| Coke | ingles sketch? | 19:51 | |
|
19:51
plobsing left
|
|||
| cotto_work | Coke: yup. I'm unilaterally changing the name. | 19:52 | |
|
19:53
lateau left
19:58
bluescreen left
|
|||
| mikehh | rakudo (cad076f) - builds on parrot (3_0_0-504-g310adea) - make test, make spectest_smolder[(#8290), roast (b3ef08d)] PASS - Ubuntu 10.10 i386 (gcc-4.5 with --optimize) | 20:00 | |
| 27,634 ok, 0 failed, 610 todo, 1,847 skipped and 0 unexpectedly succeeded | |||
|
20:00
bluescreen joined
20:11
kid51 joined
|
|||
| mikehh | #ps in 15 | 20:15 | |
|
20:15
dmalcolm_ joined
|
|||
| dalek | rrot: 1c71188 | Whiteknight++ | / (3 files): Merge branch 'whiteknight/callcontext_reset' |
20:16 | |
|
20:17
dmalcolm left
|
|||
| whiteknight | cotto_work: parrot-instrument is working? | 20:22 | |
| cotto_work | closer to working | ||
| whiteknight | ah, okay | ||
| tadzik | what's gson-instrument? | 20:23 | |
| dukeleto | tadzik: gsoc-instrument ? | 20:24 | |
| tadzik: it allows you to inspectigate parrot while it is running, and generate statistics about who is doing what and what is talking to who | 20:25 | ||
| tadzik: if that makes sense :) | |||
| tadzik | nice | ||
| mikehh | #ps time | 20:30 | |
| benabik | mikehh: Lurkers welcome? | ||
| mikehh | benabik: sure, you can comment too -> #parrotsketch | 20:31 | |
| it is after all a developer meeting | 20:32 | ||
| dukeleto | benabik: COME ON DOWN! | 20:36 | |
| dukeleto plays The Price Is Right music in #parrotsketch | |||
| NotFound | No one comment the improved eye candy in example fly? Sigh... | 20:37 | |
| dalek | nxed: r802 | NotFound++ | trunk/winxedst1.winxed: a better fix for Issue16, plobsing++ |
||
| Heuristic branch merge: pushed 60 commits to parrot/whiteknight/imcc_compreg_pmc by Whiteknight | 20:48 | ||
|
21:13
Kovensky left
21:17
plobsing joined
|
|||
| nwellnhof | whiteknight: which of your imcc branches has that GC related bug and how can i reproduce it? | 21:20 | |
| whiteknight | nwellnhof: whiteknight/imcc_compreg_pmc. I was getting it during ops2c in the normal build. I just did a branch merge from master and haven't tried it yet | 21:21 | |
| the build failed for me after the merge, but I can't debug into it until I get home | |||
| nwellnhof | whiteknight: i'll see if i can reproduce it | 21:22 | |
| whiteknight | nwellnhof: I would really appreciate it. I think the merge was pretty clean | ||
| I'll be working on it as soon as I get home too (about 1.5 hours) | |||
| I'm packing up and heading home now, I'll be back on later | 21:24 | ||
|
21:24
whiteknight left
|
|||
| nwellnhof | whiteknight: imcc_compreg_pmc builds fine out of the box here. but i got a segfault in miniparrot after forcing the GC threshold to 128K. | 21:26 | |
| lowering the threshold is usually the best was to reproduce GC related issues. | 21:27 | ||
| cotto_work | nwellnhof: he took off. You might want to msg him in case he doesn't check irclog. | ||
|
21:28
kid51 left
|
|||
| nwellnhof | but that segfault seems to be related to TT #1990. | 21:29 | |
|
21:30
bluescreen left
|
|||
| lucian | NotFound: do you have any docs on how to use winxed for HLLs? | 21:31 | |
| NotFound | lucian: sorry, no. Let me check if have a example at hand... | 21:32 | |
|
21:33
plobsing left
21:38
plobsing joined
|
|||
| NotFound | The one I had is bitrotten, let me fix it. | 21:39 | |
| mikehh | NotFound: winxed looks fine to me, fly seems much smoother | 21:46 | |
| NotFound | mikehh: good | ||
| The improved eye candy may help, too. | |||
| mikehh | forgot to report that winxed builds and tests ok - on parrot 3_0_0-504-g310adea - Ubuntu 10.10 i386 (gcc-4.5 with --optimize) | 21:53 | |
|
21:54
wknight-phone joined
|
|||
| NotFound | lucian: example added in r803. Looks a bit odd than it should right now, will improve it in some days. | 21:55 | |
| dalek | nxed: r803 | NotFound++ | trunk/examples/hlltest.winxed: add an example of the namespace modifier 'HLL' |
||
| lucian | NotFound: thanks | ||
| NotFound | Maybe using 'String' for the example was not a good idea, needs some tricks to gets messages printed. | 21:56 | |
| lucian | NotFound: hmm, i get the idea anyway | 21:57 | |
| NotFound | Using a namespace modifier is the way to avoid adding specific syntax. | 21:59 | |
| lucian | NotFound: it's not bad, really | ||
| bacek_at_work | ~~ | 22:00 | |
| lucian | NotFound: i don't get the newstring function | 22:01 | |
| nwellnhof | aloha msg whiteknight: the segfaults in imcc_compreg_pmc are related to TT #1990. the gc_dynamic_threshold merge triggers them very early. i can build parrot with some Parrot_block_GC_marks in the right places but that's very hackish. | 22:02 | |
|
22:02
rurban_ joined
|
|||
| aloha | nwellnhof: OK. I'll deliver the message. | 22:02 | |
| NotFound | lucian: the MyString content is a String PMC. If we try to create it from a string inside the HLL, we'll get a MyString. | 22:03 | |
| Maybe is not needed now, I wrote that in the first steps of the experiment. | |||
|
22:04
lucian_ joined
22:05
rurban left,
rurban_ is now known as rurban
|
|||
| lucian_ | NotFound: got disconnected | 22:05 | |
| NotFound: is there no super in winxed? | |||
| NotFound | ucian: the MyString content is a String PMC. If we try to create it from a string inside the HLL, we'll get a MyString. | ||
| wknight-phone | nwellnhof, thanks | 22:06 | |
| hackish is fine | |||
| plobsing | lucian_: there is no 'super' built in to parrot. it is a known failing of the object system | ||
| lucian_ | plobsing: i see | ||
| plobsing | it is possible to cook one up yourself. kakapo does just that. | ||
| lucian_ | plobsing: i'd very much like others to do that work for me. like NotFound :) | 22:07 | |
| NotFound | lucian_: I have the plan to borrow from the C++ way to call base class methods, but haven't worked on that yet. | ||
| lucian_ is really a parrot noob | |||
|
22:07
lucian left
|
|||
| wknight-phone | ill look at #1990 | 22:08 | |
| lucian_ | NotFound: you could have a super() function | 22:09 | |
| NotFound | plobsing: note that the 'super' semantic is not obvious in multiple inheritance. | ||
| lucian_ | it couldn't be as general as python's since it has an explicit self, but it should work | 22:10 | |
| plobsing | NotFound: agreed | ||
| Ωη gets by through limiting to single inheritance and refering to parent class statically by name | 22:11 | ||
| lucian_ | NotFound: this may sound old, but you may want to look into what python does | 22:12 | |
| NotFound | In C++ the usual way is typedef the parent class as 'super' or 'base', or something like that. | 22:13 | |
|
22:13
jsut joined
|
|||
| NotFound | If you want that sugar, that is. | 22:13 | |
| plobsing | super implementation depends highly on the object model in question. Parrot should be getting out of the business of enforcing object model (we have a poor track record there). | 22:14 | |
| NotFound | lucian_: I don't have enough python knowledge to be able to borrow from it. | ||
| plobsing | lucian_: it's just C3 IIRC (correct?) | ||
| lucian_ | plobsing: yeah, pretty much | ||
| the nice bit is that objects methods have an explicit self | 22:15 | ||
| so there's super(ClassName, self).method(bla) | |||
| NotFound | What I'm thinking about is something like Parent.method() or self.Parent.method() | ||
| lucian_ | which binds ClassName.method's self to the current self | ||
| you just have to be careful about binding self | 22:16 | ||
| plobsing | lucian_: that's more general than 'super' though. call it 'cast_call' or something. | ||
| NotFound | The latter is more verbose, but avois possible ambiguities. | ||
| lucian_ | in python you can use super more generally , too | 22:17 | |
| NotFound | My personal problem with 'super' is that I like better terminology of base and deriver rather than super and sub classes. | ||
| nwellnhof | wknight-phone: it seems that it's enough to block GC completely during Parrot_load_bytecode. | ||
| lucian_ | NotFound: sure, i was just debating that a function might be better than a language feature | ||
| so in winxed, parent(ClassName).method(bla) | 22:18 | ||
|
22:18
jsut_ left
|
|||
| plobsing | lucian_: that makes python's assumptions about how class objects work, and is not how parrot's object system currently works | 22:19 | |
| lucian_ | plobsing: using a function? it can do whatever parrot's object system likes | ||
| NotFound | lucian_: I don't think that may work without special purpose semantic for that pseudo-function. | 22:20 | |
| lucian_ | NotFound: hmm. is there a language-level way to bind self? | ||
| plobsing | lucian_: self is exposed in winxed. it just happens to be an implicit parameter | ||
| lucian_ | plobsing: i know. but can you bind it to something else in a particular function? | ||
| jnthn | Any method can be called as a sub in Parrot just fine, passing whtever you like as the invocant. Just pass it as the first arg. | 22:21 | |
| plobsing | it is just a register | ||
| lucian_ | like CoffeeScript's => vs -> | ||
| plobsing: i see | |||
| jnthn | So provided you have a way to look up the method in the base class, you can always call it. | ||
| NotFound | lucian_: AFAIKS there is no way to get that dispatch automatically, you need to find the method in the class and invoke it explicitly. | 22:22 | |
| plobsing | jnthn: yes, but using a syntax which parses as method invocation on the class object is not the right way to do that | ||
|
22:23
zby_home left
|
|||
| lucian_ | NotFound: right. so parent() would have to find the method, bind self to the right thing and return the closure | 22:23 | |
| jnthn | plobsing: I was talking about how to achieve the desired dispatch at a Parrot level, not now the langauge syntax would look. | ||
| s/now/how/ | |||
| lucian_ | btw, i think it'd be just fine if parrot used C3, since pretty much every language uses it | ||
| jnthn | The real answer though is that Parrot shouldn't enforce a definition of class, or just not provide a class implementation at all. | 22:24 | |
| NotFound | lucian_: mmmm... maybe is doable, I'll think about that. | ||
| luben | jnthn, I have tried the new nqp, nice work, but it seems that I could nor have both nqp and parrot-nqp installed alogside | 22:25 | |
| jnthn | luben: moritz++ mentioned that also...I didn't work out why yet. | 22:26 | |
| luben: It's certainly not intentional. :) | |||
| luben | jnthn, ok, no problem. just to mention | ||
| jnthn | Thanks for doing so. I'll try and work out what's up soon. | 22:27 | |
| I suspect they may try to install different versions of the same thing to the same place or some such. | |||
| NotFound | A way to do that migth be to provide a class that dispatch the method, and create such object in the parent function, but that way we get the problem of VTABLE_invoke overrides | 22:28 | |
| Or maybe not, I must do some experiments. | 22:29 | ||
|
22:29
wknight-phone left
22:32
davidfetter joined
22:40
lucian_ left
22:41
fperrad left,
woosley left
|
|||
| dalek | rrot: c6fa8b7 | mikehh++ | src/embed/api.c: fix codetest failures - add c function docs and ASSERT_ARGS |
22:49 | |
| rrot/generational_gc: 310adea | dukeleto++ | config/ (2 files): Merge branch 'tt1331-osx-conf-fix' |
22:52 | ||
| rrot/generational_gc: 942932e | nwellnhof++ | NEWS: Update NEWS |
|||
| rrot/generational_gc: 1c71188 | Whiteknight++ | / (3 files): Merge branch 'whiteknight/callcontext_reset' |
|||
| rrot/generational_gc: e7cb4a1 | bacek++ | / (26 files): Merge branch 'master' into generational_gc Conflicts: \tinclude/parrot/pobj.h \tlib/Parrot/Pmc2c/MethodEmitter.pm \tlib/Parrot/Pmc2c/PMCEmitter.pm \tsrc/pointer_array.c |
|||
|
23:00
plobsing left
23:07
plobsing joined
|
|||
| NotFound | I've found a trick that may work with a change in the way of dispatching methods in winxxed. | 23:10 | |
| But I don't think is a good way, needs to call functions and crate auxiliar objects on each invocation. | |||
| Mmm, no, it will not work, method cache gets on the way. | 23:15 | ||
|
23:17
whiteknight joined
|
|||
| nwellnhof | whiteknight: i merged master into imcc_compreg_pmc locally. is it ok to push the merge and my fix? | 23:19 | |
|
23:19
plobsing left
|
|||
| whiteknight | nwellnhof: yessir | 23:19 | |
| how fixed is it, no more GC-related segfaults? | 23:20 | ||
| nwellnhof | whiteknight: i didn't get any | 23:21 | |
| whiteknight | awesome | ||
| dalek | rrot/generational_gc: c3dd671 | bacek++ | lib/Parrot/Pmc2c/PMC/default.pm: Bring Pmc2c::default from master. Fix rotest failure |
23:25 | |
| mikehh | whiteknight: I fixed a couple of codetest failures from your commit, but you might want to check the documentation for Parrot_api_reset_call_signature in src/embed/api.c | 23:27 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 73c0355 | nwellnhof++ | src/packfile/api.c: Block GC during Parrot_load_bytecode Related to TT #1990 |
23:30 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#8320) fulltest) at 3_0_0-509-gc6fa8b7 - Ubuntu 10.10 i386 (g++-4.5) | ||
| nwellnhof | whiteknight: i see that you merged master already | 23:31 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 327839f | nwellnhof++ | src/packfile/api.c: Fix TT number |
23:32 | |
| nopaste | "nwellnhof" at 192.168.1.3 pasted "make test output of whiteknight/imcc_compreg_pmc" (57 lines) at nopaste.snit.ch/30912 | 23:38 | |
| nwellnhof | i guess that's expected | 23:39 | |
|
23:40
lucian joined
23:41
plobsing joined
23:44
cosimo joined
23:47
lucian left
23:49
Andy left
|
|||