|
Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot Developer Summit: 2200 UTC 29 Jan | Goals: Fix ipv6-related failures | Test imcc_interfaces and annotations-tree branches Set by moderator on 26 January 2011. |
|||
| Hackbinary | okay cool ... I think I need to read up a little more on nqp | 00:02 | |
| dukeleto | Hackbinary: github.com/perl6/nqp-rx | 00:04 | |
| Hackbinary: basically, it is a subset of Perl 6 that Rakudo Perl 6 is written in :) | 00:05 | ||
| nwellnhof | github.com/perl6/nqp-rx/tree/master/t/nqp is still the best documentation afaik. | 00:07 | |
| jnthn | For details on the grammar syntax, there's many examples in the Perl 6 book. | 00:09 | |
| nqp supports most of what Rakudo does in terms of grammars. | |||
| dukeleto | Hackbinary: nqp-rx is basically just Perl 6 with much less syntax sugar | 00:17 | |
| jnthn | And also more optimizable. | 00:18 | |
| Hackbinary | cool | ||
| bacek | ~~ | 00:35 | |
| rakudo: say " # comment" ~~ /^^ \\s* \\# .* $/ | 00:37 | ||
| p6eval | rakudo 549d2a: OUTPUTĀ« # commentā¤Ā» | ||
| bacek | rakudo: say " # comment" !~ /^^ \\s* \\# .* $/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«===SORRY!===ā¤Unsupported use of !~ to do negated pattern matching; in Perl 6 please use !~~ at line 22, near "/^^ \\\\s* \\\\#"ā¤Ā» | ||
| bacek | rakudo: say " # comment" !~~ /^^ \\s* \\# .* $/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Falseā¤Ā» | ||
|
00:38
kid51 joined
|
|||
| Hackbinary | so logical_not is no longer a vtable function? | 00:46 | |
| bacek | rakudo: say "--- foo" ~~ /^^ ---/ | 00:50 | |
| p6eval | rakudo 549d2a: OUTPUTĀ«===SORRY!===ā¤Confused at line 22, near "say \\"--- f"ā¤Ā» | ||
| bacek | rakudo: say "--- foo" ~~ /^^ \\-\\-\\-/ | 00:51 | |
| p6eval | rakudo 549d2a: OUTPUTĀ«---ā¤Ā» | ||
| jnthn | rakudo: say "--- foo" ~~ /^^ '---'/ # neater ;) | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«---ā¤Ā» | ||
|
00:52
whiteknight joined
|
|||
| Hackbinary | hello | 00:52 | |
|
00:56
Eclesia left
|
|||
| Hackbinary | I've tried to build cardinal, and I just got this error: | 00:57 | |
| error:imcc:'logical_not' is not a vtable, but was used with :vtable. | |||
| and it looks like logical_not has been taken out of the vtables on parrot 3 | 00:58 | ||
| Tene | yes, that's right | ||
| whiteknight | yeah, it was deprecated and removed | ||
| Hackbinary | so this is the method it's complaining about: | 00:59 | |
| .sub '_not' :vtable('logical_not') :method | |||
| .param pmc wtf | |||
| $P0 = get_hll_global 'true' | |||
| .return ($P0) | |||
| .end | |||
| tadzik | Hackbinary: you are trying the wrong cardinal | ||
| Hackbinary | oh | ||
| tadzik | I fixed that some time ago | ||
| Hackbinary | there's 2 cardinals? | ||
| Tene | You want github.com/parrot/cardinal/ | ||
| tadzik | use parrot/cardinal on github, notcardinal/cardinal | ||
| Tene | Hackbinary: Cardinal was adopted into the parrot github organization. | 01:00 | |
| Hackbinary | =) | ||
| Tene | Sorry for the confusion. :( | ||
| Hackbinary | no worries | ||
| or as they here, nay bother | |||
| that works alot better :) | 01:02 | ||
| so logical_not became neg? | 01:03 | ||
| tadzik | yeah | 01:04 | |
| iirc | |||
| kid51 | nwellnhof: Will add some debugging output to auto::ipv6 in a few minutes. | 01:13 | |
| sorear | Who has the authority to delete the 'cardinal' user on github? | 01:14 | |
| Tene | sorear: I could do it, as could treed. | ||
| sorear: pmichaud also knows the password for that account, iirc. | |||
| sorear | Tene: What's the argument against doing so now? | 01:15 | |
| Tene | sorear: I remember there was some concern about migrating the issues on the issue tracker | 01:16 | |
| treed wanted to preserve the information on the issue tracker and on the wiki. | |||
| He wasn't much concerned with *where* that data was, so if it can be easily imported to the parrot copy, that's fine. | 01:17 | ||
| nwellnhof | kid51: great | ||
| dalek | rrot: 17f46f5 | jkeenan++ | config/auto/ipv6.pm: Allow for some debugging output with --verbose or --verbose-step=auto::ipv6. |
01:19 | |
| kid51 | See if that helps on Solaris | ||
| I don't know exactly what the output will look like 'cause I detect ipv6 on linux and darwin. | |||
| Feel free to tweak that added line for better results. | 01:20 | ||
|
01:37
mtk left
|
|||
| bacek | rakudo: say '' ~~ /^\\'(.*)\\'[\\s*\\#.*]?$/ | 01:38 | |
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say '' !~~ /^\\'(.*)\\'[\\s*\\#.*]?$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | rakudo: say '' ~~ /^\\'(.*)\\'$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say '' !~~ /^\\'(.*)\\'$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | 01:39 | |
| bacek | rakudo: say '' ~~ /^'(.*)'$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say '' ~~ /^''$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say '' !~~ /^''$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Falseā¤Ā» | ||
| bacek | rakudo: say '' !~~ /^'.*'$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | rakudo: say '' !~~ /^\\'.*\\'$/ | 01:40 | |
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | rakudo: say '' !~~ /^\\'.*\\'/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | rakudo: say '' !~~ /'.*'/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | rakudo: say '' !~~ /' .* '/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | erm... | ||
| sorear | ? | ||
| bacek | seen moritz | 01:41 | |
| clunker3 | moritz was last seen on #parrot 7 hours, 21 minutes and 48 seconds ago, saying: ok, thanks | ||
| aloha | moritz was last seen in #parrot 7 hours 21 mins ago saying "ok, thanks". | ||
| bacek | aloha, clunker3? | ||
| aloha | bacek: Search me, bub. | ||
| sorear | I know p6regex too | ||
| bacek | sorear, hooray! :) | ||
| what's wrong with my regex? I'm trying to port /^\\'(.*?)\\'(?:\\s+\\#.*)?\\z/ from Perl5 | 01:42 | ||
| sorear | What's \\z do? | ||
| bacek | \\z is EOL. Should be $ in Perl6. | ||
| Something like /^\\'(.*?)\\'[\\s+\\#.*]?$/ | |||
| Doesn't work apparently | 01:43 | ||
| sorear | ^ \\' (.*?) \\' [\\s+\\#.*]? $$ / maybe | ||
| bacek | rakudo: say 'foo' ~~ /^ \\' (.*?) \\' [\\s+\\#.*]? $$ / | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say 'foo' ~~ /^ \\' (.*?) \\' [\\s+\\#.*]? $/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say 'foo' ~~ /^ ' (.*?) ' [\\s+\\#.*]? $/ | 01:44 | |
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say 'foo' ~~ /^ ' (.*) ' [\\s+\\#.*]? $/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say 'foo' ~~ /^ \\' .* \\' [\\s+\\#.*]? $/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | nope | ||
| rakudo: say 'foo' ~~ /^ \\' (.*) \\' $/ | |||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
| bacek | rakudo: say 'foo' ~~ /^\\'(.*)\\'$/ | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«ā¤Ā» | ||
|
01:45
mtk joined
|
|||
| sorear | bacek: what do you want to see? | 01:45 | |
| bacek | sorear, matched string? | ||
| rakudo: say ?('foo' ~~ /^\\'(.*)\\'$/) | |||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Falseā¤Ā» | ||
| sorear | bacek: 'foo' doesn't contain any single quote characters | 01:46 | |
| bacek | Or Bool::True :) | ||
| rakudo: say ?("'foo'" ~~ /^\\'(.*)\\'$/) | |||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | ah... | ||
| Shame on me... | |||
| rakudo: say ?("''" ~~ /^\\'(.*?)\\'[\\s+\\#.*]?$/) | 01:47 | ||
| p6eval | rakudo 549d2a: OUTPUTĀ«Bool::Trueā¤Ā» | ||
| bacek | nqp: say ?("''" ~~ /^\\'(.*?)\\'[\\s+\\#.*]?$/) | ||
| p6eval | nqp: OUTPUTĀ«Confused at line 1, near "say ?(\\"''\\""ā¤current instr.: 'parrot;HLL;Grammar;panic' pc 635 (src/cheats/hll-compiler.pir:206)ā¤Ā» | ||
| bacek | nqp: say ("'foo'" ~~ /^\\'(.*?)\\'[\\s+\\#.*]?$/) | ||
| p6eval | nqp: OUTPUTĀ«Confused at line 1, near "say (\\"'foo"ā¤current instr.: 'parrot;HLL;Grammar;panic' pc 635 (src/cheats/hll-compiler.pir:206)ā¤Ā» | ||
| bacek | nqp: say("'foo'" ~~ /^\\'(.*?)\\'[\\s+\\#.*]?$/) | ||
| p6eval | nqp: OUTPUTĀ«'foo'ā¤Ā» | ||
| bacek | nqp: say("''" ~~ /^\\'(.*?)\\'[\\s+\\#.*]?$/) | ||
| p6eval | nqp: OUTPUTĀ«''ā¤Ā» | ||
| sorear | you want to use $$ | 01:48 | |
| $ matches end of string | |||
| bacek | sorear, I need end of string :) | 01:49 | |
| sorear | What was \\z for? | 01:50 | |
| ah | |||
| found it | |||
|
02:08
plobsing joined
02:18
whiteknight left
02:33
nwellnhof left
|
|||
| bacek | sorear, ping? | 02:38 | |
| KaeseEs | bacek: is it impossible or merely impractical to use copying in a collector for parrot? bacon advocates an approach where sweeping is normally used and copying is used when there's significant fragmentation | 02:40 | |
| bacek | KaeseEs, implementing copying GC within current parrot is... challenging. | 02:41 | |
| KaeseEs | can you give me the elevator explanation of the challenges? (i've been reading papers more than parrot docs, and am beginning to think that maybe i should have gone the other way around) | 02:43 | |
| sorear | KaeseEs: there is no write barrier API in Parrot. | ||
| this is the crux of the problem | |||
| KaeseEs | ah. | ||
| sorear | bacek: pong. | ||
| bacek | sorear, Is /:i 'abc'/ syntax in NQP borrowed from Perl6? Or it's kind of hack? | 02:44 | |
| sorear | borrowed from Perl6. | 02:59 | |
| dalek | rrot: 655eb87 | jkeenan++ | src/platform/ (2 files): [codingstd] c_function_docs: correct 'item='. |
03:00 | |
|
03:05
contingencyplan left
|
|||
| luben | sorear, write barriers are needed for gernerational collector, compacting collector needs read barriers. But in current state we do not have neither of them | 03:07 | |
| KaeseEs, also PMCs are not easily realocatable for compacting to work | 03:08 | ||
| sorear | ah, misread | ||
| KaeseEs | ty luben | ||
| sorear | however the essential issue is the same | ||
| lack of APIs | |||
| luben | yes | ||
| sorear | the Parrot garbage collector doesn't actually know where the pointers are | ||
| it can ask PMCs, "what objects do you point to?" | 03:09 | ||
| this is part of the public API, subject to deprecation | |||
| plobsing | PMCs being pointers is part of the public API? I thought that only uses of Parrot_PMC (much more abstract) were under the policy. | 03:23 | |
| sorear | plobsing: extending API, not embedding | 03:26 | |
| extenders are allowed to write VTABLE mark() and expect it to work | |||
| plobsing | VTABLE mark could be reasonably co-opted by a copying collector if Parrot_gc_mark_PMC_alive() was pass-by-ref in stead of pass-by-val (and could potentially update). | 03:29 | |
| that's just one strategy for a copying collector. there may be other, better ones, | 03:31 | ||
|
03:40
kid51 left
03:52
nwellnhof joined
04:00
theory left
|
|||
| plobsing | msg whiteknight imcc_compreg_pmc now builds corevm fully. not sure if the 'add' parameters to some of the pf segment creation routines are a good idea. I don't think one would ever *not* want to add a segment to the directory that it claims to be under. sounds like asking for trouble to me. | 04:00 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 7f37f95 | plobsing++ | compilers/imcc/ (4 files): use 'add' argument when creating default segments to add them to the pf |
04:03 | |
| sorear | How much support is there for creating subs at runtime without IMCC? | 04:12 | |
| plobsing | sorear: examples/pir/make_hello_pbc.pir | 04:14 | |
| that's about as far as anyone has gotten. | |||
| the disk-storage intermediary step could probably be cut out without too much effort | 04:15 | ||
| dalek | TT #1990 created by nwellnhof++: GC bug with new embedding API | 04:30 | |
| TT #1990: trac.parrot.org/parrot/ticket/1990 | |||
| sorear | plobsing: PIRATE? | 05:02 | |
| sorear icks at some hacks in PIRATE | 05:08 | ||
|
05:11
nwellnhof_ joined
05:15
nwellnhof left,
nwellnhof_ is now known as nwellnhof
05:19
nwellnhof left
|
|||
| sorear wonders whether to | 05:46 | ||
| 1. use the Packfile PMC API directly | |||
| 2. import PIRATE | |||
| 3. use IMCC | |||
|
05:55
rurban_ joined
|
|||
| plobsing | sorear: what do you aim to do? | 05:57 | |
| and in what time frame? | 05:58 | ||
|
05:58
rurban left,
rurban_ is now known as rurban
|
|||
| sorear | plobsing: write a backend for my self-hosted Perl 6 compiler; 2-3 months | 06:41 | |
| plobsing | that's a tricky time frame. I'm hoping IMCC will be at least partially obsoleted by that time | 06:55 | |
| but packfile PMC API is shaky and possibly a tad inconvenient | |||
| on the other hand, PIR is very poor at expressing some key concepts | |||
| packfile API is cleaner long term, with short to mid term difficulty | 06:57 | ||
| sorear | can you put numbers on "short to mid term"? | 07:02 | |
| plobsing | if I could, I wouldn't have used the terms :^) | 07:16 | |
| the tricky part is, the break point is right around your time frame. if you said 6 months or later, I'd go with packfiles, if you said 1.5 months or sooner, I'd go with PIR. | 07:17 | ||
| in between, it is iffy. | |||
| sorear | I haven't committed to a timeframe yet. Maybe I'll make it happen when packfiles are nicer. | 07:19 | |
|
07:46
fperrad joined
|
|||
| moritz | good morning | 08:21 | |
| dalek | rrot: 139ce22 | dukeleto++ | RESPONSIBLE_PARTIES: Fix my name in RESPONSIBLE_PARTIES |
08:22 | |
| dukeleto | cotto_work: ping | 08:31 | |
| dalek | rrot/leto/deprecations_as_data: 56207d3 | tadzik++ | DEPRECATED. (2 files): DEPRECATED.pod is now DEPRECATED.json, adjusted rest of the files due to the change |
08:34 | |
| rrot/leto/deprecations_as_data: ff6a5bc | tadzik++ | / (5 files): s/DEPRECATED.pod/DEPRECATED.json |
|||
| rrot/leto/deprecations_as_data: 2512fe6 | tadzik++ | DEPRECATED.yaml: Added DEPRECATED.yaml, a direct translation of DEPRECATED.json |
|||
| rrot/leto/deprecations_as_data: 7f1d5ca | dukeleto++ | / (10 files): [doc] DEPRECATED.pod is now called docs/changes/api.yaml |
|||
| rrot/leto/deprecations_as_data: 669bd1a | dukeleto++ | docs/changes/api.yaml: Remove redundant experimental/eligble junk in api.yaml titles |
08:48 | ||
| dukeleto | we have so many old deprecations that have not been done | 09:04 | |
| dalek | rrot/leto/deprecations_as_data: f3c1f02 | dukeleto++ | docs/changes/api.yaml: Regularize the tags used in api.yaml |
||
|
09:13
perlite left,
perlite joined
09:25
mtk left
09:32
mtk joined
|
|||
| dalek | rrot: 404b8f2 | bacek++ | ext/nqp-rx/src/stage0/nqp-setting.nqp: Update nqp-setting with RPA.grep |
09:57 | |
| rrot: a3f6638 | bacek++ | DEPRECATED.yaml: Remove finished items from DEPRECATED.yaml |
|||
| TT #1561 closed by bacek++: Auto-vivification of nested aggregates is deprecated. | 10:01 | ||
| TT #1561: trac.parrot.org/parrot/ticket/1561 | |||
| rrot: e0194ad | bacek++ | DEPRECATED.yaml: Remove implemented deprecation from DEPRECATED.yaml. |
10:02 | ||
| rrot/leto/deprecations_as_data: 79c9444 | dukeleto++ | / (3 files): [tools] show_experimental.pl shows currently experimental features listed in api.yaml |
10:06 | ||
| dukeleto | bacek: i didn't realize that DEPRECATED.yaml was in master | 10:07 | |
| bacek: i am cleaning it up in a branch, see above | |||
| bacek | dukeleto, ok :) | 10:08 | |
| dalek | rrot/leto/deprecations_as_data: b677bc4 | dukeleto++ | docs/changes/api.yaml: Add IPv6 as experimental in api.yaml |
10:10 | |
| dukeleto | bacek: i will deal with it, just letting you know | ||
| bacek: are you goint to be at PDS tomorrow? | |||
| bacek | dukeleto, yes. | 10:11 | |
| dukeleto | bacek: awesome! | ||
|
10:17
contingencyplan joined
|
|||
| dalek | rrot/leto/deprecations_as_data: 42c4347 | dukeleto++ | t (2 files): [tools] show_deprecated.pl shows currently deprecated features listed in api.yaml with ticket info and eligible version |
10:21 | |
| rrot/leto/deprecations_as_data: 3e163b9 | dukeleto++ | docs/changes/api.yaml: Give all non-experimental items in api.yaml a deprecated tag |
|||
| rrot: 46b9ad7 | bacek++ | DEPRECATED.yaml: Remove implemented deprecation from DEPRECATED.yaml. |
10:26 | ||
| rrot: d71095f | bacek++ | t/compilers/pct/pct_hllcompiler.t: Convert test to use P6Object instead of Protoobject. |
|||
| rrot: 0f269b9 | bacek++ | / (5 files): Remove deprecated Protoobject. Closes #1337. |
|||
| dukeleto | bacek++ | 10:31 | |
| bacek | dukeleto, I can't resist to fixing ticket with such number | ||
| :) | |||
| dalek | TT #1337 closed by bacek++: deprecate runtime/parrot/library/Protoobject.pir | 10:34 | |
| TT #1337: trac.parrot.org/parrot/ticket/1337 | |||
| dukeleto | bacek: indeed, that seems too good for coincidence ;) | ||
| bacek just did a typo in Pm's name... | 10:37 | ||
| sigh | |||
| dalek | rrot: 0e4fd2a | bacek++ | DEPRECATED.yaml: Remove finished deprecated item. |
10:43 | |
| bacek | NotFound, ping | 10:47 | |
| NotFound, unping. Found one more load_bytecode. | 10:49 | ||
| dalek | rrot: 4970e66 | bacek++ | t/compilers/pct/pct_hllcompiler.t: Remove one more reference to Protoobject.pbc from test. NotFound++. Closes #1337. |
||
| TT #1103 closed by bacek++: Optional named parameters must be explicit | 10:50 | ||
| TT #1103: trac.parrot.org/parrot/ticket/1103 | |||
| TT #1337 reopened by NotFound++: deprecate runtime/parrot/library/Protoobject.pir | |||
| TT #1337: trac.parrot.org/parrot/ticket/1337 | |||
|
11:50
cxreg left
12:12
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:16 | |
| msg plobsing plobsing++! I knew that it was going to be a relatively small problem. It would have taken me a very long time to figure that out. | 12:20 | ||
| aloha | OK. I'll deliver the message. | ||
|
12:48
janus left,
janus joined
|
|||
| bacek | msg cotto trac.parrot.org/parrot/ticket/1337#comment:5 - git id wasn't handled properly. | 13:00 | |
| aloha | OK. I'll deliver the message. | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#6078) fulltest) at 3_0_0-313-g4970e66 - Ubuntu 10.10 i386 (g++-4.5) | 13:03 | |
| mikehh switching to 64 bit to do some tests there - bbiab | 13:05 | ||
|
13:05
mikehh left
|
|||
| dalek | TT #1337 closed by bacek++: deprecate runtime/parrot/library/Protoobject.pir | 13:12 | |
| TT #1337: trac.parrot.org/parrot/ticket/1337 | |||
|
13:17
mikehh joined
13:24
kid51 joined
|
|||
| dalek | p-rx/nom: 481de03 | moritz++ | src/cheats/nqp-builtins.pir: return 0 from failed ok() |
13:29 | |
| p-rx/nom: d26843d | moritz++ | src/stage0/ (4 files): update bootstrap |
|||
| p-rx/nom: a82ee69 | moritz++ | src/metamodel/how/NQPMu.pm: port .Str and .isa from 6model to NQPMu |
|||
| mikehh | opbots, names | 13:34 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: e0e4c18 | Whiteknight++ | src/packfile/api.c: imcc is clobbering interp->code in load_bytecode. |
||
|
13:55
rurban_ joined
13:58
rurban left,
rurban_ is now known as rurban
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#6093) fulltest) at 3_0_0-313-g4970e66 - Kubuntu 10.10 amd64 (g++-4.5) | 14:15 | |
|
14:29
JimmyZ joined
|
|||
| JimmyZ | good evening | 14:29 | |
| Does anyone know parrot's new_callback op? | 14:30 | ||
|
14:37
Eclesia joined
|
|||
| Eclesia | h | 14:37 | |
| hi* | |||
| tadzik | hi | 14:38 | |
|
14:51
kid51 left
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#6099) fulltest) at 3_0_0-313-g4970e66 - Kubuntu 10.10 amd64 (g++-4.5 with --optimize) | 14:52 | |
|
15:12
whiteknight left
15:20
ambs joined
15:29
Patterner left
15:30
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| mikehh | rakudo (549d2a9) - builds on parrot (3_0_0-313-g4970e66)- make test, make spectest_smolder[(#6108), roast (510d9d2)] PASS - Kubuntu 10.10 amd64 (g++-4.5 with --optimize) | 15:38 | |
| 27,599 ok, 0 failed, 611 todo, 1,837 skipped and 0 unexpectedly succeeded | |||
|
15:48
mtk left
16:20
ambs left
16:58
Eclesia left
17:00
zby_home joined
17:06
cotto left
|
|||
| dalek | TT #1991 created by jimmy++: simplify 'new_callback' op | 17:14 | |
| TT #1991: trac.parrot.org/parrot/ticket/1991 | |||
| dukeleto | ~~ | 17:44 | |
| JimmyZ: the change to new_callback seems reasonable | 17:45 | ||
| JimmyZ: email parrot-dev and get some feedback | 17:46 | ||
| JimmyZ | dukeleto: I would like to unify the callback function's args too. :) | 17:47 | |
| dukeleto | JimmyZ: can you provide patches? | ||
| JimmyZ | dukeleto: I couldn't, it's complicated, only removing it makes parrot segfault. | 17:48 | |
| JimmyZ doesn't know how to patch nci.pmc to make it work correctly :) | 17:50 | ||
| dukeleto | JimmyZ: i am not sure either :) | 17:53 | |
| plobsing | JimmyZ: read the implementation of new_callback. what you are asking for cannot be accomplished. | 17:57 | |
| dukeleto | well, that makes for less work | 17:59 | |
|
17:59
mikehh left
|
|||
| JimmyZ | plobsing: and another one, the callback parameter seems to be opposite to what defined in the C code. | 18:06 | |
| dukeleto sends some emails to parrot-dev | 18:07 | ||
| JimmyZ | that is, the test itself is wrong too. | 18:08 | |
|
18:09
mikehh joined
18:10
whiteknight joined
|
|||
| plobsing | JimmyZ: read resolution comment on TT. it provides the details of why what you ask is infeasible. | 18:11 | |
| JimmyZ: backwards? seems to be invoked the same way as src/nci_test.c:nci_cb_C1 is defined. | 18:13 | ||
| whiteknight | plobsing: Thanks for the fix on imcc_compreg_pmc. I made another fix and now it almost finishes the build. segfaults inside IMCC building PGE I think | 18:16 | |
| dalek | TT #1991 closed by plobsing++: simplify 'new_callback' op | 18:17 | |
| TT #1991: trac.parrot.org/parrot/ticket/1991 | |||
| JimmyZ | plobsing: nci_test.c is 'typedef void (*cb_C1_func)(const char*, void*);' and nci.t's ".param pmc u \\n .param string s". why it's not ".param string s \\n .param pmc u"? | 18:20 | |
| JimmyZ wonders whether he understand it wrongly or not. | 18:22 | ||
| plobsing | JimmyZ: you've got 13:08 <@JimmyZ> that is, the test itself is wrong too. | 18:33 | |
| oops | |||
| JimmyZ: you've got Parrot_callback_C between the invokation in C and the invokation of parrot | 18:34 | ||
| the signature in C is correct for the C callback | |||
| If you're confused about how callbacks are supposed to work, read src/interp/inter_cb.c. You will either get confused and give up, or | 18:36 | ||
| dukeleto | we are getting close to 14000 tests in our test suite | ||
| plobsing | be disgusted, or understand the constraints we're under. | ||
| dukeleto | plobsing: perhaps we need better dev docs? | ||
| JimmyZ | what's about nci.t? I think the parameter is reversed | ||
| plobsing | dukeleto: I find it completely reasonable to expect a parrot-dev to RTFS | 18:37 | |
| dukeleto | plobsing: sure, RTFS'ing is always required to reach enlightment. But we should provide easy on-ramps for those that are just getting their feet wet, you know what I mean? | 18:38 | |
| enlightenment, even | |||
| JimmyZ | plobsing: according to PDD16, I'm sure one of them is wrong. | 18:39 | |
| plobsing: and I think PDD16 is right :) | 18:40 | ||
| plobsing | JimmyZ: the parameters are not reversed. the callback is invoked as 'vtU', which is "void (char *, PMC *)" | ||
| JimmyZ: PDDs are written by armchair designers who don't actually implement things | 18:42 | ||
| "this is the way things should be. now, somebody, go out and do that." yeah, right. | |||
| JimmyZ | plobsing: but .sub _call_back in the test file is not ".param string s \\n .param pmc u" | 18:43 | |
| plobsing: now it's ".param pmc u \\n .param string s" | 18:45 | ||
| that is, the callback sub was defined as 'vUt' | 18:47 | ||
| dalek | rrot: 7603711 | jimmy++ | docs/pdds/draft/pdd16_native_call.pod: fixed code example |
18:50 | |
| rrot: ed5bca7 | jimmy++ | src/pmc/nci.pmc: removed unused code from nci.pmc |
|||
| rrot: 397c69d | jimmy++ | / (16 files): Merge branch 'master' of github.com:parrot/parrot |
|||
|
18:54
JimmyZ left
18:55
whiteknight left,
whiteknight joined
|
|||
| dukeleto smokes parrot on darwin | 19:08 | ||
| looks like we have some ipv6 failures on darwin | 19:12 | ||
|
19:18
gt joined
19:34
whiteknight left
19:47
mikehh left
19:49
lucian joined
19:50
GodFather joined
20:02
mikehh joined
20:03
gt left
20:16
gerd joined
|
|||
| bacek | Good morning, humans | 20:18 | |
| tadzik | good evening bacek | ||
| bacek | tadzik, aloha | 20:19 | |
|
20:26
Themeruta joined
20:27
NotFound left,
cxreg joined,
Themeruta is now known as NotFound
20:32
kid51 joined
20:38
cotto joined,
gerd left
|
|||
| cotto | ~~ | 20:41 | |
| kid51 | cotto, hello | ||
| bacek | cotto, aloha | 20:43 | |
| cotto | hi kid51, bacek | 20:56 | |
| kid51 | dukeleto: What were you seeing re ipv6 on Darwin? | 20:57 | |
|
20:58
chromatic joined
21:05
gt joined
21:07
gt left
|
|||
| kid51 | I notice that on Darwin, because of dynamic linking, the t/dynpmc/ and t/dynoplibs/ tests cannot run under 'prove'. | 21:12 | |
| And that is what I observe with t/pmc/socket_ipv6.t on that platform as well. | |||
| If I run 'prove t/pmc/socket_ipv6.t', I get failures. | 21:13 | ||
| If I run 'make pmc_tests', I get PASS. | |||
| Feature or bug? | |||
|
21:26
fperrad left
|
|||
| kid51 | Parrot Developer Summit in #parrotsketch in 30 minutes | 21:30 | |
| he | I'm trying to figure out why t/tools/mk_language_shell.t seems to fail, and trying to decipher what it's trying to do so as to reproduce the failure to find the root cause. | 21:34 | |
| Not having too much success, I'm afraid. | |||
|
21:35
allison joined
|
|||
| kid51 | he: can you paste the failure you are getting? | 21:35 | |
| he | kid51: Dubious, test returned 1 (wstat 256, 0x100) | ||
| Not too informative. | 21:36 | ||
| and ... Failed 2/7 subtests | |||
| kid51 | prove -v t/tools/mk_language_shell.t | ||
| OS? Platform? | 21:37 | ||
| he | Unable to execute setup.pir at t/tools/mk_language_shell.t line 68 | ||
| NetBSD/i386 4.0 | |||
| Reading the test I can't figure out where setup.pir is supposed to come from. | 21:38 | ||
| Preferring to use an installed parrot seems wrong to me; tests are (at least in my case) usually executed before the installed parrot has been upgraded. | 21:40 | ||
| So one might be testing the previous version. | |||
| dukeleto | kid51: i submitted a failing darwin smoke report for the ipv6 failure, but don't have the URL handy | ||
| kid51 | he: What happens when you simply run: perl tools/dev/mk_language_shell.pl Xyz ? | 21:41 | |
| he | kid51: nothing much, it spits out a bunch of "creating", says "no doc:" twice, "no dynext" once, "no pmc" and "no ops". | 21:42 | |
| kid51 | dukeleto: smolder.parrot.org/app/projects/tap...m/6143/229 ; I have no clue | 21:44 | |
| he: Does it appear to complete successfully? | |||
| dukeleto | kid51: i responded to your email just now, as well | ||
| kid51: interesting. could be that the port is already in use, and those tests should try a different port and/or skip | 21:45 | ||
| he | kid51: seems so; it leaves a setup.pir behind in xyz/ | 21:46 | |
|
21:49
nwellnhof joined
|
|||
| kid51 | he: that suggests you should be able to get at least as far as line 40 in t/tools/mk_language_shell.t | 21:50 | |
| I suggest running it through Perl debugger. | |||
| he | inspecting the results of "ktrace -i prove -v ..." | 21:51 | |
| kid51 | PDS in 10 minutes | ||
| he: Example: run it thru the perl debugger to line 57, and there examine content of $setup, $installed_parrot, $build_parrot, $parrot_exe, etc. | 21:52 | ||
| At that point, examine line 65 of the test. Perhaps NetBSD needs the same restriction there as Darwin. | 21:53 | ||
|
21:55
rurban_ joined
21:58
rurban left,
rurban_ is now known as rurban
|
|||
| kid51 | PDS starting now in #parrotsketch | 22:00 | |
| he | Ah, it's getting all the way to the C compiler as part of pbc_to_exe. There the C compiler is spewing "test_parrot_language_28464.c:3:24: error: parrot/api.h: No such file or directory | 22:04 | |
| kid51 | he: We're starting our online meeting now, so I'll have to get back to you later. | 22:05 | |
| he | kid51: sure, np. | ||
|
22:05
pmichaud_ is now known as pmichaud
|
|||
| dukeleto | PDS is now, if anybody forgot | 22:06 | |
|
22:12
bubaflub joined
22:22
theory joined
|
|||
| cotto | atrodo, ping | 22:31 | |
|
22:35
theory left,
theory joined
|
|||
| allison | lucian: I could chatter on for ages, but will end up completely derailing the conversation in PDS :) | 23:05 | |
| lucian | allison: yes, good point | ||
| but really, they're not very similar at all | |||
| allison | lucian: my main point is that NQP doesn't provide any value for getting PyPy running on Parrot | 23:06 | |
| lucian: however similar or different they are, PyPy doesn't need NQP | |||
| lucian | allison: yeah, that is a good point | ||
| what might be interesting is a Lorito interpreter written with PyPy's framework | 23:07 | ||
| free JIT, GC and pluggable object model | |||
| allison | that would be interesting | ||
| I also want to see what we can get with Parrot as a replacement for CPython/compiled PyPy | |||
| can we offer them any technological advantages? | 23:08 | ||
| cotto | lucian, That's the kind of think I'm hoping to see once the M0 spec is complete. | ||
|
23:08
lucian left
23:10
lucian joined
|
|||
| lucian | allison: not really | 23:10 | |
| pynie-on-parrot-on-pypy would have a JIT, as opposed to CPython which doesn't | 23:11 | ||
| allison | lucian: then that's where our focus should be | ||
| lucian: and as opposed to Parrot, which has no JIT | |||
| lucian | but even that's not worth much, PyPy's python vm is awesome | ||
| the only reason a python user would ever want parrot is interoperability | |||
| allison | interoperability isn't a huge selling point | ||
| lucian | that's parrot's only selling point | 23:12 | |
| allison | unless it was interoperability between Python 2 and Python 3 code | ||
| that's just not enough | |||
| we used to have a speed advantage, we need to get that back | |||
| lucian | python developers wouldn't mind to be able to use some ruby libs, and vice-versa | ||
| python2 <-> python3 is an interesting idea | |||
| that would be a good selling point | 23:13 | ||
| some people are playing with implementing python2 on python3, but it's not going great | |||
| allison | using ruby libs requires 100% compatibility with existing Python and Ruby code, which is a really, really, really tough problem | ||
| lucian | allison: yep, but that will come eventually | ||
| allison | if we have to wait until we get 100% interoperability before people start using Parrot, we'll starve to death waiting for attention | 23:14 | |
| lucian | there's really no other selling point | ||
| allison | then we need to change that | ||
| lucian | it's extremely unlikely you'll beat PyPy in speed or memory usage | ||
| allison | <shrug> we were faster than PyPy a few years ago. | ||
| we're not now, but that's fixable | 23:15 | ||
| lucian | were you? i was never convinced | ||
| beating PyPy and hotspot is hard | |||
| allison | PyPy benchmarked slower than CPython, Parrot benchmarked faster than CPython | ||
| kid51 always welcomes allison's suggestions on fixing that :-) | |||
| lucian | allison: on? do you have a link? | ||
| allison | kid51: Lorito is the path, both to speed and to lower memory usage | 23:16 | |
| particle | sometimes it seems parrot is starving to death now | ||
| allison | lucian: AFAIK, no one ever benchmarked PyPy directly to Parrot | ||
| particle | allison, are you speaking of alioth benchmarks? | 23:17 | |
| allison | lucian: I mainly rely on the alioth benchmarks | ||
| particle: yes :) | |||
| bacek | aloha, 6model? | ||
| aloha | bacek: 6model is basically intended to be used from a HLL | ||
| allison | I don't immediately see a way to get old alioth results | ||
| bacek | meh... | 23:18 | |
| Coke | allison: If we were faster than native on python, we were never even close on perl or tcl. | ||
| lucian | allison: beating PyPy on alioth would be an achievement, although not that relevant | ||
| bacek | pmichaud, what is best link to read about 6model? | ||
| Coke | (and those python results must be post-dan.) | ||
| allison | Coke: those are VM-to-VM comparisons | ||
| pmichaud | bacek: best is to contact jnthn for that, at least at the moment | ||
| dalek | tracwiki: v1 | mikehh++ | GSoc2011 | 23:19 | |
| tracwiki: trac.parrot.org/parrot/wiki/GSoc201...ction=diff | |||
| tracwiki: v185 | mikehh++ | WikiStart | |||
| tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff | |||
| allison | Coke: at the time, our language implementation strategy was "translate the language to raw bytecode" which gave us huge speed advantages | ||
| Coke: also, at the time we had a JIT | |||
| Coke: and all the benchmarks that could be were JIT-ed | |||
| (Coke: er, I mean, just running with -j) | 23:20 | ||
| particle | which was basically anything with math ops | ||
| lucian | anyway, beating hotspot or even PyPy will be very, very hard | 23:21 | |
| allison | lucian: sure, but a couple of years ago everyone said the same thing about PyPy | ||
| jnthn | o/ | ||
| allison | lucian: "it's slow, it'll never be as fast as CPython" | ||
| lucian | allison: and it was very, very hard to get where it is | ||
| jnthn | Sorry I"m a bit late to things | 23:22 | |
| allison | lucian: yah, but "very, very hard" is not the same as "impossible" | ||
| lucian | parrot may have a higher potential for speed than PyPy | ||
| kid51 | jnthn: PDS in #parrotsketch ongoing | ||
| allison | lucian: it's a simple matter of programming | ||
| lucian | no, of course | ||
| but it's still hard | 23:23 | ||
| allison | (I'm over trivializing it, but generally just want to make the point that effort is possible, it just needs to be focused in the right direction) | ||
| lucian | and you need motivation for it | ||
| and for motivation, you need language implementations | |||
| allison | I think the motivation is relevance | ||
| particle | $$$ | ||
| allison | lucian: there's a bit of a chicken-and-egg problem there | ||
| particle | without someone's backing, i'm convinced there won't be enough velocity to keep up | 23:24 | |
| allison | lucian: for language implementations we need relevance | ||
| lucian | particle: exactly. if parrot can run perl6, python and ruby at least as fast as the mainstream C VMs, it'll be great | ||
| allison: not necessarily. i think the approach was very wrong so far | |||
| allison | lucian: that is, why would anyone spend a lot of time working on a language implementation for an inferior VM? | ||
| lucian | languages were implemented from scratch, instead of forking the existing implementations | ||
| for example, python has an ast module | 23:25 | ||
| allison | lucian: we did try forking the existing implementation for Perl5, and it was a nightmare | ||
| Coke | allison: that is an excellent question that has bugged me for coming up on a decade. ;) | ||
| lucian | allison: is that perl5's fault? | ||
| allison | lucian: yeah, I tried using Python's AST module too | ||
| lucian: and it was also a nightmare | |||
| I asked Guido about it | |||
| and he said "of course, it wasn't written to be portable" | 23:26 | ||
| lucian | portable to what? | ||
| allison | Perl 5 is the same way | ||
| portable to anything | |||
| lucian | there's a pure python version | ||
| allison | it's very incestuous between the parsing and the VM implementation | ||
| lucian: sure, but you need to bootstrap a large amount of Python to use a pure python parser | 23:27 | ||
| lucian | anyway, an existing python compiler. PyPy has one too | ||
| allison: and that's what parrot needs to help with. parsing, codegen are easy | |||
| the data types are hard to boostrap | |||
| allison | yes, PyPy had to implement theirs from scratch, and I still have high hopes that we could use it (almost) directly | ||
| lucian | (of course, this only applies for languages with existing mature implementations) | ||
| allison: i'd advise you to forget those high hopes | 23:28 | ||
| pypy implements them in RPython | |||
| which is an implementation detail of the pypy vm framework | |||
| other than porting the whole of pypy, it wouldn't help | |||
| allison | (when I say Perl 5 is the same way on implementations, I mean it's also very deeply entwined between parser, ast, and vm implementation) | ||
| lucian | allison: well, cpython isn't that bad | ||
| allison | lucian: yah, that's why I'm curious about implementing another backend for PyPy, instead of trying to reinvent everything PyPy already provides | 23:29 | |
| lucian: it isn't "bad", it just isn't portable | |||
| lucian | that wouldn't be useful at all | ||
| allison | lucian: you can't cut one chunk out of CPython carry it over to a completely different implementation | ||
| lucian | a parrot backend for PyPy would generate a VM that runs on top of parrot | 23:30 | |
| it would be doubly interpreted | |||
| allison | lucian: it just doesn't make any sense | ||
| lucian | i'm not suggesting that | ||
| allison | lucan: a VM that runs on top of Parrot is exactly what NQP/Perl6 is implementing | ||
| lucian | allison: then it'll be excruciatingly slow | ||
| allison | lucian: I'm just suggesting embracing Parrot's key value and pushing it to an extreme | ||
| lucian: why slow? | 23:31 | ||
| lucian | because it's doubly interpreted | ||
| try running PyPy's py.py without translating | |||
| allison | lucian: no, no, PyPy would have to run native in Parrot | ||
| lucian | it's a python interpreter written in pure python | ||
| allison: it can't "run native" | |||
| allison | lucian: sure it can, translate RPython to Parrot bytecode | ||
| lucian | PyPy generates interpreters | 23:32 | |
| allison: and what does that achieve? | |||
| allison | PyPy generates interpreters, yah, so it can generate interpreters running on Parrot | ||
| lucian | and that'll be very, very slow | ||
|
23:32
GodFather left
|
|||
| allison | lucian: if it's successful, it gives an avenue for PyPy to run faster, on more platforms | 23:33 | |
| lucian | double interpretation is slow, you can't get around that | ||
| allison | lucian: if it doesn't provide any advantages at all, then it's a waste of time :) | ||
| lucian: and, I accept the point that right now it doesn't provide any advantages | 23:34 | ||
| lucian | and when will it? | ||
| writing a parrot backend for PyPy is a worse idea than finishing PyPy's jvm backend | |||
| if you treat parrot like the jvm/.net, there's no advantage to its existance | |||
| allison | lucian: I just don't think "true right now" means "will always be true" | 23:35 | |
| lucian | the only nice parrot might fill is a higher level vm than the jvm | ||
| the only way to get around the double interpretation is for PyPy to JIT to parrot bytecode | |||
| and then for parrot to JIT that to something native | 23:36 | ||
| allison | lucian: see, the biggest problem is that right now Parrot is competing with the very communities it needs to succeed | ||
| lucian: that doesn't make any sense | |||
| lucian: we shouldn't be competing with PyPy, we should be helping them | |||
| lucian | and that's as bad as what happens with PyPy's .NET JIT backend | ||
| allison: but you can't | |||
| at least I don't see how | |||
| forget PyPy, think the entire python community | |||
| the roadblock to writing a good pynie is bootstrapping data types | 23:37 | ||
| once you have objects and functions (which implies dicts, lists and tuples), you can bootstrap the rest of python | |||
| allison | why is bootstrapping datatypes hard? | 23:38 | |
| it's a bunch of PMCs | |||
| lucian | because you don't get to do it in python | ||
| allison | so, it's hard because our PMC definition language is a pain? | ||
| lucian | parsing & codegen you can do in python, and it's the best way | ||
| allison | (and agreed that it is a pain) | 23:39 | |
| lucian | allison: partly. it's weird | ||
| mostly because most of the tools parrot offers to implement languages focus on parsing & codegen | |||
| allison | yeah, it's a strange mixture of C and a funky macro language | ||
| what if you could define PMCs in RPython | |||
| lucian | that's the easy bit for mature languages | ||
| allison | would that help? | ||
| (that is, a subset of RPython, without the Python core types) | 23:40 | ||
| lucian | not RPython, but something similar, perhaps | ||
| i'm not sure | |||
| the thing is, python isn't lisp | |||
| you need more than lists and 7 functions to bootstrap it | |||
| there are cyclic dependencies that get annoying | 23:41 | ||
| what really is needed is an object implementation | |||
| that's the only thing that's hard to bootstrap really | |||
| allison | parrot has an object implementation | ||
| lucian | and it really sucks | ||
| allison | a simple one, but enough to bootstrap | ||
| lucian | at least for python | ||
| allison | sucks as in "too complex" | 23:42 | |
| lucian | i mean python objects | ||
| allison | ? | ||
| lucian | sucks as in it's too static | ||
|
23:42
bubaflub left
|
|||
| allison | and too heavyweight | 23:42 | |
| yeah, I can see that... | |||
| lucian | once you have python-level objects and a way to inherit from PMCs, you can bootstrap the rest of python | ||
| but implementing python objects requires dicts and lists and tuples and functions and a few other things | 23:43 | ||
| allison | so, it needs tools to easily implement an object model, instead of one "universal" object model | ||
| lucian | allison: yes, that would be more accurate | ||
| allison | dicts, lists, tuples, and functions are easy | ||
| like, core parrot has them | |||
| lucian | i know | ||
| you'd first need to get them to behave like python's | 23:44 | ||
| but i agree, they're mostly there | |||
| it's just a but mind-bending | |||
|
23:44
bacek left
|
|||
| lucian | since functions and lists and so on are objects | 23:44 | |
| and in fact functions are just objects with a __call__ attribute | |||
| allison | which brings us around to the fact that we really need an easier syntax to implement core data types | ||
| (PMCs) | |||
| lucian | allison: sort of, yes | 23:45 | |
| allison | which probably isn't RPython, or any variation of any HLL | ||
| lucian | i don't really know | ||
| maybe it's lorito | |||
| allison | but a simple, lightweight definition language | ||
| lucian | pir isn't too bad, really | ||
| but it doesn't have to be assembly at all | |||
| allison | that's one of the ideas for Lorito, I don't know if it'll make it into the final cut | ||
| yes, probably shouldn't be quite like assembly | 23:46 | ||
| at least to the point that it would be really nice to have blocks and control structures | |||
| lucian | but the main point is that people who love a language want to use it | ||
| and if it's a mature language, PCT is useless | |||
| allison | "useless" as in "makes too many assumptions to do a good job of morphing to other HLL styles"? | 23:47 | |
| lucian | allison: useless as in it's not the language they love at all | ||
| allison | ("other completely different HLL styles, where you have to fit in with that behavior") | ||
| lucian | if it's a sane language, it's possible to write a compiler in it | ||
| so python developers will want to write parrot's python implementations in python as much as possible | 23:48 | ||
| same for ruby, etc. | |||
| and when you're re-implementing an existing, mature language, there are other hard bits | 23:49 | ||
| like bootstrapping the object model | |||
| allison | yes, cross-implementation compatibility is a bear | 23:52 | |
| on the plus-side for Python, the core developers are really committed to supporting multiple implementations | |||
| lucian | that too, but that's fiddly bits later | 23:53 | |
| allison | it's a big value for Guido | ||
| lucian | it has to run first | ||
| allison | (he did the first implementation of what became Jython) | ||
| lucian | i thought that was someone else | ||
| doesn't matter much, anyway | |||
| what matters is that python doesn't run without objects | 23:54 | ||
| allison | lucian: good point, and very true | ||
| (about objects) | |||
| lucian | and while it needs much more than lisps, it doesn't need that much | 23:55 | |
| implementing 'object' in pir and a way to inherit from PMCs would (i think) would be enough | |||
| the rest could be pure-python | |||
| allison | (lucian: on who started it, Frank Wierzbicki and Guido both told me Guido did, but I never did research to prove it, just took their word) | 23:57 | |
| lucian: yah, but it really needs a declaration language for PMCs in PIR, instead of the weird "create the data-types on the fly at runtime" object system we have now | 23:58 | ||
| lucian | ok, it was just my impression that it was the IronPython guy | ||
| allison | lucian: in PIR, or some other language | ||
| lucian | yeah, that is silly | ||
| w/e | |||
| it doesn't matter much | |||
| allison | lucian: IronPython is .NET, and he did start from scratch on his own | ||
| lucian | i know, i read something like he did it to prove it's possible to do jython in .net, after having written jython | 23:59 | |
| he probably just maintained jython, or something | |||
| doesn't matter | |||