|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets. Set by moderator on 25 June 2010. |
|||
| chromatic | I wonder if PIRATE would be faster if it were self-hosted. | 00:10 | |
| cotto_work | It's getting there quickly. I'd be surprised if there were much of an improvement without some beefy optimizations. | 00:11 | |
| chromatic | I'm curious to see how linear scan helps. | 00:14 | |
| whiteknight | longer time for code generation (slightly). Less memory allocated at runtime | 00:16 | |
| chromatic | We might mark fewer GCables too. | ||
| whiteknight | how? | ||
| by just not keeping registers filled with dead garbage? | |||
| cotto_work | their references will get clobbered faster | ||
| chromatic | Exactly. | ||
| I'm really curious to see how that new STRING API bacek and I talked about the other day helps Rakudo though. | 00:17 | ||
| whiteknight | that could be big. I can't really estimate how many registers we're going to save | ||
| darbelo | chromatic: What API? | ||
| purl | API is abstra ct | ||
| NotFound | I'm wondering if adding several ops to avoid the need of pir compilers sintesizing them with temporaries will not be a better solution to a noticeable part of that problem. | 00:19 | |
| chromatic | irclog.perlgeek.de/parrot/2010-06-26#i_2481038 | ||
| irclog.perlgeek.de/parrot/2010-06-26#i_2481147 | |||
| NotFound, darbelo, see those links. | 00:20 | ||
| ash_ | does parrot have an alloca? | 00:21 | |
| darbelo | Sounds like a win to me. | ||
| NotFound | Offsets and lengths will be bytes, codepoints, or graphemes? | ||
| darbelo | I assumed graphemes, which we conflate with codepoints at the time. | 00:22 | |
| chromatic | Whichever's the most correct, so graphemes. | ||
| darbelo | Bytes would be a byte idea to expose there. | ||
| dalek | rrot: r47907 | NotFound++ | trunk (3 files): deprecation note and warnings for is_tty, TT #1689 |
||
| darbelo | Eh, bad idea. | 00:23 | |
| chromatic | It seems like an easy enough thing to write, but every time I finish my other work, I have to leave the office. | 00:24 | |
| darbelo | ash_: If your libc has alloca() I don't see any reason parrot would be unable to use it | 00:28 | |
| ash_ | is it not recommended to use it? i just haven't seen any places where its used, or any code to make it cross platform (it exists in a lot of systems, but its (for instance) called _alloca in windows instead of alloca | 00:29 | |
| NotFound | Because of that: "If the allocation causes stack overflow, program behavior is undefined." "The alloca() function is machine- and compiler-dependen" | 00:30 | |
| darbelo | Oh, you want to use alloca in parrot code. I'd argue against it. | ||
| chromatic | It's apparently not in POSIX 2001 either. | ||
| ash_ | so, i shouldn't use it then? | ||
| darbelo | Too much of a portability headache. | 00:31 | |
| chromatic | Seems fragile to use correctly. | ||
| ash_ | k | ||
| darbelo now remembers how much he hates the packfile code. | 00:33 | ||
| NotFound | And that: "There is no error indication if the stack frame cannot be extended. (However, after a failed allocation, the program is likely to receive a SIGSEGV signal if it attempts to access the unallocated space." | ||
| darbelo | "likely to receive a SIGSEGV" As opposed to what? A puppy? | 00:34 | |
| ash_ | thats silly, i didn't realize it doesn't it wouldn't return an error... | 00:35 | |
| t | |||
| NotFound | darbelo: to silently corrupt interrupts vector if you are building parrot for ms-dos, for example X-) | ||
| nopaste | "darbelo" at 192.168.1.3 pasted "OpenBSD alloca manpage" (32 lines) at nopaste.snit.ch/21647 | ||
| chromatic | +1 to a new .class directive | 00:36 | |
| whiteknight | bah. I'm done with this damned email thread. Next time I'll do the "better to ask for forgiveness instead of permission" approach | ||
| NotFound | Remember that people are working in parrot for embedded systems, thus it can be used in systems without memory protection. | 00:37 | |
| Tene | whiteknight: did you read my email about :nsentry? | 00:38 | |
| whiteknight | Tene: yes | ||
| Tene: I've been working on this problem for three days now. I've exhausted all the easy solutions | |||
| darbelo | whiteknight: Have you seen allison latest reply? (The one to Austin) | 00:39 | |
| whiteknight | Combine that with several hundred lines of code to move functions around between namespaces and classes | ||
| darbelo: yes. | |||
| NotFound | chromatic: winxed already has diferentiated class and namespace, even if uses .namespace in the generated code for both. Will be fairly easy to change the generator to test that directive, | 00:41 | |
| whiteknight | I'm not rewriting a few hundred lines of code to work around a problem with a ~5 line solution. I'm a volunteer, my time is valuable, etc | ||
| darbelo | whiteknight: That's going to have to happen anyway. | 00:42 | |
| whiteknight | darbelo: it's not going to happen. There likely isn't going to be any kakapo for 2.6.0 Parrot | 00:43 | |
| darbelo | The old way isn't going to work anymore. Your best shot is to help allison narrow down the behaviour you need supported so it can be added. | 00:44 | |
| whiteknight | I've been staring at this for days. I've narrowed down what I need. The answer is no. We move on to the next project. No big deal | 00:45 | |
| darbelo | The time when people ask for "specific code examples of what worked before that doesn't work now" is not the right time to do that if you ask me. | 00:46 | |
| (which you haven't, but I'm telling you anyway :) | |||
| NotFound | If the behaviour needed is to modify classes after being instantiated, I think the design forbids that. | 00:47 | |
| whiteknight | the design has never forbidden people from adding methods to classes | ||
| for built-in types, it's (supposed to be) easy and quite common | |||
| darbelo | If there's indeed a bug here (and I think there is a good chance of that). This is the time to find it. | 00:48 | |
| whiteknight | it's not a bug. There was a deprecation notice for TT #389. There was fair warning | 00:49 | |
| NotFound | darbelo: BTW "worked before" sometimes doesn't mean much. Supposedly dynops worked before. | ||
| darbelo | I was wuoting allison's mail to Austin there. | 00:50 | |
| NotFound | Really they worked just because they weren't exercised enough. | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34627), fulltest) at r47907 - Ubuntu 10.04 amd64 (gcc with --optimize) | ||
|
00:51
Austin joined
|
|||
| darbelo | whiteknight: allison's mail states that (some of) the stuff kakapo was trying to do should work. If it doesn't then there must be a bug somewhere. | 00:51 | |
| whiteknight | darbelo: It's not just a matter of what kakapo does. Yes, there are workarounds | ||
| the problem is how much of the code there is that does the old thing | |||
| allison | whiteknight: I'm not trying to be difficult, I'm really just plain confused how the 6 line change could have had such a dramatic effect, and even more, I have no idea what's not working | 00:52 | |
| whiteknight | allison: I know nobody is trying to be difficult. | ||
| allison | can you explain what's not working? | ||
| whiteknight | let me get some links | 00:53 | |
| github.com/Whiteknight/kakapo/blob/.../Array.nqp | |||
| The _pre_initload method there is what's failing | |||
| github.com/Whiteknight/kakapo/blob/...Global.nqp | |||
| the export method there is what finally barfs | 00:54 | ||
| allison | Is Kakapo written all in NQP? | ||
| whiteknight | I've got methods in a NQP module (not a class). I am trying to move them from the source namespace to the destination one | ||
| all NQP | |||
| a small amount of bootstraping PIR, but 99% NQP | |||
| allison | okay, that right there might be the source of my confusion, since I keep talking about things that are easily possible in PIR, but I don't know about NQP | 00:55 | |
| I don't know how much NQP exposes | |||
| whiteknight | so the problem is Array is a namespace, not a class. But the things I want imported are methods (without :method we don't have "self") | ||
| Doing pir::get_namespace("Array").get_class() returns null | |||
| allison | but Array has a Proxy | ||
| whiteknight | no, only built-in types have proxies | 00:56 | |
| or, that I am aware of, only built-in types have proxies that work | |||
| allison | oh, sorry, by Array, you don't mean parrot::Array (the built-in) | ||
| whiteknight | we don't have a parrot::Array anymore | ||
| allison | you mean kakapo::Pmc::Array | 00:57 | |
| whiteknight | yes | ||
| NotFound | Have you looked at TT #1694? Maybe it plays a role here. | ||
| whiteknight | Converting kakapo::Pmc::Array to a class gets passed that problem, but then exposes the problem that ordinary subs can't be exported between classes, since they aren't methods | ||
| allison | why is Array a namespace into a class? | 00:58 | |
| okay | |||
| whiteknight | so I need to rewrite all of kakapo to differentiate between subs and methods that I want to import/export all over the plac | ||
| allison | so, in some ways it's going back to the Perl 6 submethods | ||
| whiteknight | maybe. I might not know what those are | ||
| Austin | It's worth pointing out that Array will BE a class later, but pre-initload generally runs before the P6object code that creates the Array class. So Array::foo() [:method] exists, but may or may not be registered, depending on how the user is loading Kakapo. | ||
| allison | which is why class definition still uses .namespace (in PIR) | ||
| whiteknight | ...and what Austin says | ||
| mikehh | pir/PIRATE (c20b371) build ok/ test ok - parrot at r47907 - Ubuntu 10.04 amd64 (gcc with --optimize) | ||
| whiteknight | allison: yes, but the nqp class definition also does a newclass | ||
| by the way, I don't necessarily want Array to be a class. IT's abstract and I don't want people treating it like an instantiable class. It's a small nit | 00:59 | ||
| basically, it's just a dumb storehouse for methods that I want to jam in other places | |||
| Austin | Whiteknight: Did the same-last-name problem ever get fixed? | ||
| whiteknight | Austin: to my knowledge, now | ||
| no | |||
| Austin: not for lack of trying. That code is dark and evil | 01:00 | ||
| allison | this is where I get confused, because the dumb storehouse is still there | ||
| Austin | Heh | ||
| whiteknight | allison: yes, but the dumb storehouse is a namespace, and the things it is storing are methods | ||
| can't get to them | |||
| now if I had a method NameSpace.get_method(), my problems go away | |||
| allison | they are still there, stored in a separate part of the namespace | 01:01 | |
| whiteknight | right. I only want to access them | ||
| NotFound | Please take a look at TT #1694, that thing probably complicates attempts to diagnose and fix a lot of related problems. | ||
| Austin | Hmm. How does the new version of p6object (P6metaclass::register) handle this? | ||
|
01:01
abqar_ joined
|
|||
| whiteknight | NotFound: I don't think kakapo uses an HLL | 01:02 | |
| allison | whiteknight: call 'inspect_str' with the argument 'methods' on the namespace object | ||
| whiteknight | Austin: no idea | ||
| allison | whiteknight: it'll give you the temporary hash where the methods are stored before the class is created | ||
| whiteknight: (and, apologies, but I don't know how to do that in NQP) | 01:03 | ||
| whiteknight | it's okay. I'm not an NQP expert myself | ||
| NotFound | whiteknight: no, but if that problem makes lots of tests to break in attempts to fix related problems, people will likely think the fix is wrong. | ||
| mikehh | partcl-nqp (ab9b0d2) builds ok, test PASS - parrot at r47907 - Ubuntu 10.04 amd64 (gcc with --optimize) | ||
| whiteknight | NotFound: Maybe, but there's no evidence that this issue is in my problem | ||
| allison: I can give inspect_str a shot. That can probably do what I need | 01:04 | ||
| NotFound | whiteknight: yeah, until a few hours ago there wasn't even evidence that this issue existed X-) | ||
| (other than people loading the .pir instead of the .pbc for no aparent reason) | 01:06 | ||
| Austin | Whiteknight: $namespace.inspect('methods') | 01:08 | |
| whiteknight | Austin: yeah. I'll tackle it tomorrow | 01:16 | |
| (by the way, I'm sorry to disturb you from your long slumber) | |||
| goddamn gitorious! Every couple hours it forgets my ssh keys | 01:18 | ||
| or it remembers my ssh keys but denies me access anyway | 01:20 | ||
| it's not like I changed my key since this morning, but now I can't push | |||
| Austin | Heh. | 01:25 | |
| Are you sure that's gitorious and not your isp? (Some ISP's dynamically reassign IP#s to clients...) | 01:26 | ||
| whiteknight | I don't know, but github never ever gives me those problems | ||
| Austin | Whiteknight: Is 2.5 very much different from 2.4? (I can get 24 to build..) | ||
| whiteknight | Austin: What kinds of build errors do you get? I'm intrigued that you can't get it to build | ||
| nopaste | "Austin" at 192.168.1.3 pasted "make problems" (4 lines) at nopaste.snit.ch/21648 | 01:29 | |
| Austin | out of memory error on the first somewhat-complex pmc file doing pmc2c | 01:30 | |
| whiteknight | thats....extremely weird | ||
| like I said, my ubuntu vm has 386mb ram, and no issues like that whatsoever | |||
| dalek | kapo: 8b9fa42 | whiteknight++ | src/Pmc/Array.nqp: re-fix my last re-fix of this Array class. I think I have it right this time, or at least better than it was. Subs are read from the Array namespace and injected into the appropriate Class objects. |
||
| whiteknight | what rev are you on? Did you do the normal song-and-dance (realclean, fresh checkout, etc)? | ||
| dalek | kapo: a3281dc | whiteknight++ | src/Pmc/Array.nqp: bump indentation for Array.nqp, since it's treated as a class now |
||
| Austin | I did a fresh co of tags/2.5 | ||
| cotto | ~~ | ||
| Austin | Then ran my fixup script (dos2unix across non-binary files) then configure then make. | ||
| SSDD, really. | |||
| (It's not like this is the first time I've paid the tax...) | 01:32 | ||
| whiteknight | Austin: which compiler, gcc? | 01:33 | |
| Austin | Yeah | ||
| whiteknight | ...nevermind. It doesnt' matter at that point | ||
| Austin | Also, yeah. | ||
| whiteknight | which version of Ubuntu? Perl? | 01:34 | |
|
01:34
plobsing joined
|
|||
| Austin | 2.6.22 (andLinux kernel) and perl 5.10.0 | 01:37 | |
| (aka, the same ones I've used for months) | |||
| FWIW, the 2.4 build works fine - I've got them in parallel directories. | 01:38 | ||
| whiteknight | weird as hell | 01:39 | |
| can you try it with current HEAD? | |||
| Austin | Sure. | ||
| I wonder if someone added something that dos2unix is stripping out... | |||
| whiteknight | Why are you doing dos2unix? | ||
| Austin | andLinux is a kernel that runs inside windows | 01:40 | |
| My source and stuff are on Win, I use linux for the build and some command line stuff. | |||
| (I can't get a Parrot build on windows alone, since I've got too much stuff loaded..) | 01:41 | ||
| kid51 | www.andlinux.org/ | ||
| whiteknight | ah | 01:43 | |
| Austin | I'll try trunk, see what that brings. | ||
| mikehh | rakudo (d18b5e7) builds on parrot r47907 - make test PASS, spectest_smolder -> #34628 (pugs r31494) FAIL - Ubuntu 10.04 amd64 (gcc with --optimize) | 01:46 | |
| t/spec/S32-num/rat.rakudo - Failed test: 798 | |||
| 19 TODO PASSes in 5 files | |||
| ash_ | can you use cygwin to build parrot? | 01:54 | |
| whiteknight | Austin: I'm heading to bed now. msg the results | 01:59 | |
| goodnight | |||
| Austin | ok | ||
| niterz | |||
| dalek | parrot: 60962c5 | dukeleto++ | plparrot.c: Remove unused variables |
02:04 | |
| parrot: f03ace1 | dukeleto++ | plparrot.c: Check for a null proc_src before calling get_func_arg_info |
|||
| parrot: 7b7e97e | dukeleto++ | plparrot.c: Check for compilation errors in plperl6_run before Parrot_ext_call |
|||
|
02:06
ash_ joined
|
|||
| atrodo | NQP doesn't have the perl5 equivalent of local, correct? | 02:21 | |
| kthakore | atrodo: \\o/ | ||
| kthakore hugs atrodo | |||
| atrodo awkwardly hugs kthakore back | 02:22 | ||
| kthakore | atrodo: \\o/ | 02:24 | |
| kthakore runs off to get his RC out the door | |||
| sorear | atrodo: my $*FOO functions as a local, though the implementation is rather different | 02:30 | |
| Austin | msg whiteknight Dude! You rock! Moving to trunk works for me - at least it gets past FIA.pmc. Thanks for the suggestion. | 02:39 | |
| purl | Message for whiteknight stored. | ||
| cotto | Austin, could you take a look at HowToDeprecate and ParrotDeprecations with your Kakapo hat on and tell me if you see any problems? | 02:40 | |
| also, let me borrow that Kakapo hat. It sounds pretty awesome. | |||
|
02:42
TiMBuS joined
|
|||
| Austin | Just mind the claws... www.youtube.com/watch?v=9T1vfsHYiKY | 02:42 | |
| atrodo | Thanks sorear, that looks like what I want, but I think how I'm operating may not be right. | 02:46 | |
| Austin | cotto: I think you need to clarify what gets deprecated and what doesn't. IOW: Opcode/PMC functionality get it, while GC internals don't, etc. There's some kind of rule, but I don't know what it is... | 02:48 | |
| cotto | Anything externally facing is subject to the deprecatin policy. | 02:49 | |
| but yes, that could do with some clarification. I just don't want to duplicate too much of our existing documentaiton. | 02:50 | ||
| *docs | |||
| ;) | |||
| Austin, from the perspective of a crabby HLL or library maintainer settling down to pay the upgrade tax, how does it work? | 02:55 | ||
| (just pretend) | |||
| Austin | Poorly. | ||
| Natch | |||
| So some coder - Frank - makes a change in $rev + .1 | 02:56 | ||
| Now that change isn't permanent - he could re-change it, or something - so will he write up a deprecation notice for $rev + .3? | 02:57 | ||
| The wiki page is to the good, IMO. | 02:58 | ||
| For things like 389, a subpage may grow out of it if a bunch of issue balloon out. | |||
| So wiki page is generally better than not. | |||
| cotto | Deprecations require some planning and forethought. If a backwards-incompatible deprecation goes in at $rev, it will have been in the works for a while and probably won't be reverted unless something really surprising happens. | ||
|
03:00
janus joined
|
|||
| cotto wonders if we'll ever see the end of 389 | 03:00 | ||
| Austin | Bacek's substr change is a good example. Here's this high-impact thing that every hll will maybe have to fix. I think one potential problem is how to write the synopsis. The descriptions can be pretty dry. | 03:01 | |
| # Remove in-place substr op variants. TT #1450 | |||
| That doesn't sound like "you're going to have to fix the code generator in your snobol compiler in eleventy-six places" | |||
| cotto | It might work to add an expected impact to the summary page. | 03:02 | |
| Austin | Yeah. I'm thinking that's the right approach. | ||
| cotto | It doesn't sound like that. | ||
| poor SNOBOL compiler | 03:03 | ||
| poorer INTERCAL compiler, but for other reasons | |||
| such as existing | |||
| Austin | Impact: Replace all occurrences of 'substr' with 'new_substr' in generated and hand-coded pir. | ||
| cotto | The idea would be to communicate "here's how much this change will mess up your code." | 03:08 | |
| as efficiently as possible | |||
| Austin | YEs. | ||
| Yes | |||
|
03:08
khairul joined
|
|||
| cotto | I'll give some thought on how to do that. Thanks Austin. | 03:11 | |
| Austin | I think your idea of an impact summary along with the synopsis will do nicely. | ||
| In a real company, I'd suggest it be part of the Trac ticket, and generate the report. :) | 03:12 | ||
| cotto | Yet here we are, in not a real company. | ||
| Austin | Yeah. At least we get to use git. | ||
| :-$ | |||
| cotto | That'll actually be happening in the forseeable future. | ||
| Austin | Heh. | 03:13 | |
| That's actually cool for me, since git crosses the *nix/windows divide better than svn. | |||
| (Since, basically, git utterly fails to cross the divide, thus requiring the tortoise-git folks to sneak mingw in the background...) | 03:14 | ||
| cotto | Using git is so much nicer than svn. It just feels modern, even with its warts. | ||
| orly? | |||
| purl | YA RLY. | ||
| Austin | Think about it, dude. Git was written by and for Linux users. | ||
| cotto | this is quite true | ||
| Austin | Windows support for Git is about like Linux support for Team Foundation Server... | 03:15 | |
| cotto | At least git is oss. | ||
| Austin | Heh. | ||
| There is that. | |||
| cotto | if only there were a legitimate libgit | ||
| that didn't end in .a | |||
| dukeleto | Austin: lulz :) | ||
| Austin | Of course if you could talk your bosses into donating a few T/Architect licenses, I'd switch to developing under Windows... | 03:16 | |
| :) | |||
| cotto | You must mean cotto_work. ;) | ||
| Austin | Oh yeah, that guy. | 03:17 | |
| purl | yeah, that guy is obviously a freaked-out psychopath | ||
| Austin | heh | ||
| botsnack | |||
| purl | :) | ||
| cotto | doublebotsnack | ||
| purl | :) | ||
| cotto | hjwlkanlkdsjfalksjflkajflsdbotsnacklkasjfoiwjlklksdjld | ||
| purl | :) | ||
| Austin | Regexp: gotta catch 'em all | 03:18 | |
| khairul | cotto: ping | 03:31 | |
| cotto | hio khairul | 03:33 | |
| khairul | hi cotto | ||
| see privmsg | |||
| dalek | rrot: r47908 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrumentgc.pmc: Removed the huge if/else blocks and replaced it with hash. |
03:37 | |
|
03:40
LoganLK joined
|
|||
| dalek | rrot: r47909 | darbelo++ | branches/gsoc_nfg/t/op/string_nfg.t: Remove two overly optmistic tests. Tables can't be made that lazy yet. |
03:54 | |
| tracwiki: v4 | cotto++ | KhairulGSOC2010Schedule | 04:13 | ||
| tracwiki: updates after meeting with khairul | |||
| tracwiki: trac.parrot.org/parrot/wiki/Khairul...ction=diff | |||
| bacek_at_work | aloha | 04:17 | |
| who asked for some newbie tickets? | |||
| cotto | aloha, bacek_at_work | ||
| tcurtis | bacek_at_work: kthakore did. | 04:18 | |
| bacek_at_work | tcurtis, thanks | ||
| msg kthakore take a look at trac.parrot.org/parrot/ticket/1639 and trac.parrot.org/parrot/ticket/1650 They are mostly self-contained and not-so-hard to implement | 04:19 | ||
| purl | Message for kthakore stored. | ||
|
04:20
ash_ joined
|
|||
| bacek_at_work | afk # next meeting... | 04:20 | |
|
04:20
ash_ joined
|
|||
| dalek | rrot: r47910 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrumentgc.pmc: Clean up the hashes on destroy. |
04:27 | |
| cotto | fearthecowboy.com/post/coapp-in-the...-days.aspx - for people interested in sane package management on windows | 04:49 | |
| bacek_at_work | cotto, do you really use words "sane" and "windows" in same sentence? | 04:54 | |
| cotto | Ask me in a year. | 04:59 | |
| I'm excited about it. | |||
|
05:05
chromatic joined
06:14
he joined
06:34
eternaleye joined
|
|||
| dukeleto | 'ello | 06:43 | |
| tcurtis | Hello, dukeleto. | 06:44 | |
| dukeleto | tcurtis: how goes it? It looks like you have been busy with your GSoC work. That is good to see. | ||
|
06:48
eternaleye joined
|
|||
| tcurtis | dukeleto: It goes well. I have a user other than myself now(although I'm not sure if he's still blocking on something in NQP)! moritz++ for daring to brave the mostly uncharted waters of my GSoC project! | 06:49 | |
| sorear | What about bacek/ | ||
|
06:50
JimmyZ joined
|
|||
| tcurtis | sorear: PIRATE will soon be using POST::Pattern. bacek himself hasn't written code using it(as far as I know). | 06:55 | |
| moritz | good morning | 06:56 | |
| purl | Lies! | ||
| moritz | tcurtis: there's an interesting discussion on #perl6 I had yesterday, I'll find a link for you... | ||
| tcurtis: irclog.perlgeek.de/perl6/2010-06-28#i_2488432 | 06:57 | ||
| it boils down to: if I want to optimize stuff in Perl 6, I have to have information about the lexical environment for each PAST node | 06:58 | ||
| so we have to find a way to gather this information during the optimization pass | 06:59 | ||
| either as a separate pass | |||
| or maybe by attaching some callback to tree walker that's always called | 07:00 | ||
| and it's also something where we could think about how general this can be done, so that other languages with lexical variables can profit from it | 07:02 | ||
| sorear | the catch is that 'my Int $x' means basically nothing | ||
| moritz | well | 07:04 | |
| it means something in a lexical scope | |||
| tcurtis | I suspect that a lot of optimizations will be hard to generalize to multiple languages. | 07:10 | |
| moritz | that's certainly true | ||
| tcurtis | Even something as simple as addition is represented totally differently in partcl, in rakudo, in NQP. | 07:11 | |
| moritz | but all languages with lexical variables need compile time information about their lexicals for all non-trivial optimizations | ||
| my current plan to get them is another stage that 1) promotes all outer lexicals to inner blocks | 07:12 | ||
| and 2) adds a pointer to each PAST::Var that points to inner-most block | |||
| tcurtis | That sounds like it would probably benefit from a .parent accessor on Tree::Pattern::Match(although I suppose even that might not deal with cases where the variable declaration isn't an immediate child of the containing block). | 07:17 | |
| moritz | right | 07:18 | |
| what I'll need is a non-greedy search for child nodes | 07:19 | ||
| ie I search for PAST::Block objects | |||
| and I then want all child PAST::Block nodes that aren't child nodes recursively (ie not a blocks' child node that's a block again) | |||
| is that already possible? | 07:20 | ||
| tcurtis | Not yet. Your options currently are search recursively for one match, search recursively for as many matches as exist, or check only this exact node. But I can work on it tomorrow. Any recommendations as to the interface? Is there anything like that in Perl 6 regexes that I could imitate? | 07:23 | |
| bacek_at_work | briefly here | 07:24 | |
| moritz | tcurtis: in Perl 6 (and Perl 5) regexes non-greedy searching is done by appending a ? to the quantifier, ie \\w+? ... but that doesn't help you :-) | 07:25 | |
| bacek_at_work | If we can push "type coercion" down to POST we can optimize any language | ||
| moritz | tcurtis: I can imagine a .search_shallow($pattern, $stopper?) might be nice | ||
| tcurtis: where $stopper determines when not to search any deeper, and defaults to stopping after the first match down a given tree | 07:26 | ||
| tcurtis: maybe I'll come up with a mock-up use case later, but I have to go to breakfast now :-) | 07:27 | ||
| bacek_at_work | Control Exceptions ftw :) | ||
| tcurtis | moritz: alright. I may have gone to bed by the time you get back. | 07:28 | |
| moritz | tcurtis: happens... I'll leave you a purl message or send an e-mail | 07:29 | |
|
07:48
mj41 joined
|
|||
| dalek | parrot: 925c734 | dukeleto++ | plperl6.pir: Get rid of the try block for now |
07:50 | |
| parrot: 24459ff | dukeleto++ | plparrot.c: Get rid of *perl6_src in plperl6_func_handler |
|||
| parrot: 69998ba | dukeleto++ | (2 files): Make returning floats from PL/Perl6 work |
|||
| parrot: 1dfc30a | dukeleto++ | plparrot.c: Teach PL/Parrot to make Parcel-flavored sausage |
|||
| parrot: 4e7500d | dukeleto++ | t/sql/plperl6.sql: Add a test for returning strings from PL/Perl6 |
|||
| parrot: 049b799 | dukeleto++ | (2 files): Use Perl 6 heredocs and add a test for using single quotes in PL/Perl6 |
|||
| dukeleto | PL/Parrot can now run basic Perl 6 code and do some data marshalling | 07:54 | |
|
08:01
chromatic joined
|
|||
| arnsholt | I'm going to write a Set PMC for my HLL, is that something that might be interesting for Parrot in general? | 08:08 | |
|
08:12
lucian joined
|
|||
| dukeleto | arnsholt: probably. what are you using your Set PMC for? | 08:14 | |
| arnsholt: you may want to add it to github.com/Whiteknight/parrot-data-structures | 08:15 | ||
| arnsholt | I need the Set for my Prolog | 08:16 | |
| Certain operations need to calculate various sets of variables contained in a term, so a PMC that takes care of the comparisons and such is a natural thing to do | 08:17 | ||
| dukeleto | arnsholt: sounds like a Set PMC would make a nice dynpmc | 08:19 | |
| dalek | kapo: 5eda4dc | austin++ | (54 files): Bulk commit prior to June taxes. |
||
| arnsholt | My initial plan is to just make it a linked list with the items in order | 08:20 | |
| But for a later version some kind of balanced binary tree would probably be the best solution | |||
| sorear | what about using the Hash PMC? | 08:25 | |
| arnsholt | I thought about that too, but couldn't find anything on using non-strings for hash keys | 08:30 | |
| bacek | arnsholt, Hash.set_key_type() | 08:33 | |
| Austin_away | look at the set integer vtable of hash | ||
| ^^ or that | |||
| bacek | aloha, humans | ||
| sorear | what is your variable type? Int? | 08:35 | |
| bacek | arnsholt, + you probably want to override VTABLE_get_hashvalue for calculating more meaningful hasvalues. | ||
| hashvalues | |||
| dalek | TT #1695 created by moritz++: Segmentation fault when calling .finish on unopend postgres connection | 08:36 | |
| TT #1695: trac.parrot.org/parrot/ticket/1695 | |||
| parrot: 5efe804 | dukeleto++ | .gitignore: Add plperl6.h to .gitignore |
|||
| parrot: e56d120 | dukeleto++ | expected/test.out: Fix 'make installcheck' |
|||
| parrot: 2d116c7 | dukeleto++ | html/docs.html: Add a link to docs.html |
|||
| arnsholt | bacek: Ah, thanks. Now I might not have to do it after all =) | 08:45 | |
| bacek | arnsholt, you welcome :) | ||
| arnsholt, if you can update documentation for Hashes it will be good trade :) | 08:46 | ||
| arnsholt | Hehe | 08:47 | |
| dalek | parrot: 6e63680 | dukeleto++ | t/sql/plperl6.sql: Add test for summing Fibonacci numbers in PL/Perl6 |
||
| kudo: 68852e4 | tcurtis++ | (5 files): Implement $*ARGFILES, and make it the default handle for lines() |
08:57 | ||
| nopaste | "moritz" at 192.168.1.3 pasted "fantasy syntax for transforming blocks up to a given depth" (49 lines) at nopaste.snit.ch/21658 | 09:22 | |
| moritz | purl: msg tcurtis nopaste.snit.ch/21658 is my idea for a depth limit extension for PAST::Pattern | 09:23 | |
| purl | Message for tcurtis stored. | ||
| dalek | r: 246d56b | bacek++ | (3 files): Add stub for POST::File for storing per-file stuff |
09:24 | |
| r: ba18c64 | bacek++ | src/POST/Compiler.pm: Comment out creating Debug segment to avoid pbc_disassemble crash. |
|||
| r: a0d16a1 | bacek++ | src/P (2 files): Lazily create temporary PMC register used for find_sub |
|||
| r: 70796ab | bacek++ | src/P (2 files): Revert "Lazily create temporary PMC register used for find_sub" |
|||
| TT #1696 created by moritz++: Pg.pir should supply error messages | 09:41 | ||
| TT #1696: trac.parrot.org/parrot/ticket/1696 | |||
| moritz rakes in karma for breaking Pg.pir | 09:42 | ||
| bacek | moritz, hang on. I spent too much time with masak! | 09:43 | |
| shit... | |||
| You spent | |||
| szbalint | :D | 09:46 | |
| moritz | bacek: you should see cognominal++ going crazy on #perl6 and in RT | 09:54 | |
| dalek | r: acc6a84 | bacek++ | src/POST/File.pm: Add POST::File.sub method. |
10:21 | |
| r: 8e0f409 | bacek++ | (11 files): Start emitting POST::File as top-level node |
|||
| kudo: 6f66e96 | moritz++ | src/core/IO.pm: $*ARGFILES as default for get() |
11:16 | ||
| kudo: 871e2fb | moritz++ | src/core/IO/ArgFiles.pm: IO::ArgFiles is IO |
|||
| kudo: 1576d48 | moritz++ | tools/ (2 files): [autounfudge] run perl6 process with time and memory limit; evil, unix-only hack |
|||
|
11:30
ambs joined
11:34
leprevost joined
11:50
kid51 joined
12:10
ruoso joined
12:11
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:21 | |
|
12:22
daxim joined
|
|||
| daxim | masak sent me over from freenode #perl6 | 12:22 | |
| I managed to produce a crash: stackoverflow.com/questions/3135673#3136410 | |||
| backtrace paste.scsys.co.uk/45302 | 12:23 | ||
| parrot is trunk@47900 | 12:24 | ||
| whiteknight | nice backtrace | 12:35 | |
| looks fun | 12:36 | ||
| I don't have rakudo set up here, it's going to take a long time to build it | 12:52 | ||
|
12:57
bluescreen joined
|
|||
| moritz | takes about 10 minutes to compile if you havve enough RAM (like, 1GB) and an optimized parrot | 12:58 | |
| dalek | kudo: adf0342 | moritz++ | t (2 files): run more test files |
||
| Coke realizes that parrot might actually be getting faster, he's just using a netbook most of the time now. | 13:07 | ||
| whiteknight | moritz: I have neither of those things | 13:08 | |
| Coke | rant: configure.pl finds files missing, says it can't continue, then proceeds to continue, in such a way that ^C fails utterly to stop it. | 13:10 | |
| davidfetter | patch! | 13:11 | |
| Coke | davidfetter: was that to me? | ||
| davidfetter | yes | 13:12 | |
| davidfetter is a big fan of failing early | |||
| Coke | if i really wanted it fixed that bad, I'd open a ticket. I'm just ranting. | 13:13 | |
| davidfetter | heh | ||
| Coke | that failure will only ever hit developers users SVN, never our end users. not worth the cycles to fix. | ||
| moritz | Coke: on linux, when Ctrl+C fails, it often works to hit Ctrl + Z and then kill %1 # or whatever the number of the background job is | 13:14 | |
| Coke | moritz: ^\\ is also helpful. yah, there's workarounds. =-) | 13:15 | |
| purl | okay, Coke. | ||
| Coke tests partcl's current speed. | |||
| t/cmd_array.t takes 2.1s for partcl, and only 0.013s for tclsh8.5 | |||
| moritz | that's roughly the rakudo/perl5 speed ratio too | 13:16 | |
| Coke | only 160X slower. =-) | ||
| excellent. that means I can just ride coattails as people improve parrot for p6! =-) | 13:17 | ||
|
13:18
mmcleric joined
|
|||
| dalek | kudo: f008ccd | (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯)++ | Configure.pl: clarify --parrot-config |
13:27 | |
|
13:35
jsut_ joined
|
|||
| atrodo | ^\\? | 13:37 | |
| purl | ^\\ is that one that dumps core right away. or helpful. yah, there's workarounds. =-) | ||
| dalek | kudo: 4e69c43 | moritz++ | src/core/IO/ArgFiles.pm: avoid modifying @*ARGS in setting up $*ARGFILES; unbreaks USAGE subs |
13:54 | |
|
13:59
bubaflub joined
14:31
mmcleric_ joined
14:33
gbacon joined
14:34
ttbot joined
14:38
JimmyZ joined
|
|||
| dalek | rrot: r47911 | khairul++ | branches/gsoc_instrument/src/dynpmc (2 files): Added documentation, additional information (address) + minor cleanup |
14:39 | |
|
15:08
hercynium joined,
AndyA joined
|
|||
| dalek | rrot: r47912 | NotFound++ | trunk/t/pmc/filehandle.t: test some FileHandle open failing conditions |
15:12 | |
| Coke | AndyA: afternoon! | 15:28 | |
| purl | afternoon is when we eat my lunch. | ||
| Coke | purl, botsnark. | ||
| purl | snark! snark! snark! | ||
|
16:02
theory joined
16:13
whiteknight joined
16:16
kthakore left
|
|||
| dalek | kudo: 6ea4d0c | pmichaud++ | src/core/Block.pm: Refactor Block.arity and Block.count; make .count return Inf. |
16:24 | |
| kudo: 451b409 | pmichaud++ | src/core/IO/ArgFiles.pm: Merge branch 'master' of github.com:rakudo/rakudo |
|||
|
16:37
Andy joined
|
|||
| dukeleto | 'ello | 16:49 | |
|
16:50
Chandon joined
|
|||
| dalek | tracwiki: v4 | cotto++ | HowToDeprecate | 16:54 | |
| tracwiki: trac.parrot.org/parrot/wiki/HowToDe...ction=diff | |||
| tracwiki: v4 | cotto++ | ParrotDeprecations | |||
| tracwiki: add impact estimates as suggested by austin++ | |||
| tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff | |||
|
16:55
ash_ joined
16:58
chromatic joined
|
|||
| ash_ | chromatic: i saw your blog post on modern perl's rough draft, i was curious, is there a pdf version of it available yet? | 17:07 | |
| chromatic | Not yet; HTML is easier to generate. | 17:08 | |
| PDF should be quick (I have the tools) but the first time I render a book I usually have to tweak things, and i haven't done that yet. | |||
| ash_ | got ya, i saw the html pages (and downloaded them), i am still learning perl 5 | 17:09 | |
| chromatic | Your feedback will be very valuable. | ||
| dalek | tracwiki: v5 | cotto++ | ParrotDeprecations | 17:11 | |
| tracwiki: add some anchor links to specific deprecations | |||
| tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff | |||
| Coke | chromatic: ROODE thought mentioning strict sooner or with more forcefulness would be appropriate. (not sure if he'll be motivated to open an issue on github) | 17:12 | |
| chromatic | Noted, thanks. | ||
| ash_ | chromatic: one thing i notice about chapter 7 (objects) you jump right into moose, but never give an example of why its useful (comparing doing something without moose vs doing something with moose), so it almost comes across as "use moose or your doing it wrong" which may be what your trying to get across, but at the same time, from a technical perspective, moose is kinda a magic box that "does the right thing" for OO and you don't know | 17:18 | |
| if you don't know much about moose (like i don't), i just hear that moose is how you should do OO | |||
| cotto_work | good morning, humans and robots alike | 17:19 | |
| ash_ | most of the perl5 i have written has all been pretty minimal though, and has not reached into cpan for much, (mostly because they are things like transfer scripts, or database moving scripts, or things where there isn't a good generic solution that I could find) | ||
| chromatic | The latter half of that chapter shows how to use blessed references. I could add a short explanation that says "Moose may seem like a magic box, but ..." but I'm not sure how to phrase it. | 17:21 | |
| ash_ | a comparison of Moose vs the built in system would be kinda nice, maybe for one of your early simple examples, like when you talk about attributes, has 'name', is => 'ro', isa => 'Str'; might seem like a short one line to define an attribute, but i can tell its doing a lot under the hood | 17:23 | |
| having some sort of basis for why to use moose is good because most other languages (except like Lisp) you don't have multiple OO systems, you have what they gave you | 17:25 | ||
| chromatic | I'll think about the best way to do that. | 17:26 | |
|
17:26
gbacon joined
|
|||
| PerlJam idly wonders if chapter 7 is all anyone reads. | 17:29 | ||
| atrodo | When I read a book, I read Chapter 7 and stop | ||
| ash_ | well, the other chapters i have read are more about built in functionality of perl, 7 talks a lot about moose, which isn't installed by default | ||
| chromatic | Yes, I see the inconsistency. That needs addressing in the text. | 17:32 | |
| treed | Chapter 7 is always the lucky chapter. | 17:34 | |
| No need to read anything else. | |||
| chromatic | It's my favorite. | 17:35 | |
| ash_ | oh, also, when you talk about hashes, it confused me when I have seen people doing my %hash = ( ); vs my $hash_ref = { }; (a lot of languages { } is a hash, i didn't understand the difference until i had to specific look up the difference), but that might be my influence from other languages creeping in | 17:36 | |
| which leads to the difference of $hash{ 'key' }; vs $hash_ref->{ 'key' }; (another difference that i didn't realize until it had bitten me) | 17:38 | ||
| PerlJam | chromatic: Here's a random thing I noticed about chap 7: the first several examples in chapter 7 have { package Cat; ... } but at some point you drop the curlies. I didn't see an explanation for why they were there or why there were dropped. | 17:41 | |
| chromatic | Noted, thanks. | 17:44 | |
| ash_ | he talks about scoping in chapter 5, which kinda follows along with that, but its not explicitly addressed in chapter 7 | ||
|
17:48
theory_ joined
|
|||
| PerlJam | ash_: well, the first example is { package Cat; use Moose; } so, unless he talks about scoping of "use" then it wouldn't seem to make much sense in that (and other) examples. (I'll wager he talks about scoping in terms of variables) | 17:50 | |
|
18:06
fperrad joined
|
|||
| cotto_work | Would anyone be up for writing the policy for GPG-signed releases? | 18:12 | |
| dalek | TT #1697 created by dukeleto++: Remove the open and close opcodes | 18:14 | |
| TT #1697: trac.parrot.org/parrot/ticket/1697 | |||
| Coke | Are we going to have some generic ID to do the signing? | 18:19 | |
| (at this point, I'd be happy with just an md5sum) | |||
| dalek | rrot: r47913 | fperrad++ | trunk (2 files): [GzipHandle] add isatty() by inheritance, see TT#1689 |
18:29 | |
| rrot: r47914 | dukeleto++ | trunk/DEPRECATED.pod: [doc][TT #1697] Add a deprecation notice for the open/close opcodes |
|||
| whiteknight | GPG signed releases? | ||
| cotto_work | something to ensure that the bits a user gets are the same as the ones we want them to get | 18:31 | |
| allison also suggested that we should have a way to verify the files in a release | |||
| whiteknight | like per-file verification, or an md5 on the tarball? | 18:34 | |
| bubaflub | the later i think would be more useful | 18:37 | |
| some distros require a signed released | |||
| cotto_work | I'm not entirely sure. possibly both | 18:39 | |
|
18:44
tcurtis joined
18:53
hudnix joined
18:56
mmcleric_ joined
|
|||
| dalek | rrot: r47915 | darbelo++ | branches/gsoc_nfg/src/packfile/pf_items.c: Lay down the foundations for grapheme table freezing. |
19:02 | |
| website: darbelo++ | A report from the front lines | 19:14 | ||
| website: www.parrot.org/content/report-front-lines | |||
| darbelo | dukeleto: ping | 19:23 | |
| cotto_work | #ps in 59 | 19:32 | |
| er, 58 | |||
|
19:34
darbelo_ joined
|
|||
| cotto_work | darbelo, it looks like you've already got more than half of your todo list for this week done ;) | 19:35 | |
| seen pmichaud | 19:36 | ||
| purl | pmichaud was last seen on #parrot 2 days, 3 hours, 21 minutes and 21 seconds ago, saying: whiteknight: alas, I have to run off for ~30 mins also [Jun 27 16:14:44 2010] | ||
|
19:36
LoganLK joined
|
|||
| darbelo_ | By next week I'll hate packfiles more than I hate them now. It's a sure thing. | 19:36 | |
| chromatic | I won't mention the next packfile change then. | 19:37 | |
| whiteknight | next packfile change? | ||
| cotto_work | PackfileAwesomeSegment | ||
| it contains a single bit | 19:38 | ||
| set to 0 by default | |||
| chromatic | We need to store classes in there somehow. | ||
| darbelo_ | Boy that's going to be fun. | ||
| NotFound | PackFileFunSegment | 19:39 | |
| darbelo | opbots names | 19:40 | |
| chromatic | It doesn't have to be too bad. All of that information is in memory somehow anyway, but we don't have to go through :init or :load to reconstitute it. | ||
| Coke | opbotsnack names! | ||
| purl | :) | ||
| whiteknight | chromatic: do you think it's going to be any harder to store classes in there than to just freeze them and jam them in with the rest of the constants? | 19:43 | |
| chromatic | I'm not sure. | 19:44 | |
|
19:45
ash_ joined
|
|||
| whiteknight | I imagine that the hardest part is creating those classes at compile-time, though we can simulate that with :immediate subs for now until we have reasonable syntax for it | 19:46 | |
| ...of course, I don't know if we want to be adding syntax to PIR, at least not to IMCC. PIRATE maybe | |||
| we could have that prototyped in a few days if we wanted | 19:47 | ||
| cotto_work | PIRATE's nice for prototyping. | ||
| chromatic | Let's work on that after 2.6 comes out. | ||
|
19:47
somebody_ joined
|
|||
| whiteknight | chromatic: you have a syntax in mind? | 19:47 | |
| chromatic | I'd like to see the new GC merged, if possible, and get that STRING API in place. | ||
| I have some ideas. | |||
| cotto_work | wasn't tuning the blocker for a gc_massacre merge? | 19:48 | |
| chromatic | Yeah, but performance looked on par or slightly better than trunk last time I looked. bacek will know. | ||
| cotto_work | Could it be merged and simply made non-default until it's ready? | ||
| chromatic | I suppose, if we tested it rigorously. | 19:49 | |
| bacek | ~~ | 19:50 | |
| Good morning, humans... | |||
| cotto_work | speak of the robot | ||
| bacek | clock? | ||
| purl | bacek: LAX: Tue 12:50pm PDT / CHI: Tue 2:50pm CDT / NYC: Tue 3:50pm EDT / LON: Tue 8:50pm BST / BER: Tue 9:50pm CEST / IND: Wed 1:20am IST / TOK: Wed 4:50am JST / SYD: Wed 5:50am EST / | ||
| cotto_work | you have 40 minutes until #ps | ||
| bacek | gc_massacre can be merged now (without defaulting to ms2 gc) | ||
| cotto_work | in case you want to go back to sleep or something | ||
| bacek | I want to go some warm place. It's freaking cold here. | 19:51 | |
| tcurtis | bacek: it's probably approximately 90°F right now in Tennessee. Trade? | 19:52 | |
| Chandon | Are VTABLE functions in PMC files restricted to a specific set of names? | 19:53 | |
| cotto_work | Chandon: yes. see src/vtable.tbl | ||
| METHODs aren't | |||
| ash_ | tcurtis: its almost 100°F here in alabama, so... | 19:54 | |
| Chandon | Excellent. That explains why my computer just exploded in a rain of fiery shrapnel. | ||
| bacek | tcurtis, yes! | 19:55 | |
| chromatic, ping. | |||
| chromatic | pong | 19:56 | |
| dukeleto | darbelo: pong | 19:57 | |
| bacek | chromatic, what do you think about this idea for GC triggering: calculate total amount of allocated memory (PMC/attributes/STRING/buffers) | ||
| Trigger GC when we reached some amount. | |||
| chromatic | I'm all for that. That was the big tuning I did a few months ago. | ||
| whiteknight | bacek: you can come to my house any time. It's 90F here | 19:58 | |
| bacek | chromatic, we can also have upper limit for GC. | ||
| chromatic | I like that too. | ||
| bacek | whiteknight, is it about 32C? | ||
| purl, change 90F to celcius | 19:59 | ||
| purl | bacek: that doesn't look right | ||
| bacek | stupid girl... | ||
| whiteknight | bacek: yes | ||
| plenty hot | |||
| bacek | whiteknight, I do like it! :) | 20:00 | |
|
20:00
khairul joined
|
|||
| whiteknight is heading home now. Later | 20:00 | ||
| cotto_work | good morning, khairul | ||
| khairul | hello cotto | 20:01 | |
| cotto_work | Do you have a blog post cooking? | ||
| khairul | not yet. fighting my event handling currently. | 20:02 | |
| cotto_work | bacek: what's your guess about how long until PIRATE is self-hosting? | 20:08 | |
| bacek | cotto_work, week or so. | 20:09 | |
| cotto_work, major challenge is to update PCT to use HLL->PAST->POST->PBC, instead of HLL->PAST->POST->PIR->(pirate)POST->PBC. | 20:11 | ||
| cotto_work | it sounds hard | 20:12 | |
| bacek | Looks like we have to push some de-sugaring to POST level. | ||
| cotto_work | especially since it'll be difficult to make that incremental | ||
| bacek | cotto_work, no. If we implement emitting PIR from new POST we can make it incremental. | ||
| cotto_work | we can make incremental changes to PCT's code that won't break the test suite? | 20:13 | |
| I guess that's true. | |||
| bacek | it is | 20:14 | |
| darbelo | dukeleto: Do you have any plans to keep working on tapir? | 20:16 | |
| I updated it to work with parrot HEAD as part of the plumage ressurection effort, but I don't know if it'll be workth it to keep updating it everytime parrot moves from under it, or I should just move plumage off it. | 20:20 | ||
| chromatic | I might be a few minutes late to #ps | 20:21 | |
| mikehh | chromatic: going through the draft of your book, got to Chapter 3 - need a break, will continue later | ||
| chromatic | thanks | 20:22 | |
|
20:26
ambs joined
|
|||
| cxreg | any ideas about using NCI against symbols present in the embedding process, as opposed to a .so? | 20:29 | |
| like, say, NCI_* in postgres | 20:30 | ||
| er make that SPI_* | |||
| chromatic | POSIX suggests you can pass a NULL pointer to dlopen to access the current process's symbols, but Mac OS X 10.3 and earlier (I believe) didn't behave. | ||
| cxreg | hm | ||
| Tene | That *does* work on linux, though. | 20:31 | |
| chromatic | It's POSIX behavior. | ||
| NotFound | And in other unix. | ||
| cxreg | i guess plparrot can say "does not compute on old OSX" then | 20:34 | |
| 10.4 is 5 years old | |||
| ash_ | cxreg: whats the problem your trying to solve? | ||
| cxreg | ash_: SPI bindings for plparrot | 20:35 | |
| ash_ | OS X dropped support of 10.3 a while ago, 10.4 isn't supported either technically | ||
| cxreg | i'm mostly aiding others, more than writing it myself | ||
| chromatic | Yeah, I can't imagine supporting anything older than 10.4. | ||
| cxreg | ok thanks. worth a shot :-) | ||
| dukeleto | darbelo: i am not sure about tapir. | 20:36 | |
| cxreg | not that it's totally clear how loadlib is translated to dlopen, but i'll rtfs | 20:37 | |
| Tene | cxreg: If you could also submit a doc patch *making* it clear once you understand it, that would be great. | 20:38 | |
| darbelo | dukeleto: Okay. FWIW, I made it work and updated the copy in plumage. We can reevaluate whenever parrot changes break it again. | ||
| ash_ | dlfunc and dlsym actually look at the symbol's | ||
| you'd have to add a special symbol or something if you want to pass NULL | 20:39 | ||
| cxreg | ash_: yes, but they need an argument (filehandle?) returned from loadlib | ||
| hrm | |||
| ok | 20:40 | ||
| dukeleto | cxreg: i am fine with not caring about OS X 10.3 | ||
| GeJ | Bonjour everyone. | 20:42 | |
| Tene | You could probably make a patch to detect PMCNULL passed to dlsym opcode and pass NULL instead. | 20:44 | |
| darbelo | I thought we had that at some point. | ||
| Tene | Oh, I don't know if it's there or not. | 20:45 | |
| darbelo | dukeleto: On the GSoC front, is TPF/PaFo going to do/requre anything sppecial for the midterms? | ||
| ash_ | darbelo: is right, it does do that already, if you pass a "" it passes NULL to the dlopen | 20:48 | |
| dukeleto | darbelo: I would like a stack of $50's and some beer delivered to my private residence | ||
|
20:50
eggyknap joined
|
|||
| darbelo | dukeleto: I have an empty stack of 50's I'm not using, does that work for you? | 20:50 | |
|
20:53
theory joined
|
|||
| NotFound | dukeleto: sorry, I spent all my beer because of the Spain-Portugal match. | 20:54 | |
| Coke | (to clarify from -ps, how the actual conversion of a pod file to an html file is fired off. lib/parrot/Docs is a twisty maze of odd inheritance. | 20:57 | |
| chromatic | Yeah, that whole pile of code mystifies me. | ||
| cxreg | ash_: sweet, thanks! | 20:58 | |
| Coke | chromatic: soon it will die in fire. | ||
| cotto_work | coke++ | 20:59 | |
| It needs to. | |||
| darbelo | Coke++ ; fire++ | ||
| Coke | I've been distracted since sunday-before-yapc because diephouse showed up and we hacked on partcl. | ||
| nopaste | "cotto_work" at 192.168.1.3 pasted "my #ps questions in case someone wants to adopt them" (7 lines) at nopaste.snit.ch/21678 | 21:00 | |
| chromatic | TT #1694 looks like it needs discussion of the semantics. | 21:02 | |
| NotFound | The intended semantic is clear to me: it must work the same way when using the pir source than when using the pbc file. | 21:04 | |
| The question is: Can we fix without breaking too many things? | |||
| chromatic | If there's no HLL specified, right> | ||
| atrodo | Since cotto_work mentioned github, I thought I'd point out what they announced today: github.com/blog/674-introducing-organizations | 21:09 | |
| ash_ | neat atrodo | 21:10 | |
| bacek | github.com/parrot already taken... | 21:14 | |
| dukeleto | bacek: yeah, i was wondering about that | 21:16 | |
| anybody know who has the parrot github account? | |||
| bacek | let's take PaFo? | ||
| dukeleto | that or parrotvm | ||
| Coke | decommute? | ||
| dalek | TT #1698 created by petdance++: Investigate SAFECode | 21:17 | |
| TT #1698: trac.parrot.org/parrot/ticket/1698 | |||
| TT #1699 created by dukeleto++: Update release manager guide for signing releases and providing SHA sums | |||
| TT #1699: trac.parrot.org/parrot/ticket/1699 | |||
| Coke | There's a parrot github account? | ||
| bacek | Coke, it's "dead" account without any repos. | ||
| Coke | probably someone squatted. maybe dukeleto? | 21:18 | |
| gotta run, later. | 21:19 | ||
| cosimo | does anyone have any tips or help for me on #1686 ? | 21:20 | |
| I'm trying to understand what's happening, but I'm missing a bit of background... | 21:21 | ||
| chromatic | Hard to say without some PIR. | ||
|
21:23
eggyknap left
|
|||
| cosimo | chromatic: what pir exactly? I tried to put all the relevant code in the ticket | 21:23 | |
| chromatic | Yeah, that's the problem. It desugars to lots of PIR which makes it difficult to find the culprit. | 21:24 | |
| cosimo | well, if that helps, I can attach a full .pir file too | ||
| I guess it doesn't :) | 21:25 | ||
| chromatic | It might, but the less PIR the easier it is to debug. | ||
| cosimo | does find_method('signature') ring some bell? | 21:27 | |
| tcurtis | cosimo: can you reproduce the problem in pure PIR? If so, it would make it a lot easier to debug. | 21:28 | |
| cosimo | tcurtis: the library's own test (t/library/md5.t) works fine. it only fails from rakudo | 21:29 | |
|
21:30
gbacon joined
|
|||
| Util | chromatic: what changes are you considering to STRING API? | 21:30 | |
| cosimo | at least I have a counterexample. MIME::Base64 works fine in rakudo too. | ||
| bacek | Util: str_compare(a, a_offset, a_length, b, b_offset, b_length) | 21:31 | |
| chromatic | It's an addition, not a change. | ||
| cosimo | tcurtis: so I'll try to focus on what differs between Digest::MD5 and MIME::Base64 | ||
| bacek | Most generic comparison function to avoid creating temporary GCable. | 21:32 | |
| ash_ | if there is a parrot organization on github, can you say a repo belongs to that organization? (like my parrot fork of dukeleto's parrot mirrior) | ||
| NotFound | First difference I see: Digest::MD5 load dynops | 21:34 | |
| .loadlib 'bit_ops' | 21:35 | ||
| Possible workaround: change pir::load_bytecode('Digest/MD5.pbc'); to pir::load_bytecode('Digest/MD5.pir'); | 21:37 | ||
| cosimo | NotFound: i think I tried that, without success | 21:38 | |
| NotFound: actually there's a slight difference, I get 'Null PMC access in invoke()' now, not 'Null PMC access in find_method(signature)' | 21:39 | ||
| NotFound | cosimo: maybe that one is because of TT #1694... Try to add .HLL 'parrot' to Digest/MD5.pir | 21:41 | |
| cotto_work | wrt hosting Parrot on github needing a migration, I'd be willing to make sure that we had a plugin that made old ulrs to the svn repo browser redirect correctly. | 21:42 | |
| cosimo | NotFound: trying... | 21:43 | |
| purl | i guess trying is just as important as succeeding sometimes. :) | ||
| cosimo | sure :) | ||
| NotFound: cool, one step further, now I get 'Null PMC access in set_string_native()' | 21:45 | ||
| NotFound | cosimo: nice, maybe it works after we reach all possible parrot error messages X-) | ||
| cotto_work | I hope nobody understood me as advocating migrating anything other than version control over to github. | 21:46 | |
| dalek | rtcl-nqp: f9c3d4a | mdiep++ | (2 files): Get [string map] working |
21:48 | |
| NotFound | cosimo: Do you have a backtrace for that last error? | 21:49 | |
| cosimo | NotFound: no | 21:53 | |
| NotFound: how can I get one? | 21:55 | ||
| tcurtis | moritz: ping | ||
| NotFound | cosimo: I mean the ' in ....' lines after the error message. | 21:56 | |
| Coke | hey, mdiep is BACK! | ||
| Andy is building LLVM again | 21:57 | ||
| NotFound | cosimo: other thing you can test: put the class and the test together in one file. | ||
| tcurtis | Anyone, especially HLL devs, care to comment on the new functionality for Tree::Pattern moritz suggests in nopaste.snit.ch/21658 | 21:58 | |
| moritz | tcurtis: pong | 21:59 | |
| tcurtis | I'm going to implement it soon, and was just looking for feedback on interface. | ||
| moritz lost his touchpad | 22:00 | ||
| tcurtis | moritz: I'm going to implement :depth_limited_by soon(once I decide on the name for the option), and wanted to check if you had any other name ideas that might be preferable for the option? | 22:01 | |
| nopaste | "cosimo" at 192.168.1.3 pasted "Digest::MD5 problems: Null PMC access in set_string_native" (31 lines) at nopaste.snit.ch/21680 | 22:02 | |
| cosimo | NotFound: tried that too, no difference | ||
| chromatic | Which one is the Null PMC? | 22:03 | |
| NotFound | cosimo: This is with the .HLL 'parrot' addition in MD5.pir ? | ||
| cosimo | NotFound: yes | 22:04 | |
| chromatic: it's "$P1 = f(str)" | |||
| tcurtis | Also, do you think allowing Sub(or other invokable) arguments would be useful? | ||
| chromatic | It can't find md5sum then. | 22:05 | |
| NotFound | cosimo: the namespace seems to be just 'Digest', without the 'MD5' part | ||
| cosimo | NotFound: that's a change I made | 22:06 | |
| NotFound | Try: f = get_root_global ['parrot'; 'Digest'], 'md5sum' | ||
| cosimo | chromatic: I double checked just now | 22:07 | |
| it seems to go through all the function now, the problem seems to be in the '%r = ...' step | |||
| moritz | tcurtis: :descend_to | ||
| NotFound | Looking again, is _md5sum, not md5sum | 22:08 | |
| moritz | tcurtis: :down_to, :stop_at | ||
| nopaste | "cosimo" at 192.168.1.3 pasted "Another update on the Digest::MD5 problem" (49 lines) at nopaste.snit.ch/21681 | 22:10 | |
| tcurtis | moritz: :stop_at makes it sound like it stops all trees once it hits that. Maybe :descend_until? I think "until" might better communicate that the thing being descended to isn't a specific position but a pattern that should match the point at which we stop descending. | 22:11 | |
| cosimo | NotFound: chromatic: it's definitely crashing at '%r = $S0' | ||
| tcurtis | cosimo: does 'my $foo = Q:PIR { %r = "foo" }' work? | 22:12 | |
| moritz | tcurtis: +1 to :descend_until | 22:13 | |
| :depth_stopper | 22:14 | ||
| cosimo | tcurtis: AH!, no it doesn't | ||
| tcurtis: same 'Null PMC access in set_string_native()' error | |||
| NotFound: btw, changing back to load the .pbc bytecode makes the PIR crash at the md5sum call, so you're right | 22:15 | ||
| NotFound | Yeah, the dynop problem again. | 22:16 | |
| dukeleto | oh, the lovely dynop problem | ||
| tcurtis | moritz: I think I'll go with :descend_until(that way, if we later need something that immediately stops all matching as soon as it hits a node that matches something, it can be :until. | 22:17 | |
| cosimo | NotFound: works now! I replaced '%r = $S0' with '.return ($S0)' | ||
| moritz | tcurtis: ok, good | 22:18 | |
| cosimo | but removing all residual perl6 code from the function, so it consists only of a single Q:PIR block | ||
| chromatic | Let PCC box the string into a PMC rather than trying to assign to an uninitialized PMC. | ||
| moritz | cosimo: returning String registers from Q:PIR block is going to blow up rakudo - you need to box it first | 22:19 | |
| cosimo | chromatic: sorry I don't understand. That means I should use '%r = $S0' ? | ||
| moritz | %r = box $S0 | ||
| cosimo | chromatic: moritz: yay! it works! finally | 22:21 | |
| thanks so much | |||
| NotFound | I think that if we don't have a fix for the dynop issue or for TT #1694 we should add a .HLL 'parrot' directive to all pir libs. | 22:22 | |
| cosimo | it has been bugging me for a couple of weeks now... :) | ||
| chromatic | I think I can fix #1694 easily. | ||
| NotFound | chromatic: yes, but I'm not sure if we'll break a lot of other things by doing it. | 22:23 | |
| chromatic | I can argue they're broken anyway. | ||
| Without knowing what they are.... | |||
| NotFound | chromatic: well, we can try and let cotto use his new chainsaw if we fail | 22:24 | |
| chromatic | True. | 22:25 | |
| cotto_work heads to the store for some chainsaw grease | |||
| NotFound | Grease lightnin'! | 22:26 | |
| cosimo | NotFound: should I file a ticket about the .HLL 'parrot' in Digest/MD5.pir, or? | 22:27 | |
| NotFound | cosimo: yes, to make sure we don't forget it. | 22:28 | |
| cosimo: or just add a comment to TT #1686 | 22:29 | ||
|
22:33
rjbs joined
|
|||
| rjbs | Hi! I'm updating my public records of the results of TPF grants, and I have two ancient (2003) Parrot-related grants. | 22:34 | |
| I wonder if anybody remembers whether the grant work was completed or not. | |||
| cotto_work | what are they? | ||
| purl | they are huge ants, here to bite our heads off | ||
| rjbs | One is Leopold Tötsch grant to "rework Parrot packfile code" | ||
| The other was Daniel Grunblatt's grant to "port Parrot JIT to IA-64 and HPAA" | 22:35 | ||
| I realize these are ancient grants and not very relevant to modern Parrot, but I'm just trying to get the records of grants completed. | |||
| dukeleto | rjbs: i started working on parrot much after those grants, but I am pretty sure that Parrot JIT never worked on ia64 or HPAA | 22:36 | |
| rjbs: i don't know much about the the packfile grant | |||
| moritz | right; only i386 and PPC had JIT | ||
| cotto_work | We had some kind of limited (probably broken) support though. | ||
| rjbs | Okay, I will tentatively mark this one failed. | 22:37 | |
| cotto_work | maybe chromatic, coke or allison would know | ||
| chromatic | I don't remember either one. | 22:38 | |
| cosimo | NotFound: and done | ||
| rjbs | Both, incidentally, are listed here: www.perlfoundation.org/2003_grants_third_quarter | ||
| chromatic | I remember we had a native runcore... what was it called? I'm sure Daniel Grunblatt made that work. | 22:40 | |
| Leo's grant there looks done. | 22:41 | ||
| sorear | Is Leo still involved much with Parrot? | ||
| rjbs | chromatic: So you think that Leo's grant work was likely successful? | 22:42 | |
| chromatic | Yes. | ||
| rjbs | ARGH YAML | 22:43 | |
| dukeleto | sorear: i don't beleive leo has been involved for a while | 22:44 | |
| rjbs | Great, thanks! I have marked those both with statuses and comments about the uncertainty. | 22:45 | |
| now only one non-current grant remains without a status, and that's audrey's, and I've emailed her | |||
| chromatic | I'm certain that Leo completed his. | 22:46 | |
| I know that at one point Daniel had met his stretch goal | |||
| dalek | kudo: 36998b8 | jonathan++ | src/core/operators.pm: Make [&&] and [and] work. Patch courtesy of (Alex Kapranoff)++. |
22:47 | |
| tcurtis | moritz: descend_until should or should not apply the transformation to a node that matches bother the pattern to be matched and the descend_until pattern? | 22:50 | |
| s/bother/both/ | |||
| moritz | tcurtis: maybe that could be controlled with an :exclusive flag | ||
| tcurtis: in my example I assumed that it would be included | 22:51 | ||
|
22:52
jsut joined
|
|||
| moritz | to search all the blocks within other blocks, but not recursively | 22:52 | |
| and in the other cases matcher and depth limiter are mutually exclusive | |||
| dalek | rrot: r47916 | darbelo++ | branches/gsoc_nfg/t/native_pbc (4 files): Run mk_native_pbc. |
22:53 | |
| tcurtis | moritz: I'm considering implementing a :no_recursion(or something similar) for now, since it both is sufficient(and even simpler) for your use case and has more obvious meaning. If descend_until is eventually needed, :no_recursion can probably be an alias for the inclusive version of descend_until(whether that's descend_until or descend_until_including or whatever). | 22:56 | |
| moritz | tcurtis: what would :no_recursion mean? | 22:57 | |
| tcurtis | "Don't match/transform recursively." | ||
| moritz | "only consider direct child nodes"? | 22:58 | |
| rjbs | chromatic: Thanks again. & | 22:59 | |
|
22:59
rjbs left
|
|||
| moritz | that wouldn't be enough for my case | 22:59 | |
| tcurtis | "Once you hit a matching node, don't check to see if its children match." | ||
| The name could use improvement. | |||
|
23:00
whiteknight joined
|
|||
| moritz | consider { my $x; { my $y } } | 23:00 | |
| when I'm currently at the PAST::BLock for the outer { ... } | |||
| and want to find $x, but not $y | |||
| then this mode won't help me | |||
| because the inner block is not a child node of $x | 23:01 | ||
| I'd have to work around by searching for either PAST::Var OR PAST::Block, and make a distinction inside the transformation routine | 23:02 | ||
| which certainly feels clumsy | |||
| tcurtis | Oh. I didn't see $find_direct_vars. | ||
| Nevermind. | |||
|
23:05
PerlJam joined
|
|||
| tcurtis | I think descend_until triggering on the node that matches the limiter does make sense(after all, it's not descending anymore then). | 23:05 | |
|
23:06
dalek joined
23:07
kid51 joined
23:10
pmichaud joined
|
|||
| tcurtis | moritz: also, I think I'll add a .transformChildren method that allow your example to descend past $/.orig without having to add further options. | 23:10 | |
|
23:11
ruoso joined,
jsut_ joined
|
|||
| tcurtis | Or would you like an option for that? :ignore_top? | 23:12 | |
| tcurtis isn't very good at coming up with names. | 23:13 | ||
| moritz | :mindepth(1) | ||
| tcurtis | moritz: that's better. | ||
| cotto_work | it's good to mind those epths. | 23:14 | |
| moritz | or :min_depth(1) for cotto_work++ :-) | ||
|
23:15
dukeleto joined
|
|||
| moritz | anyway, time to sleep (we don't seem to have much shared uptime... :-) | 23:15 | |
| tcurtis | Good night. I'll hopefully have all that implemented by tomorrow. | ||
| ash_ | :min-depth(1) ? | 23:17 | |
| nqp: # this channel needs an evalbot :P | 23:18 | ||
| kid51 | chromatic: ping | ||
| sorear | opbots names | 23:19 | |
| ash_: ask moritz | |||
| ash_ | when he's not tired i will | ||
| cotto_work | an nqp bot would be nice | 23:20 | |
|
23:20
Util joined
|
|||
| ash_ | #perl6 on freenode has one | 23:20 | |
| tcurtis | ash_: hmm. didn't realize NQP supported hypens in named arguments. | ||
| cotto_work | maybe bacek can teach aloha a new trick | ||
| ash_ | tcurtis: it does, in all the same places perl6 allows them if i am not mistaken | 23:21 | |
| tcurtis | ash_: you seem to be correct. | ||
| ash_: I think I'll go with min_depth because hyphens are unfortunately rather rare as a convention for separation of words. And foo_bar is what I'm mostly using already. | 23:25 | ||
|
23:26
jsut joined
|
|||
| ash_ | in perl6's built-in's they use - for almost everything (i think the only exceptions are for things in perl5) | 23:26 | |
| dalek | rrot: r47917 | jkeenan++ | failed to fetch changeset: Merge cfunctionsdocs branch into trunk. All files now pass t/codingstd/c_functions_docs.t. See �trac.parrot.org/parrot/ticket/324. |
23:27 | |
| rrot: r47918 | jkeenan++ | branches/cfunctionsdocs: Branch has been merged into trunk and is no longer needed at HEAD. |
|||
| purl | i already had it that way, dalek. | ||
| Coke | (didn't I already post a solution to this md5sum issue on list?) | 23:33 | |
| (people got paid money for hacking on parrot? amazing. =-) | 23:35 | ||
| tcurtis is getting paid for hacking on Parrot right now. | 23:46 | ||
| Well, the getting paid isn't happening right now, but hacking on Parrot for which I am getting paid is happening right now. | |||
| Coke | msg allison - does Pod::Simple::HTML have docs somewhere other than CPAN? | 23:51 | |
| purl | Message for allison stored. | ||
| Coke | tcurtis: these people were not students, but wrote code that has probably been ripped out at least once by now. | 23:52 | |
|
23:53
gbacon joined
23:54
Psyche^ joined
|
|||
| tcurtis | Coke: I hope to differ from them in at least two ways! | 23:54 | |