|
Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), update tutorial (talk to tcurtis) Set by moderator on 21 July 2010. |
|||
|
00:19
AndyA joined
01:14
chromatic joined
01:17
rurban_ joined
|
|||
| Austin | Grr. What happened to backtrace? | 01:21 | |
|
01:27
Austin joined
01:28
mtk joined
01:32
[1]Casan joined
|
|||
| Tene | backtrace problems? | 01:39 | |
| I had a fix for backtraces for rethrown exceptions in my exceptions branch... don't think I ever got it to trunk. :( | 01:40 | ||
| Austin | Apparently the backtrace opcode went away... | 01:53 | |
| :( | |||
| cotto | Austin, it's a dynop now | 02:12 | |
| debug.ops | |||
| Austin | How's that work? | ||
| cotto | like any other dynop, ideally | ||
| Austin | Great... | ||
| purl | great is the highest degree of goodness | ||
| cotto | .loadlib 'debug_ops' | 02:13 | |
| ... | |||
| backtrace | |||
| purl | well, backtrace is not sufficient? | ||
| cotto | profit | ||
| Austin | Hmm.. how do I do .loadlib from nqp? | 02:14 | |
| ISTR having this conversation once before... | |||
| cotto | You could probably use the loadlib op. .loadlib doesn't work in nqp | 02:16 | |
| yes, it's a familiar conversation | |||
| I'm amending the support policy as we speak | |||
| Austin | Not the support policy, the loadlib from nqp thing. | 02:17 | |
| Lemme see what happens | |||
| of course loadlib returns a result... | 02:20 | ||
| grrr | |||
|
02:21
dalek left,
dalek joined
|
|||
| tcurtis | I don't think loadlib op works for dynops. IMCC has to know about dynops to parse the PIR correctly. | 02:21 | |
| And to generate the correct PBC, too, of course. | 02:22 | ||
| Austin | Yeah, you're right. | ||
| plobsing | rakudo uses dynops. how does it manage this problem? | ||
| Austin | Probably loads them and the compiles the client code afterwards. | 02:23 | |
| tcurtis guesses PIR. | |||
| One way to do it would be to write a little PIR file that just contains function wrappers around the dynops. | 02:24 | ||
| Austin | Maybe I could just dlsym the PDB_backtrace C code... | 02:26 | |
| plobsing | quick hack: Q:PIR { .end \\n .loadlib 'my_ops' \\n .sub '' } | ||
| might work | 02:27 | ||
| nopaste | "Austin" at 192.168.1.3 pasted "increment/compare expressions not compatible in nqp with if" (20 lines) at nopaste.snit.ch/22281 | 02:29 | |
| "Austin" at 192.168.1.3 pasted "increment/compare expressions not compatible in nqp with if (teh sourcez)" (10 lines) at nopaste.snit.ch/22282 | 02:30 | ||
| dalek | tracwiki: v6 | cotto++ | ParrotDeprecations | 02:44 | |
| tracwiki: add 2.6 through 2.9 | |||
| tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff | |||
| tracwiki: v2 | cotto++ | ParrotDeprecationsFor2.6 | |||
| tracwiki: add descriptions | |||
| tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff | |||
| cotto gets ready to kick the hornet's nest a bit | 02:48 | ||
| Austin | Do that thing where you change some fundamental feature for no clearly-defined reason and manage to somehow render useless or ill-defined a whole bunch of existing code... | 02:51 | |
| That's always good. | |||
| sorear | If we decided to drop the deprecation policy, would we need a deprecation cycle for it? | 02:52 | |
| cotto is actually hoping to do the opposite | |||
| anyone care to review an update to the support policy? | 02:53 | ||
|
02:54
janus joined
|
|||
| nopaste | "cotto" at 192.168.1.3 pasted "support policy updates" (48 lines) at nopaste.snit.ch/22286 | 02:54 | |
| cotto | ispell++ | ||
| tcurtis | cotto++ no complaints from me, but then again, someone who's only been around for one supported-release cycle isn't the best person to ask about the support policy. :) | 02:58 | |
| cotto | all non-purl input is welcome | 02:59 | |
| Austin | Looks good to me, if anyone will stick with it. | 03:04 | |
|
03:04
pmichaud_ joined
03:05
PerlJam joined,
Util joined
|
|||
| tcurtis | Austin: cotto can get a chainsaw in case they don't. :) | 03:08 | |
| Austin | Heh | ||
| How do you export a method? | |||
| cotto | Austin, good point. I need to add something about reverting deprecations that don't meet those criteria. | 03:09 | |
| That's been the plan. I just forgot to add it. | |||
|
03:09
dukeleto joined
|
|||
| nopaste | "cotto" at 192.168.1.3 pasted "support policy updates, now with teeth" (52 lines) at nopaste.snit.ch/22287 | 03:23 | |
| tcurtis | s/subject reversion/subject to reversion/ | ||
| cotto | fixt | 03:25 | |
| teeth? | |||
| purl | teeth are optimal for earlobes? | ||
| cotto | no, teeth is www.youtube.com/watch?v=Lzw6nRnaQG0 | 03:26 | |
| teeth? | |||
| purl | well, teeth is www.youtube.com/watch?v=Lzw6nRnaQG0 | ||
| cotto | got yer teeth right there | ||
| tcurtis | "The single (rare) exception to this rule is any core feature which is broken or incomplete to the point that it is deemed unusable by any user." +1 | 03:29 | |
| cotto | I call that the "Task clause" | 03:30 | |
|
03:39
Andy joined
|
|||
| cotto | I think nobody will complain if such features get removed without any deprecation (and considerable proof that the system is crap), but if not at least it won't foist a useless deprecation notice on the committer. | 03:42 | |
| any thoughts before I go off to parrot-dev? | 03:44 | ||
|
03:57
chromatic joined
03:58
snarkyboojum joined
|
|||
| cotto | hio chromatic | 03:59 | |
| chromatic | evening | 04:00 | |
| sorear | ello chromatic | 04:01 | |
| chromatic | ~1 | ||
|
04:05
PerlJam joined
|
|||
| dalek | website: tcurtis++ | Cleaning up and speeding up optimizations with Tree::Optimizer | 04:12 | |
| website: www.parrot.org/content/cleaning-and...eoptimizer | |||
| cotto | The only optimizer strong enough to optimize other optimizers. | 04:27 | |
| tcurtis | cotto: It should be fairly simple to implement. Traverse the PAST, checking each pattern in dependency-respecting order. If they match, apply the transformation. | 04:32 | |
| cotto | Yeah. It's not actually that hard. | ||
| an optimizer is just code | 04:33 | ||
| sorear | there is a story (apocryphal?), that Nicolas Wirth considered a Modula-3 optimization worth using if it made the optimizer faster by its inclusion | ||
| cotto | sounds kinda silly unless a language's primary application is to optimize itself | 04:38 | |
| chromatic | Depends how representative your program is. | ||
| sorear | For most minor languages, the compiler *is* the main user. | 04:39 | |
| cotto | This is true. | ||
| sorear | Or at least the largest single user. | ||
| chromatic | lampwww.epfl.ch/papers/idealhashtrees.pdf | 04:42 | |
|
04:46
LoganLK joined
04:53
jsut_ joined
|
|||
| dalek | ee-optimization: 8281693 | tcurtis++ | src/Tree/Pattern.nqp: Explain the options to Tree::Pattern.ACCEPTS. |
04:56 | |
|
05:43
simcop238 joined
05:47
somebody_ joined
06:49
fperrad joined
07:48
cognominal joined
08:16
Casan joined
|
|||
| cotto | p&w? | 08:25 | |
| purl | p&w is tinyurl.com/23dfwut | ||
|
08:47
TiMBuS joined
08:53
lucian joined
09:17
rurban_ joined
|
|||
| cotto | tcurtis++ for the blagging | 10:55 | |
|
12:36
JimmyZ joined
12:59
Austin joined
13:43
tcurtis joined
13:59
macroron joined
14:30
JimmyZ joined
14:31
jan joined
14:54
khairul joined
15:09
Austin joined,
Austin_Hastings joined
|
|||
| Austin_Hastings | moo. | 15:14 | |
| Woot | 15:15 | ||
| Austin | ahh | ||
| darbelo | o/ | 15:21 | |
| Austin | Given a namespace, where are the methods? | 15:29 | |
| darbelo | Not in the namespace. | ||
| There's a hash stashed somewhere in there, but I'm not sure how kosher it is to poke it. | 15:30 | ||
| Austin | If 7 inspect nsp, 'class' 0 is null, then the methods are in 7 inspect nsp, 'methods' 0 | ||
| whoops | |||
| If 7 inspect nsp, 'class' is null, then the methods are in 7 inspect nsp, 'methods' 0 | |||
| sorry, I keep thinking C0 when I should ) | 15:31 | ||
| *O | |||
| So: if $nsp->class is null, then $nsp->methods, else $nsp->class->methods. | 15:33 | ||
| Except that $nsp->class->methods may have methods from a different namespace, if they got exported or added or whatever. | |||
| darbelo | That'd be my guess. | 15:34 | |
| Austin | Yeah. | ||
| Traceability. | |||
| We don't has it. | |||
| I'm guessing you haven't seen the recent Direct TV commercial featuring the russian billionare? | 15:35 | ||
| darbelo | Nopes. I seem to be on the wrong hemisphere for cool tv comercials. | 15:36 | |
| Austin | www.youtube.com/watch?v=AkMsSIjQXxo...tube_gdata | 15:37 | |
| "Opulence, I has it." | |||
| The first 10 seconds are funny, the rest is tripe. Except the giraffe | |||
| darbelo | giraffes++ | 15:38 | |
| Austin | The thing that really pisses me off about the method tax here is having to type pir:: so many times. Kakapo is supposed to be about getting away from pir. :( | 15:48 | |
| darbelo | Yeah, well, NQP is all about hiding away the ugly pir-y details. | 15:49 | |
| It's no surprise you have to use pir:: to get at them. | 15:50 | ||
| And, if I recall correctly, classes have a method that returns the 'methods' hash. I think it's 'methods', but could be wrong. | 15:52 | ||
| Austin | Where is the constants list for vtable->base_type ? | ||
| Heh. | 15:53 | ||
| core_pmcs.h | 15:54 | ||
| enum_class_xxx | |||
| 56 = HashIteratorKey | |||
| Iterators fail again. | |||
| darbelo | include/parrot/core_pmcs.h | 15:55 | |
| Austin | Should there be a "get_pmc" vtable? | 15:56 | |
| darbelo | If it's not one of those, it's a dynpmc and you have to inspect it. | ||
| Austin | Except it wouldn't really be "get_pmc" | ||
| It would be "get_value" or something. | |||
| moritz | Austin: uhm, what would it return, except self? | ||
| Austin | moritz: Iterators would not return self. | 15:57 | |
| Anything else that's a proxy, would also not return self. | |||
| darbelo | Austin: What are you trying to do to that poor iterator? | ||
| moritz | Austin: I guess it would be kinda hard to figure out when to call it and when not | ||
| Austin: sinc parrot doesn't have a clear container/value distinction | |||
| nopaste | "Austin" at 192.168.1.3 pasted "What I wanted to do" (4 lines) at nopaste.snit.ch/22294 | 15:58 | |
| "Austin" at 192.168.1.3 pasted "What I ended up doing" (7 lines) at nopaste.snit.ch/22295 | |||
| Austin | Yeah, I can easily see it being called way too much. | 15:59 | |
| So the add_sub code checks the type of the thing being added | 16:00 | ||
| Not unreasonable. | |||
| But the container/value thing makes it hard to really use the iterator. | 16:01 | ||
| Is this a PAST thing? | |||
| Should there be a "get rvalue" op that optimizes away for all but iterators? | 16:02 | ||
| darbelo | Not a PAST thing, iterating over a hash return the key-value pairs. | ||
| Austin | ?? | ||
| darbelo: can you clarify that last? | 16:04 | ||
| darbelo | src/pmc/hashiterator.pmc | ||
| It has examples at the top that islustrate my point. | |||
| moritz | Austin: nqp doesn't wrap Perl 6 semantics on top of parrot builtins | ||
| in Perl 6 you'd write for %thing.kv -> $k, $v { ... } | 16:05 | ||
| Austin | Would I? | 16:06 | |
| (Ironically, kakapo includes a Hash.kv method. But I can't call it before I configure all the methods, which is what this horrible method tax is about...) | 16:07 | ||
| dalek | TT #1718 created by Austin++: `NameSpace.add_sub($name, &sub)` does not honor given name for methods | 16:56 | |
| TT #1718: trac.parrot.org/parrot/ticket/1718 | |||
|
17:02
Austin left,
Austin joined
|
|||
| Austin | Bah. wrong window | 17:02 | |
|
17:12
eternaleye joined
17:14
s1n joined
17:17
rurban_ joined
17:31
theory joined
|
|||
| dalek | kudo: 1ccf35d | pmichaud++ | src/ (7 files): Convert Nil to be a constant (finally!) instead of treating it like a |
17:33 | |
| kudo: 83e0bdd | pmichaud++ | (6 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
| kudo: d1f2e59 | pmichaud++ | (6 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
| kudo: e991c43 | pmichaud++ | src/ (2 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
|
17:42
plobsing joined
18:07
Andy joined
19:23
lucian joined
|
|||
| dalek | kudo: b46a3b3 | jonathan++ | src/Perl6/Actions.pm: Avoid using a PAST::Var register node as the result of a smart-match, since it avoids issues that the block trick introduced. |
19:30 | |
|
20:20
hercynium joined
20:26
patspam joined
|
|||
| tewk_ | c | 20:44 | |
|
20:46
[1]Casan joined
20:48
whiteknight joined
20:56
wknight8111 joined
|
|||
| darbelo | On days like this, I truly hate the tangled mass of misdirected function pointers we call our string API. | 21:06 | |
| Also, can anyone come up with a benchmark where string performance isn't totally overshadowed by pcc and gc overhead? | 21:07 | ||
| Austin | If string performance is O(irrelevant), why are you working on it? | 21:12 | |
| darbelo | I'm not working on performace, per se. I'm cleanin up the string API, as best I can manage. | 21:13 | |
| Austin | Ah. | 21:14 | |
| darbelo | As far as I can tell, performance is O(irrelevant) when compared to pcc or gc. | ||
| If there's a case where it isn't, I'd rather know now, before I make it slow. :) | 21:16 | ||
| There's also enough tangled mis-indirection in here that we might become a bit faster in the end, though. | 21:19 | ||
| Austin | Here's a question: given that namespaces support an 'export_to' operation, what's the behavior of exporting a method? | 21:21 | |
| darbelo | I have absolutely no idea what you are talking about. | ||
| Austin | That is, what's the "useful and works" behavior, ideally, as opposed to the current parrot behavior... | ||
| darbelo | 21:22 | ||
| Austin | A namespace is a kind of PMC. | ||
| Actually, "NameSpace" | |||
| Which has C-level method called 'export_to' | 21:23 | ||
| Which pretends to export named entries from the namespace to a target. | |||
| darbelo | That much I know. I just have never actually called that method, nor have any expectations concerning it's correct functioning. | ||
| Austin | Yeah | ||
| You and every other committer, I think. | 21:24 | ||
| Except perhaps Tene. | |||
| darbelo | I intentionally stay as far away from parrot's object model as I can manage. | ||
| Austin | Heh | ||
| darbelo++ | |||
| Smart move. | |||
| darbelo | I fear that if I look at it I'll see how broken it is and feel compelled to fix it. | 21:26 | |
| I also know that sharpened sticks and code will do little to harm the Great Old Ones that have taken residence in there. | 21:27 | ||
| Tene | Austin: Everything stored in the namespace (or just the named items) are exported to the destination namespace. A method in a namespace is no different from any other PMC. | 21:28 | |
| IMO | |||
| Austin | I'm inclined to agree. | ||
| And to write the code that supports that agreement, | |||
| which is becoming more and more difficult.. :( | |||
| Of course, the `export_to` method (in namespace.pmc) doesn't support methods... | 21:29 | ||
| Tene | Erm. That sounds very wrong to me. Let me check. | ||
| Austin | It uses the hash interface, and methods aren't visible any more unless you do (something) to make them so.. | 21:30 | |
| Tene | Um. | ||
| I didn't mean those. | |||
| Those are methods on a class *not* available through the namespace. | |||
| Austin | ? | ||
| Tene | If you want a method in the namespace, mark it :nsentry | ||
| Austin | Ahh | ||
| How do you do that in NQP? | 21:31 | ||
| Tene | If it supports it, it would be: our method foo ... | ||
| jnthn | If implemented, the correct syntax is "our method foo() { ... }" | ||
| Tene | If it doesn't, that shouldn't be hard to add. | ||
| Austin | Yeah.. not impleemtned | 21:34 | |
| Tene | 'k, lemme look | 21:35 | |
| jnthn | Mebbe just a case of spotting $*SCOPE eq 'our' and adding :nsentry to pirflags | 21:36 | |
| Tene | prolly | ||
| Yeah, it was that simple. | 21:44 | ||
| I can commit to nqp-rx, but I don't know how to bring updates into parrot.. | |||
| Austin: I just pushed to nqp-rx, any chance you could check if that does what you want? | 21:46 | ||
| dalek | p-rx: 96bc191 | tene++ | src/NQP/Actions.pm: Set :nsentry on our methods |
21:47 | |
| Austin | I'll check it out in a bit.. | 21:48 | |
|
21:49
dolmen joined
|
|||
| Tene | Austin: Please let me know whatever I need to do to make this work for you. :) | 21:50 | |
| Austin | MAke me a sandwich. | 21:51 | |
| darbelo | sudo make me a sandwich. | ||
| Austin | :) | 21:52 | |
| xkcd++ | |||
| xkcd.com/149/ | 21:53 | ||
| Tene | Austin: the gf is in the kitchen cooking lunch; you're free to come hang out here if you'd like. | 21:56 | |
| Bit of a commute, though. | |||
| Austin | Depends on how good the sandwich is, I guess. | 21:57 | |
| Unicorn tongue on a gold-leaf encrusted ciabatta bun with truffles and ambergris mustard might be worth it... | 21:59 | ||
| darbelo passes. Auric intolerance. | 22:00 | ||
| Austin | If it had some bacon it would definitely be worth it. | ||
| Speaking of bacon... | 22:01 | ||
| I think it's time for Chinese food.. | |||
| Tene | No sandwich. Just fried rice and vegetables. | 22:06 | |
| I guess I could make a sandwich. I've got... plain wheat bread and nutella? | 22:07 | ||
| darbelo | . o O ( Fried rice sandwich... ) | ||
| Tene | Yeah! fried rice and nutella! | 22:09 | |
| whiteknight | Hello Austin, how are you today? | 22:19 | |
| Tene | Austin is AFK, I think. | ||
| Austin | Howdy, Whiteknight! I'm trying to pay the method tax, and getting ready to settle for chinese food... | 22:20 | |
| whiteknight | Austin: I'm still fighting with kakapo. Getting slightly further every day I unintelligibly fumble with it | 22:21 | |
| Austin | Strange coincidence. Me too. | ||
| :( | |||
| Tene | whiteknight: You're also having issues with methods in namespaces? | 22:22 | |
| whiteknight | every day | ||
| purl | every day is a good telecommute day or two werds | ||
| Austin | Spam. I has it. | 22:23 | |
| Ok, now I'm afk. | |||
| Tene | whiteknight: after my last commit to nqp-rx, 'our method foo()' should put the method in the namespace like 'method foo()' did before. | ||
| I'm hoping to get confirmation from someone having trouble with methods in nqp that it works for them before I try to figure out how to get it into the parrot repo. | 22:24 | ||
| whiteknight | Tene: that sounds fabulous | 22:25 | |
| Tene | I mentioned this as the right thing to do the last time I talked about it, but it apparently didn't happen, and I had a spare tuit. | 22:26 | |
| whiteknight | purl msg Austin I think has() also no longer works as expected, SoI've been removing it and changing around accessors to use a more "normal" syntax when I can. I'm not sure if it's been necessary, but does seem to get rid of some errors I'ce been seeing. | 22:28 | |
| purl | Message for austin stored. | ||
|
22:34
theory joined
|
|||
| cotto | ~~ | 22:41 | |
| Tene | !! | 22:42 | |
|
22:46
[1]Casan joined
22:55
bacek joined
22:56
aloha joined
|
|||
| darbelo | aloha, aloha. Nice to have you back. | 23:27 | |
|
23:38
fperrad joined
|
|||
| dalek | rrot: r48172 | darbelo++ | branches/gsoc_nfg/src/string (2 files): Replace UNORM_DEFAULT with UNORM_NFC as ICU composition target. |
23:48 | |
| rrot: r48173 | darbelo++ | branches/gsoc_nfg (6 files): There's no point to having a charset function that eventually always delegates to the encoding. Remove it and just call the encoding function. |
|||
| rrot: r48174 | darbelo++ | branches/gsoc_nfg (8 files): Remove the get_bytes encoding function. Most encodings didn't implement it properly and now the bytebuffer PMC has rendered it moot. |
|||
| rrot: r48175 | darbelo++ | branches/gsoc_nfg (3 files): Delete misleading CHARSET_ macros that forwarded to the string's encoding. |
|||
| rrot: r48176 | darbelo++ | branches/gsoc_nfg/include/parrot/charset.h: Remove a misnamed macro for an already removed function. |
|||
| rrot: r48177 | darbelo++ | branches/gsoc_nfg (2 files): Remove an uncalled function. Our uses of ICU don't need a data directory. |
|||
| rrot: r48178 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c: Obliterate trailing whitespace. |
23:49 | ||
|
23:57
Psyche^ joined
|
|||