|
Parrot 1.8.0 Zygodactyly released | Priority: trac.parrot.org/parrot/wiki/ClassV...eOverrides | Latest modified TT's: icanhaz.com/parrotbugs | Parrot Languages: icanhaz.com/parrotlang Set by moderator on 2 December 2009. |
|||
| tewk | It has been a long time but, why does a sub have a ctx pointer? | 00:03 | |
| dalek | p-rx: 2f65563 | pmichaud++ | (3 files): Initial version of smartmatch operator. |
00:06 | |
| cotto_work | That'll be shiny | ||
| japhb | oooh | 00:07 | |
| cotto_work | The longer I put off using nqp-rx, the better it gets. | ||
|
00:07
tetragon joined
|
|||
| chromatic | I put off using it until it has documentation, in hopes that the documentation will get much better. | 00:07 | |
| cotto_work | and ideally, faster | ||
| chromatic | I have THAT hat downstairs. Everyone voted. | 00:08 | |
| cotto_work | if either happens, I'll be happy. | 00:11 | |
| chromatic | Yesterday should have helped. | 00:12 | |
| pmichaud | sub has a ctx pointer so that "capture_lex" can grab the correct context from an outer sub | ||
| chromatic | I'm still not sure why that doesn't harm recursion. | 00:13 | |
| pmichaud | it's only used at initialization -- once a closure has been created it already knows its outer context | ||
| i.e., we don't use the ->ctx pointer to look up the outer stack -- that chain is already in the context once it's initialized | 00:14 | ||
| chromatic | Do we even need to store it in the sub itself? | ||
| tewk | ctx is runtime state though right, I think of the sub as compile time info, | ||
| pmichaud | it's possible we don't, but when we call "capture_lex" on an inner sub it needs to be able to find the context of its outer sub | 00:15 | |
| dalek | tracwiki: v5 | cotto++ | WhyDoesNQPGenerateInefficientCode | ||
| tracwiki: trac.parrot.org/parrot/wiki/WhyDoe...ction=diff | |||
| pmichaud | the "current context" of its outer sub, that is. | ||
| chromatic | My naive assumption is that that's its calling context. | ||
| pmichaud | not always. | ||
| tewk | pmichaud, agreed but it seems that it should do that through the continuation chain. | ||
| pmichaud | tewk: if you mean "caller chain", that doesn't work in some situations. See the long discussion between myself and Bob Rogers from Summer 2008 about why. | 00:16 | |
| chromatic | I'd like to find some mechanism that doesn't store call information in the Sub PMC itself. | 00:17 | |
| tewk | but by placing ctx in sub you can't use the sub in two simluteous threads of execution. | ||
| pmichaud | keep in mind that the existing code is adaptation of previous code that was very broken | 00:18 | |
| I felt a bit limited in terms of the number of core changes I could make to get *something* that worked. | |||
| tewk | I understand I'm just trying to understand how we can improve it. | ||
| pmichaud | it may be easier now that our contexts are PMCs | ||
| chromatic | Sure, no one thinks that the current situation is ideal. | ||
| Merely that it passes its tests, which is a fine enough thing. | |||
| pmichaud | the tricky part is when we call an inner-sub when its outer sub hasn't been invoked yet. | 00:19 | |
| in Perl, the situation is one of { my $x; our sub xyz() { say $a; } } | |||
| er | 00:20 | ||
| { my $x; our sub xyz() { say $x; } }; xyz(); | |||
| er | |||
| (argggh) | |||
| xyz(); { my $x; our sub xyz() { say $x; } }; | |||
| in this case, the caller is not the outer sub. | 00:21 | ||
| chromatic | There's a static, compile-time lex pad there then. | ||
| pmichaud | except that Parrot doesn't support compile-time lexpads | ||
| so we have to create one on the fly... and then we have to have something to attach that lexpad to. The only thing available (afaik) is the sub itself. | 00:22 | ||
| chromatic | Attaching a compile time lexpad to the sub seems fine in this case. | ||
| pmichaud | that's what ->ctx is for, then. | ||
| but if we do | 00:23 | ||
| xyz(); { my $x; our sub xyz() { say $x; } }; xyz(); | |||
| the $x we see in the second xyz() isn't the same as the one from the first xyz() | |||
| in both calls to xyz(), though, the caller is not the outer context. | |||
| chromatic | change that declaration to 'my $x = 77' and what do you expect it to print? | 00:24 | |
| purl | chromatic: that doesn't look right | ||
| pmichaud | I expect the first one to be printing undef, the second prints 77 | 00:25 | |
| chromatic | Me too. | 00:26 | |
| pmichaud | ...and that's what the current code. Invoking the block causes its ->ctx to point to the new context of the invocation | ||
| it also does a "capture_lex" on the lexically nested xyz sub so that it now points to the new context | 00:27 | ||
| chromatic | Is part of the problem that we have to create an anonymous sub to represent the external context? | ||
| pmichaud | anonymous context, yes. | ||
| oh, wait | |||
| (misread your question) | 00:28 | ||
| that might be part of the problem, yes. We do have to have something to represent the outer scope, though, yes. | |||
| chromatic | I should have written "outer context". | ||
| pmichaud | so far lexical scopes in Parrot are intimately tied to Parrot subs | ||
| but I can certainly change the code to | 00:29 | ||
| chromatic | If we had a way to create a compile-time lexical scope without forcing the use of an anonymous sub, would that help? | ||
| pmichaud | xyz(); our sub abc() { my $x; our sub xyz() { say $x; } }; xyz(); | ||
| ...and then we still need the Parrot Sub. | |||
| I have a feeling that being able to create a copmile-time lexical scope might not completely be the answer here, no. | 00:30 | ||
| I'd need to think about it a bit. | |||
| chromatic | That case is a little more complicated. | 00:31 | |
| pmichaud | It's possible that we could use the ->ctx pointer to _only_ refer to compile-time lexical scopes though | ||
| chromatic | It depends on how often xyz binds. | ||
| pmichaud | that would help a lot. | ||
| chromatic | That's what I'm getting at. | ||
| pmichaud | I'd need to think about it just a bit more. | ||
| What is really nasty-ish is that a "capture_lex" operation needs to be done on all inner scopes as soon as an outer scope is entered | 00:32 | ||
| but there's not an easy way to query a sub for all of its inner scopes | |||
| chromatic | Right. That makes me think the design could use some improvements. | ||
| pmichaud | Oh, likely so. Jonathan and I briefly explored ways for a sub to be able to find all of its inner subs, but we decided that was particularly messy. | 00:33 | |
| that said, we might not need to do that now. | |||
| (more) | |||
| since PCT is generating explicit capture_lex operations, and those operations always take place from the outer scope, it's possible that we could tie those to the current caller instead of the sub's ->ctx pointer | |||
| leaving the ->ctx pointer to be used only when an inner sub hasn't been capture_lex'd yet. | 00:34 | ||
| chromatic | Right. | ||
| pmichaud | however, that implies a tighter coupling between Parrot and PCT's code generation than currently exists | ||
| the current code works even when someone fails to do a capture_lex operation. | 00:35 | ||
| in short, we'd need a deprecation cycle for it (or an explicit decision to ignore deprecation in this case) | |||
| (and keeping the ability to have current code working w/o explicit capture_lex is partially what led to the current use of ->ctx in the first place, iirc) | 00:36 | ||
| tewk | but subs are really reified bytecode, they should be read-only | ||
| chromatic | I'm willing to categorize code that works without capture_lex as fortunate and buggy. | ||
| or buggy but fortunate | 00:37 | ||
| pmichaud | tewk: they almost *cannot* be completely read-only | ||
| chromatic | where numification reduces that string to merely buggy. | ||
| pmichaud | tewk: at runtime we have to be able to dynamically modify sub's outer contexts. | ||
| *subs' | |||
| chromatic: I'm willing to categorize it that way also.... but there could easily be a fair bit of existing code out there that relies on the buggy behavior. (This is more than a darkpan argument... I'm the author of some such code.) | 00:38 | ||
| chromatic | The current deprecation and support policy and timeline tend to preclude the existence of unknowable darkpir. | 00:39 | |
| pmichaud | I don't quite follow that statement. | ||
| chromatic | I don't think any darkpir exists. | ||
| I'm not sure how it could. | 00:40 | ||
| pmichaud | okay. | ||
| tewk | I'm thinking about it from a parallelism point of view, you want to share as much readonly data as you can and seperate mutable data into separate structures. | ||
| pmichaud | I know there is pir that will break if we were to enforce the capture_lex requirement. It might not be completely dark. | ||
| I don't know how much pir would break. I know it's greater than zero but it may be ultimately very small. | 00:41 | ||
| one could find it fairly quickly by searching for :outer in the PIR sources, though (and it's okay to skip code generated from PCT, as that's known to be either correct or easily fixed) | |||
| chromatic | I don't want to get in the habit of delaying obvious and mostly obvious bug fixes because they may break code which accidentally worked... | 00:42 | |
| pmichaud | tewk: I agree, the current situation is LTA from a parallelism point of view. My point is that with Parrot's current design, "outer scope" isn't static. | ||
| chromatic | ... especially if we can find and fix that code with reasonable ease. | ||
| pmichaud | I'll be happy to create a branch that uses ->ctx only for compile-time lexpads. | 00:43 | |
| and then we can see what breaks. | |||
| that part shouldn't be a difficult change. | 00:44 | ||
| chromatic | I'd like to see what happens there, if you think it's valuable in the near future. | ||
| pmichaud | well, it could significantly improve gc | ||
| chromatic | I'm not certain it's hurting, but if it's a short experiment to find out, I'm happy to know for sure. | ||
| pmichaud | because right now we keep around contexts long after they've existed, including all of their callers and outers, and including all of the PMCs referenced by their callers and outers (and all of the PMCs referenced by those PMCs...) | 00:45 | |
| s/existed/exited/ | |||
| have to go to a concert -- bbl | |||
|
00:58
tetragon joined,
lucian joined
00:59
abqar joined
|
|||
| bacek_at_work | chromatic, ping | 01:04 | |
| chromatic | pong | ||
| bacek_at_work | do you spare couple of hours to fix last bug in cs_csr_merge branch? | ||
| do you have | |||
| chromatic | Not tonight, but perhaps tomorrow. | 01:05 | |
| bacek_at_work | ok, I'll try to fix tonight | ||
|
01:17
brrant joined
01:33
nopaste joined
01:42
JimmyZ joined
|
|||
| JimmyZ | hello chromatic. | 01:54 | |
| chromatic | Hello. | ||
|
01:54
lucian joined
|
|||
| JimmyZ | nopaste? | 01:54 | |
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl | ||
| nopaste | "JimmyZ" at 61.144.177.28 pasted "Using GET_ATTR syntax for chromatic" (498 lines) at nopaste.snit.ch/18937 | 01:55 | |
|
01:55
japhb joined
|
|||
| JimmyZ | Is it the correct way? | 01:57 | |
| chromatic | Yes. Be careful that you undid a change to Hash's init() there though. | 01:58 | |
|
01:59
TonyC joined
|
|||
| JimmyZ | where? | 02:00 | |
| Hash *registry ? | |||
| chromatic | init(). | ||
| The first hunk of the patch. | |||
| JimmyZ | yes, I could find where it is used. | 02:02 | |
| s/could/could not | |||
| chromatic | - SELF.set_pointer(registry); | 02:03 | |
| I'd rather see code removal in a separate patch, so we can verify it. | |||
| JimmyZ | yep, so I will separate it. | 02:04 | |
| chromatic | Thanks! | ||
| JimmyZ | svn doesn't has a good way to separate though. | 02:05 | |
|
02:07
bacek joined
02:13
Coke_ joined,
Coke left
|
|||
| dalek | rrot: r42867 | pmichaud++ | branches/dectx: Create a new branch to experiment with sub->ctx pointer a bit. |
02:28 | |
|
02:33
mikehh_ joined,
theory joined
02:43
plobsing joined
|
|||
| pmichaud | purl message chromatic There appears to be a big stumbling block to eliminating sub->ctx . Without it, I don't see a way to implement a lexically scoped eval() given Parrot's other compilation/:outer constraints. | 02:46 | |
| purl | Message for chromatic stored. | ||
| Coke | NYS-- | 03:01 | |
| pmichaud | purl message chromatic on second thought... we _might_ be able to do it, but it involves either adding an extra method to sub (to set its outer_ctx), updating capture_lex (to follow the caller chain looking for an outer sub), or updating Sub.invoke to follow the caller chain. | 03:04 | |
| purl | Message for chromatic stored. | ||
| dalek | kudo: 7914ca3 | (Solomon Foster)++ | src/setting/Rat.pm: Use Rat::gcd to make infix:<+>(Rat, Rat) and infix:<->(Rat, Rat) yield Rats in more cases. |
03:06 | |
|
03:35
bacek joined
03:43
nopaste joined
03:46
mikehh__ joined
|
|||
| Coke | pmichaud: message sent. | 03:46 | |
| purl | Message for sent stored. | ||
|
03:46
TonyC joined
|
|||
| sent | messages? | 03:46 | |
| purl | To access purl's messages, msg me with the word "messages". | ||
| Coke finds a gramatical error 2s after hitting send. *sigh* | 03:47 | ||
|
03:58
nopaste joined
03:59
xenoterracide joined
|
|||
| dalek | tracwiki: v6 | coke++ | TracSpammers | 04:06 | |
| tracwiki: trac.parrot.org/parrot/wiki/TracSp...ction=diff | |||
| tracwiki: v7 | coke++ | TracSpammers | 04:09 | ||
| tracwiki: trac.parrot.org/parrot/wiki/TracSp...ction=diff | |||
| Coke removes trac spam. bozos. | 04:14 | ||
| dalek | rtcl-nqp: 1b98037 | (Will Coleda)++ | TODO: add a note on the t/cmd_for.t failure... |
04:21 | |
|
04:25
mikehh joined
04:28
TonyC joined
04:33
TonyC joined
04:34
bacek joined
04:38
nopaste joined
|
|||
| dukeleto | 'ello | 04:39 | |
| cotto | h' | 04:50 | |
| It's not really pronounceable, but it cancels out nicely. | 04:53 | ||
| Coke++ for the spam deletion. I don't think there are too many brides around surfing the tt queue. | 04:54 | ||
|
05:05
hercynium joined
|
|||
| cotto | Coke, can you bulk delete comments? | 05:14 | |
| JimmyZ | hello, cotto. Could help me for some questions? | 05:29 | |
| It's about pmc class. | 05:30 | ||
| dalek | TT #1344 created by kurahaupo++: documentation spell-checking | 05:34 | |
| cotto | I can try. | 05:35 | |
| JimmyZ | cotto: I saw some PMCs(such as bignum.pmc) must be used PMC_data(self) = mem_allocate_zeroed_typed(Parrot_BigNum_attributes); for init. othwise, the test failed. | 05:38 | |
| why? | |||
| cotto: bigint.pmc doesn't need. | 05:39 | ||
| s/othwise/otherwise/ | 05:40 | ||
| cotto | afaict, it's cheating. Since it only needs space for a pointer, it just uses PMC_data(SELF) directly. | ||
| nm. I think I misunderstood. | 05:42 | ||
| JimmyZ | cotto: we're using GET_ATTR syntax. | ||
| cotto | PMCs that don't declare auto_attrs need to manually allocate their ATTRs. | ||
| JimmyZ | so we don't need PMC_data | ||
| cotto: bigint doesn't declare auto_attrs | 05:43 | ||
| cotto | right, so it does the allocation manually | ||
| JimmyZ | cotto: I couldn't find where it does. | 05:44 | |
| cotto | the GET_ATTR doesn't care if the ATTR struct is allocated manually or not, as long as it hangs off PMC_data() | ||
| plobsing | JimmyZ: doesn't it do it in bigint_init()? | ||
| cotto | bigint_init | ||
| JimmyZ | oh, should we re-add auto_attrs for them? | 05:46 | |
| cotto | I don't think it'd hurt. | ||
| It's not necessary though. | 05:47 | ||
| JimmyZ | since we're going to use GET_ATTR syntax and avoid PMC_data syntax. | ||
| oh ,should say PARROT_$pmcname syntax. | 05:48 | ||
| cotto | That'd be a good idea. | 05:49 | |
| dalek | TT #1345 created by plobsing++: [PATCH] eliminate {push,shift}_opcode_pmc from pmc_freeze | 05:50 | |
| cotto | There needs to be a "mark user as spammer and delete all comments by user" button. | 05:51 | |
| JimmyZ | cotto: but MakeEveryPMCAnObject suggest removing the auto_attr syntax, such as context.pmc | ||
| oh | 05:52 | ||
| Did I misunderstand? | |||
| cotto | That's a proposal that needs further discussion, not an agreed-upon implementation goal. | 05:53 | |
| JimmyZ | cotto: thanks | 05:55 | |
| cotto | Wiki organization is not our strong point right now. | ||
| JimmyZ | I see. | 05:56 | |
| cotto | plobsing, I like where your patches are going. | 05:57 | |
| 15-20 more of those and freeze/thaw won't be entirely insane. ;) | |||
| plobsing | I see a problem in how freeze/thaw relates to subs that appears non-trivial. I would appreciate advice. | 05:58 | |
| cotto | I suspect that it'll go over my head real fast. | 05:59 | |
| plus I need to do some late-night shopping | 06:00 | ||
| plobsing | who should I direct my questions towards? | ||
| cotto | chromatic would be good | 06:02 | |
| possibly bacek | |||
| JimmyZ | and thanks to plobsing | ||
| plobsing | cotto: thanks, I'll bug them when I see them | 06:03 | |
| dalek | TT #1346 created by jimmy++: [patch]Removed unused macro in pobj.h, reordered codes in args.c | 06:30 | |
|
06:31
nopaste joined,
hachi joined
|
|||
| cotto | plobsing, pmichaud might know something too | 06:39 | |
| allison definitely would, but she's not here as often | |||
| dalek | rrot: r42868 | cotto++ | trunk (2 files): [freeze] when pushing/shifting to/from an IMAGE_IO, don't dress up an INTVAL as a PMC* |
||
| TT #1345 closed by cotto++: [PATCH] eliminate {push,shift}_opcode_pmc from pmc_freeze | 06:40 | ||
| cotto | time for sleeeeeeeeep | 06:48 | |
| JimmyZ | good night, cotto. | ||
| dalek | TT #1347 created by jimmy++: [patch]removed unused codes in addrregistry.pmc | 06:50 | |
| TT #1348 created by jimmy++: [patch]changed addrregistry.pmc to use GET_ATTR syntax | |||
| TT #1349 created by jimmy++: [patch]changed arrayiterator.pmc to use GET_ATTR syntax | 06:56 | ||
|
07:03
uniejo joined
|
|||
| dalek | TT #1350 created by jimmy++: [patch]changed bigint.pmc to use GET_ATTR syntax | 07:03 | |
| Coke | I would appreciate it if I had a way to report trac spammers with gmail addresses to google. | 07:05 | |
| cotto: can't bulk delete, but can individually delete. I see there are more that I missed before or that didn't come through until later. Will clean them all up tomorrow. | 07:06 | ||
|
07:10
theory joined
|
|||
| dalek | TT #1351 created by jimmy++: [patch]changed bignum.pmc to use GET_ATTR syntax | 07:20 | |
|
07:27
brrant joined
07:51
bacek joined
07:53
mikehh joined
08:19
iblechbot joined
|
|||
| dukeleto | plobsing: i am very close to fixing coretest | 08:23 | |
| dalek | TT #1352 created by dukeleto++: [RFC]: Realtime garbage collector for RTEMS | ||
| dukeleto | plobsing: i was actually 1 test away from being done at the coffee shop and I let a cute girl borrow my power supply, so I had to shut down. decisions, decisions. | 08:24 | |
| plobsing: anyway, it should be fixed shortly | |||
| mikehh | dukeleto: what tests are failing? and where? | 08:34 | |
| davidfetter | dukeleto, did you get the digits? | 08:37 | |
| dukeleto | hola | 08:40 | |
| davidfetter: i gave her my alphanumerics | |||
| davidfetter: it was actually a cute girl that i knew in college on the east coast, and we end up bumping into each other and living 5 blocks or so from each other on the west coast. crazy. | 08:41 | ||
| davidfetter | heh | 08:42 | |
| dukeleto | mikehh: "make corevm; make coretest" fails due to tests in t/dynpmc/* using test_more.pir functions that need PGE | ||
| is t/dynpmc/*.t generated or something? | |||
| i modified a bunch of tests in t/dynpmc/*.t and they do not show up in "svn diff". what gives? | 08:44 | ||
| mikehh | All tests PASS (pre/post-config, smoke (#30503), fulltest) at r42868 - Ubuntu 9.10 amd64 (g++ with --optimize) | 08:45 | |
| dukeleto | Properties on 't/dynpmc': svn:ignore | 08:46 | |
| mikehh | got to take my grandsons to school (only 5 min away) - bbiab | ||
| dukeleto | Why does t/dynpmc have a svn:ignore property? | ||
| mikehh++ | 08:47 | ||
| whoa, lots of directoris in t/ have svn:ignore, what the junk is going on? | 08:48 | ||
| dalek | TT #1353 created by dukeleto++: svn:ignore-ing too many things in t/ | 08:53 | |
|
08:56
bacek joined
09:17
TonyC joined
09:20
abqar joined
09:27
bacek joined
09:29
integral joined
09:32
chromatic joined
|
|||
| JimmyZ | good morning, chromatic | 09:36 | |
| chromatic: I had created some ticket :) | 09:40 | ||
| dukeleto | chromatic: hola | 09:42 | |
| dalek | rrot: r42869 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] update dependencies doc |
||
| chromatic | Very nice. | 09:46 | |
| JimmyZ | chromatic: If they're correct, I will do the next. | 09:47 | |
| chromatic | I'll review them in the morning. | 09:48 | |
| JimmyZ | thanks | 09:49 | |
|
10:01
fperrad joined
10:15
JimmyZ_ joined
|
|||
| dalek | TT #1354 created by jimmy++: [patch]removed unused codes from Vtable.pm | 10:19 | |
|
10:22
mikehh joined
|
|||
| dukeleto | does anybody know why various directories in t/ are svn:ignored? | 10:34 | |
|
10:36
bacek joined
11:08
fperrad joined
11:09
fperrad_ joined
|
|||
| bacek | dukeleto, ping | 11:30 | |
|
11:31
gaz joined
|
|||
| dalek | rrot: r42870 | bacek++ | branches/cs_csr_merge/src/pmc/callsignature.pmc: Initialize new fields in CallSignature |
11:33 | |
| moderator | Parrot 1.8.0 Zygodactyly released | cs_csr_merge branch need testing! | Priority: trac.parrot.org/parrot/wiki/ClassV...eOverrides | Latest modified TT's: icanhaz.com/parrotbugs | Parrot Languages: icanhaz.com/parrotlang | 11:37 | |
| dalek | rrot: r42871 | bacek++ | failed to fetch changeset: Fix merging CallSignature for tailcall |
11:37 | |
| rrot: r42872 | bacek++ | branches/cs_csr_merge/t/native_pbc (2 files): Partially rebuild native PBCs |
|||
| bacek | trac is almost dead... | ||
| dalek | TT #1355 created by bacek++: tools/dev/mk_native_pbc is broken | 11:44 | |
| dukeleto | bacek: yo | 11:49 | |
| bacek | dukeleto, care to test cs_csr_merge? | 11:50 | |
| dukeleto | bacek: checking out the branch now | 11:51 | |
| bacek: do you know why various directories in t/ are svn:ignored? | |||
| bacek | dukeleto, no idea. I don't understand why anyone uses svn. | 11:52 | |
| dukeleto | bacek: good answer | ||
| purl | i guess good answer is "yes, but i guess crysflame is mistaken." | ||
| dukeleto | purl, forget good answer | 11:53 | |
| purl | dukeleto: I forgot good answer | ||
| dukeleto | purl, good answer is "up your nose, with a rubber hose!" | ||
| purl | OK, dukeleto. | ||
|
11:53
payload joined
|
|||
| dukeleto | trac is so f'ing slow | 11:54 | |
| bacek | dukeleto, (packfile tests will fail in branch. 'cause of TT#1355) | ||
| dukeleto | and so is this svn checkout | ||
| bacek | svn is always slow | ||
|
11:56
payload joined
12:06
ruoso joined
|
|||
| dalek | TT #1355 closed by bacek++: tools/dev/mk_native_pbc is broken | 12:08 | |
| rrot: r42873 | bacek++ | trunk (3 files): Made mk_native_pbc self-contained. |
12:09 | ||
|
12:10
cghene joined
|
|||
| dukeleto | bacek: compiling and testing cs_csr_merge now | 12:10 | |
| moritz | dukeleto: could you please also check if rakudo compiles with it? | 12:11 | |
| pmichaud | good morning, #parrot | 12:13 | |
| dalek | rrot: r42874 | bacek++ | failed to fetch changeset: Bring branch up-to-date with trunk. |
||
| rrot: r42875 | bacek++ | branches/cs_csr_merge/MANIFEST: Update MANIFEST... |
|||
| dukeleto | moritz: i will try that now | 12:16 | |
| dalek | rrot: r42876 | bacek++ | branches/cs_csr_merge/src/call/args.c: Use ASSERT_ARGS in new functions. |
12:17 | |
| dukeleto | moritz: compiling on the cs_merge branch now | ||
| bacek: everything passes other than packfile tests | 12:18 | ||
| bacek: on darwin/x86 | |||
| bacek | dukeleto, your branch is outdated :) | ||
| dukeleto, try r42878 | |||
| dukeleto | bacek: smolder.plusthree.com/app/public_pr...ails/30515 | ||
| bacek | dukeleto, make test passed on my box | 12:19 | |
| dukeleto | bacek: i am going to try rakudo on r42872 first | ||
| bacek | dukeleto, ok | ||
| dukeleto | moritz: i see some warnings from "perl6.ops" but "make test" passes on rakudo with r42872 | 12:20 | |
| moritz | ok, great | ||
| dalek | rrot: r42877 | bacek++ | branches/cs_csr_merge/src/call/args.c: Fix some ARGIN guards to allow NULLs |
12:21 | |
| rrot: r42878 | bacek++ | branches/cs_csr_merge/t/native_pbc (2 files): Rebuild native PBCs. |
|||
| dukeleto | moritz: i am running spectest now | ||
| moritz: that will be a while :) | |||
| bacek | dukeleto, it will take about half an hour. | ||
|
12:21
payload joined
|
|||
| dukeleto | bacek: tell me when you are done committing and i will test more :) | 12:21 | |
| bacek | dukeleto, I'm done. Running fulltest now | 12:22 | |
| dukeleto | bacek, moritz: ok, killing my spec test, updating to latest on cs_csr_merge and then testing both parrot and rakudo on that | 12:23 | |
| bacek | dukeleto, ok. | ||
| dukeleto | bacek: lots of warnings in ./src/pmc/callsignature.pmc: In function āParrot_CallSignature_set_integer_keyedā: | 12:24 | |
| bacek: that is no good | |||
| bacek | dukeleto, nopaste? | ||
| dukeleto | bacek: gist.github.com/248115 | 12:25 | |
| bacek | dukeleto, interesting... I didn't touch this code. | 12:26 | |
| dukeleto | bacek: i have actually been getting some of those warnings before. not the clone warning though | 12:27 | |
| bacek: i think they multiplied, tho | |||
| bacek: it is not a blocker, just something to note | |||
| bacek | dukeleto, "clone_cell" was introduced by YOU! :) | 12:28 | |
| dukeleto | bacek: the file "t/pmc/callsignaturereturns.t" is empty ? | ||
| bacek | dukeleto, no. It should be removed | 12:29 | |
| dukeleto | bacek: i applied a patch, i guess | ||
| bacek | dukeleto, indeed :) | 12:30 | |
| I added "default:". | |||
| To pacify compiler about switch. | |||
| dukeleto | bacek: thanks | ||
| moritz: "make test" is ok with rakudo on latest cs_csr_merge, running spectest now | 12:31 | ||
| pmichaud | ugh, trac.parrot.org slooooooow | ||
| dukeleto | pmichaud: yes. please kick it. | ||
| moritz: t/spec/S02-lexical-conventions/unicode.rakudo .................. Dubious, test returned 1 (wstat 256, 0x100) | 12:32 | ||
| moritz: Failed 5/31 subtests | |||
|
12:33
hercynium joined
|
|||
| moritz | dukeleto: that's unrelated | 12:33 | |
| dukeleto | moritz: good to know | 12:34 | |
| mikehh | I am also getting really slow responses from svn.parrot.org and trac.parrot.org | 12:38 | |
| purl | okay, mikehh. | ||
| moritz | purl: I? | ||
| purl | you are Moritz Lenz, mailto:moritz@faui2k3.org or very boring or very exciting | ||
| dukeleto | moritz: t/spec/S12-class/basic.rakudo .................................. Failed 1/33 subtests | 12:40 | |
| purl: I? | |||
| purl | i heard dukeleto was still employeed. i "made the cut" in our CEO's words or pretty close to going to sleep or unaccountably violent. | ||
| moritz | purl: mikehh? | 12:41 | |
| purl | mikehh is not sure if we just need to consider i386 vs amd64 vs ppc or we need to consider Darwin vs Linux (various flavors), OpenBSD, Windows etc or getting assert args failures with: or getting really slow responses from svn.parrot.org and trac.parrot.org | ||
| dukeleto | moritz: t/spec/S06-other/main-eval.t ................................... Failed 2/3 subtests | ||
| moritz | that one is also expected | ||
| not sure about S12-class/basic | |||
| mikehh | where on earth did purl get that? | 12:43 | |
| moritz | mikehh: it records that whenever you say "I am ..." | ||
| dalek | rrot: r42879 | bacek++ | branches/cs_csr_merge/src (2 files): Pacify codingstd tests about linelength. |
||
| dukeleto | moritz: it just "parrots" what people say in the channel | ||
| moritz: gist.github.com/248129 | 12:44 | ||
| moritz | dukeleto: I'm recompiling master now to test it, but it could very well be unrelated too | 12:45 | |
|
12:55
whiteknight joined,
payload joined
12:58
payload1 joined
|
|||
| Coke | rakudo: say 'what' ? | 13:02 | |
| (do we still have our compiler bot?) | |||
| moritz | Coke: on #perl6, yes. If it's of help I can also bring it here | 13:03 | |
| Coke | moritz: we used to have one here that did everything in languages/ | ||
| ... back when we had one of those. | |||
| moritz | Coke: ah yes, polyglotbot. That suffered from not being taken care of | 13:04 | |
| Coke | wow, trac is pretty much dead, huh? | 13:25 | |
| Coke pings OSUOSL | 13:26 | ||
| whiteknight | we got hit pretty good by a weird spambot this morning | 13:27 | |
| Util | trac is dead from here | ||
| Coke | whiteknight: yes, I already killed his account. | 13:30 | |
| some email hadn't made it through, so there are still some comments to delete. | |||
|
13:45
bacek joined
|
|||
| bacek | ~ | 13:46 | |
| our GC suck big times... | |||
| cs_csr_merge is only ~5% faster than trunk | |||
| (on magical fib.nqp) | 13:47 | ||
| purl: (31593623631-29891188893)/29891188893*100 | 13:48 | ||
| purl | 5.69544003115474 | ||
| whiteknight | 5% is still good | ||
| bacek | yeah... | ||
| anyway, branch is ready to merge back into trunk | 13:49 | ||
| I'm falling asleep. I'll try to merge is tomor^W today. | |||
| Or anyone else can merge it back | |||
| It should be pretty easy | |||
| whiteknight | that's good. Easy is good | 13:51 | |
| bacek | it's up-to-date with trunk. git didn't report any conflicts during merge. I just don't want to dcommit it without more testing. | 13:53 | |
| Anyway, bedtime. | |||
| See you! | |||
| Coke asks if anyone wants to write some NQP! =-) | 14:02 | ||
| whiteknight | what NQP needs writing? | 14:03 | |
| Coke | tcl builtins in partcl-nqp. | ||
| whiteknight | partcl has it's own NQP flavor? | ||
| Coke | github.com/partcl/partcl-nqp | ||
| (a rewrite in nqp-rx) | |||
| whiteknight | oh, okay | 14:04 | |
| Coke | github.com/partcl/partcl-nqp/blob/m.../string.pm is in some particular need of love, and 1) it has tests, and 2) it has a PIR version that can be used for inspiration. | ||
| Util | Parrot's Trac and SVN are up again, from here. | 14:06 | |
|
14:07
ruoso joined
|
|||
| Util | No, back down again | 14:07 | |
|
14:08
JimmyZ joined,
payload joined
|
|||
| Coke | talking to admins on freenode, they're on it. | 14:10 | |
| seems better now. | 14:14 | ||
| huh. I think someone else went on spam deletion duty. | 14:16 | ||
|
14:25
dalek joined
14:26
d4l3k_ joined,
dalek joined,
d4l3k_ joined
14:28
dalek joined
|
|||
| Infinoid | Sorry about the dalek spam, guys. I fiddled with the daemontools script and hadn't tested it sufficiently | 14:29 | |
| Coke | 09:25 -!- mode/#parrot [+v dalek] by slavorg | 14:33 | |
| ? | |||
| that's very light on the channel spam. =-) | 14:34 | ||
| szbalint | you probably have join/part hidden | ||
| but still it wasn't exactly noticeable | |||
| dalek | rrot: r42880 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] add a step 'patch' |
||
| szbalint | I think the ensuing discussion generate[sd] more noise than the even itself :) | ||
| Infinoid | ah. 8-10 copies of the bot were spawned, but only 2 at a time ended up in here | 14:37 | |
| szbalint | probably due to the ircd connection limits for feather | 14:39 | |
|
14:48
bluescreen joined
14:52
bluescreen joined
15:04
shockwave joined
|
|||
| shockwave | Is there support in any form for class/object destructors? Perhaps some form of finalize method. | 15:05 | |
| BTW, I'm refering to PIR. | 15:08 | ||
| Coke | you can override the destroy VTABLE. | 15:11 | |
| something like ".sub destroy :vtable" | |||
| s/can/should be able to/ =-) | |||
| (see docs/pdds/*17* for a list of the various vtables available. | 15:12 | ||
| shockwave | Thanks, @Coke | 15:20 | |
| dalek | rrot-linear-algebra: 7c6b8f1 | Whiteknight++ | PLATFORMS: update PLATFORMS with the compiler version |
15:30 | |
| rrot-linear-algebra: bc3e0d2 | Whiteknight++ | t/00-sanity.t: add a check to our sanity test to verify that we have the linalg_group library available to test with |
|||
|
15:32
cghene joined,
patspam joined
15:36
payload joined
|
|||
| Coke | thedailywtf.com/Articles/Bad-Code-O...pdate.aspx -- there is a 500 $ grant up for grabs. "Tell us how your free and open source project prevents bad code from being created and show us how $500 would make a real difference in your project" | 15:38 | |
| particle | cotto: any news on my msdn subscription yet? sadly, november came and went.... | 15:46 | |
|
15:57
Psyche^ joined
|
|||
| cotto_work | Coke, how much do you think we could do with $500? | 15:58 | |
| Coke | focus a core developer on performance for a few days? | 15:59 | |
| (grant hourly rate typically being cheaper than $real rate.) | 16:00 | ||
| cotto_work | True. That'd give us a meaningful improvement. | ||
| If we got people to look at the right code, we might be able to convince people that we prevent bad code. | 16:03 | ||
| If nothing else, we certainly refactor a lot of it. | |||
| t/pmc/threads.t test 9 fails in cs_csr_merge | 16:16 | ||
| (ubuntu x64 9.04) | 16:17 | ||
|
16:30
shockwave left
|
|||
| dalek | rrot: r42881 | jkeenan++ | trunk (6 files): Applying patch submitted by kurahaupo++ in trac.parrot.org/parrot/ticket/1344: typographic corrections. |
16:34 | |
| whiteknight | we help prevent bad code by enabling language interoperation, which allows progammers to solve problems using the right tools | 16:46 | |
|
16:47
cotto_w0rk joined
16:48
theory joined
16:54
ruoso joined
16:55
dalek joined
17:10
payload joined
17:14
dalek joined
17:24
darbelo joined
17:27
dalek joined
|
|||
| darbelo | Oh, I see someone recently put some sanity into pmc_freeze.c recently. (Whoever did that)++ | 17:29 | |
| cotto_work | plobsing | 17:30 | |
| purl | somebody said plobsing was trying to create a set of classes which have attributes with a 'label' attribute which can be mapped to and from the attribute name | ||
| cotto_work | no, plobsing is part of our sanity injection framework | ||
| purl | okay, cotto_work. | ||
| darbelo | plobsing++ | 17:32 | |
| We need to get him a bit. Cut out the middlemen in the sanity injection framework. | 17:33 | ||
| moritz | what is it blocking on? | 17:34 | |
| darbelo | I think he doesn't have a CLA. But might be mistaken. | 17:35 | |
| cotto_work | It looks like nobody's proposed that he be given a bit. | 17:37 | |
| moritz | then somebody should it on next #ps | ||
| cotto_work | I'm sure somebody will. ;) | ||
| dalek | TT #1356 created by fperrad++: [TODO] add method FixedStringArray.sort() | 17:57 | |
|
18:01
cognominal joined
|
|||
| pmichaud | trac.parrot.org down again :( | 18:03 | |
| cotto_work | That's no good. Has it been down much recently? | 18:04 | |
| Coke | they're on it. | ||
| previous downtime was due to a robots.txt issue so we got hammered by <search engine>+ | 18:05 | ||
| cotto_work | It's kinda back. | 18:06 | |
| or all the way back | |||
| japhb | pmichaud, ping | ||
| pmichaud | japhb: pong | 18:08 | |
| japhb | pmichaud, a couple of days ago a couple of us were discussing making Plumage itself installable. For most of the generated files, no problem, but | 18:09 | |
| Glue.pir and Util.nqp are of more general usage, and don't really belong within the Plumage/ namespace used for the other libs. Someone suggested | |||
| Coke | back now. | 18:10 | |
| japhb | NQP/Glue and NQP/Util, because they are in fact generic libraries for people who write in raw NQP-rx. But I wanted to make sure | ||
| that you were OK with putting them in "your" namespace | |||
| pmichaud | I'm fine with use creating standard libraries that can be distributed with NQP, yes. | ||
| (and can appear in the NQP namespace) | |||
| s/use/us/ | |||
| japhb | OK, cool | ||
| pmichaud | in some ways they probably belong in the nqp-rx repo, then. | 18:11 | |
| (I'm fine with that also) | |||
| japhb | pmichaud, I'm fine with that as well. Take your pick. | ||
| pmichaud | how about I take a look at Glue,pir and Util.nqp and cherry pick what I think belongs into NQP? | ||
| japhb | It's all going to get distributed with Parrot eventually, it's just a matter of which git repo gets used | ||
| pmichaud, sounds great. | 18:12 | ||
| pmichaud | what's the plumage repo, again? | ||
| plumage? | |||
| purl | plumage is, like, the future Parrot module ecosystem. It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at gitorious.org/parrot-plumage/parrot-plumage and the design docs are at trac.parrot.org/parrot/wiki/ModuleEcosystem | ||
| Coke | I am told that the robots.txt is fixed again, and that there is a new caching mechanism in place that should also help. | ||
| japhb | yay | ||
| pmichaud | instead of Util and Glue, should we instead break those up into smaller modules? | 18:17 | |
| japhb | pmichaud, no problem, ... (more) | ||
|
18:17
joeri joined
|
|||
| japhb | They were only single files for hysterical raisins. Well, two files: one for PIR code and one for NQP code. But like I said, I have no problems breaking them into pieces. | 18:18 | |
| pmichaud | okay | ||
| wfm | |||
| dalek | rkdown: 1bf1ac4 | fperrad++ | setup.pir: add flag verbose |
||
| japhb | Hmmm, probably want a single convenience file that just load_bytecodes all the pieces, for when you don't need/want to be so selective. | 18:19 | |
| dalek | lscript: 647fbcd | fperrad++ | setup.pir: add flag verbose |
18:20 | |
| japhb | Or I suppose we could do it at make time ... merging the PIR (hand-coded and NQP-generated) into one PBC | ||
| pmichaud | nah, just have a .pbc that loads the others | ||
| that way we don't have to worry about duplicate loads | |||
| japhb | Good point | ||
| pmichaud | I'll set up the initial structure later today, then people can start populating it as commits | 18:21 | |
| also, I plan to do nearly all of it in NQP, avoiding the PIR parts | |||
| dalek | nxed: r237 | julian.notfound++ | trunk/winxedst1.winxed: operator ! in stage 1 |
||
| japhb | Speaking of which, when you load_bytecode something that's already been loaded, what if anything happens? Does it trigger :load or :init again? | ||
| pmichaud | if the filename is the same, it doesn't load it a second time | 18:22 | |
| if the filename is different, it does the load and re-triggers any :load subs | |||
| so | |||
| load_bytecode 'xyz.pbc' | |||
| load_bytecode 'xyz.pbc' # doesn't re-load the pbc | |||
| load_bytecode '/full/path/to/xyz.pbc' # does re-load the pbc | |||
| japhb | "avoiding the PIR parts" Do you mean, just not including Glue.pir? Or do you mean applying your NQP fu to the problem of translating Glue.pir to NQP? | ||
| pmichaud | applying nqp-fu to the pir parts, and/or using inline PIR | 18:23 | |
| afk for a bit | |||
| japhb | OK, fair enough. Once upon a time, some of Glue.pir *had* to be done in PIR, because NQP didn't support the right calling semantics. I think most of those reasons are gone now. The only thing I'm missing is support for root_new []. Or did you make that work? | 18:24 | |
| dalek | a: bc50bfb | fperrad++ | setup.pir: add flag verbose |
18:29 | |
| rrot: r42882 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] add option verbose to setenv |
18:30 | ||
| Coke | Infinoid++ | 18:38 | |
| integral | indow 45 | ||
| pmichaud | I don't have a good mechanism for root_new, no (other than Q:PIR or pir::root_new) | 18:39 | |
| Coke | pir::root_new is better than .pir | 18:42 | |
| pmichaud | yup. | ||
| japhb | pmichaud, IIRC at least at one time pir::root_new could not work because it wants a key, not normal arguments. Is that restriction gone now? | 18:47 | |
| pmichaud | root_new will accept a variety of things | ||
| it can take a class object, or an array, or a namespace, or a constant key | 18:48 | ||
| so pir::root_new(['parrot';'OS']) ought to work | |||
| er | |||
| so pir::root_new(['parrot','OS']) ought to work | |||
| (it's not the most efficient, but it should work) | |||
| japhb | Oooh! OK, I had forgotten that. | ||
| Ah, probably because of the efficiency thing. I bet I mentally blocked it on account of slow. | 18:49 | ||
| pmichaud | also, looking through Util.pir, I wouldn't use root_new at all | ||
| I'd create a single $*OS object upon load, and re-use it in the individual functions. | |||
| instead of creating a new object in each function | |||
| japhb | Any task using parrot;OS is going to be dominated performance-wise by the actual task, so that's not an issue | ||
| pmichaud | and root_new ['parrot';'ResizablePMCArray'] is now just [] :-) | 18:50 | |
| japhb | pmichaud, yes, and I was thinking of doing that ... right about the time that the discussion of moving Glue and Util came up yesterday. ;-) | ||
| pmichaud | well, a nice aspect of having $*OS is that people can get to it directly instead of only through the functions | 18:51 | |
| japhb | pmichaud, yes, agreed. | ||
| Still going to want the wrappers in a couple places, because there's annoying boilerplate like for is_dir(), but that can easily be in NQP | 18:52 | ||
| (now that try/CATCH work, yay Tene!) | |||
| pmichaud | there's also a question about whether it's better as is_dir() or $*OS.is_dir() | ||
| Infinoid | Coke++ # Randomly giving me karma, huh? Have a taste of your own medicine! | ||
| pmichaud | in some ways I prefer the latter | ||
| japhb | pmichaud, that's fine by me ... just use 'module OS { ... }' trick? | 18:53 | |
| pmichaud | sure. | ||
| japhb | sounds good | 18:54 | |
| pmichaud | helps to not pollute the global namespace :) | ||
| japhb | agreed. That's why I've over the last couple months removed a number of subs from Glue.pir and replaced them with methods elsewhere (some but not all went into Util) | 18:55 | |
| :-) | |||
|
18:56
mikehh joined
|
|||
| japhb | pmichaud, so, let me know what parts you plan to do, and I'll start preparing different stuff on my end. | 18:57 | |
| pmichaud | japhb: I'll just get things started on this end in the nqp directory (and parrot build), then let you exercise your commit bit for the rest :-) | 18:58 | |
| japhb | heh | ||
| fair enough | 18:59 | ||
| pmichaud, what's :load :init in NQP? INIT { } ? | |||
| pmichaud | yes | 19:00 | |
| that may change to BEGIN or CHECK or something like that, but for now it's INIT { ... } | |||
|
19:01
mikehh joined
|
|||
| japhb | OK, cool | 19:01 | |
|
19:06
schnee joined
|
|||
| schnee | Hi folks. I'm just trying to build parrot (as part of rakudo) on windows/cygwin, and although it apparently compiles just fine, I'm running into crashes there. I was wondering if anyone could help me with that? | 19:10 | |
| dalek | rrot: r42883 | mikehh++ | trunk/MANIFEST: regenerate manifest |
||
| japhb | schnee, I believe fperrad is our resident Parrot-on-cygwin expert, if he is around | 19:11 | |
| schnee | Ah, great! | ||
| japhb | fperrad, feel highlighted. :-) | 19:12 | |
|
19:12
mikehh joined,
chromatic joined
|
|||
| PerlJam | schnee: If you just want to play with parrot/rakudo, I believe that there are cygwin packages for both. | 19:12 | |
| (I could be wrong though) | |||
| japhb | schnee, if fperrad is not around right now, you can also try the packages PerlJam mentioned (which IIRC fperrad made :-), or the parrot-users mailing list. | 19:13 | |
| schnee | There are, but they're horribly out of date. | ||
| japhb | parrot-users? | ||
| purl | i think parrot-users is lists.parrot.org/mailman/listinfo/parrot-users | ||
| schnee | Thanks for the pointer, I may try that, too. :) | 19:14 | |
| dalek | rrot: r42884 | mikehh++ | trunk/t/native_pbc/testdata (2 files): set svn properties |
19:17 | |
| rrot-linear-algebra: 3659aaf | Whiteknight++ | t/00-sanity.t: fix the sanity test |
19:21 | ||
| rrot-linear-algebra: 4dc502c | Whiteknight++ | src/pmc/charmatrix2d.pmc: fix charmatrix so that we initialize all it's storage on resize, since we use that storage directly to build strings |
|||
| cotto_work | bacek_at_work, t/pmc/threads.t test 9 fails in cs_csr_merge on ubuntu 9.04 x64, non-optimized | 19:35 | |
|
19:36
schnee left,
bacek joined
|
|||
| dalek | rrot: r42885 | mikehh++ | trunk/t/native_pbc/testdata (2 files): add copyright, Id and coda |
19:37 | |
|
19:43
lucian_ joined
|
|||
| dalek | trixy: dcf5c2a | Whiteknight++ | README.NCI.pod: remove the NCI readme file, unused now. Parrot-Linear-Algebra handles all these details |
19:43 | |
| trixy: 8783099 | Whiteknight++ | README.pod: updates to README.pod to make it clean and current |
|||
| trixy: 3f29530 | Whiteknight++ | t/parrot/parrot_pir.t: add tests for the pir() function, since apparently CharMatrix2D didn't work with it until recently |
|||
| trixy: d4c9a30 | Whiteknight++ | t (2 files): add an ismatrix() function with tests |
|||
| trixy: b5847f9 | Whiteknight++ | src/builtins/pir.pir: fix pir() to take PMC arguments |
|||
| trixy: 2ab528a | Whiteknight++ | t (2 files): add iscell() function and tests |
|||
| trixy: 9799159 | Whiteknight++ | t (2 files): add ischar() function and tests |
|||
| trixy: c6ae1d2 | Whiteknight++ | t (2 files): add iscomplex() and tests |
|||
| trixy: 6f7b40e | Whiteknight++ | t/functions/ (2 files): Merge branch 'master' of github.com:Whiteknight/matrixy |
|||
| trixy: bdbf114 | Whiteknight++ | t/functions/transpose.t: remove the ctranspose tests from transpose.t |
19:49 | ||
| rrot: r42886 | jkeenan++ | trunk (6 files): Revert 5 files patched in r42881 to their pre-existing status (cf. TT #1344). |
19:50 | ||
|
19:57
iblechbot joined
20:00
davidfetter joined
20:05
brrant joined
|
|||
| tewk | Whats the current best practice module for writing simple to moderate XS code? | 20:06 | |
| dukeleto | 'ello | 20:07 | |
| tewk: are you trolling or do you want a real answer? ;) | |||
| Coke | do mean the equivalent in parrot? | 20:08 | |
| *do you | |||
| tewk | perl5 XS I just wanted a recommendation of a CPAN module to use or something like that. | 20:11 | |
| dukeleto | tewk: what do you want to do? | 20:12 | |
| whiteknight | I tought current best practices involved not writing XS in the first place? | 20:13 | |
| japhb | tewk, it has been a while for me, but last I recall it really depends on your task -- if you want to wrap a largish but relatively simple API, there are tools for that. But if you need to deal with a complex API that doesn't quite match Perl 5's model for things, you end up with a lot of hand-written XS. OpenGL has this issue, for instance. | ||
| dukeleto | ba dump ching! | ||
| tewk | dukeleto, wrap simple c library calls | ||
| dukeleto | tewk: take a look at how Math:GSL wraps the GSL library with SWIG | 20:14 | |
| japhb | tewk, Inline::, SWIG, and h2xs can all do the simple stuff. | ||
| afk, lunch | |||
| dukeleto | tewk: how "simple" is your library? how many functions? what is the most complicated function signature? callbacks make things interesting | ||
| tewk | dukeleto, its very very simple, sounds like I should just use raw XP or inline, SWIG is way to complicated for this problem. | 20:22 | |
| raw XS I mean | |||
| dukeleto | tewk: SWIG adds complications to the build process, but actually makes you write a lot less code | 20:23 | |
| tewk: GSL has thousands of functions, so SWIG was the only choice | |||
| tewk: how many functions do you need to wrap? | |||
| tewk: also, you can just use the XS code that SWIG generates as a starting place, to see how it is done. The generated code is not pretty, tho | 20:24 | ||
| tewk: if you want to write raw XS, i don't understand your question about a best practice module. you just need to read perlxs, perlguts and perlapi and then it is just a SMOP | 20:25 | ||
| mikehh | All tests PASS (pre/post-config, smoke (#30543), fulltest) at r42885 - Ubuntu 9.10 amd64 (gcc with --optimize) | ||
| dukeleto | mikehh++ | 20:28 | |
| whiteknight | how do I resolve a merge conflict in git? | 20:30 | |
| tewk | fix it then git add | ||
| whiteknight | I have done both of those things, but still get an error message | ||
| dukeleto | whiteknight: nopaste | 20:31 | |
| whiteknight | "fatal: you have not concluded your merge. (MERGE_HEAD exists)" | ||
| dukeleto: what to nopaste? | |||
| dukeleto | whiteknight: entire error output | ||
| whiteknight: did you do git rebase --continue ? | |||
| tewk | whiteknight, are you rebasing? | ||
| dukeleto | whiteknight: were you in a rebase? | ||
| whiteknight | tewk: I don't know what rebasing is, I never do it | ||
| dukeleto: that is the entire error output | |||
| dukeleto | whiteknight: please nopaste all the commands that you are typing | 20:32 | |
| whiteknight: as well as git status -a | |||
| whiteknight | $> git pull | 20:33 | |
| fatal: You have not concluded your merge. (MERGE_HEAD exists) | |||
| particle | git mergetool | ||
| whiteknight | urg. "no known merge resolution tool available" | ||
| dukeleto | whiteknight: git status -a, please | ||
| purl | git status -a is my friend, as well as a healthy .gitignore | ||
| dukeleto | purl++ | 20:34 | |
| nopaste | "Whiteknight" at 173.12.37.77 pasted "git status -a for dukeleto++" (32 lines) at nopaste.snit.ch/18952 | ||
| whiteknight | doesn't show anything as conflicted | 20:35 | |
| dukeleto | whiteknight: you haven't commited! | ||
| whiteknight | so it's not just fix the conflict and add, like I had been lead to believe? | ||
| particle | git mergetool --tool=<tool>. Valid merge tools are: kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, diffuse, tortoisemerge, opendiff, p4merge and araxis. | ||
| dukeleto | whiteknight: it is : fix the conflict, git add foo, then commit | 20:36 | |
| particle | git mergetool walks you through the process | ||
| dukeleto | if you don't commit, all your stuff is just sitting in your working copy, not committed to your index | ||
| particle | s/index/staging area/ | ||
| dukeleto | whiteknight: which means you can't pull | ||
| particle | that's the new term iirc | ||
| dukeleto | whiteknight: you can do: git stash && git pull && git stash pop | 20:37 | |
| particle: both are used interchangeably | |||
| whiteknight: that will get around your "can't pull before I push" issue | |||
| whiteknight | ok | 20:38 | |
| dukeleto | whiteknight: i have that aliased to "git up" | ||
| whiteknight: github.com/leto/Util/blob/master/co....gitconfig | 20:39 | ||
| fperrad | japhb, a new one trac.parrot.org/languages/browser/e...cript.json | ||
| Infinoid | dukeleto: Do you actually use "praise"? If so, you're the first person I've ever met who does. :) | 20:40 | |
| japhb | fperrad, OK, will do | ||
| dalek | trixy: 7bba118 | Whiteknight++ | (17 files): merge that sucker |
20:41 | |
| japhb | fperrad, did schnee manage to get in touch with you? | ||
| dukeleto | Infinoid: yes, when i am in a good mood | ||
| whiteknight | dukeleto: by the way, I have some ideas for improvements to nqpTAP. I'll try to monkey around with it later if I can find the tuits | ||
| dukeleto | whiteknight: you mean Tapir? | 20:42 | |
| tapir? | 20:43 | ||
| purl | somebody said tapir was being written to be testable from the ground up, unlike nqpTAP or github.com/leto/tapir | ||
| japhb | dukeleto, is Tapir a complete replacement for nqpTAP? | ||
| dukeleto | japhb: Tapir already does 10x more than nqpTAP ever did. And it has tests to boot. | ||
| whiteknight | Tapi? | ||
| Tapir? | |||
| purl | Tapir is being written to be testable from the ground up, unlike nqpTAP or github.com/leto/tapir | ||
| fperrad | japhb, in fact I don't work with cygwin | ||
| whiteknight | dukeleto: I have never heard of Tapir. I'll have to check that out later | 20:44 | |
| anyway, I have to disappear now. talk to you gentlemen later | |||
| japhb | fperrad, I thought you did, hmmm. Sorry about that. | ||
| dukeleto | whiteknight: you have a commit bit now :) | ||
| whiteknight | w00t | ||
| dukeleto++ | |||
| dukeleto | whiteknight: i just wrote tapir in the last 5 days | ||
| japhb | fperrad++ # Lots of new projects brought into the Plumage fold | ||
| dukeleto | whiteknight: it is MUCH faster than Test::Harness 3.x | ||
| anybody else want a bit for tapir? | 20:45 | ||
| particle does | 20:46 | ||
| dalek | rrot-linear-algebra: c2564ba | Whiteknight++ | PLATFORMS: add entry about performance on Ubuntu 9.10 with the newer GCC |
||
| dukeleto | particle: done | ||
| japhb | dukeleto, please. # I won't have time to use it for a bit, but will probably eventually | ||
| dukeleto | japhb: you already have one :) | ||
| japhb | oh | ||
| well | 20:47 | ||
| then. | |||
| *cough* | |||
| dukeleto | i have japhb, tene, chromatic, bubaflub, whiteknight, particle, ewilhelm and brianwisti with a commit bit to tapir | ||
| if anybody else wants one, let me know | |||
| the TODO file is extensive, please look for something to work on in there | 20:48 | ||
| dalek | rrot-plumage: 3c8da7d | japhb++ | : [METADATA] ecmascript, courtesy fperrad++ |
20:49 | |
| fperrad | dukeleto, my requirement for Tapir : | ||
| - a single pbc | |||
| - a installable executable | |||
| - available in Parrot tree (like nqp-rx) | |||
| - equivalent of Perl5 prove | |||
| - with option --exec | 20:50 | ||
| - with option --archive | |||
| - with option --env (see rt.cpan.org/Public/Bug/Display.html?id=50215) | |||
| japhb | fperrad, I sense that getting Tapir into the Parrot tree will not be terribly hard, since it is excellent dog food, and would kill the last vestiges of perl5 dependency for a bunch of projects. | ||
| If necessary, it will come in under the auspices of Plumage. | 20:51 | ||
| darbelo | dukeleto: sign me up! | ||
| fperrad | japhb, yes, the goal is kill dependencies, perl5 and others | 20:52 | |
| dukeleto | darbelo: done! | ||
| fperrad: you have a bit too | |||
| darbelo likes killing dependencies. | |||
| japhb | fperrad, also, it sounds like pmichaud and I have agreement on general course of action to make Plumage installable (which involves moving some code out of Plumage and into NQP-rx) | ||
| dukeleto | fperrad: tapir has --exec already | ||
| fperrad: a single .pbc and installable needs to be written, but it not very hard | 20:53 | ||
| japhb | pmichaud++ is preparing things on the NQP-rx side. | ||
| dukeleto | fperrad: the idea is that tapir will go in ext/ like nqp-rx | ||
| fperrad: re-implementing *every* prove feature is non-trivial | 20:54 | ||
| fperrad: --archive is planned. this basically means writing TAP::Harness::Archive in PIR | |||
| fperrad: can you add these items to the TODO? | |||
| fperrad: i want more details on "equivalent to prove" | 20:55 | ||
| fperrad: you want exactly the same output format? | |||
| japhb: yes, it is planned that Plumage will be the first guinea pig for Tapir, when it is ready | 20:56 | ||
| japhb | dukeleto, excellent. | ||
| dukeleto | japhb: since Plumage does not need --archive, yet. | ||
| japhb | I would have if you hadn't. ;-) | ||
| dukeleto | fperrad: --env seems like a neat feature | 20:57 | |
| fperrad | dukeleto, all features of prove are not mandatory, we need only feature that we currently use | ||
| dukeleto | fperrad: yes, like --merge | 20:58 | |
| fperrad: tapir's TAP parser is very close to being done, then the aggregator needs improvement and then extra features (like --env) need to be added | 20:59 | ||
| japhb | What is --env? It's not documented in my local 'man prove' | 21:00 | |
| dukeleto | japhb: new feature | ||
| purl | new feature is, like, X =~ s/A/B/ or www.cs.cmu.edu/~infobot/infobot_guide.html | ||
| fperrad | dukeleto, a single pbc is easy, just write an PIR file that includes all other | ||
| dukeleto | japhb: rt.cpan.org/Public/Bug/Display.html?id=50215 | ||
| fperrad: yes, i just need to fiddle with the build stage | |||
| so Tapir will be invoked like: parrot t/harness.pbc t/*.t | 21:01 | ||
| japhb | Ah, interesting | ||
| dukeleto | currently it is parrot t/harness.pir t/*.t | ||
| japhb | fperrad, I'm about to do a Plumage feature sprint. Anything on the top of your requests? (installability is WIP, blocked on pmichaud). | 21:03 | |
| I was thinking new/improved stages, so if you've got suggestions there let me know now. | |||
| darbelo | japhb: How about an interactive mode? Activated via a switch on the command line. | 21:05 | |
| fperrad | japhb, always a stage 'update' | ||
| darbelo | japhb: The "Oops. The project you are trying to install burst into flame while testing. Do you want me to keep going anyway?" mode. | 21:07 | |
| japhb | darbelo, added to TODO. Different user interfaces have long been planned, blocked on getting refactors far enough that all model and controller bits were moved off to libraries. I'm 80% there on those. | ||
| darbelo | japhb: is the remaining 20% listed in TODO? | 21:08 | |
| japhb | darbelo, (re: keep going after testing fail) Already exists. See option --ignore-fail in usage | ||
| darbelo | japhb: I meant that as an example of the 'interactive' mode. | 21:09 | |
| japhb | darbelo, no, mostly because I haven't found all the places that need to be refactored away. I'm judging 20% mostly as a matter of line count in the relevant areas. | ||
| darbelo, ah, I see | 21:10 | ||
| fperrad, right, I remember now. You wanted an 'update' stage that falls back to 'fetch', right? And there was another one, too, do you remember? | |||
| Coke | (praise) kid51 also does. | 21:11 | |
| darbelo | japhb: 'patch'? | 21:12 | |
| japhb | I'm planning to add a reread_metadata_from key for all stages ... it specifies a file in the build tree to reread the metadata from before going to the next step. (Or in the case of the install step, before placing in the "final metadata" archive, which feature is also WIP ATM.) | ||
| darbelo, yes, sure. I would swear there was another one, but I'm forgetting it now. | |||
| clean! | 21:13 | ||
| that's the one | |||
| and someone had wanted a "show me the README" as well | 21:14 | ||
| darbelo | That's... lazy. | 21:15 | |
| plumage readthedocsforme | |||
| japhb | darbelo, not run by default. Just reachable. | ||
| fperrad | japhb, we've spoken about : | 21:16 | |
| - a stage 'clean' | |||
| - a command purge/remove project | |||
| japhb | I'm almost thinking a "jump to build dir" is more generally useful | ||
| DAMN UNIX PROCESS MODEL. | 21:17 | ||
| I can either exec a shell there or display the directory. Hmmm, latter is probably easier. Because then people can say 'cd `plumage project-dir foo`' or 'PROJECT_DIR=$(plumage project-dir foo)' or whatever | 21:18 | ||
| fperrad | japhb, before writing metadata requirements, have you study the spec file of RPM package ? | 21:21 | |
| because now with distutils, I can produce source distribution (ie tarball), so the next step is binary distribution : RPM package, Debian package | |||
| japhb | I have experience with both RPM and DEB, but no, I have not studied them in depth yet (more's the shame). Mostly I'm just trying to keep their general requirements in mind while I work, as well as those of various HLL native installers, like CPAN for Perl 5. | 21:23 | |
| darbelo | plumage generate-deb projectname would be veeeeery cool to have. | ||
| japhb | Any places I have painted myself into a corner I would REALLY like to know about. | ||
| fperrad | darbelo, with distutils : $ parrot setup.pir bdist | 21:28 | |
| or $ parrot setup.pir bdist_deb | |||
| japhb, another stage for Plumage is 'smoke' | 21:31 | ||
| currently, distutils know Smolder (see Lua for working example), but not TapTinder | |||
| japhb | fperrad, great, thank you | 21:33 | |
| darbelo | fperrad: Sold. I'm migrating decnum-dynpmcs to distutils. | ||
| Are there any docs? Or do I just RTFS? | 21:34 | ||
| dukeleto | darbelo: basically just copy over setup.pir and a few other files and you are done | 21:35 | |
| fperrad | darbelo, see runtime/parrot/library/distutils.pir, some doc, and many examples (links) | 21:36 | |
| darbelo | fperrad: excelent. | ||
| dalek | pir: 6836fad | fperrad++ | TODO: add my wishlist |
21:51 | |
| cotto_work | looks like the manifest needs to be regenerated in cs_csr_merge | 21:53 | |
| (minor nit, but it causes a fulltest failure) | |||
| fperrad | darbelo, currently distutils handles pmc files, but need some hacks for external C files. | 21:59 | |
| I'll work on it, tomorrow | |||
| darbelo | fperrad: Ah, ok. I was looking into that just now. I have to build a lib and link it to the pmc's .so | 22:01 | |
|
22:02
davidfetter joined
|
|||
| pmichaud | it's interesting that we're moving to something distutils-like, as many of the python folks I talk to continually complain about the problems with distutils in python :) | 22:15 | |
| darbelo | pmichaud: We're doing it better ;) | ||
| pmichaud | wfm :) | 22:20 | |
| davidfetter | darbelo, how is this distutils different from all other distutils? | 22:30 | |
|
22:31
payload joined
|
|||
| darbelo | fperrad wrote this one, but not all others? ;) | 22:32 | |
| davidfetter | that'd be an important difference | ||
| is there some kind of spec for it? | |||
| lucian_ | pmichaud: the concept of distutils isn't bad, that particular implementations is less than perfect | ||
|
22:34
brrant joined
|
|||
| darbelo | davidfetter: AFAIK, there's no spec, and we aren't aiming at 100% compatibility. It's a matter of leveraging parrot's platform knowledge to build stuff that runs on it. | 22:35 | |
| From what I've seen so far it's a pretty sane interface. load_bytecode distutils, put your data in a Hash PMC and let it worry about platform differences for you. | 22:36 | ||
| davidfetter | :) | 22:37 | |
| dukeleto | distutils.pir is pretty cool | 22:38 | |
| japhb | Now if we had hash literals in NQP ... *cough* ;-) | 22:42 | |
| pmichaud | "patches welcome!" *cough* | 22:43 | |
| particle | cough syrup welcome, too! | ||
| Tene | "I finished being sick two weeks ago, why am I still coughing?" *cough* | ||
| PerlJam | japhb: What do you need hash literals for exactly? | ||
| pmichaud | although it did occur to me that a hash() function might make building hashes a bit easier | 22:44 | |
| i.e., one could do | |||
| Tene | PerlJam: initializing hashes, of course. | ||
| pmichaud | my %h = hash( :key(value), :key(value), :key( hash( :key(value), :key(value) ) ), :key(value) ); | ||
| not quite as nice as the '{' syntax, but certainly a lot easier to implement | 22:45 | ||
| sub hash(*%h) { %h } | |||
| particle | wouldn't that produce a Bag? | 22:47 | |
| japhb | bak | ||
| pmichaud | in NQP? no. | ||
| japhb | PerlJam, I do a lot of data-driven programming. Right now I'm hacking it via JSON. Which sucks. | ||
| particle | ah, right, nqp. that oughtta work. | ||
| Tene | sucks bad. | 22:48 | |
| japhb | PerlJam, and because distutils wants to be fed nested hashes. :-) | ||
| Tene | but clever. | ||
| japhb | OK, I guess that goes in Util, then | ||
| chromatic | I don't like the hash marking algorithm. | 22:50 | |
| pmichaud | fwiw, I don't like Hash.clone much, either. :-| | 22:51 | |
| chromatic | Seems like it should be able to walk the bucket store, rather than following bucket->next. | ||
| dalek | rrot-plumage: 1afb1f4 | japhb++ | : [DOCS] Add new docs/ tree, and first doc: adding a new command |
23:01 | |
| rrot-plumage: ea2c0b7 | japhb++ | : [META] TODO updates |
|||
|
23:05
Whiteknight joined
23:08
Coke joined
|
|||
| Coke has his second power outage in a week or so. | 23:08 | ||
| dalek | rrot-plumage: d768b2d | japhb++ | : [LIB] Plumage::Project: Add accessor methods |
23:12 | |
| rrot-plumage: 5ef5de2 | japhb++ | : [LIB] Add project-dir command |
|||
| japhb | documenting++ # Forcing junk to be cleaned up rather than having to admit it in the document | 23:32 | |
|
23:42
kid51 joined
|
|||