|
Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Help testing/fixing Lua on gen_gc2 branch Set by moderator on 15 February 2011. |
|||
| ttbot | Parrot 4b37667f i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18886 | 00:04 | |
| plobsing | by the looks of that tt report, looks like someone has to rebootstrap ops. | 00:08 | |
|
00:09
donaldh left
00:14
vmspb left
00:15
cotto joined
|
|||
| cotto | ~~ | 00:15 | |
|
00:16
cosimo joined
00:20
mj41_ joined
00:24
mj41 left,
mj41_ is now known as mj41
00:28
lucian_ joined
00:29
Util left,
Util joined
00:31
lucian left
00:35
hatseflats left,
hatseflats joined
00:39
lucian joined
00:43
lucian_ left
|
|||
| dalek | TT #2017 created by jkeenan++: gen_gc2 branch: t/pmc/namespace-old.t and t/pmc/resizablepmcarray.t test ... | 00:45 | |
| TT #2017: trac.parrot.org/parrot/ticket/2017 | |||
| rrot/gen_gc2: 6ddd127 | bacek++ | lib/Parrot/Pmc2c/PCCMETHOD.pm: Fix previous commit with fixing PCC RETURN rewriting. |
00:47 | ||
| bacek_at_work | whiteknight, can you pull gen_gc2 and retest it? | ||
|
00:49
cosimo left
00:52
mtk left
|
|||
| whiteknight | sure | 00:55 | |
|
00:55
lucian_ joined
00:58
lucian left
00:59
mtk joined
01:01
dmalcolm left
|
|||
| dalek | TT #2018 created by bacek++: Improve pmc2c to support :manual_wb flag. | 01:01 | |
| TT #2018: trac.parrot.org/parrot/ticket/2018 | |||
|
01:02
lucian__ joined
01:03
lucian_ left
|
|||
| whiteknight | bacek: tests looking good so far. I've submitted a few passing smoke tests | 01:06 | |
| cotto | bacek_at_work, I like that solution. | 01:07 | |
|
01:07
lucian__ left
|
|||
| bacek_at_work | cotto, TT #2018? | 01:07 | |
| cotto | yes | 01:08 | |
| bacek_at_work | cotto, yes. It's exactly what we discussed. | 01:09 | |
| cotto | that'd explain it | ||
| ;) | |||
| bacek_at_work | :) | 01:11 | |
| nwellnhof | imo we should aim for a more sytematic approach to write barriers in the long run | ||
| plobsing | nwellnhof: systemic how? | ||
| nwellnhof | *systematic | 01:12 | |
| a macro to change PMC pointers | |||
| bacek_at_work | SETATTR_foo? | 01:13 | |
| It will not cover 100% of usecases | |||
| nwellnhof | why not? | ||
| plobsing | to be more general you could have a macro to "set this PMC pointer on behalf of this PMC" | ||
| nwellnhof | yes, i proposed that on parrot-dev quite a while ago | 01:14 | |
| cotto | so you did | 01:21 | |
| whiteknight | we used to have writebarrier macros | 01:28 | |
| GC_WRITE_BARRIER(interp, parent, child) | |||
| the old generational gc used intergenerational-pointer banks | 01:29 | ||
| nwellnhof | parrot had a generational gc before? | 01:30 | |
|
01:33
mikehh left
|
|||
| whiteknight | a prototype one. to my knowledge it was never completed and never worked | 01:33 | |
| eventually we just ripped it out, because it didn't work and was geting increasingly bitrotten as we refactored | 01:35 | ||
|
01:35
cotto_work left
01:41
cotto_work joined
01:56
nwellnhof left
02:07
kid51 joined
|
|||
| dalek | rrot-test: 5ca5b3c | Whiteknight++ | tap_harness/ (2 files): in the harness, handle the case where we have no TAP output. Displayed as 'not ok', but doesn't count as a failure |
02:07 | |
| rrot-test: ddbe2e5 | Whiteknight++ | xunit/ (4 files): xunit: remove the Standalone class. It wasn't used in the current scheme |
|||
| rrot-test: f942d1c | Whiteknight++ | t/ (2 files): t: add an example tap_harness harness and an xunit test file |
|||
|
02:10
kid51 is now known as kid51_at_dinner
|
|||
| bacek_at_work | (761 - 693) / 761 * 100 | 02:10 | |
| aloha | 8.93561103810775 | ||
| dalek | rrot-test: 4358d2f | Whiteknight++ | / (5 files): fix all the failures I already introduced tonight |
02:39 | |
| rrot-test: 7fc9c28 | Whiteknight++ | / (8 files): rearrange setup. get rid of the 'common' lib, which wasn't common |
|||
| rrot-test: fbe22c2 | Whiteknight++ | xunit/ (4 files): +files |
|||
|
02:39
whiteknight left
03:14
kid51_at_dinner left
03:47
patspam joined
03:54
jsut joined
|
|||
| dalek | TT #406 closed by jkeenan++: t/examples/library.t - pcre check flawed | 03:57 | |
| TT #406: trac.parrot.org/parrot/ticket/406 | |||
|
03:59
jsut_ left
04:05
rdesfo left
|
|||
| dalek | TT #2017 closed by bacek++: gen_gc2 branch: t/pmc/namespace-old.t and t/pmc/resizablepmcarray.t test ... | 04:13 | |
| TT #2017: trac.parrot.org/parrot/ticket/2017 | |||
|
04:25
mikehh joined
|
|||
| dalek | rrot/gen_gc2: 0aa7b59 | bacek++ | lib/Parrot/Pmc2c/PMC.pm: Add vtable_method_has_manual_wb accessor |
04:54 | |
| rrot/gen_gc2: 99e9649 | bacek++ | lib/Parrot/Pmc2c/PMC.pm: Don't generate WBed vtables for :manual_wb VTABLEs |
|||
| rrot/gen_gc2: 8fcbee3 | bacek++ | src/pmc/fixedintegerarray.pmc: Mark set_foo_keyed_bar methods with :manual_wb in FIA |
|||
| cotto | bacek_at_work, is the "note" in t/steps/auto/gc-01.t important? | 04:56 | |
|
05:04
patspam left
05:07
lateau joined
|
|||
| dalek | rrot/gen_gc2: a81c3fc | cotto++ | / (2 files): fix (or at least silence) failing auto::gc tests, set gms as configure-time default |
05:08 | |
| cotto | I hope it wasn't important. | ||
| cotto | github++ | 05:33 | |
|
05:36
arnsholt left
05:38
arnsholt joined
06:11
rurban_ joined
06:13
rurban left
06:14
rurban_ is now known as rurban
|
|||
| cotto | I'm thinking that in m0 bytecode, there'll be a directory segment, a bytecode segment, a variables table segment and a metadata segment, possibly with several instances of the last three. | 06:23 | |
| Does that make sense, and does it sound like a good idea to tie the last three (bytecode, variables table and metadata) together? | |||
| bacek_at_work | cotto, I just modified original auto::gc step. "note" was already in. I think it's better to ask kid51 about importance of this test. | 06:54 | |
| cotto | bacek_at_work, ok | 06:55 | |
| msg kid51 Could you take a look at github.com/parrot/parrot/commit/a81c3fc9b2 and make sure I'm not messing up anything important? The "note" appeared to be causing problems so I took it out, but I'm not sure what it was supposed to be doing there. | 06:56 | ||
| aloha | OK. I'll deliver the message. | ||
|
06:56
theory left
|
|||
| cotto | bacek++ for aloha | 06:57 | |
| It's nice to have a usable bot around. | |||
| especially since it doesn't do all the stupid stuff purl did | |||
| bacek_at_work | cotto, do we still need yaml-fix branch? | 07:07 | |
| cotto | I suspect not, but I'd have to look at it. | 07:10 | |
| just a sec | |||
| bacek_at_work | cotto, it's your fingerprints all over the place :) | ||
| cotto | You'd think I'd remember that. | 07:11 | |
| It's safe to nuke and I'll do so now. | 07:13 | ||
| done | |||
| bacek_at_work, how big of a problem is mmd_cache causing for gen_gc? | 07:14 | ||
| bacek_at_work | cotto, no problems at all. I already patched rakudo to handle it properly. | 07:15 | |
| Just cage cleaning | |||
| cotto | ok | ||
| I saw the "major" priority and wondered about it. | |||
| bacek_at_work | msg whiteknight Can we kill tt389_fix branch? | ||
| aloha | OK. I'll deliver the message. | ||
| bacek_at_work | cotto, erm. I probably was too angry after couple of hours of debugging. | 07:16 | |
| cotto | totally understandable | 07:19 | |
| bacek_at_work | bugs.debian.org/cgi-bin/bugreport.cgi?bug=610994 | 07:24 | |
| cotto, we should look at this debian bug. | 07:25 | ||
| And I'm going home now. | |||
| cotto looks | |||
| 2.9.1. Charming. | 07:26 | ||
|
07:28
jan left
|
|||
| cotto | bacek, how did you become aware of that bug? | 07:36 | |
| moritz | any objections to just adding the --mandir=/usr/share/man option in ports/debian/rules ? | 07:45 | |
| cotto | moritz, no, but I'd also like to make sure we have someone around who understands those files and has tuits to maintain them. | 07:49 | |
| moritz only has very shallow understanding | 07:50 | ||
| cotto | same here | ||
| nothing deeper than a post on the ksplice blog | 07:51 | ||
| moritz | looking at the control file... huh. Package: libparrot2.9.1 | ||
| cotto | looks like it's generated from control.in | 07:52 | |
| moritz | ah, right | 07:53 | |
| that makes sense | |||
| but what generates them? :/ | |||
| I guess there's a doc somewhere... | |||
| dalek | rrot: 4c50f6b | moritz++ | ext/nqp-rx/src/stage0/ (3 files): [nqp-rx] import bootstrap files from fde6377648205d7e9b28bbbc09d730df8ae63978; allows <*> as the body of proto regexes |
07:54 | |
| rrot: 09934c9 | moritz++ | ports/debian/rules: change mandir in debian package; see bugs.debian.org/610994 |
|||
| moritz | oops, I didn't mean to push 4c50f6b | ||
| cotto | beats me | ||
| moritz | I guess it doesn't hurt either | ||
|
08:10
ShaneC joined
08:16
lucian joined
08:24
lucian left
08:25
fperrad joined
08:40
mtk left
08:46
mtk joined
09:15
ShaneC left
|
|||
| dalek | rrot/m0-spec: c70f917 | cotto++ | docs/pdds/draft/pdd32_m0.pod: add some thoughts on the binary format for m0 |
09:30 | |
| dukeleto | ~~ | 09:47 | |
| bacek | ~~ | ||
| dalek | rrot/leto/embed_grant: dcea7b5 | dukeleto++ | t/src/extend_vtable.t: Add coverage to thawfinish vtable |
||
| rrot/leto/embed_grant: f569232 | dukeleto++ | t/src/extend_vtable.t: [t] Parrot_PMC_shift_pmc |
|||
|
10:08
AzureStone left,
AzureStone joined
|
|||
| bacek | cotto, I think I found next -Ofun project: extend opsc to properly parse op bodies. | 10:10 | |
| Then we can use it to emit current core_ops.c. | |||
| Or Lorito | |||
| Or jitted code directly | |||
| (With help of pirate) | |||
| dalek | p/match-nom: 44a0d5f | jonathan++ | src/ (2 files): Some fixes to the exists v-table overrides. Gets us a bit further along the compile. |
10:17 | |
|
10:20
contingencyplan left
|
|||
| dalek | p: 8d32128 | jonathan++ | src/cheats/hll-grammar.pir: Gut the hll-grammar cheats, since they got incorporated into HLL::Grammar as part of the 6model changes. Just left behind one little bit which needs migrating. |
10:28 | |
| bacek | schani.wordpress.com/2010/12/20/sgen/ | 10:36 | |
| Heh :) 2 years | |||
| dalek | p: 6f1b093 | moritz++ | src/cheats/hll-grammar.pir: can rip out even more of cheats/hll-grammar.pir |
10:45 | |
| mj41 | mingw32-make on WinXP throw dialog window ... miniparrot.exe .... CreateSymbolicLinkW not found in KERNEL32.dll | 11:05 | |
| probably on this command tt.taptinder.org/cmdinfo/19967 | 11:07 | ||
| oh ... on nwellnhof/unicode_dynpmcs branch tt.taptinder.org/cwm/wconf_rref/id-5 | 11:08 | ||
|
11:13
lucian joined
|
|||
| dalek | rrot/gen_gc2: 09934c9 | moritz++ | ports/debian/rules: change mandir in debian package; see bugs.debian.org/610994 |
11:25 | |
| rrot/gen_gc2: 57b0c83 | bacek++ | /: Merge commit 'b1d3cb567dc9c82d46741506719bfe8128337a29' into gen_gc2 |
|||
| rrot/gen_gc2: f1af399 | bacek++ | /: Merge commit '7db4a1f04ea21c24c3a9882e50125cc4d989fb64' into gen_gc2 |
|||
| rrot/gen_gc2: 74d591c | bacek++ | / (4 files): Merge branch 'master' into gen_gc2 |
|||
| rrot/gen_gc2: 22e1fca | bacek++ | compilers/opsc/src/Ops/Trans/C.pm: Bring Ops::Trans::C from master |
|||
| rrot/gen_gc2: 2d0ad22 | bacek++ | compilers/opsc/ops2c.nqp: Remove accidentally committed debug output |
|||
| rrot/gen_gc2: 607b197 | bacek++ | include/parrot/list.h: Bring include/parrot/list.h from master |
|||
| p/match-nom: f10b936 | moritz++ | src/ (2 files): vtable delete overrides |
11:27 | ||
| p/match-nom: a22edc2 | moritz++ | t/nqp/52-vtable.t: more vtable tests |
|||
|
11:33
darbelo joined
11:36
benabik left
11:38
lucian left
11:45
bluescreen joined
|
|||
| bacek | moritz, does nqp support attributes as rvalues? | 11:50 | |
|
11:50
lateau left
11:52
lucian joined
|
|||
| bacek | moritz, nm, found it | 12:08 | |
|
12:19
bluescreen left
|
|||
| dalek | rrot-test: e7e27b9 | Whiteknight++ | / (2 files): small cleanups |
12:22 | |
| rrot-test: 67faf3a | Whiteknight++ | / (9 files): s/UnitTest/ParrotTest/, for consistency |
|||
| tadzik | a testing framework for Parrot? | 12:24 | |
|
12:26
bluescreen joined
|
|||
| dalek | p/ctmo: b40895c | jonathan++ | src/metamodel/reprs/P6opaque.c: Fix freeing of memory associated with type objects that happen to get GC'd. |
12:40 | |
| p/ctmo: e6663bb | jonathan++ | src/NQP/Grammar.pm: Construct meta-object at compile time. |
|||
| p/ctmo: 2da9123 | jonathan++ | / (3 files): Stub in serialization context builder, with some explanation of what it's aimed at doing. |
|||
| p/ctmo: 0a16798 | jonathan++ | src/HLL/SerializationContextBuilder.pm: Stub in various initial methods that I expect to have in the serialization context builder. |
|||
| rrot: 8656264 | (Gerd Pokorra)++ | compilers/data_json/JSON.nqp: add a JSON grammar with NQP |
12:41 | ||
| rrot: cc5339a | (Gerd Pokorra)++ | MANIFEST: update manifest |
|||
|
12:56
lucian left
|
|||
| tadzik | bacek: nopaste.snit.ch/32946 Rakudo spectest, gen_gc2 with --optimize | 12:58 | |
| moritz | tadzik, bacek: the first test failure (protoregex.t) is actually a test change, nothing to blame gen_gc2 for | 12:59 | |
| tadzik | first fail is some parse error, second is something matching related | ||
| yeah, I think so | |||
| nopaste.snit.ch/32947 -- the second test | 13:00 | ||
| moritz tries a fix for the first test | 13:01 | ||
| tadzik | looks like .worry being .panic or something | 13:03 | |
| moritz | a syntax change that rakudo hasn't bothered to do | 13:04 | |
| dalek | rrot: 127b072 | (Gerd Pokorra)++ | tools/dev/mk_manifest_and_skip.pl: documentation: tell that MANIFEST is to add |
13:08 | |
|
13:19
benabik joined
13:33
mtk left
13:38
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 13:44 | |
| tadzik | good morning whiteknight | ||
| whiteknight | hello tadzik, how are you today? | 14:02 | |
|
14:11
rurban_ joined
|
|||
| tadzik | whiteknight: not bad. Trying to resurrect Close | 14:11 | |
| whiteknight | oh really? That's awesome | 14:12 | |
|
14:12
rurban left
14:13
rurban_ is now known as rurban
|
|||
| tadzik | yeah, the idea is awesome :) | 14:13 | |
| whiteknight | been talking to Austin about it at all? | 14:15 | |
| tadzik | nah, but I remember dukeleto mentionind that. Maybe it'd be good to. So far, I converted the repo to git, fixed some regressions and I plan to push it to GH and ask for help, as there are too many mysterious things for me | 14:16 | |
| whiteknight: github.com/tadzik/Close if you want to take a look | 14:22 | ||
| the problem is described inside the commit msg | 14:23 | ||
| tadzik mails Austin | |||
| Coke | macports updated to 3.0 | 14:26 | |
| (may take some time to arrive, but the upgrade has been committed to the ports repo.) | 14:28 | ||
| whiteknight | tadzik: Austin is extremely bright, and much of his software has a lot of functionality. I know Kakapo did a hell of a lot of work, some of it I still don't understand | 14:31 | |
|
15:03
Andy joined
|
|||
| tadzik | hrm, is api.yaml really a valid yaml? | 15:11 | |
| I checked under 2 different validators and they both raise syntax errors | |||
| darbelo | Really? I thought someone had mentioned writing tests for that. | 15:22 | |
|
15:24
mtk joined
15:27
plobsing left
|
|||
| dalek | rrot: 7066f3b | (Gerd Pokorra)++ | co (3 files): add rules to build JSON_LANG with NQP |
15:28 | |
|
15:28
bluescreen left
|
|||
| ttbot | Parrot 7066f3b2 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/20555 | 15:30 | |
| cotto_work | ~~ | 15:31 | |
| ttbot | Parrot 7066f3b2 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/20556 | 15:32 | |
| cotto_work | bacek: you're not talking about parsing C, are you? | 15:36 | |
| ttbot | Parrot 7066f3b2 darwin-thread-multi-2level make error tt.taptinder.org/cmdinfo/20579 | ||
|
15:39
bluescreen joined
|
|||
| atrodo | cotto_work> Why not? What could possibly go wrong? | 15:41 | |
| dalek | rrot: 6bf4a8e | (Gerd Pokorra)++ | compilers/data_json/Rules.mak: correct mistake |
||
|
15:41
cognominal left
|
|||
| atrodo | cotto_work> Then again, that's probably a noble goal for Lorito | 15:41 | |
| cotto_work | parsing C? | ||
| or using M0 ops to replace it? | |||
|
15:42
contingencyplan joined
|
|||
| dalek | TT #2019 created by doughera++: Set GC_DEFAULT_TYPE in config.h instead of on cc command line. | 15:43 | |
| TT #2019: trac.parrot.org/parrot/ticket/2019 | |||
| atrodo | cotto_work> Parsing C or C-like to generate the M0 for the M1 ops | ||
| cotto_work | The current goal is the opposite of that. | 15:44 | |
| M0 -> C | |||
| well, a current goal | |||
| atrodo | I'm just thinking, to convert the current ops to M0 could be an undertaking | 15:45 | |
|
15:45
plobsing joined
|
|||
| cotto_work | atrodo: sure but much less difficult than correctly parsing C. | 15:46 | |
| atrodo | The parsing of C or C semantics? | ||
| benabik | 'lo #parrot! | 15:48 | |
| atrodo | 'lo! | ||
| tadzik | o/ | 15:49 | |
|
15:57
jan joined
15:59
dmalcolm joined
|
|||
| arnsholt | pmichaud: I've submitted a patch to PCT at TT #2008. If you could review it, that'd be great | 16:00 | |
| cotto_work | seen pmichaud | ||
| aloha | pmichaud was last seen in #perl6 1 mins 8 seconds ago saying "parks were quite empty". | ||
| pmichaud | good morning, #parrot :=) | ||
| cotto_work | welcome back, pmichaud | 16:01 | |
| benabik | G'morning! | ||
| pmichaud | arnsholt: I don't understand why the pop_eh should be avoided/avoidable | 16:02 | |
|
16:03
zostay joined
|
|||
| arnsholt | It makes my life a bit complicated in my Prolog. On backtracking (that is, invokation of a continuation) it has a tendency to hit the pop_eh a second time, which is infelicitous | 16:04 | |
|
16:06
lucian joined
|
|||
| arnsholt | Doing the popping on my own was the simplest solution I could see | 16:06 | |
| (A bit more context, if you know Prolog: This is the bit implementing the catch/3 structure) | 16:13 | ||
| pmichaud | I think that in this case, perhaps you shouldn't be using the 'try' pasttype at all, and roll your own structure completely. | 16:14 | |
| 'try' is really intended to be a nicely encapsulated exception handler; removing the pop_eh loses that encapsulation | |||
| arnsholt | Good point | 16:15 | |
| pmichaud | it does indicate a possible issue with Parrot's exception model though -- should a continuation also encapsulate the exception handlers in place? | 16:16 | |
| (I don't know the answer to that one.) | |||
| arnsholt | Good question | 16:17 | |
| Also, pmichaud++ for making me think of yet another thing that is probably wrong in my HLL =) | |||
|
16:17
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
16:18
theory joined
|
|||
| arnsholt | If I backtrack into the code protected by catch/3 and it then throws an exception, it won't work right | 16:18 | |
| whiteknight | prolog is tricky | 16:29 | |
| does nqp have a null-coalesce operator? | 16:30 | ||
| arnsholt | I hadn't noticed? =) | ||
| s/\\?/. | |||
| jnthn | whiteknight: No, though it would be handy. | ||
| whiteknight | I thought I saw an // operator somewhere, but I don't see it in the nqp-rx test suite | ||
| jnthn | // is defined-or, not null-or | ||
| whiteknight | oh, okay. That's probably what I need in this context | 16:31 | |
| and it works in nqp-rx? | |||
| jnthn | believe so | ||
| It certainly isn't something that's been added. :) | |||
| cotto_work | ooc, how many pir-level subs are in perl6? | 16:45 | |
| dalek | nxed: r807 | NotFound++ | trunk/winxedst1.winxed: set an attribute in ForeachStatement if the loop var is being defined, not used |
16:47 | |
| whiteknight | yeah, looking at the nqp grammar file it does appear to be in there | 16:52 | |
| cotto_work | pbc_disassemble not knowing where dynop libs live just got annoying | 16:54 | |
| dalek | nxed: r808 | NotFound++ | trunk/winxedst1.winxed: fix mistake from r807 |
16:58 | |
| jnthn | cotto_work: Not sure...all of src/builtins is hand-written PIR today. Could just grep for .sub :-) | 17:00 | |
| cotto_work: That's where most of them are. | |||
| cotto_work | that'd be a good first approximation | 17:03 | |
| ack says ~7000 | |||
| jnthn | whoa...really? | 17:04 | |
| Just in builtins? | |||
| cotto_work | ack -a '^[ ]*\\.sub' |wc -l | ||
| that's after running make | |||
| pmichaud | cotto_work: from what directory? | 17:07 | |
| pmichaud@orange:~/rakudo/src/builtins$ ack -a '^[ ]*\\.sub' | wc -l | |||
| 261 | |||
| pmichaud@orange:~/rakudo$ ack -a '^[ ]*\\.sub' src | wc -l | 17:08 | ||
| 399 | |||
| looks like 399 in all of src/ | |||
| moderator | Parrot 3.1.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: merge and extensively test gen_gc2 | 17:08 | |
|
lucian left
|
|||
| mikehh forgot to do that | 17:08 | ||
| cotto_work | pmichaud: that's from the root of a rakudo build dir. There's probably some junk there somewhere. | 17:09 | |
| pmichaud | cotto_work: try "make realclean" first | ||
| and you're getting all of the generated subs, likely | 17:10 | ||
| i.e., everything from the grammars and core.pir and the like | |||
| and if there's a parrot subdir, you might be getting all of it as well :-) | |||
| were you looking for handwritten .subs or the generated ones as well? | 17:11 | ||
| cotto_work | pmichaud: anything in perl6.pbc | ||
| pmichaud | ah. ~7000 sounds about right to me then | ||
| cotto_work | probably best to run under gdb and poke around there | ||
| pmichaud | every closure is a sub | ||
| and every Perl 6 Routine/Sub/Method requires an extra "setup sub" to attach its properties | 17:12 | ||
| Coke | any github gurus here? how to rename a github repo? | ||
| pmichaud | Coke: I simply pushed to a new repo | ||
|
17:12
mtk left
|
|||
| tadzik | was somebody fixing PCT tutorial a while ago? | 17:12 | |
| arnsholt | Coke: Repo front page > Admin | 17:13 | |
| Coke | arnsholt: I see no admin link. | 17:14 | |
| tadzik | nvm, found in git log | ||
| arnsholt | Coke: Strange. Mine is top-right, a bit to the left of the watchers and forks buttons | 17:16 | |
| Coke | arnsholt: D'oh. probably because I am not the /owner/ | 17:17 | |
|
17:17
mtk joined
|
|||
| arnsholt | That might be it =) | 17:18 | |
| Coke | I'm a collaborator and can do most anything, but needed to use the partcl account to see that. thanks! | 17:19 | |
| ... now I need to actually think if I want to bother. ;) | |||
| tadzik | hrmpf. Anyone mind me making a note in a PCT tutorial that our Squaak in Episode 3 will not be runnable before completing the exercises? | 17:24 | |
| Coke | nope. | 17:28 | |
| mikehh | tadzik: don't se why you shouldn't | 17:29 | |
| see | |||
| tadzik | first I need to make my squaak run _after_ completing the exercises | 17:31 | |
| neh, I can't type. "idenfifier" | 17:32 | ||
| dalek | rrot: 21e8eff | tadzik++ | examples/languages/squaak/doc/tutorial_episode_3.pod: Add a note in Squaak tutorial episode 3 |
17:37 | |
|
17:37
bluescreen left
|
|||
| cotto_work | 7641 subs are loaded by parrot when running ./perl6 -e '' | 17:42 | |
| moritz | cotto_work: it builds alll the built-in types at startups | 17:43 | |
| because we can't serialize them at compile time, and deserialize at runtime yet | |||
| cotto_work | moritz: Sure. There's lots that Parrot need to do to help get startup time down. | 17:44 | |
|
17:44
ambs joined
|
|||
| dalek | rrot-container: 020ef55 | Whiteknight++ | / (6 files): Initializer,InitializerArg -> action/Action and action/ActionArg. Create a new Action library to encapsulate some behaviors I am going to reuse elsewhere |
17:45 | |
| rrot-container: 953b28d | Whiteknight++ | event/Event (2 files): add two new stub files for an eventing system |
|||
| rrot-container: b0cdc5c | Whiteknight++ | / (2 files): A fix for ParrotContainer::build. Don't throw an exception if the BUILD method is not present |
|||
| rrot-container: d1b4956 | Whiteknight++ | t/ (3 files): add in a quick Parrot-Test test harness, and two stub tests for Action and ActionArg |
|||
| rrot-container: 2a8d06a | Whiteknight++ | / (4 files): add in some tests for Container |
|||
| rrot-container: 8d5ae15 | Whiteknight++ | / (2 files): the default_container method belongs in Container |
|||
| rrot-container: a3bbe65 | Whiteknight++ | t/container/Container.t: test for default_container |
|||
| rrot-container: 84df207 | Whiteknight++ | / (4 files): get events working, basic implementation |
|||
| rrot-container: fe75d2b | Whiteknight++ | event/Setup.nqp: +missing file |
|||
| rrot-container: 9aab636 | Whiteknight++ | t/ (2 files): +some basic tests for event |
|||
| rrot-container: 79f7210 | Whiteknight++ | / (2 files): simplify the way we pass data to our Actions from our Events. Args passed in raise_event are in the event as a payload. Other args from injectors are passed as parameters |
|||
| rrot-container: d9e419a | Whiteknight++ | t/event/EventManager.t: +a few tests for events |
|||
| cotto_work | My curiousity is because I'm thinking about bytecode. | ||
| moritz | cotto_work: fwiw jnthn has started a nqp branch to do the serialization stuff | ||
| cotto_work | moritz: which branch? | 17:46 | |
| I guess there probably aren't so many that it'll be hard to guess. | |||
| moritz | ctmo | ||
| doesn't do all too much yet | 17:47 | ||
| cotto_work | Do you know his plan? | 17:53 | |
| moritz | there's a lengthy-ish comment describing his immediate plans | 17:57 | |
| cotto_work | wfm | 18:02 | |
| tadzik | I don't think the tutorial describes this: what's the :node($/) added to every PAST::*.new()? | 18:03 | |
| s/added/passed/ | |||
| benabik | tadzik: It sets the node the PAST was generated from. Useful for error messages as it includes the source text and position. | ||
| tadzik: Not sure how it exactly gets used, but that's the purpose AFAICT | 18:04 | ||
| tadzik | thanks benabik | ||
|
18:21
lucian joined
|
|||
| Tene | benabik is right; it's used for diagnostics and errors | 18:30 | |
| Coke | did parrot use the auto-import to get svn to github, or a manual process? | 18:43 | |
| cotto_work | It used a dukeleto-based process. | 18:44 | |
| I think he used git-svn and a manual author map, plus some last minute committer username cleanups. | 18:45 | ||
| why? | 18:46 | ||
| Coke | trying to convert a different project. it seems to just hang on the "getting authors" step. | ||
| (using github's automatic conversion) | |||
| cotto_work | I didn't know they had an automatic process. | 18:52 | |
| I guess I shouldn't be surprised though. | 18:53 | ||
| Coke | ugh. my git has no git svn. | 18:54 | |
| cotto_work | you have to install git-svn separately | 18:55 | |
| benabik | Coke: Debian puts git-svn in it's own package so git-core doesn't have to depend on subversion | ||
| Coke: I'd imagine other distros do the same. | |||
| Coke | trac.parrot.org/parrot/wiki/git-svn-tutorial - that can probably be archived. | ||
| cotto_work | Coke: no reason to touch it. I might help out someone else. | 18:56 | |
| Coke | cotto_work: "svn.parrot.org/parrot" is a good reason to add a note. | 18:57 | |
| cotto_work | ah | ||
| good point | |||
| seeing that url gives me all kinds of flashbacks | 18:58 | ||
| mostly the bad kind though ;] | |||
| atrodo | at least it's not cvs | 19:01 | |
| cotto_work | yes. cvs makes me appreciate svn, and I consider that to be a substantial accomplishment. | 19:03 | |
|
19:04
ambs left
|
|||
| cotto_work | atrodo: any thoughts on the m0 bytecode ideas I pushed last night? | 19:05 | |
| Coke | svn does a lot of of stuff wrong compared to cvs, but I still prefer it. | ||
| atrodo | cotto_work> I've glanced at it, but haven't really wrapped my head around it yet. Give me a minute | 19:06 | |
| cotto_work | atrodo: no rush | ||
| whiteknight | cotto_work: link? | 19:07 | |
| atrodo | github.com/parrot/parrot/commit/c7...050e92f244 is the actual commit | ||
| dukeleto | ~~ | 19:08 | |
| cotto_work | [ ... ] just means that the thing in the brackets can repeat | 19:09 | |
| good morning, dukeleto | |||
| dukeleto | cotto_work: howdy | 19:12 | |
| tadzik | hello dukeleto | 19:14 | |
| dukeleto | tadzik: good localtime() | ||
| cotto_work: i like your recent additions to m0 | |||
| cotto_work: slowly but surely | |||
| cotto_work | I'm toying with the idea of having one bytecode segment per sub, but I'm not sure if that's sane yet. | 19:16 | |
|
19:16
nwellnhof joined
|
|||
| nwellnhof | ~ | 19:16 | |
| atrodo | cotto_work> I actually like that idea | ||
| tadzik | dukeleto: is api.yaml actually a valid yaml? I tried it against two different validators today, both failed | 19:17 | |
| cotto_work | Lua does it, so it's workable on some level. | ||
| dukeleto | tadzik: sadface. It should be. | 19:18 | |
| tadzik: i had a test that used YAML.pm to parse it, but bacek_at_work changed the code to use our own YAML::Tiny to check it | |||
| tadzik: so if it isn't valid, then our YAML::Tiny is broke too | |||
| tadzik | hmm | ||
| cotto_work | It's "valid". | ||
| dukeleto | cotto_work: i am not sure of the sanity of that either. I don't know the implications | 19:19 | |
| cotto_work | dukeleto: I may just have to start down that path and see where it leads. | ||
| atrodo | cotto_work> what's your concerns about doing it that way? | 19:20 | |
| tadzik | wklej.org/id/477659/ | ||
| an attempt with YAML.pm | |||
| plobsing | cotto_work: bytecode segment per-sub is something I've thought about a lot. | ||
| the pro is better GCability, the cons are higher overhead (assuming bytecode segments have non-zero overhead) and dissallowing inter-sub-code-sharing (currently possible) | 19:22 | ||
| dalek | rrot/m0-spec: 89c5d56 | (Jon Gentle)++ | docs/pdds/draft/pdd32_m0.pod: Do a little bit of format cleaning on pdd32_m0.pod |
19:23 | |
| plobsing | overhead for bytecode segments currently includes opmapping table and related segment pointers. | ||
| whiteknight | do we do any inter-sub code sharing? | 19:24 | |
| plobsing | who is we? | ||
| whiteknight | we is parrot | ||
| plobsing | we allow it | ||
| it won't break anything | |||
| cotto_work | Nice. github dtrt when I try to browse to docs/pdd/draft/pddm0 | 19:25 | |
| github++ | |||
| atrodo | github has a not-even-close-to-0 level of magic | 19:26 | |
|
19:26
ambs joined
|
|||
| plobsing | PCT likely won't generate it, and human generated code is also unlikely to do so either. Then again, neither of those are a gold standard of compiler technology. | 19:26 | |
| atrodo | Do any real-machine compilers use any inter-sub code sharing tricks? | 19:27 | |
| cotto_work | I don't think that bytecode segments need to have a lot of overhead. They can be flattened by a smart interp. | ||
| plobsing | flattened? | 19:28 | |
| atrodo: I think I've seen gcc do it on x86_64 | |||
| cotto_work | combined into a single segment | ||
| plobsing | when? on load? that seems like an expensive proposition. | 19:29 | |
| cotto_work | load or at link-time | ||
| plobsing | you'd have to merge all the related tables too | ||
| constant table, annotations table, debug segment, etc... | |||
| see the mess that is pbc_merge | 19:30 | ||
| being able to do it is one thing. *needing* to do it is wrong. | |||
|
19:31
cognominal joined
|
|||
| cotto_work | dealing with the segments associated is with is what strikes me as the hard part | 19:31 | |
| dealing with the segments associated with a bytecode segment is what strikes me as the hard part | 19:32 | ||
| plobsing | bytecode should be immutable. that also applies to loading of bytecode. we should be able to mmap bytecode and keep it shared. | ||
| if we need to fixup const-table references, we've lost that | |||
| dalek | rrot/m0-spec: 62d864a | cotto++ | docs/pdds/draft/pdd32_m0.pod: add mmap consideration to binary m0 format |
19:37 | |
| atrodo | Endianness is the biggest hurdle to being able to mmap, right? | 19:39 | |
| cotto_work | atrodo: if it's in the format we can have a simple tool to change it. | 19:43 | |
|
19:48
nwellnhof left
|
|||
| bacek | ~~ | 19:50 | |
| Good morning, humans | |||
| tadzik | o/ | 19:53 | |
| bacek | tadzik, I fixed YAML::Tiny, thanks for notice :) | 20:02 | |
| tadzik | bacek: was it broken? | 20:03 | |
| bacek | cotto_work, I'm talking about small subset of C. Which is easy to parse. | ||
| tadzik, definitely. | |||
| tadzik | bacek: so it doesn't parse api.yaml anymore? | ||
| bacek | tadzik, I fixed it as well :) | 20:04 | |
| tadzik | :D | ||
| dalek | rrot: 8b0e658 | bacek++ | runtime/parrot/library/YAML/Tiny.pm: Fix dumping of strings: quote all "'". |
||
| rrot: f7415ad | bacek++ | api.yaml: Fix yaml syntax. |
|||
| rrot: 15f259e | bacek++ | api.yaml: Rerun resolve_deprecated.nqp |
|||
| tadzik | so I can work on regexes now, cute | ||
| bacek | tadzik++ # keep an eye | 20:05 | |
| tadzik | is nqp a preffered languages for internal things now? | ||
| cotto_work | bacek: which subset? | ||
| bacek | tadzik, not "officially". But it's in our repo. And it works. | ||
| tadzik | so mk_language_shell should generate setup.nqp over setup.pir, or maybk it should be nqp as well? | 20:06 | |
| bacek | cotto_work, enough to parse current op bodies. | ||
| Tene | tadzik: "should" isn't clear here at all. That might be nice though, yes. | ||
| cotto_work | bacek: we might need a more precise definition, but that doesn't sound nearly as insane as parsing all of C. | 20:07 | |
| bacek | cotto_work, or patch ops to use "supported" syntax. Variables, function calls, if, for, return. I think it should be enough | ||
| dukeleto | Tene: what are you asking about mk_language_shell ? | ||
| cotto_work | bacek: that too | ||
| Tene | dukeleto: I'm not. | ||
| cotto_work | though it could limit what HLLs can do | ||
| Tene | dukeleto: ITYM tadzik ? | ||
| bacek | cotto_work, ? | ||
| cotto_work | We'll want to look at how HLLs use ops and make sure we can cover their needs. | 20:08 | |
| dukeleto | Tene: sorry, i meant tadzik | ||
| tadzik: what are you asking about mk_language_shell ? | |||
| cotto_work | I do like having a restricte subset of C though. | ||
| dukeleto can't use tab-complete this morning, evidently | |||
| bacek | cotto_work, no. I'm talking about ops definitions. HLLs don't care how they are implemented. | ||
| cotto_work, same as now. | 20:09 | ||
| cotto_work | HLLs can have dynops | ||
| bacek | Ah... | ||
| cotto_work | sorry. should have specified dynops | ||
| bacek | Let's change deprecation policy to "If we broke it - we'll fix it for you"... | ||
| Tene | I think that's a very reasonable proposal. | 20:10 | |
| tadzik | dukeleto: I'm asking whether 1) it should be in nqp, iirc Perl is to be abandoned as a dependency one day 2) whether the generated setup.pir should actually be setup.nqp, I think there alredy is a project having it in nqp | ||
| (oh gosh, qwerty is a pain) | |||
| Tene | "If we're going to break it, we'll fix it for you first" might be a bit better, but that's bikeshedding. | ||
| bacek | Tene, wfm | 20:11 | |
| cotto_work | I suspect we might have trouble following through with that. | 20:12 | |
| It'd be more likely if we had a bot to yell at us when a hll broke. | |||
| Tene | The dynops language being a restricted subset of C would certainly make migration easier. | ||
| cotto_work: We've been talking about hll smoke testing for logner than I've been involved in the project. It would be great if it finally happened. dukeleto has suggested that he might work on it someday, I think. | 20:13 | ||
| cotto_work | yes and yes | 20:14 | |
| bacek | cotto_work, yes. If someone can help mj41 with TapTinder it will be awesome. | ||
| Tene | I'm goign to continue to be skeptical until I actually see it, though. I've heard (and made) that proposal enough times that I'm waiting to see if it actually happens. | ||
| cotto_work | it really needs someone who's got the tuits and ability to take the lead | ||
| until then we'll keep saying that we need it | |||
| dukeleto | Tene: yes, it is on my short list. | 20:15 | |
| bacek | github.com/mj41/TapTinder/issues#issue/18 | 20:16 | |
| dukeleto | Tene: but so are a lot of other things :) | ||
| cotto_work | $P0 = dukeleto.'clone'() | ||
| Coke | dukeleto: what did you use for author info on the cvs2svn commits? | 20:17 | |
| tadzik | oh look, GSoC mentoring problem solved | ||
| Coke | (on the svn -> git conversion) | ||
| dukeleto | www.google-melange.com/document/sho...1/timeline <-- GSoC 2011 timeline | 20:18 | |
| Coke: what do you mean? | |||
| Coke | ... I do not know how to rephrase that question. | ||
| nevermind. | |||
|
20:21
plobsing left
|
|||
| dukeleto | we are going to need lots of GSoC proposal ideas for students by mid-March | 20:21 | |
| volunteers? | |||
| cotto_work | We'll have some cool possibilities if M0 is ready-esque by that time. | 20:25 | |
| NotFound | Complete LWP with https support. | 20:27 | |
| mj41 | Hi. Dependency project support. My last idea is: Create/use temporary Git repository on each taptinder machine/client to store binaries after compilation for each Parrot revision. | ||
| I need these sequence: e.g. compile Parrot revision3 , compile r2, compile r1, make test on r3, complile hll1 on r3, test hll1 on r3, compile hll2 on r3, test hll2 on r3, compile hll1 on r2, test hll2 on r2, ... | 20:30 | ||
| So TapTinder client needs to store Parrot binary for r3, r2, r1 somehow. | 20:31 | ||
| NotFound | Coolest project ever: write a parroteer -> english translator X-) | ||
| mj41 | Is there any CI with good dependency projects support? | 20:32 | |
| dukeleto | mj41: what do you mean? | ||
|
20:32
plobsing joined
|
|||
| bacek | aloha, CI? | 20:34 | |
| tadzik | CI? | ||
| bacek | aloha, CI is Continuous Integration | ||
| aloha, clock? | |||
| aloha | bacek: LAX: Thu, 12:34 PST / CHI: Thu, 14:34 CST / NYC: Thu, 15:34 EST / UTC: Thu, 20:34 UTC / LON: Thu, 20:34 GMT / BER: Thu, 21:34 CET / TOK: Fri, 05:34 JST / SYD: Fri, 07:34 EST | ||
| bacek | hmm | 20:35 | |
| mj41 | en.wikipedia.org/wiki/Continuous_integration | ||
| cotto_work | aloha: bacek? | ||
| aloha | cotto_work: bacek is THE MANIAC | ||
| tadzik | :D | ||
| bacek | bah | ||
| aloha, CI? | |||
| interesting... | |||
| aloha, ci? | |||
| aloha, ci is continuous integration | |||
| meh... It's broken | 20:36 | ||
| tadzik | ahola? | ||
| pff | |||
| dukeleto | I have been hacking on github.com/franckcuny/jitterbug, which supports CI via git for Perl 5, Parrot, Perl 6, Ruby and Makefile-based projects, currently | 20:37 | |
| mj41: what do you mean by "dependency projects support" ? | 20:38 | ||
| mj41: I think I know, but want to make sure we are on the same page | |||
| bacek | aloha, ci? | 20:39 | |
| mj41 | dukeleto: Something like HLL1 r3 broken on Parrot r5. | 20:40 | |
| bacek | aloha, ci? | ||
| aloha | bacek: I have no idea. | ||
| bacek | aloha, CI is Continuous Integration | ||
| aloha | bacek: Okay. | ||
| bacek | aloha, CI? | ||
| aloha | bacek: CI is Continuous Integration | ||
| bacek | good girl | ||
| cotto_work | aloha: sea eye? | ||
| aloha | cotto_work: Sorry, I don't know. | ||
| dukeleto | mj41: yes, i can set that up now with jitterbug, just haven't had the tuits | 20:41 | |
|
20:41
drake1 joined
|
|||
| drake1 | hello, | 20:41 | |
| tadzik | hello drake1 | ||
| drake1 | I was given some links to embed the parrot interpreter | 20:42 | |
| hi tadzik, | |||
| and found that "pbc" might be something more interesting than byte-code files | |||
| bacek | afk # $dayjob | 20:43 | |
| cotto_work | drake1: they're the same thing | ||
| drake1 | really | ||
| so I simply read in the pbc and pass the pointer without opening a file first? | |||
| since I have some other cache file | 20:44 | ||
| cotto_work | drake1: please don't make us guess what you're talking about. | ||
| drake1 | well, I have to integrate the parrot with some other language objects | 20:45 | |
| cotto_work | ok | ||
| drake1 | which use a few translation phases already | ||
| tadzik | bacek: does api.yaml parse with YAML.pm for you? | ||
| bacek | tadzik, yes. I run resolve_deprecated.nqp after fixing and it works | 20:46 | |
| mj41 | dukeleto: looking at jitterbug | ||
| tadzik | int eresting; | ||
| jnthn | char ming; | ||
| bacek | tadzik, are you on master branch? | ||
| jnthn, :) | 20:47 | ||
| tadzik | bacek: yeah, freshly pulled | ||
| drake1 | cotto_work: by using a single file for everything and seeking through, to the pbc, or some other cached translation, I may save a few milli-seconds | ||
| dukeleto | mj41: it integrates into github with post-receive hooks | ||
| mj41: take a look at jitterbug.sgn.cornell.edu:8090/ <-- web interface | |||
| bacek | jnthn, how much effort to get support for rvalues attributes in nqp? class Foo { has $.bar }; Foo.new.bar := 42 | ||
| bacek really has to go. Will backlog | 20:49 | ||
| jnthn | bacek: That's hard. | 20:51 | |
| bacek: It doesn't work in Perl 6. | |||
| mj41 | dukeleto: post-receive hook is also on my todo list :-) | ||
| jnthn | The one that does is Foo.new.bar = 42; | 20:52 | |
| And it works because Foo.new.bar returns a container that is assignable. | |||
| nqp has no containers, and thus no assignment, and so we can't really do that. Best we can do is like Foo.new.bar(42) | |||
| tadzik | how do I use command-line parameters in nqp? | 20:53 | |
| mj41 | dukeleto: jitterbug is simple and has more developers. TapTinder is big tt.taptinder.org/dbdoc/schema.png ... and I'm only one :-( | 21:02 | |
| dukeleto | mj41: they have slightly different goals and complement each other | 21:07 | |
| mj41: jitterbug is good at sending emails about test suite, and is only meant to be run on a single host, there is not concept of "workers" and such | 21:08 | ||
| mj41: taptinder is more like buildbot | 21:09 | ||
|
21:10
darbelo left
21:19
mtk left
|
|||
| bacek_at_work | jnthn, what about auto-generating accessors? proto method bar($value?) { $bar := $value }; multi method bar() { $bar }; | 21:20 | |
| whiteknight | Kakapo had a system for automatically generating accessors like that | 21:21 | |
| it's broken now, I think, but it did work fine | |||
| he had some overrides in P6protoobject that injected methods into the class | |||
| or maybe P6metaclass | |||
| mj41 | dukeleto: ok. So I should continue to work on TapTinder :-) ... tomorrow ... good night. | 21:22 | |
| dukeleto | mj41: yes, you should :) | ||
|
21:25
mtk joined
|
|||
| drake1 | does parrot use mmap a lot, and is it easy to macro fix the code loader chain? | 21:29 | |
|
21:29
whiteknight left
21:30
fperrad left
|
|||
| drake1 | some systems could use mmap, other system device link methods, to load the code. any clue how to specify the path? | 21:31 | |
| probably, the best way is to bypass the Parrot_pbc_read, and use a custom method | 21:35 | ||
| cotto_work | aloha: premature optimization? | 21:37 | |
| aloha | cotto_work: Dunno. | ||
| cotto_work | aloha: premature optimization is the root of all evil | 21:38 | |
| aloha | cotto_work: Okay. | ||
| drake1 | premature optimization sounds like a kid trying to fine tune a parent | 21:42 | |
| atrodo | cotto_work> BTW, I would be all for permanently making the M0/Lorito bytecode magic bytes be 'asdfasdf' | 21:44 | |
| drake1 | like in targeting commercials, which code the kid to change the shopping pattern of the parent | ||
| dalek | rrot/gen_gc2: f04ebf1 | bacek++ | / (6 files): Apply patch by doughera++ to move GC_DEFAULT to config.h. Closing #2019 |
21:45 | |
| rrot/gen_gc2: 1477fe9 | bacek++ | t/steps/auto/gc-01.t: Fix auto::gc test |
|||
| lucian | has parrot been profiled? | ||
| bacek_at_work | lucian, not comprehensively. | 21:46 | |
| aloha, is parrot fast yet? | |||
| aloha | bacek_at_work: I have no idea. | ||
| atrodo | aloha: is parrot fast yet is isparrotfastyet.com/ | 21:47 | |
| aloha | atrodo: Okay. | ||
| bacek_at_work | aloha, is parrot fast yet is isparrotfastyet.com | ||
| aloha | bacek_at_work: ... but is parrot fast yet is isparrotfastyet.com/ ... | ||
| tadzik | isparrotfastyet.com/ | ||
| ah :) | |||
| bacek_at_work | meh... I'm too slow. Need more coffee... | ||
| atrodo | I've had all day to caffeinate, plus it's that point in the day where I don't want to actually start anything new so I'm keenly attentive to irc | 21:48 | |
| bacek_at_work | atrodo, it's Friday morning here :) | 21:49 | |
| lucian | i find optimisations without profiling information sort of silly | ||
| cotto_work | lucian++ | ||
| atrodo | I find them an exercise for the brain | ||
| cotto_work | optimization with profiling can be very effective | 21:50 | |
| without profiling, it's probably an exercise in wasting time | |||
| atrodo | Well, yes, but if I say that, someone will catch on | ||
| drake1 | lucian: what when you know that: 3 * 4 * 9, could be reduced to the result, before the execution? | ||
| cotto_work | atrodo: that would be pretty unmagical | 21:52 | |
| lucian: when chromatic has the tuits he does a lot of profiling and timely optimization | 21:53 | ||
| NotFound | drake1: You know? Then why you ask? | ||
| drake1 | profiling instrumentation might as well slow down the algorithm. fill up the TLBs etc. | ||
| im just kidding. screw it | |||
|
21:53
nwellnhof joined
|
|||
| jnthn | bacek_at_work: Oh, auto-generating them is dead easy. | 21:53 | |
| bacek_at_work: Just do it on meta-attribute composition. | 21:54 | ||
| bacek_at_work | jnthn, erm. I'm not familiar with 6model (yet :) | ||
| dalek | nxed: r809 | NotFound++ | trunk/winxedst1.winxed: fix some usages of operator / |
||
| TT #2019 closed by bacek++: Set GC_DEFAULT_TYPE in config.h instead of on cc command line. | 21:55 | ||
| TT #2019: trac.parrot.org/parrot/ticket/2019 | |||
| lucian | drake1: the compiler will do that | ||
| drake1 | lucian: ok | ||
| lucian | nowadays it's extremely hard to predict anything about a program | ||
| bacek_at_work | jnthn, is NQPAttribute.pm good starting point? | ||
| lucian | short of reducing algorithmic complexity | ||
| jnthn | bacek_at_work: Yes | ||
| bacek_at_work | .BUILD? | 21:56 | |
| jnthn | bacek_at_work: If it doesn't already, it should get a compose method | ||
| bacek_at_work | jnthn, no .compose in it | ||
| jnthn | bacek_at_work: Yeah, I didn't add it in just yet. :) | ||
| bacek_at_work | jnthn, :) | ||
| jnthn | bacek_at_work: Basically, the meta-class (NQPClassHOW) should call compose on all the attributes declared in the class, during its own compose method. | 21:57 | |
| bacek_at_work: And that's the point where it gets chance to do its accessor generation | |||
| In full-blown Perl 6, this is where "handles" stuff (delegators) are set up too :) | |||
| bacek_at_work: Oh! | 21:58 | ||
| nqpclr implements it I think | |||
| bacek_at_work: so it's probably almost copy-paste from there. | |||
| dalek | nxed: r810 | NotFound++ | trunk/winxed.winxed: some cleanup in the non installed driver |
22:00 | |
| rrot/nwellnhof/unicode_dynpmcs: 17d8684 | nwellnhof++ | / (2 files): Use CreateSymbolicLink only if supported Should fix build on Windows XP |
22:05 | ||
|
22:06
wknight-phone joined
|
|||
| ttbot | Parrot 17d8684f MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/21049 | 22:08 | |
| dalek | rrot/nwellnhof/unicode_dynpmcs: 0c6398c | nwellnhof++ | src/platform/win32/file.c: Remove bogus ASSERT_ARGS |
22:10 | |
|
22:11
rurban_ joined
|
|||
| bacek_at_work | jnthn, where is nqpclr hosted? Just branch in nqp? | 22:12 | |
| jnthn | bacek_at_work: no, separate repo | ||
| bacek_at_work: I think github.com/jnthn/6model/blob/maste...Setting.pm has the stuff in to copy | |||
| bacek_at_work: See around line 809, and 604. | 22:13 | ||
|
22:13
rurban left
22:14
rurban_ is now known as rurban
|
|||
| bacek_at_work | jnthn, thanks! Looks like I even can understand it :) | 22:14 | |
| jnthn | bacek_at_work: :) | ||
| jnthn should do a talk "Writing a simple class implementation in 20 minutes" at some conference :) | 22:15 | ||
| drake1 | in parrot, i bet you can't group related functions, to share the same cache lines? | 22:16 | |
|
22:16
wknight-phone left
|
|||
| bacek_at_work | jnthn, Is it something like this? .compose($obj) { $obj.HOW.add_multi_method($obj, $!name, sub { ... } } | 22:16 | |
| jnthn, where sub { ... } is either accessor or mutator | 22:17 | ||
| jnthn | bacek_at_work: If you want to add it as a multi method, you'd need to add a proto explicitly too | ||
| bacek_at_work: It's probably eaiser to take the one sub with an optional parameter route. | |||
| bacek_at_work | jnthn, ok. | ||
| jnthn, sub($value?) { $!foo := $value if pir::defined($value); $!foo } | 22:18 | ||
| jnthn | That'd work. | ||
| bacek_at_work | jnthn, erm... How I can "generate" "$!foo" in .compose? | 22:19 | |
| jnthn, without eval | |||
| jnthn | pir::getattribute(self, $obj.WHAT, '$!foo') will do it for the get | 22:20 | |
| And setattribute for the setting, and $value goes in the last arg | |||
| bacek_at_work | Should we port nqp::bind_attr and nqp::get_attr? | ||
| jnthn | bacek_at_work: the whole nqp:: meachanism should be ported at some point. | 22:21 | |
| bacek_at_work: Want to check with pm how he thinks it should be factored though. | |||
| bacek_at_work | jnthn, ok | ||
| jnthn | bacek_at_work: nqp::foo will often map to pir::foo, but will also be mapped appropriately for other backends. | ||
| pir:: # Parrot specific | 22:22 | ||
| nqp:: # abstraction layer, mapped at compile time though, so no extra runtime cost | |||
| p6eval | nqp: OUTPUTĀ«Confused at line 1, near ": # abstra"ā¤current instr.: 'parrot;HLL;Grammar;panic' pc 17541 (gen/hllgrammar-grammar.pir:4828)ā¤Ā» | ||
| jnthn | oops :) | ||
| bacek_at_work | jnthn, :) Yes, that's why I want to use nqp:: instead of pir::. | ||
| jnthn | bacek_at_work: *nod* | ||
| bacek_at_work: I want to add the nqp:: mapping soon :) | 22:23 | ||
| I think it'll map to a PAST::Op with :pasttype('nqpop') | |||
| And PAST::Compiler does the mapping. | |||
| bacek_at_work | jnthn, looks like a workable soultion | ||
| jnthn | bacek_at_work: Worked out OK in nqpclr. :) | 22:24 | |
| drake1 | great language for everything. might as well pay off a few patches. | ||
| bye | |||
|
22:24
drake1 left
|
|||
| jnthn | bacek_at_work: I saw you took the PAST/PAST::Compiler issue in the nqp issues. What's your rough plan for that? | 22:25 | |
| bacek_at_work | jnthn, 1. Copy it from nqp_pct branch; 2. Hack-hack-hack; 3. ...; 4. Profit! | 22:27 | |
| jnthn | bacek_at_work: \\o/ | 22:29 | |
|
22:32
ambs left
|
|||
| bacek_at_work | jnthn, actually I asked about attributes because of PAST moving :) | 22:42 | |
| jnthn | bacek_at_work: Oh! :D | 22:51 | |
|
22:52
vmspb joined
22:54
donaldh joined,
plobsing left
|
|||
| bacek_at_work | jnthn, I just want to avoid such scaffolding - github.com/parrot/parrot/blob/nqp_...T/Value.pm | 22:59 | |
| jnthn | bacek_at_work: agree totally | 23:00 | |
| bacek_at_work: The delegation all the time gets costly. | |||
| bacek_at_work | jnthn, I don't care about cost much. But I'm too lazy to type in all this stuff :) | ||
| jnthn | lol :) | ||
| cotto_work | bacek++ | 23:01 | |
| use lazy; | 23:02 | ||
| Is there a way to have a nice M0 op size with 4-argument ops and (mostly?) aligned access? | 23:08 | ||
|
23:20
plobsing joined
23:24
dolmen joined
|
|||
| bacek_at_work | jnthn, "P6opaque attributes NYFI 1". After adding for @!attributes { $_.compose($obj) } to NQPClassHow... | 23:26 | |
| jnthn | bacek_at_work: Ouch... | ||
| bacek_at_work: That tends to boil down to "you passed an invalid class handle" | |||
| bacek_at_work: Are you only adding the attributes if has $.foo was used? | 23:27 | ||
| bacek_at_work | jnthn, I didn't change NQPAttribute yet :) | ||
| jnthn | bacek_at_work: Oh... | 23:28 | |
| bacek_at_work | I just added empty stub to it | ||
| method compose($obj) {} | |||
| jnthn | *nod* | ||
| bacek_at_work | Do I have to add it to some other knowhow? | ||
| jnthn | No | 23:29 | |
| That error tends to occur when one tries to access an attribute that doesn't exist. | |||
| (Didn't get the attribute name typo detection stuff in yet.) | |||
| bacek_at_work | hmmm | ||
| jnthn | bacek_at_work: Oh! | 23:30 | |
| Yeah, attribute doesn't exist :) | |||
| it's %!attributes in the Parrot version of NQPClassHOW | |||
| bacek_at_work | meh! | ||
| found it :) | |||
| jnthn | I should fix that up at some point as the ordering kinda matters... | ||
| But anyway, that's probably the issue :) | 23:31 | ||
| bacek_at_work | Why ClassHOW.attributes want $obj as argument? | ||
| and :$local | 23:32 | ||
| jnthn | bacek_at_work: Methods in a meta-class always want the object they're operating on as an argument. As you may be doing prototype OO and have a singleton meta-class. | 23:33 | |
| The :$local means "just the attributes in this class". | |||
| It would be optional really. | |||
| *should | 23:34 | ||
| bacek_at_work | jnthn, ok. I asked because args aren't used | ||
| jnthn | And then gives list of all lot up the MRO | ||
| No, $obj will often not be used in a class-based OO implementation. | |||
| It's the type object, fwiw. | |||
|
23:34
donaldh left
|
|||
| jnthn | It can be handy to have in various cases. | 23:34 | |
| Role application uses it to instantiate parametric roles, for example. | 23:35 | ||
| bacek_at_work | ok | ||
|
23:42
whiteknight joined
23:50
vmspb left
23:55
pjcj left
|
|||