|
#parrot Parrot 2.1.1 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix HLL bugs! Fix and test corevm target! Set by moderator on 9 March 2010. |
|||
| plobsing | sorear: we have dynop libraries in src/dynoplibs. It would add ops to Parrot upon loading. | 00:01 | |
| sorear | plobsing: could I use those ops from any other extension, or would I have to wrap them with subs? | 00:02 | |
| how does the pir->pbc compiler know the opcode number for opcodes that aren't added until runtime? | 00:03 | ||
| plobsing | sorear: you could call them directly from PIR, like "$I0 = fork"; or from anything that can emit ops directly, like NQP. | 00:04 | |
|
00:04
payload joined
|
|||
| plobsing | sorear: the PIR->PBC compiler loads your extension and puts a mention of the extension in the PBC so that the executing Parrot VM loads the extension before executing the op stream | 00:04 | |
| sorear | how does namespacing work for dynops? | 00:05 | |
| plobsing | I'm not sure anyone has thought about that. | ||
| sorear | perhaps I'm confused; I thought opcodes were just small integers | ||
| and if the load order is different, the opcodes would be different | |||
| so pir->pbc would maybe use the wrong numbers | 00:06 | ||
| sorear read | |||
| darbelo | sorear: dynops are different from regular ops, they involve magical runtime fairy dist. | ||
| plobsing | sorear: the problem you describe may very well exist (and we would try to fix it if it showed up). The code implementing some of this stuff (IMCC, ParrotInterpreter.freeze) is pretty hairy, so I can't be 100% sure. | 00:07 | |
| sorear | also, is there anything out there on best practices for setting up a Parrot extension that anybody on any platform can just install. | 00:08 | |
| plobsing | plumage? maybe | 00:09 | |
| darbelo | Actually, distutils. | ||
|
00:10
eternaleye joined
|
|||
| japhb | darbelo, plobsing, sorear: distutils + Plumage. ;-) | 00:10 | |
| darbelo | look at the project skeleton generated by tools/dev/mk_language_shell.pl and steal the setup.pir file. | ||
| sorear | is there any documentation for distutils? all I can find on Google for it is mailing list posts and IRC logs | 00:11 | |
| japhb | As soon as fperrad fixes something I've been asking for in distutils, Plumage will switch over to using distutils itself -- and at the same time we will work on a mass conversion of setup.pir to setup.nqp for anyone who so desires. | ||
| sorear, perldoc the distutils.pir file. | |||
| sorear | thanks | 00:12 | |
| japhb | sorear, (it's in runtime/parrot/library/ ) | ||
| darbelo | The basic idea is to put some data into a hash and the tailcall into the distutils.pir library, to do all the work for you. | ||
| japhb | The documentation is a bit ... thin, but not too hard to figure out. | ||
| darbelo, pretty much. | 00:13 | ||
| nopaste? | 00:14 | ||
| purl | nopaste is, like, 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 | ||
| darbelo | The 'sample' setup.pir in mk_language_shell.pl (while a bit opaque at first sight) is a pretty good example of current conventions. | ||
| A good example of 'advanced' use is the setup.pir included in fperrad's lua. That build procedure was the main driving force behind the creation fo distutils IIRC. | 00:15 | ||
| nopaste | "japhb" at 76.191.190.8 pasted "Current iteration of Plumage's setup.nqp-to-be" (75 lines) at nopaste.snit.ch/19958 | 00:16 | |
| japhb | sorear, also take a look at that paste. | ||
| It's almost complete -- except that empty line at 'inst_lib', because of a feature I need from fperrad. But otherwise, that's what the new setup.nqp files will look like. | |||
| darbelo | japhb: Can't you do that in PIR? | 00:17 | |
| It's not *that* much more verbose. | |||
| japhb | darbelo, of course, but why would I? NQP-rx comes with Parrot, and it's a LOT more ugly to do in pure PIR. | 00:18 | |
| Well, to my eyes, at least. | |||
| And I've written my fair share of PIR. ;-) | |||
| darbelo | Heh, I can read PIR better than I can read NQP this days. But I *do* have a lot of training with assembly languages. | 00:19 | |
| Maybe I should bother learning perl 6 after all ;) | 00:20 | ||
| japhb | Definitely! | ||
| purl | Definitely! are you here? | ||
| japhb | purl, forget Definitely! | 00:21 | |
| purl | japhb, I didn't have anything matching definitely | ||
| japhb | purl, forget 'Definitely!' | ||
| purl | japhb, I didn't have anything matching 'definitely!' | ||
| japhb | gah | 00:22 | |
| plobsing | purl forget definitely | ||
| purl | plobsing, I didn't have anything matching definitely | ||
| cotto_work | purl, unbotsnack | ||
| purl | thanks cotto_work :) | ||
| japhb | I even tried it with parens, in case it was like karma | ||
| darbelo | no, definitely! is <reply> | ||
| purl | i already had it that way, darbelo. | ||
| darbelo | There | ||
| definitely! | 00:23 | ||
| sorear ponders how to integrate the functionality of distutils and autoconf | |||
| darbelo | sorear: 'dont'? | ||
| japhb | Don't ponder that too long. | ||
| darbelo | distutuls already knows that stuff so you don't have to. | 00:24 | |
| sorear | distutils can't tell me stuff like "is vfork available here" | 00:25 | |
| darbelo | sorear: It can be taught to. | ||
| If you look at dbm-dynpmcs you'll see it probe gor the gdbm library. | 00:26 | ||
| japhb | sorear, Plumage can know anything that Parrot figured out during configure; I'd bet distutils does that as well. | ||
| darbelo | purl dbm-dynpmcs? | ||
| purl | darbelo: no idea | ||
| darbelo | dbm-dynpmcs is gitorious.org/dbm-dynpmcs a set of dynpmcs to encapsulate and abstract the myriad of UNIX dbm-like databases available. | 00:27 | |
| sorear | purl: dbm-dynpmcs is git://gitorious.org/dbm-dynpmcs/dbm-dynpmcs.git | ||
| purl | ...but dbm-dynpmcs is gitorious.org/dbm-dynpmcs a set of dynpmcs to encapsulate and abstract the myriad of UNIX dbm-like databases available.... | ||
| darbelo | gitorious.org/dbm-dynpmcs/dbm-dynpm...pir#line69 | 00:28 | |
| that sub uses distutils platform knowledge to probe for a library in, excluding the c source, under 10 lines of PIR. | 00:29 | ||
| Oh, and a 10-line helper sub to set up the right linker flags. | 00:30 | ||
|
00:32
dngor joined
00:34
workbench joined
|
|||
| darbelo | Also, in case you need to build something, look at the stup.pir in decnum-dynpmcs. The 'prebuild' step there builds an external library in under 20 lines of PIR. | 00:36 | |
| We should *really* put all of this in a big recipe book some day. | 00:42 | ||
| Tene | delicious! | 00:43 | |
| purl | well, delicious is social bookmarks; most popular -> del.icio.us/popular/ or crazy or holy crap fmh is a (rich) nutcase or candy. candy is delicious | ||
| sorear | If I export a dynop named, say, "open", will it interfere with anything? | 00:49 | |
| darbelo | Try it and find out! | 00:51 | |
|
00:55
darbelo left
00:57
cotto joined
|
|||
| cotto | Ironically, I was wondering earlier today how long my laptop would last on battery power. | 00:59 | |
|
01:00
Austin joined
01:04
Austin left,
Austin joined
01:11
snarkyboojum joined
|
|||
| dukeleto | 'ello | 01:12 | |
| Whiteknight | hello duke | 01:13 | |
| dukeleto | cotto: also, i agree about your comment on speed.pypy.org | ||
| Whiteknight: howdy | |||
|
01:37
cotto joined
01:44
theory joined
02:04
parthm joined
02:18
rt7 joined
|
|||
| dalek | kudo: 2f19219 | (Solomon Foster)++ | src/ (3 files): Rough but working implementations of Xop and Zop. (Had to disable X and Z to make this work, alas, but I'm sure we'll work around that shortly.) |
02:40 | |
| kudo: 366b529 | (Solomon Foster)++ | build/Makefile.in: Add metaops.pm to the build. |
|||
|
02:50
snarkyboojum joined
|
|||
| dalek | kudo: f676705 | (Solomon Foster)++ | t/spectest.data: Turn on S03-operators/cross-metaop.t, add new S03-operators/zip-metaop.t. |
03:08 | |
| tracwiki: v2 | Austin_Hastings++ | HLL%20Resources | 03:25 | ||
| tracwiki: trac.parrot.org/parrot/wiki/HLL%20R...ction=diff | |||
| tracwiki: v1 | Austin_Hastings++ | Creating%20Closures%20with%20NQP-rx | |||
| tracwiki: trac.parrot.org/parrot/wiki/Creatin...ction=diff | |||
| tracwiki: v2 | Austin_Hastings++ | Creating%20Closures%20with%20NQP-rx | |||
| tracwiki: trac.parrot.org/parrot/wiki/Creatin...ction=diff | |||
| Austin | Woo-hoo. More nqp bugs | 03:31 | |
| dalek | TT #1510 created by Austin_Hastings++: NQP-rx doesn't create PMC for string // expressions | 03:40 | |
| dukeleto | Rational PMC has a whopping 0.8% test coverage | 03:58 | |
| Austin | Whose PMC is that, ours or Perl's | ||
| A better question: who owns the spec for the behavior? | |||
| dukeleto | tapir2.ro.vutbr.cz/cover/cover-resu...l-pmc.html | ||
| looks like the code coverge runs don't have GMP | 03:59 | ||
| Austin | Heh | ||
| dukeleto talks to mj41 about it | 04:01 | ||
| Austin: not sure about the spec | |||
| Austin | From the comments in the file it looks like a Parrot thing. | 04:02 | |
| dukeleto | Austin: yes, rakudo implements their own Rat data type | ||
|
04:13
parthm left
04:47
theory joined
04:50
janus joined
|
|||
| cotto puts on his release pants | 05:12 | ||
| Austin | =:-O | ||
| One leg at a time, I hope. | 05:13 | ||
| cotto | just like everyone else | ||
| including MC Hammer | |||
| Austin | I think he was a "both legs at once" kind of guy.. | ||
| He just kind of did this Johnny Bravo arm thing, a full-body undulation, and <boop!> he was wearing pants. | 05:15 | ||
| cotto | I can't touch that. | ||
| Github ate my gist. | 05:18 | ||
| github-- | |||
| I'll have to use a proper nopaste in the future. | |||
| Austin | Or something | 05:21 | |
| purl | something is probably really wrong out there :) | ||
| sorear | cotto: cpan -i App::Nopaste | 05:22 | |
| cotto | we have tools/dev/nopaste.pl in svn | ||
| Austin | But for some reason you don't want to use it... | ||
| cotto | I was under the mistaken impression that gists could be edited wiki-style | ||
| Austin | Ah | 05:23 | |
| cotto | (which would be nice for something like that) | ||
| Austin | There was a nopaste that allowed that. I thought it was pretty cool, but everybody's hung up on the czech one. | ||
| Jesse <something> iv used id. Maybe pastebin? | |||
| cotto | There must be something wrong with it if everyone's using something else. | 05:24 | |
| Don't question my logic. | |||
| Austin | Yeah. | ||
| That's what I said about Parrot... | |||
| cotto | Austin++ | ||
| Austin | Yeah, pastebin allows edits. | 05:25 | |
| cotto | collaborative edits? | ||
| Austin | I dunno. I think maybe you get a new url | 05:26 | |
| poundparrot.pastebin.com/W034GNYK | 05:31 | ||
| Make an edit, I dare you. | |||
| cotto | oic. It creates a new page that reflects the edit | 05:34 | |
| fulltest is happy. that's a good sign. | 05:37 | ||
| anyone on an interesting platform care to run fulltest? | 05:41 | ||
|
05:48
AndyA_ joined
|
|||
| dukeleto runs fulltest on darwin-x86 | 06:02 | ||
| cotto | It's release time. If you were going to commit to trunk, please hold off. | 07:05 | |
| dalek | rrot: r44951 | cotto++ | trunk/NEWS: NEWS update for 2.2.0 |
07:17 | |
|
07:30
bacek joined
|
|||
| bacek | o hai | 07:31 | |
| Austin | shhh... he's releasing... | ||
| dalek | rrot: r44952 | bacek++ | branches/pcc_hackathon_6Mar10/src/call/pcc.c: Save/restore old call_object in invoke_sub. |
07:33 | |
|
07:35
fperrad joined
|
|||
| cotto | ohai | 07:36 | |
|
07:43
aukjan joined
|
|||
| dalek | rrot: r44953 | cotto++ | trunk (8 files): get ready for 2.2.0 release |
07:49 | |
| rrot: r44954 | cotto++ | tags/RELEASE_2_2_0: tagging 2.2.0 release |
|||
| bacek | cotto++ # 2.2.0 | 07:51 | |
|
08:00
barney joined
|
|||
| nopaste | "bacek" at 122.110.68.107 pasted "The victo^W^W. We almost there. coretest results on pcc_hackatron branch" (8 lines) at nopaste.snit.ch/19960 | 08:07 | |
| cotto | bacek, nice | 08:08 | |
| bacek++ | |||
| The code part of the release is done. Get back to breaking stuff! | 08:11 | ||
| I'll be sending out the announcements in the morning. | |||
| bacek | Wow. Even nqp_test passed. | 08:12 | |
|
08:13
iblechbot joined
|
|||
| dalek | rrot: r44955 | bacek++ | branches/pcc_hackathon_6Mar10/src/pmc/class.pmc: Remove hand-crafted fiddling with sig_object in Class.initialize_parents. Use invoke_sub instead. |
08:22 | |
| rrot: r44956 | bacek++ | branches/pcc_hackathon_6Mar10/t/pmc/eval.t: Update test to call get_results after invoke. |
|||
| bacek | And now we are here. make test passed in pcc_hackatron branch. | 08:23 | |
| msg mikehh Can you jump on pcc_hackatron branch for testing purpose? :) | 08:26 | ||
| purl | Message for mikehh stored. | ||
| cotto | bacek, if you have the tuits, tools/util/crow.pir has been broken for a while. | 08:28 | |
| bacek | wtf is crow.pir??? | ||
| cotto | helper script for generating release announcements | 08:29 | |
| time for me to sleep | |||
| not an urgent fix, just a convenience for release managers | 08:30 | ||
| night | |||
| dalek | TT #1511 created by bacek++: op result_info is broken in pcc_hackatron branch. | 08:36 | |
| bacek | cotto, fixed | ||
| good night | 08:37 | ||
| dalek | rrot: r44957 | bacek++ | branches/pcc_hackathon_6Mar10/t/pmc/objects.t: Update test to call get_results after invoke. |
08:38 | |
| rrot: r44958 | bacek++ | branches/pcc_hackathon_6Mar10/t/op/calling.t: TODO result_info tests. |
|||
| rrot: r44959 | bacek++ | trunk/runtime/parrot/library/Config/JSON.pir: Quick fix for Config::JSON to help cotto++ with release |
|||
| rrot: r44960 | gerd++ | trunk/docs/pdds/pdd30_install.pod: add a missing bracket |
08:54 | ||
|
09:00
cosimo joined
09:05
lucian joined
09:07
bacek joined
09:08
iblechbot joined
|
|||
| lucian | in PDD 15, are parrot roles equivalent to mixins? | 09:22 | |
| Austin | what's a mixin? | ||
| purl | a mixin is probably multiple inheritance without the inheritance. or the secret superset of functionality that inheritance sub-types | ||
| Austin | Parrot roles are composed in by adding the methods directly to the class that composes them. So they're not part of the class hierarchy. | 09:23 | |
| Beyond that, I'm not really sure. | |||
| lucian | Austin: they sound very much like mixins | 09:24 | |
| Austin: well, not very much, more like mixins could be easily implemented on top | |||
| it also isn't clear to me if objects can add and remove methods and attrs at will | 09:25 | ||
| Austin | They cannot. | ||
| Objects delegate to their class. | |||
| lucian | Austin: ouch | ||
| then how on earth could python objects be implemented on top of PDD 15? | |||
| Austin | But the P6object system is built to work around that, I think, by allowing classes to be swapped out dynamically. | 09:26 | |
| lucian | the problem is, in python you can say obj.bar = f | 09:27 | |
| where f is a function | |||
| Austin | ...? | ||
| purl | Yada yada yada hasn't been implemented yet! (unless you run bleadperl) | ||
| lucian | any object really, but the interesting case is about functions | ||
| purl: oooook then | 09:28 | ||
| purl | NO AND THEN! | ||
| lucian | Austin: you can arbitrarily add methods and attributes to classes and objects | ||
| Austin | Sounds like a custom pmc type for python classes, then. | ||
| lucian | Austin: it's the same case for ruby, actually | ||
| Austin | Or a standard one that runs a little slower. | ||
| lucian | it seems an arbitrary restriction in parrot's object system to not allow this | 09:29 | |
| Austin | Who said it wasn't allowed? | ||
| bacek | Austin, (quick question) under which licence Close is? | ||
| Austin | Artistic 2 | ||
| purl | Artistic 2 is compatible with gpl in all versions | ||
| lucian | Austin: you have to fake it with adding classes or such | 09:30 | |
| Austin: isn't PDD 15 meant to be an interoperability object system? | |||
| Austin | Oh, heavens! We wouldn't want to write code, or anything... :) | ||
| Let me go have a look | 09:31 | ||
| bacek | Austin, thanks. I'm going to "borrow" part of grammar from Close for opsc. | ||
|
09:31
kurahaupo joined
|
|||
| Austin | Bacek: Careful. There's more C++ than you may want. | 09:32 | |
| lucian | Austin: python objects could be built up from raw PMCs, but then you'd never be able use python libs in ruby | ||
| bacek | Austin, I can strip it off. | ||
| Austin | lucian: So for instance, how common is it to add methods to an object? | 09:33 | |
| lucian | Austin: you always do that at least in the constructor, there are no declared methods or attributes | ||
| Austin | Huh? | ||
| lucian | Austin: methods are simply attributes | 09:34 | |
| Austin | Okay. | ||
| Can methods collide with data attributes? | |||
| lucian | and attributes are never declared | ||
| Austin | Or is there a single namespace? | ||
| lucian | Austin: no, one namespace. all attributes are objects and functions are objects | ||
| Austin | Okay. | ||
| And what does "never declared" mean? | |||
| lucian | again, most of this is true for ruby as well | 09:35 | |
| Austin | Isn't your constructor going to slather on a whole bunch of them? | ||
| lucian | yes, it's good practice to define them in the constructor | ||
| but there isn't anything special about declaring them. you just start using them | |||
| Austin | Well, you can't start using them until you attach them, can you? | 09:36 | |
| lucian | Austin: yes, that is true | ||
| Austin: let me show you a bit of code | |||
| Austin | Okay | ||
| lucian | Austin: pastie.org/871699 | 09:37 | |
| Austin | okay | 09:38 | |
| What's what? | |||
| lucian | it is merely convention to attach attributes in the constructor, it can happen anywhere | ||
| right, so def creates a function object | |||
| a method is just a function with self as the first argument (nothing special about it at all) | |||
| __init__ is the constructor | 09:39 | ||
| self.x is an attribute | |||
| Austin | So what's bar? | ||
| lucian | Austin: just a method | ||
| Austin | What method? | ||
| purl | method is still not an action | ||
| Austin | According to you, it's not part of any "A" objects, right? | ||
| lucian | random method that can be called from somewhere | ||
| Austin | Because the c'tor didn't attach it... | 09:40 | |
| lucian | Austin: bar and x will be there in all A objects | ||
| Austin | Ahh | ||
| lucian | Austin: but you can have another method that attaches y somewhere | ||
| Austin | So the methods *are* declared, yes? | ||
| lucian | Austin: not necessarily in the constructor | ||
| Austin: methods are attributes. attributes are objects attached to the class | 09:41 | ||
| Austin | So I create an A, by doing what? a = new A() ? | ||
| lucian | Austin: almost. wait, i'll write more code in there | ||
| Austin: better? pastie.org/871699 | 09:44 | ||
| Austin | okay | ||
| Now supposing I have another object, 7 eh = A(3) | |||
|
09:45
AndyA joined
|
|||
| Austin | can I, at line 20 or so, use 7 eh.foo() without having to do anything else? | 09:45 | |
| lucian | Austin: no, foo is attached to the object a, not to the class A | ||
| purl | okay, lucian. | ||
| lucian | you could attach it to the class as well if you wanted to | ||
| Austin | How would you do that? | ||
| lucian | Austin: pastie.org/871699 | 09:47 | |
| Austin: just attach it to the class (classes are also objects) | |||
| Austin | Okay. | 09:48 | |
|
09:48
bacek joined
|
|||
| Austin | I can see how to do that. Probably 200-300 lines of NQP. | 09:48 | |
| Which means that Pm1chaud could probably do it in the same amount of pir. | |||
| lucian | Austin: true, but i'd rather i used some common parrot object system if at all possible | 09:49 | |
| Austin | That IS using the common parrot object system. | ||
| (aka P6object) | |||
| lucian | Austin: PMCs are too low level for interoperability between ruby and python | ||
| Austin | What is that supposed to mean? | 09:50 | |
| lucian | Austin: P6object being the one described in PDD 15 | ||
| Austin | No. | ||
| P6object being built on top of the current Object and Class pmcs, however pale a shadow they may be of the PDD15 archetype. | |||
| lucian | Austin: right, ok | 09:51 | |
| Austin | P6object refers to the P6object.pir file located in the runtime/library | ||
| lucian | Austin: the problem is, afaict both ruby and python would have to write their own Object and Class pmcs | ||
| Austin | Why would they have to do that? | ||
| lucian | Austin: then i misunderstood. wouldn't there be a penalty for faking arbitrary attributes on top of PDD15 | 09:52 | |
| ? | |||
| Austin | Sure. | ||
| But how much of a penalty? That I don't know, but it doesn't seem very high. | |||
| Suppose you do "A.me = f" | 09:53 | ||
| At that point, are *all* objects of class A, and derived from class A, going to have the new method? | |||
| lucian | Austin: yes | ||
| Austin | Oh | 09:54 | |
| Well that makes things even easier. | |||
| lucian | Austin: A.me = f is no different from doing a def inside the class definition | ||
| Austin | You don't have to worry about versioning the class... | ||
| lucian | Austin: no, no versioning required | ||
| it occurs to me that python and ruby's object systems are quite similar. perhaps it would be good to share some code | 09:55 | ||
| Austin | Can the a.foo=f syntax override a class-defined method? | ||
| lucian | Austin: yes | 09:57 | |
| Austin | Changing the subject slightly, what IRC client are you using? | ||
| Okay, there's the penalty. | 09:58 | ||
| Right now the method dispatcher caches any names that have already been resolved. So overriding a previously *invoked* method is going to require flushing the name out of the cache. But I've already run into that problem, and there's a relatively recent TT#1497 to fix that | 10:00 | ||
| Beyond that, two or three opcodes to check for a local override on the particular method. | 10:01 | ||
| fetch-object-overrides-hash; fetch-name-from-hash; branch-if-null; tailcall | 10:03 | ||
| 4 opcodes. | |||
| $P0 = getattribute self, 'overrides' ; $P1 = $P0['foo'] ; if-null $P1 goto call-default; tailcall self.$P1(args...) | 10:04 | ||
| It probably costs more, with the arg unpacking and context wonkery, but it's not that expensive to support even with the TT#1497 bug. | 10:05 | ||
|
10:06
smash joined
|
|||
| smash | hello everyone | 10:06 | |
| Austin | Hello, smash. | ||
| lucian | Austin: sorry, i was in the kitchen. i'm using LimeChat | 10:07 | |
| Austin | Let me guess - from your iPhone ? | 10:08 | |
| :) | |||
| lucian | Austin: no, i don't have one | ||
| Austin: i use a G1 actually | |||
| i really don't like the idea of an overrides table | |||
| Austin | Well, don't feel bad. I don't have one either. | ||
| lucian | i'm not too keen on the macbook either, but it was a gift | 10:09 | |
| Austin | If you don't like doing overrides, you could store the subs as attributes. | ||
| But that's probably going to be slower overall, since everything becomes 7 $P0 = getattribute self, 'foo'; self.$P0(args...) | 10:10 | ||
| lucian | Austin: but again, i won't be able to use parrot's sub dispatch, right? | ||
| Austin | Right | ||
| lucian | it seems odd to me that python/ruby semantics are so unclean to map on parrot | 10:11 | |
| i would've expected an object system for dynamic languages | |||
| i should speak to the cardinal folks | 10:12 | ||
| Austin: biab | |||
| Austin | Actually, there's a whole lot of people you should speak to, since I don't know a whole bunch about the design legacy of Parrot. Certainly, Dan Sugalski had to be thinking about Python in the early days, due to the contest. So it's not like you're the first person to ask these questions. But I can't say whether there's been some "bit rot" between that century and this one. | 10:16 | |
| Also, keep in mind that commit bits are cheap. Just sign a pafo cla, and you can make PDD15 look the way you think it should. | 10:17 | ||
|
10:26
mj41 joined
|
|||
| lucian | Austin: right. i really think it should be more general | 10:28 | |
| Austin: i can see that whoever wrote it tried to do that, but they don't seem to have had much knowledge of everything-is-an-object languages | |||
| ruby/python's object systems are in fact javascript's, but done right | 10:29 | ||
| (people laud js for being prototypal) | |||
| Austin | I'll go with Proverbs 17:28 on the design issues. Andrew recently suggested some changes to the way objects work, and was shot down. Perhaps you will have better luck with a concrete proposal based on ruby/python. | 10:33 | |
| lucian | Austin: right. first i have to use ruby some more, i mostly know things about it | 10:34 | |
| Austin: actually, if parrot's general object system was prototypal, anything could be built on top of that | 10:35 | ||
| smash | scheduled monthly release is going out today ? | 10:37 | |
| Austin | Yeah | ||
| smash | who is making the release ? | ||
| Austin | smash: Cotto's already committed the code. The admin bits are yet to do | ||
| log? | |||
| purl | o/` it rolls downstairs, alone or in pairs, rolls over your neighbour's dog, it fits on your back, it's good for a snack, it's log, log log! o/` | ||
| Austin | topic? | ||
| purl | hmmm... topic is IRC topics don't auto propagate on server reconnect | ||
| Austin | hmm | ||
| smash | Austin: great, i'm seeing the revision log.. thks | 10:38 | |
| Austin | Anyway, smash, if you check the irc logs (irclog.perlgeek.de/parrot/today) you'll see cotto was here earlier doing the svn work | ||
| smash | cotto++ | 10:39 | |
| Austin: ok, thks | 10:45 | ||
|
11:10
cosimo joined
11:56
bacek joined
12:18
lucian joined
12:21
whiteknight joined
|
|||
| Austin | Good morning, whiteknight. | 12:22 | |
| whiteknight | hello Austin | ||
|
12:22
darbelo joined
12:26
cosimo joined
|
|||
| dalek | TT #1512 created by Austin_Hastings++: NQP-rx generates bad access code for non-twigiled attribute | 12:41 | |
|
12:41
ruoso joined
12:43
payload joined
|
|||
| lucian hates vdm-sl | 13:04 | ||
| plobsing | My schedule prevents me from making #ps, and around now is the last I'll be able to post before it. Do I post to #ps this early? Advice? | 13:20 | |
| particle | plobsing: there's no such thing as too early. post away! | 13:22 | |
| plobsing | particle++ | 13:25 | |
|
13:31
iblechbot joined
13:34
_2x2l joined
13:38
Austin joined
13:48
payload joined
|
|||
| Coke | feeback on trac.parrot.org/parrot/wiki/tasksCoke appreciated. (the wiki table there, which should replace BranchDescriptions. | 13:48 | |
| figured if the main place that is being looked at is the wiki, might as well wikify it and lose the manual formatting. | |||
| dalek | tracwiki: v9 | coke++ | tasksCoke | 13:51 | |
| tracwiki: trac.parrot.org/parrot/wiki/tasksCo...ction=diff | |||
|
13:59
bubaflub joined
14:21
payload joined
14:26
lucian joined
14:28
whiteknight joined
|
|||
| whiteknight | good morning again, #parrot | 14:37 | |
|
14:39
davidfetter joined
|
|||
| bubaflub | morning, whiteknight | 14:49 | |
| whiteknight | good morning bubaflub | ||
| bubaflub | is there a problem with tools/util/release.json line 6? | 14:52 | |
|
14:53
patspam joined,
theory joined
|
|||
| bubaflub | cotto: lines 5 and 6 of tools/util/release.json look like typos to me - are they? | 14:56 | |
| whiteknight | cotto: when is the release happening? | 14:59 | |
|
15:01
theory joined
|
|||
| Coke | bubaflub: yes they are. | 15:12 | |
| bubaflub | not just the typo in February, but the date needs to be March 16th, right? | ||
|
15:15
fperrad joined
|
|||
| Coke | bubaflub: presumably that was leftover from last release; it's only used to generate the release announcement, which we've been doing by hand the last few releases anyway. | 15:15 | |
| but sure, feel free to update it to match the release-in-progress. | |||
| bubaflub | Coke: ok, fixed in r44961 | 15:17 | |
|
15:20
lucian joined,
cognominal joined
15:22
lucian joined
15:25
payload joined
|
|||
| dalek | rrot: r44961 | bubaflub++ | trunk/tools/util/release.json: fixed typo in tools/util/release.json |
15:25 | |
|
15:36
Psyche^ joined
|
|||
| Coke opens a bug on Time::Format, whee. | 15:46 | ||
| trac.parrot.org/parrot/log/branches/boehm_gc_2 - is there a way to limit this to a particular author? | 15:51 | ||
| whiteknight | do what to who? | 15:53 | |
| Coke | only show log entries committed by <foo> | 15:55 | |
| particle | coke: use cia.vc | 15:59 | |
|
16:01
eggyknap joined
|
|||
| davidfetter | hi there, eggyknap :) | 16:01 | |
| eggyknap waves | 16:02 | ||
| davidfetter trying to figure out how best to frame this issue. eggyknap, any ideas? | |||
| eggyknap | davidfetter and I are embedding parrot in postgresql, and are under the impression we should use Parrot_ext_call(). The problem is that requires us to know at compile time the functions arguments, which we can't do. | 16:03 | |
| Suggestions for calling functions whose signature we know only at runtime? | |||
| Coke | particle: I don't care that much. | 16:05 | |
| davidfetter | anybody got a brilliant idea? or a dumb one i've missed? | 16:06 | |
| Coke | davidfetter: ... can't you just dynamically construct the signature string? | 16:07 | |
| eggyknap | The signature string is easy. But the arguments themselves aren't. | ||
| Unless there's some C foo I'm missing, which is quite possible. | 16:08 | ||
| Parrot_ext_call() takes a signature string and a varargs list of arguments | |||
| particle | coke: is it that hard? cia.vc/stats/author/coke | ||
| Coke | particle: No. I just don't care enough to go outside of trac. | 16:09 | |
| plus that isn't what I asked for. =-) | |||
| particle | i must have missed some context, sorry. | ||
| Coke | (I want to restrict an existing log report by author.) | ||
| particle | in trac. ah. | ||
| Coke | not find every commit by that author. | ||
| davidfetter looks around for a C-fu sifu | |||
| bubaflub | Coke: i know there is someway to do that in trac and even get a custom RSS on an existing log report, but i'm at a loss of how to do it | 16:10 | |
| the code makes it look like you could pass ?authors=foo | |||
| but it's not working | |||
| Coke | bubaflub: if you figure it out, lemme know, but don't kill too many brain cells. | ||
| bubaflub | maybe i can just pop over into #trac | ||
| Coke | eggyknap: IANACP, but that seems tricky. stackoverflow.com/questions/280940/...ynamically has some discussion. | ||
| particle | ...save them for beer. | ||
| eggyknap | Coke: Per one commenter, "There is no portable way to build up an argument list for a variable argument function in C at run time." | 16:12 | |
| Coke | eggyknap: I wonder if we could take a container PMC or something and let you use :flat. | ||
| but that is more C than my poor brain can deal with. I'd probably ask on list. | |||
| particle: it's for: trac.parrot.org/parrot/wiki/BranchDescriptions, to make the authors clickable. | 16:13 | ||
| so, only a nice to have. | |||
| whiteknight | Austin: ping | ||
| eggyknap | Coke: I was hoping I could convince the folks involved in designing all this stuff to accept something precisely like that. | ||
| eggyknap will compose a list message | 16:14 | ||
| Coke | eggyknap++ | ||
| particle | coke: nice! you could make the creator clickable by pointing to the commit that created the branch | ||
| heck, created/updated could be clickable too... | |||
| dalek | rrot: r44962 | coke++ | trunk/tools/dev/branch_status.pl: generate wiki friendly output by default. |
||
| Coke | particle: update tools/dev/branch* for the non-human path. =-) | ||
| (I saved it out to a file and then just cut and pasted it into the "edit this page" window.) | 16:15 | ||
| particle | so this isn't running on the server, it's human-updated? | ||
| Coke | it's not a trac plugin, no. | 16:16 | |
| particle | ok | ||
| Coke | Certainly could be, though. Just costly to create. | ||
| also, I have no idea how to make a trac plugin, but I can make perl print things. | 16:17 | ||
| particle | i have no idea how either | ||
| dukeleto | 'ello | ||
| particle | coke: do we have yui or jquery on the server? | 16:18 | |
| that list could become sortable | |||
| Coke | particle: "which one"? and probably not. | ||
| (i'd go extjs myself, assuming their licensing is compatible with pafo) | 16:19 | ||
| bubaflub | afternoon dukeleto | ||
| davidfetter | dukeleto, got any insights into what eggyknap's asked about | ||
| ? | |||
| dalek | tracwiki: v32 | coke++ | BranchDescriptions | 16:20 | |
| tracwiki: update to wiki format. | |||
| tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff | |||
| Coke | does opensolaris ship with a sun cc, or is it gcc on the open platform? | 16:22 | |
| Coke realizes he knows a local sun vendor and asks them. (er, oracle.) | 16:23 | ||
| whiteknight | Coke: I think opensolaris shipped with suncc | 16:24 | |
| NotFound | Oracle after sun X-) | 16:25 | |
| Coke | bubaflub: if you track that down, it would be super helpful to have it for the timeline, also. | 16:26 | |
| (for preparing for #parrotsketch reports) | |||
| bubaflub | guy on #trac is saying we could do that with reports | ||
| but not with the timeline view | |||
| Coke | what if we go "wah" ? =-) | 16:27 | |
| Would a patch be accepted? I'd be happy if it was a just something a clever person could tack onto the URL. | |||
| bubaflub | now he's saying that the ?author=foo should work | 16:28 | |
| hmmm | 16:29 | ||
| maybe in a config? | |||
| i'll work on it with #trac people and get back to you | |||
| Coke | I've tried..... danke! | ||
| (we might have an old version of trac, too.) | |||
| happy to get it upgraded for this, though. =-) | |||
| bubaflub | nah, we've got 0.11.6 | ||
| which was the version he was referencing | |||
| dukeleto | davidfetter: i am catching up on backlog. what are you asking about? | 16:31 | |
| bubaflub: howdy! | 16:32 | ||
| davidfetter | dukeleto, eggyknap asked :) | ||
| bubaflub | dukeleto: how goes the GSoC process? | ||
| davidfetter | it's basically about deferring knowledge of PL/Parrot param types until run time | ||
|
16:33
he_ joined
|
|||
| he_ | Latest attempt at build on NetBSD/macppc (powerpc) 5.0: ./src/pmc/lexinfo.pmc:151: failed assertion 'v_type == enum_hash_int' while doing " ./parrot runtime/parrot/library/PGE/Perl6Grammar.pir --output=compilers/pge/PGE/builtins_gen.pir compilers/pge/PGE/builtins.pg" | 16:34 | |
| Coke | reminder, DAYLIGHT SAVINGS TIME HAS HIT. | 16:36 | |
| (in the us) | |||
| (This puts #ps at 16:30 Eastern) | 16:37 | ||
| (someone should hit the list to remind folks) | 16:39 | ||
|
16:41
theory joined
|
|||
| whiteknight | damnit | 16:45 | |
| bubaflub | Coke: ok, so here's the lowdown on the trac business | 16:49 | |
| the vanilla install of trac doesn't have what you are asking for, but apparently the debian package has a set of patches it somehow is in there | 16:50 | ||
| nopaste | "he" at 158.38.152.119 pasted "end of log + stack trace of recent failed build on NetBSD/macppc 5.0" (119 lines) at nopaste.snit.ch/19967 | 16:51 | |
| he_ | Doing a build on NetBSD/i386 4.0 at the moment with a "&& gmake smoke" at the end, so if it succeeds it'll show up there. However, now time for dinner. | 16:53 | |
| bubaflub | Coke: but apparently those patches are on trac's trunk | 16:54 | |
| so i'm guess 0.11.7 (the next version) will have what you are asking for | |||
| dukeleto | bubaflub: the goog is looking at org apps and will let us know who is accepted by 18. March | ||
| bubaflub | i imagine the goog as the evil all-seeing eye from the lord of the rings | 16:55 | |
| he_ | Nah, didn't work that either: "Unknown PMC type to thaw 29807" followed by "current instr.: 'parrot;PGE;Perl6Grammar;Compiler;__onload' pc 24 (runtime/parrot/library/PGE/Perl6Grammar.pir:76)" | 16:57 | |
| whiteknight | he_: Do you have an installed Parrot library on your system? | 16:59 | |
| dalek | parrot: df4ea0a | (David Fetter)++ | Makefile: Fixed per discussion here: justatheory.com/computers/databases..._pgxs.html |
17:26 | |
| website: cotto++ | Parrot 2.2.0 Released! | 17:27 | ||
| website: www.parrot.org/news/2010/parrot-2.2.0 | |||
| davidfetter | cotto++ :) | ||
| dukeleto | cotto++ | 17:29 | |
| Austin | whiteknight pong | 17:30 | |
| whiteknight | Austin: today's tax day. Need any help paying it? | 17:31 | |
| Austin | Heh. I'm sure it is. | ||
| Is the release out yet? | |||
| tagged, test | |||
| whiteknight | Starting this release, I'm going to try and standardize Parrot-Linear-Algebra to following the latest supported release instead of tracking head | ||
| Austin | *test=etc | ||
| Dare to slack! | 17:32 | ||
| whiteknight | I ran into a problem yesterday where PLA was building against a particular rev, but I was getting test failures for Kakapo at that same rev | ||
| Austin | Ruh roh | ||
| whiteknight | so I decided it may be time to chill out with my incessant updating | 17:33 | |
|
17:33
riffraff joined
|
|||
| dukeleto | whiteknight: yeah, sounds reasonable | 17:34 | |
| riffraff: welcome | |||
| Austin | Well, it seems there is a 2_2_0 release tagged. | ||
| riffraff | hei | ||
| dukeleto | cotto: is it safe for people to nuke trunk from orbit yet? | ||
| Austin | Check the logs for about 0300 EDT this morning. I think he claimed he was done. | 17:35 | |
| dukeleto: irclog.perlgeek.de/parrot/2010-03-16#i_2107914 | 17:36 | ||
| dukeleto | cotto: it seems that way, but I like to be sure :) | 17:37 | |
| cotto | dukeleto, quite | ||
| moderator | #parrot Parrot 2.2.0 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix HLL bugs! Fix and test corevm target! | 17:37 | |
| dukeleto | Austin: but yes, you appear correct | 17:38 | |
| Austin | Besides, you tested your commit, right? | ||
| whiteknight | I'm going to finish my testing updates for PLA soon, then give all the same treatment to PDS | ||
| I would like both to be targetted towards supported parrot releases | 17:39 | ||
| particle | cotto: oops! "Parrot 2.0 Released!" | 17:40 | |
| Austin | Great news! I just got an email announcing the release of Parrot 2.0 | ||
| Drat. | |||
| dukeleto | whiteknight: i should probably only target supported releases for PL/Parrot, but there are so many holes in the embedding API => have to track trunk | 17:41 | |
| whiteknight | dukeleto: yeah, tracking trunk has it's advantages. I've done it with some of my projects quite successfully until now | ||
| but the interfaces I rely on are satisfactory for now | 17:42 | ||
| so it's time to drink the damn deprecation policy koolaid and follow supported releases | |||
| Austin | Yowza! Putting all the command line args on display really gives a workout to the scroll buffer. | ||
| cotto | headdesk | 17:44 | |
| purl | *thunk* | ||
| cotto | the roadmap needs to be reviewed and I need to learn the difference between 2.0 and 2.2.0, but that's it for the relese. | 17:46 | |
| *release | |||
| . o 0 (not my day) | |||
| Austin | Hmm.. maybe the coffee / fish-oil intake ratio needs to be adjusted on Cotto... | ||
| whiteknight | cotto++ (you're a rock star anyway) | 17:47 | |
| cotto | I'm glad I'm not running any heavy equipment today. | ||
| other than my car, which still makes me nervous. ;) | |||
| Austin | Hey.. from heavy equipment operators we don't expect smart... | ||
| cotto | bacek++ for being the one to finally fix crow.pir | ||
| cotto goes off to word | 17:48 | ||
| work | |||
| sigh | |||
| Austin | Hmm... 7 if @!elements.elems { ... } (what's wrong with this symbol name...) | 17:49 | |
| whiteknight | ...? | ||
| purl | Yada yada yada hasn't been implemented yet! (unless you run bleadperl) | ||
| whiteknight | purl forget ... | ||
| purl | whiteknight, I didn't have anything matching | ||
| whiteknight | purl forget ...? | ||
| purl | whiteknight, I didn't have anything matching | ||
| whiteknight | damnit | ||
| purl forget yada yada yada | |||
| purl | whiteknight, I didn't have anything matching yada yada yada | ||
| whiteknight | >:( | ||
| whiteknight grabs an absurdly powerful magnet, intent on teaching purl a lesson | 17:50 | ||
|
17:51
fperrad joined
17:52
rt7 joined
|
|||
| Austin | purl? | 17:54 | |
| purl | Austin? | ||
| Austin | Hmm | ||
| Here's a gravatar for purl: cyanatrendland.com/wp-content/uploa...mpbell.jpg | 17:55 | ||
| I think needles courtesy of bacek... | |||
| Hmm.. I think install is broken. | 17:58 | ||
| Okay, install-dev requires docs, which fails when I build it as root, but works as austin. (Network filesystem...) | 17:59 | ||
| whiteknight | Austin: www.geekologie.com/2008/03/25/killer-robot.jpg | 18:00 | |
| Austin | More dalek than purl, I hope. | ||
| whiteknight | Austin: www.craphound.com/images/freerobotsex.jpg | 18:01 | |
| either way is fine | |||
| Austin | lol | ||
| Anybody else get their (US) census forms yet? | 18:02 | ||
| davidfetter | yeah | ||
| bubaflub | my roommate said it came in the mail yesterday | ||
| Austin | Yeah, that was easy.. | 18:03 | |
| Who lives here? One old white dude. OKTHXBYE | |||
| Whiteknight: my working copy just started failing t/Program, but that could be me screwing something up. Can you do a test on 2.2 and let me know what you see? | 18:09 | ||
| whiteknight | I will in a minute. I had to shut down my VM for a bit because my CPU is maxed | 18:10 | |
| Coke | note to parrot release managers: you probably want to join the parrot-users list. =-) | ||
| cotto_work | and get lots of sleep before releasing | ||
| Austin | I'm on parrot-users, and I don't see much traffic. | 18:11 | |
| All the cool kids are on -dev... | |||
| whiteknight | I think I'm on parrot-users too | ||
| Austin | But maybe cotto's mail to the list bounced, or sth | ||
| Coke | (goog as sauron) that idea is not without merit, esp. if you read the silmarillion. =-) | ||
| Austin: his mail is held up by admin, which is why I mentioned it here. =-) | 18:13 | ||
|
18:13
eggyknap left
|
|||
| Coke | cotto_work: want me to just kill it since it's the wrong release anyway? | 18:13 | |
| cotto_work | sure | ||
| though only the subject is wrong | |||
| Coke | ... your call. I can approve it, np. | 18:14 | |
| cotto_work | I'll resent to parrot-users (and join) when I get home tonight | 18:15 | |
| Coke | k | ||
| cotto_work | *resend | ||
| I can't win. | |||
| Coke | dropping... | 18:16 | |
|
18:16
hercynium joined
|
|||
| Austin | Q: What does a call to 7 Path.new( "" ) produce? (empty string) | 18:24 | |
|
18:25
Andy joined
|
|||
| Andy | icc support? Where have I been!??! | 18:25 | |
| Austin | Don't get too excited. It's not supported in the logs... | 18:26 | |
| Andy | I don't understand "in the logs". | ||
| Austin | irclog? | ||
| purl | i guess irclog is irclog.perlgeek.de/parrot/today | ||
| Andy | oooooh, look at all those beautiful ICC warnings. | 18:27 | |
| Austin | Damn, why couldn't I remember that when Smash was asking this morning... | ||
| What warnings? | |||
| purl | somebody said warnings was just a magical bitmask, iirc | ||
| Andy | missing returns, for one. | ||
| Austin | ? | ||
| In padre, or something else? | |||
| whiteknight | Andy: there used to be a LOT more ICC warnings | 18:28 | |
| Andy | mo be betta | ||
| Austin | Oh. | ||
| Never mind. | |||
| Wrong icc. | |||
| whiteknight | Andy: it's a work in progress, but we're building, passing all tests, and have relatively few warnings | ||
| Andy | I worked on icc a bunch a year or so ago | ||
| cotto_work | how many things called "icc" are there? | 18:29 | |
| Austin | intel c compiler | ||
| irc color coding | |||
| NotFound | icc? | ||
| purl | icc is international color consortium and is at www.color.org/ or Interface Chaise-Clavier (problĆØme d') or Intel C Compiler | ||
| Andy | There are MANY more icc flags we could be using. | ||
| A new couch project for me! | |||
| Austin | I never heard of the Chaise one. | ||
| japhb | How long until #ps? | 18:30 | |
| dukeleto | japhb: 2 hrs, i think? | ||
|
18:30
payload joined
|
|||
| cotto_work | 120m | 18:30 | |
| japhb | OK, cool. | ||
| thx | |||
| Coke | Andy: ping me if you have any questions on the new config/auto/warnings.pm | 18:31 | |
| Andy | ok | ||
| Austin | Ahh | 18:32 | |
| ICC = PEBKAC | |||
| Coke | PEBAKAC. | ||
| Andy | I saw at least one invalid flag getting passed to icc. | ||
| but I don't have time to mess w/it now. | |||
| -Wdeclaration-after-statement specfiically | 18:33 | ||
| Austin | Isn't that what Fermat said? | ||
| Andy | ok, that's pretty cool, Coke. | ||
| the way you have the flags set up. | 18:34 | ||
| where each filename is, I assume, an exception. | |||
| Coke | odd, I don't see that one. | ||
| Andy: yes. | |||
| replaces the old "CFLAGS" file. | |||
| Andy | Can't you qw() with filenames? | ||
| Coke | instead of having icky manual list refs? sure. | 18:35 | |
| Andy | ok | 18:36 | |
| just surprised you don't. | |||
| Coke | pretty perl code was not my focus on that refactor. | ||
| Andy | understood | ||
| Coke | I don't see that warning being setup for icc. wonder where it's sneaking in. | 18:37 | |
| Andy | Dunno, I don't see it either. | ||
| whiteknight | Andy: Improved ICC support and better/decreased warnings would always be a good thing | ||
| Andy | yup, I'm all over it | 18:38 | |
| at some point | |||
|
18:38
hiroy____ joined
|
|||
| Andy | in my copious free time | 18:38 | |
| Coke | whee. | ||
| Andy | when I'm not creating presentations for POSSCON (posscon.org) | ||
| whiteknight | take your time. the compiler is definitely not too popular | ||
| Andy | but it's a useful tool with different warning than GCC | ||
| whiteknight | I really like it's optimization potential, however | ||
| yes | |||
| Andy | I see each different compiler as a different lint. | ||
| whiteknight | I like to use it sometimes | ||
| Coke | ack suggestion: an option to ignore svn:ignored files and/or only search files under version control. =-) | 18:39 | |
| Andy | github.com/petdance/ack/issues | ||
| Coke | ok. as long as it's not a "no way", happy to open an RFE. | 18:40 | |
| Andy++ | |||
| Andy | It'll be a plugin, to be sure. :-) | ||
| but that throws a whole new wrinkle into what plugins might be. | |||
| Coke | GITHUB-- | 18:43 | |
| (just ate my ticket.) | |||
| nopaste | "Whiteknight" at 70.91.57.213 pasted "kakapo test output at Parrot2.2.0 for Austin++" (74 lines) at nopaste.snit.ch/19968 | 18:44 | |
| Austin | whiteknight++ | ||
| I think I've got fixes for most of those in the queue. | 18:45 | ||
| whiteknight | Lucy! You've got some es'plainin to do! | ||
| push them in and I'll test them out | |||
| Austin | No guarantees that things will improve ... | 18:46 | |
| I've broken some other stuff in the interim. That said, here it comes. | |||
|
18:48
kurahaupo joined
18:51
theory joined
|
|||
| Austin | Okay, it's up. Should be some test failures in the new files, but you can ignore them (MockFS and Path). Let me know what t/Program does for you, and any others that fail. | 18:52 | |
| Andy | do commits not get posted here any more? | 18:53 | |
| dalek | kapo: 878c57d | austin++ | (10 files): Added FileSystem.nqp, Path.nqp. Completed use case #1 on ticket Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com> |
||
| kapo: 307f322 | austin++ | (16 files): Added "auto_accessors" to P6metaclass.nqp; Added MockFS.nqp and Path.nqp, neither of which currently work. :( Got rid of Pmc/File.nqp. Fixed issue #12: Create a Mock FileSystem |
|||
| Andy | kakapo? | 18:54 | |
| purl | kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. | ||
| Austin | purl, no Kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. See code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or gitorious.org/kakapo for source code. | 18:55 | |
| purl | OK, Austin. | ||
| Austin | kakapo? | 18:56 | |
| purl | somebody said kakapo was a program framework, runtime library, and collection of useful functions for NQP programs. | ||
| Austin | Kakapo? | ||
| purl | it has been said that Kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. | ||
| Austin | heh | ||
| cotto_work | kakapo is also See code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or gitorious.org/kakapo for source code. | 18:57 | |
| purl | okay, cotto_work. | ||
| dalek | rrot: r44963 | petdance++ | trunk/config/auto/warnings.pm: removed quoting on filenames, using the qw() syntax instead |
||
| rrot: r44964 | petdance++ | trunk/config/auto/warnings.pm: fixed spelling of -Werror=implicit-function-declaration |
|||
| cotto_work | kakapo? | ||
| purl | i heard kakapo was a program framework, runtime library, and collection of useful functions for NQP programs. or See code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or gitorious.org/kakapo for source code. | ||
| Austin | cotto_work++ | ||
| Thanks. | |||
| cotto_work | np | 18:58 | |
| Andy | WHO LOVES A GOOD STAFF MEETING? | 18:59 | |
| whiteknight | Austin: t/program.t sees to have hung | 19:00 | |
| t/Program.nqp | |||
| Austin | Excellent! That's the same problem I sometimes have. | ||
| Kill it and retry | |||
| whiteknight | already doing that | ||
| Austin | That makes it a pir+ problem, instead of a platform problem. I can solve that. | 19:01 | |
| whiteknight | it done hung again | 19:02 | |
| dukeleto | Austin: kakapo seems to be getting really useful. Nice work. | 19:03 | |
| Austin | Thanks. | ||
| whiteknight | Austin: When I run t/Program.nqp without the harness, it works quickly and perfectly every time | ||
| ...no, wait | |||
| Austin | jej | 19:04 | |
| whiteknight | hung again | ||
| Loading ./library/kakapo_full.pbc | |||
| 1..9 | |||
| Austin | Did it well you what test it was running? | ||
| whiteknight | Running test: test_exit | ||
| ok 1 - Calling global exit() immediately ends program | |||
| Running test: test_from_parrot | |||
| ok 2 - test_from_parrot | |||
| Running test: test_global_at_start | |||
| ok 3 - test_global_at_start | |||
| Running test: test_global_at_exit_fails | |||
| ^^ | |||
| Austin | nopaste? | ||
| purl | i heard nopaste was 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 | ||
| whiteknight | I just dumped it to the channel | ||
| Austin | I know. | ||
| That was a reminder. | |||
| whiteknight | I'll remind you | 19:05 | |
| ...doesn't sound nearly so menacing over the intertubes | |||
| Austin | Crap. | 19:06 | |
| whiteknight | I'm also seeing intermittent failures in other tests too | ||
| # Registered program should have no problems with at_start global | |||
| dukeleto | msg plobsing your comments/thoughts on my recent email to parrot-dev about Parrot_ext_call_cb would be greatly appreciated | ||
| purl | Message for plobsing stored. | ||
| Austin | That test has got some kind of special-global-foo handling already. | ||
| No doubt broken. | |||
| whiteknight | # Registered program should have no problems with at_exit global | ||
| (and those two failures happened in separate test runs) | |||
| and this time it hung here: Running test: test_global_at_start_fails | 19:07 | ||
| Austin | So probably some kind of registration/deregistration problem. | ||
| Frabjous. | |||
| I'll look at it later. | |||
| whiteknight | well, on the bright side it is failing at failing. So maybe it's working extra good now? | ||
| Austin | Wow. | ||
| The future's so bright, I gotta wear shades... | 19:08 | ||
| whiteknight | haha | ||
| Austin | (name the band?) | ||
| whiteknight | no idea | ||
| Austin | Tim-buk-three | ||
| www.youtube.com/watch?v=wvIAyxpjEuc | 19:09 | ||
| Gotta love the one-hit wonders... | 19:12 | ||
|
19:14
payload joined,
chromatic joined
|
|||
| Coke | no kakapo? | 19:16 | |
| purl | hmmm... no kakapo is a program framework, runtime library, and collection of useful functions for NQP programs. See code.google.com/p/kakapo-parrot/ for documentation and issue tracking, or gitorious.org/kakapo for source code. | ||
| Coke | (you want "no, foo is", not "purl, no foo is") | ||
| Austin | Thanks, coke. | 19:17 | |
| I had reached the conclusion that purl was just one more gal that I wasn't smart enough to communicate with... | |||
| Coke | purl, austin? | 19:18 | |
| purl | austin is nice. or a city in Texas. or Mr. Hastings, if you're nasty. | ||
| whiteknight | you're a city in Texas? | 19:20 | |
|
19:20
kurahaupo joined
|
|||
| cotto_work | Don't mess with Austin. | 19:22 | |
| whiteknight | ...did the PCC branch get completely fixed? | 19:26 | |
| cotto_work | bacek++ is to blame for that | 19:27 | |
| whiteknight | goddamn bacek++! Always fixing shit and doing awesome for the good of the Parrot community. Who the hell does he think he is? | ||
| cotto_work | bacek? | 19:28 | |
| purl | bacek is THE MANIAC or some sort of magical coding robot | ||
| cotto_work | ^ | ||
| chromatic | Hey, some other people fix things too! | 19:29 | |
| whiteknight | chromatic++ # We love you too | ||
|
19:30
bacek joined
|
|||
| whiteknight | now I don't need to swoop in to save the day, and show you guys how a real programmer does things | 19:30 | |
| :) | |||
| no, I was looking at those failures yesterday and I was lost | |||
| cotto_work | and I don't need to swoop in and make things worse ;) | 19:31 | |
| chromatic | There were really only two classes of bugs, and we knew what both were, even if we didn't know the right fixes. | 19:32 | |
| Coke | I am tempted to just merge branches/pirc_config back to trunk. | ||
| (adds a mostly-do-nothing option for Configure.pl --pirc) | |||
| cotto_work | We've just had a release. Merge away! | 19:33 | |
| Coke | I'd rather it was tied to something that enabled pirc. =-) | 19:34 | |
|
19:36
iblechbot joined
|
|||
| whiteknight | Coke: I would merge it before it becomes bitrotten, or delete it | 19:36 | |
| chromatic: okay, with pcc out of the way, which branch to focus efforts on now: tt389_fix or fix_hll_mmd? | 19:37 | ||
| can't do both, my simple brain produces weird cross-commits | |||
| chromatic | TT #389; it has to be close. | ||
| whiteknight | okay, will do | ||
| There are a few other tickets that are going to be resolved shortly afte TT #389 lands | 19:39 | ||
| we should probably sponsor some kind of ticket crawl to weed out things that are either already fixed or extremely easy to fix after these branches land | 19:40 | ||
| bubaflub | whiteknight: +1 to that | ||
| Coke | I try to do that once a month or so. | ||
| whiteknight | we should all be more like Coke | ||
| ah, I forgot the tt389_fix branch was pre-makefile-cleanup | 19:42 | ||
| Coke | so's the pcc branch. =-) | ||
| chromatic | Yep, fun merge from trunk time. | ||
| tewk | Has anyone written a pir parser in nqp-rx? | 19:43 | |
| Coke | ttbot? | ||
| purl | ttbot is TapTinder build bot owned by mj41 and reporting tt.taptinder.org/buildstatus/pr-Parrot/rp-trunk build errors. | ||
| whiteknight | tewk: no, not yet | ||
| bacek | morning | 19:44 | |
| whiteknight | I think NotFound had one he was working on in Winxed | ||
| bacek | tewk, github.com/bacek/pir | ||
| chromatic | bacek, we need to figure out how to reuse a CallContext for returning, when possible. | ||
| Coke | smolder went red on winders. | ||
| (ttbot seems fine, though) | 19:45 | ||
| tewk 's law of vm implementation, get rid of all the C code. :) | |||
| bacek | chromatic, no way. | ||
| Austin | tewk++ | ||
| chromatic | Impossible or difficult or you don't want to do it? | ||
| whiteknight | chromatic: is there any different? | 19:46 | |
| dalek | rrot: r44965 | petdance++ | trunk/src/pmc/orderedhash.pmc: localizing and consting. Removed an unused auto variable. Removed ancient docs. |
||
| whiteknight | sufficient dis-motivation is an impossible roadblock | ||
| chromatic | There are many differences. | ||
| Austin | For instance, "I don't want to do it" can sometimes be remedied by "We'll fedex you a box of donuts if you do" | 19:47 | |
| bacek | chromatic, impossible afaiu. Almost same problem as ref-counted Contexts. | ||
| whiteknight | bacek: why impossible? We have the CallContext at the point of the return invoke. Can't we just clear it and repopulate it? | 19:48 | |
|
19:49
joeri joined
|
|||
| bacek | hang on a second. | 19:49 | |
| We _do_ reuse existing Context in set_results/returncc | |||
| whiteknight | oh. good | 19:50 | |
| chromatic | Per my profiling, we create twice as many of them as we did before. | ||
| bacek | ah, my bad. | ||
| wrong branch | |||
| Coke | svn slooooow | ||
| cotto_work | git is fast | 19:51 | |
| whiteknight | chromatic: looks like about 29 failures in tt389_fix branch | 19:52 | |
| and there are some common themes here | 19:53 | ||
| I immediately suspect RO PMCs are broken. Doing a type lookup and getting the PMCProxy will return the proxy without all the methods in it | |||
| so we need a way to either share proxy or link together the RO variants to the regular ones | |||
| chromatic | Ah, makes sense. | 19:55 | |
| whiteknight | I don't think PMCProxies are inheriting methods from their parents either. We need to decide whether we want to lookup methods in the MRO, or whether we want to make static copies at PMCProxy creation time | ||
| chromatic | They should inherit methods. | ||
| whiteknight | if (PMC_IS_NULL(meth)) return VTABLE_find_method(INTERP, attrs->parents, meth_name); | 19:56 | |
| chromatic | That should work. | ||
| Austin | For instance, "I don't want to do it" can sometimes be remedied by "We'll fedex you a box of donuts if you do" | 19:57 | |
| ww | |||
| whiteknight | chromatic: you can hack those ideas in if you want, I'll play with them later tonight when i get home otherwise | 19:58 | |
|
19:58
AndChat| joined
|
|||
| NotFound | whiteknight: I had one what? | 19:58 | |
| chromatic | That should be pretty quick, but we'll see how much time I have today. | 19:59 | |
| Austin, the Krispy Kreme down the street has its two dozen for $14.99 sign up. | |||
| Coke | chromatic: do you like donuts? | ||
| NotFound | Oh, the pir parser... Yes, but is far from being complete. | 20:00 | |
| Austin | It's like crack... the first 2 dozen are free... | ||
| chromatic | I've eaten a doughnut or two in my life. Voodoo Doughnuts... maple bars with bacon.... | 20:01 | |
|
20:01
allison joined
|
|||
| Austin | mmm..bacon | 20:01 | |
|
20:01
theory joined
|
|||
| Austin | And yet, it sounds so wrong... | 20:01 | |
| chromatic | I've even recommended it to a Detroit Piston. | ||
| allison | bacon is the new pony | 20:02 | |
| Austin is conflicted. | |||
| chromatic | Though now that does undermine my argument somewhat. | ||
| Austin | And Bycon is the new pynie? | ||
| allison | bynie | ||
| Coke | hurm. I would chip in for a KK gift card, but the page is nonresponsive. | ||
| probably a post-donut sugar high. | |||
| bacek | chromatic, try r44966 | ||
| dalek | rrot: r44966 | bacek++ | branches/pcc_hackathon_6Mar10/src/ops/core.ops: Reuse old CallContext in set_returns |
||
| bacek | yeah, this one :) | 20:03 | |
| whiteknight | bacek: you're right, that does look impossible | 20:04 | |
| :) | |||
| Austin | Do they even have donuts in Bacek-ville? | ||
| bacek | clock? | ||
| purl | bacek: LAX: Tue 1:04pm PDT / CHI: Tue 3:04pm CDT / NYC: Tue 4:04pm EDT / LON: Tue 8:04pm GMT / BER: Tue 9:04pm CET / IND: Wed 1:34am IST / TOK: Wed 5:04am JST / SYD: Wed 7:04am EST / | ||
| bacek | Nothing is possible before 7am and first cup of coffee! | 20:05 | |
| cotto_work | #ps in 25 | ||
| Austin | Or maybe we have to send him a "Royale with cheese" | ||
| Nope. KrispyKreme.com.au is up and running. | |||
| chromatic | That's better, 6.609% faster than before. | 20:06 | |
| whiteknight | faster than it was in branch, or faster than trunk? | 20:07 | |
| bacek | whooo-hoo | ||
| Any other obvious bottlenecks? | |||
| allison | cotto: ah, I was just wondering. I guess my calendar auto adjusted with daylight saving time again | ||
| chromatic | Faster than it was on branch. | ||
| Let me see what the profile says. | |||
| whiteknight | it would be nice if this branch didn't hurt overall performance too much | 20:08 | |
| I feel like it should be a wash, but that's just wishful thinking | 20:09 | ||
| chromatic | We still create almost twice as many CallContext PMCs as we did before. | ||
| whiteknight | where "before" is in trunk? | ||
| chromatic | ... as we do on trunk, anyway. | ||
| whiteknight | ok | ||
| what's the cause of that increase? | |||
| chromatic | Not sure. | 20:10 | |
| Trunk has some improvements we might pull in anyway. | |||
| whiteknight | are PMC METHODs reusing the context too? | ||
| chromatic | Good question. | ||
| purl | Yeah, it is. I'm stumped. | ||
| whiteknight | that's because you're a stupid robot, purl | ||
| purl | whiteknight: excuse me? | ||
| whiteknight | you heard me | ||
| chromatic | new_ret_continuation_pmc also creates a new CallContext. | ||
|
20:11
allison_ joined
|
|||
| whiteknight | ...why? | 20:11 | |
| chromatic | Let me refer that question to my distinguished colleague in Australia, who is perhaps fixing this as I hit Enter. | ||
| Austin | How expensive is that creation? | 20:12 | |
| whiteknight | the chatroom recognizes the gentleman from Australia | ||
| Austin | Would it make sense to make the CallContext be a two-part object? | ||
| chromatic | Once per PIR function invocation. | ||
| whiteknight | Austin: individually, not bad. But it's for every Sub call | ||
|
20:12
lucian joined
|
|||
| whiteknight | and do tailcalls share the same CallContext as the parent? | 20:15 | |
| Austin | I didn't see why you couldn't re-use them, but if there is a reason, then probably not. | ||
|
20:15
davidfetter joined
|
|||
| cotto_work | I'm only seeing code in new_ret_continuation_pmc to create a new RetContinuation. | 20:15 | |
| whiteknight | Austin: I suspect they should always be reused | ||
| cotto_work | in the pcc branch | ||
| chromatic | Hm, that's what the call graph shows though. | 20:16 | |
| whiteknight | Does RetContinuation.init create one? | 20:17 | |
| cotto_work | is that a optimized parrot? | ||
| whiteknight, doesn't appear to | |||
| chromatic | Yes, an optimized build. | ||
| dalek | rrot: r44967 | bacek++ | branches/pcc_hackathon_6Mar10/src/call/args.c: Simplify merge_signature_for_tailcall. We don't use returns storage anymore. |
20:19 | |
| rrot: r44968 | bacek++ | branches/pcc_hackathon_6Mar10/src/call/args.c: Remove csr_foo functions. |
|||
| chromatic | Maybe it's all from Sub's invoke(). | ||
| whiteknight | dominos falling like a house of cards - Checkmate! | 20:20 | |
| chromatic | Parrot 2.4 "Velour" Released! | 20:21 | |
| bacek | chromatic, try again at r44969 :) | 20:24 | |
| dalek | tracwiki: v51 | cotto++ | ParrotQuotes | 20:27 | |
| tracwiki: trac.parrot.org/parrot/wiki/ParrotQ...ction=diff | |||
| whiteknight | bacon? | 20:31 | |
| purl | bacon is, like, the pig's belly meat or xkcd.com/418/ or www.gratefulpalate.com/?p=Category_11 (Bacon of the Month Club) or nobodyscores.loosenutstudio.com/comix/bacon.gif or *meat candy* or www.facebook.com/pages/Bacon/43455991284 | ||
| chromatic | bacek, r44969 is 13.279% faster than r44965. | 20:35 | |
| dalek | rrot: r44969 | bacek++ | branches/pcc_hackathon_6Mar10/src/ops/core.ops: Use _caller_ Context in set_returns instead of current one. |
||
| chromatic | It's about 3.8% slower than trunk. | ||
| rrot: r44970 | bacek++ | branches/pcc_hackathon_6Mar10/src/pmc/coroutine.pmc: Fix compiler warning |
|||
| rrot: r44971 | bacek++ | branches/pcc_hackathon_6Mar10/src/pmc/callcontext.pmc: Remove storage for returns from CallContext |
|||
| bacek | chromatic, hmm... | 20:36 | |
| I'll take a look. | |||
| chromatic | Trunk has a couple of improvements since the branch point though. | ||
| allison | bacek: but set_returns is supposed to use current context | ||
| bacek | try 44971. It should be 0.5% faster. | 20:37 | |
| allison | bacek: current context is the call context, which is where returns are extracted from | ||
| bacek | allison, it use current context for values. But reuse caller context for store them. | ||
| allison | bacek: that doesn't work if a sub is returning to a different context than called it | 20:39 | |
| chromatic | bacek, about 0.626% faster. | ||
| bacek | allison, make test passed. Just because tailcall update caller's signature. | ||
| chromatic, we have to find other 3%... | 20:40 | ||
| chromatic | Let's merge from trunk first. | ||
| allison | bacek: is the change for speed? | ||
| whiteknight | don't merge from trunk | ||
| here there be dragons! | |||
| bacek | allison, 13% | ||
| whiteknight | 13% faster? | 20:41 | |
| bacek | (according to chromatic's benchmarks) | ||
| <chromatic> bacek, r44969 is 13.279% faster than r44965. | |||
|
20:42
allison_ joined
|
|||
| chromatic | Trunk is somewhere around 3.1% faster than the branch now. | 20:42 | |
| allison_ | bacek: but overwriting the callers context is going to come back and bite us later | ||
| chromatic | We need tests for it then. | 20:43 | |
| allison_ | chromatic: no objections there | ||
| bacek | allison_ we don't override context. We override context->signature (which is different Context) | 20:44 | |
| allison_ | bacek: context-> signature when context is the callers context is the same thing as the current context | ||
| whiteknight | and that signature information isn't neede for anything else? | ||
| allison_ | caller->signature == CURRENT_CONTEXT(interp) | 20:45 | |
|
20:45
kjeldahl joined
|
|||
| allison_ | one thing we desperately need is to clean up the code so the naming actually matches the way it currently works | 20:46 | |
| bacek | allison_, erm... May be. We don't have any asserts in code to check this invariant. | ||
| allison_ | bacek: well, it's not necessarily an invariant, you can monkey around with it | ||
| allison | bacek: but, when you *do* monkey around with it, the safe one to use is CURRENT_CONTEXT(interp) | 20:47 | |
| (from inside the sub) | |||
| whiteknight | allison: we don't really have any cases now where we aren't returning to the caller. Maybe we leave in the cheat with a TODO note, and find a way to make up the performance hit later | ||
| bacek | Agreed. But it was in op set_returns. | 20:48 | |
|
20:48
elmex joined
|
|||
| allison | bacek: are you sure that change gave the 13% speedup? since it seems to be a non-change? | 20:48 | |
| bacek: were there other things changed in that commit? | |||
| whiteknight | that's actually a good question. | ||
| can we double-check the numbers? | |||
| bacek | allison, it is change. Before we always create new CallContext in set_returns (by passing NULL into build_sig) | 20:49 | |
| allison | bacek: ah, *that* the fix | ||
| chromatic | I've double checked the numbers. | ||
| whiteknight | chromatic: os using the caller's context there instead of the current context is a 13% gain? | 20:50 | |
| I | |||
| 'm not sure how that adds up | |||
| allison | whiteknight: no, it's reusing the callcontext object | ||
| chromatic | It's reusing, not creating new. | ||
| whiteknight | so why doesn't it reuse the current context? | ||
| allison | bacek: set_returns is supposed to pass in the current call context to reuse it | 20:51 | |
| bacek: (so that call args and return results use the same object) | |||
| bacek | allison, if context->caller->signature == context than current code do exactly this. | 20:52 | |
| allison | bacek: that preserves encapsulation in the call, safer for concurrency, and for optimizations | ||
| bacek: except it has an extra layer of indirection that may not always be right | |||
| bacek: but, that's a quick fix | |||
| chromatic | Hm, if we know how many registers the return needs and how many the invoke needs, we can always allocate the right size for register storage. | 20:53 | |
| allison | bacek: and won't harm the speed gains at all | ||
| whiteknight | chromatic: in the fixed_size_pools, how do we grow strings in place? | ||
| chromatic | We don't, but that was always a realloc anyway. | ||
| bacek | whiteknight, it usually allocates more memory than requested. And then reallocate it. | 20:54 | |
|
20:54
allison_ joined
|
|||
| allison_ | chromatic: we don't know the return signature when the context is created, but that doesn't matter | 20:54 | |
| whiteknight | we would need to realloc the arena and then move the arena to the correct sized pool | ||
| allison_ | chromatic: because, inside the sub, the returns are just ordinary variables or constants | 20:55 | |
| chromatic | The caller side knows how many return registers it wants. | ||
| bacek | and they already allocated | ||
| allison_ | chromatic: it's back in the calling sub (the .param side for returns) that we need to predict the allocation | ||
| bacek: right | |||
| chromatic: but there, we have the advantage of declared return signatures | 20:56 | ||
| chromatic | yes, we do now! | 20:58 | |
| Coke | update your gravatar! | ||
| whiteknight | We can take a shortcut if the continuation being invoked is a RetContinuation | ||
| in that case, we know we are returning to the caller, and we can monkey with the caller's context | 20:59 | ||
| otherwise, we can do something harder and slower | |||
| moderator | #parrot Parrot 2.2.0 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs | 20:59 | |
| allison | whiteknight: it's safer if the caller does the monkeying with the caller's context, and not much slower | 21:01 | |
| whiteknight: the mistake the old system made was lots of deep knowledge on each side of the call into the other side of the call | 21:02 | ||
| whiteknight: which doesn't work well when either side could be PIR code, C code, NCI code, etc | |||
| Coke | I have to take off. Adios. | 21:13 | |
|
21:17
snl joined
|
|||
| Austin | given that I have a multi-method defined with three signatures, two of which are (_, _) and (_, String), what is the expected behavior of calling $P112."append"("a") from pir? | 21:25 | |
| chromatic | Naively I expect (_, String) as the appropriate candidate. | 21:27 | |
| Austin | Me too. | ||
| And yet, I'm getting the error message behind door number (_,_) instead. | |||
| Which I how I come to ask... | 21:28 | ||
| Is the string type <= 0? | 21:29 | ||
| chromatic | -98, I think. | 21:30 | |
| What if you decapitalize String? | 21:31 | ||
| Austin | Yeah. | ||
| I think the test at multidispatch.c:788 scores the _ (PMC) as the same score as String | 21:32 | ||
|
21:32
jrtayloriv joined
|
|||
| Austin | If I decap String -> string, I get failures earlier, where apparently that sort of thing isn't supported. | 21:33 | |
| It seems obvious that distance 0 (string == string) would beat 1. | |||
| chromatic | Agreed. | ||
| jrtayloriv | Who would I talk to about getting my commit access revoked? I'm not planning on doing any active work in the forseeable future, and don't want an inactive account sitting around for security. | 21:34 | |
| chromatic | We've never worried about such security before. | 21:35 | |
| jrtayloriv | ok, no problem then. I know that some people do. Thanks. | ||
| Austin | Is this a bug in the scoring algorithm, that string->String scores the same as string->PMC ? | 21:36 | |
| (Assuming that they score the same, that is.) | |||
| Whoops. Dinner time. | 21:37 | ||
| chromatic | They shouldn't score the same; autoboxing a primitive into the appropriate PMC type costs one unit more. | 21:40 | |
| I know that to be true, because I wrote that code. | |||
| dalek | rrot: r44972 | bacek++ | branches/pcc_hackathon_6Mar10/src/call/args.c: Remove unused "new_sig" in build_sig_from_op |
||
| chromatic | bacek, within 2% of trunk now. | 21:41 | |
| bacek | chromatic, yeah. I have to go to dayjob so I can't do anything more. But if you sync branch with trunk we can have more accurate comparison. | 21:48 | |
|
21:49
TiMBuS joined
|
|||
| chromatic | Will work on that. | 21:50 | |
| cotto_work | particle, rakudo appears to build fine with r44971 on linux/x64. msg or email me (cotto, not cotto_work) and I'll get 2.2.1 out with whatever patch is needed for Rakudo on win32/msvc. | 21:51 | |
|
21:57
payload1 joined
|
|||
| dalek | rrot: r44973 | petdance++ | trunk/src/pmc.c: consting and localizing. Removed ancient HISTORY heading. |
21:57 | |
|
22:04
lucian_ joined
|
|||
| bacek | chromatic, we can speed up things in CallContext by using array of "cells", not linked list. | 22:07 | |
| chromatic | Definitely. | 22:08 | |
|
22:08
AndyA joined
|
|||
| chromatic | Oh git merge, how you are almost boring in your workingness. | 22:09 | |
|
22:09
eternaleye joined
22:11
lucian joined
22:12
Whiteknight joined
|
|||
| dalek | rrot: r44974 | chromatic++ | branches/pcc_hackathon_6Mar10/src/pmc/role.pmc: [PMC] Replaced deprecated Parrot_PCCINVOKE() with |
22:13 | |
|
22:13
lucian__ joined
22:19
AndyA_ joined
|
|||
| Whiteknight | what's the merge plan for the pcc branch? | 22:36 | |
| chromatic | Funny you should ask. | ||
| Whiteknight | HA HA HA | 22:37 | |
| howsabout we create a new branch from current trunk, and merge the branch into that. Fix issues, go from there | |||
| chromatic | What issues? | 22:38 | |
| purl | Whether mankind has free will is an /issue/. If something doesn't work, that's a /problem/. | ||
| chromatic | As far as I know, only TT #1511 applies. | 22:39 | |
| bacek_at_work, after merging in trunk, branch is 1.936% slower. | 22:45 | ||
| dalek | rrot: r44975 | chromatic++ | branches/pcc_hackathon_6Mar10 (153 files): Resynchronized branch with trunk. |
22:47 | |
|
23:10
snarkyboojum joined
|
|||
| bacek_at_work | chromatic, interesting. I'll take a look tonight. | 23:14 | |
| chromatic | Fixing CallContext storage will make up the difference. | 23:16 | |
|
23:17
payload1 joined
|
|||
| lucian | purl: msg allison i've been reading PDD 15, i'm not sure it can be used for pynie. afaict a custom (or at least prototypal) object system would be needed (same for ruby too) | 23:17 | |
| purl | Message for allison stored. | ||
| treed | lucian: Quick refresher, what's PDD15? | 23:21 | |
| lucian | treed: docs.parrot.org/parrot/latest/html/...s.pod.html | ||
| treed has been working on the object model for Cardinal. | |||
| lucian | treed: did you start from raw PMCs? | ||
| treed | I had to. | ||
| You can't subclass parrot;Class right now. | |||
| lucian | treed: is it that bad? | ||
| treed | It doesn't work at all. | 23:22 | |
| I can't remember whether it crashes or what. | |||
| But it certainly doesn't make a new usable class. | |||
| lucian | treed: from what i've been reading, parrots' object system is horribly designed for dynamic languages | ||
| treed | That seems... weird. | ||
| lucian | treed: it may suit java, but not ruby or python | ||
| treed | Uh... hm. | ||
| You realize that Parrot was made specifically for Perl, right? | 23:23 | ||
| lucian | treed: it may also suit C++, but it's only that general | ||
| treed | And it seems to work pretty well for that. | ||
| lucian | treed: it claims to be good for all dynamic languages | ||
| treed | Sure. | ||
| But I don't see how wPerl is not a dynamic language. | |||
| lucian | treed: its object system is not | ||
| treed | Nothing in PDD 16 runs out and says "This is not usable for Ruby" | ||
| Other than the fact that it lies about subclassing working. | 23:24 | ||
| lucian | treed: no, but it makes it very awkward and inefficient to implement | ||
| treed | How so? | ||
| You subclass Class to make new cl asses. | |||
| Then you instantiate them. | |||
| lucian | treed: i may be slightly wrong about ruby objects, but for python it's not really | ||
| treed | I usedto do python. | ||
| What doesn't work for python? | |||
| lucian | treed: adding arbitrary attributes to an object/class | 23:25 | |
| treed | not following | ||
| ARe you saying that's bad or good? | |||
| lucian | treed: i don't know how to do this with parrot's objects gist.github.com/333802 | 23:26 | |
| treed: it insists on having methods declared in the class | |||
| treed | Oh. | ||
| Yeah. | |||
| In Ruby that's handled by eigenclasses. | |||
| lucian | treed: in python, methods are just attributes | 23:27 | |
| treed | Okay. | ||
| So make a proc and store it in an attribute? | |||
| Objects can retrieve a method PMC for a method (for deferred method calls) | 23:28 | ||
| lucian | treed: true, but then it'll be slower | ||
| treed | Seems like what you'd want? | ||
| Slower than what? | |||
| chromatic | Slower than C++. | ||
| lucian | treed: than calling class methods | ||
| treed | Maybe a little bit? | 23:29 | |
| Retrieve an object and then do something to it | |||
| rather than doing something to an ojbect | |||
| lucian | yes, pretty much | ||
| my other concern is interoperability | |||
| treed | implement find_method? | 23:30 | |
| lucian | i can't see how that could possibly be achieved since most of the object system would not be used in pynie | ||
| treed | Perl, Python, Ruby, have different MROs. | ||
| So that's an issue all its own. | |||
| Well, Perl6 and Python share C3 now. | |||
| But Ruby doesn't. | |||
| lucian | C3? | 23:31 | |
| purl | i guess C3 is a little on the confusing side to start off with or teh hype or www.python.org/2.3/mro.html or use.perl.org/~autrijus/journal/25768 or most often broken by old Session::Store::FastMMap (<=0.03) or search.cpan.org/~flora/Class-C3-0.2...t_is_C3%3F or search.cpan.org/~flora/Catalyst-Run..._Class::C3 | ||
| lucian | right | ||
| also, i don't understand how i could implement metaclasses over parrots objects | 23:32 | ||
| it occurs to me that a prototypal object system may be a better base for ruby and python's objects | |||
| treed | P6object may be what you're after | ||
| lucian | for interoperabily in general in fact | ||
| treed | and ruby would not want a prototypal system | 23:33 | |
| Perl6 has a prototypal system | |||
| I'm having to rip it out for Ruby. | |||
| lucian | i know, but you could implement ruby's/python's system on top of that | ||
| treed | metaclasses in Ruby are instances of Class | ||
| lucian | treed: pretty much the same in python | ||
| treed | or of subclasses of Clas | ||
| so I'm not sure why you want prototype anything | 23:34 | ||
| BRB | |||
| dalek | kudo: 8b09f69 | jonathan++ | (5 files): Implement first cut of s/// syntax. Uses .subst under the hood, so it's as capable/incapable as .subst. |
23:35 | |
| cotto_work | 434023101/433886681 | 23:37 | |
| purl | 1.00031441389186 | ||
| lucian | treed: i'm assuming proto would make interop easier because it fits both with everything-is-an-object and not-quite-everything-is-an-object | 23:38 | |
| treed: the main problem with parrot's objects is the separation between attribute and method | 23:43 | ||
| chromatic | They both go through vtables. | 23:44 | |
| lucian | chromatic: so they're not actually separate, PDD 15 just gives that impression? | 23:46 | |
| chromatic | Sure they're separate, but whatever you hide behind those vtables can do whatever it wants. | 23:47 | |
|
23:49
payload joined
|
|||
| lucian | chromatic: right. so i could implement python's notion of everything in an object is an attribute | 23:51 | |
| dalek | rrot: r44976 | whiteknight++ | branches/find_method_object: deleting unused branch |
23:52 | |
|
23:52
AndyA joined
|
|||
| lucian | treed: i may be totally wrong in my understanding of parrot's objects | 23:54 | |
| treed: but in any case, there may be quite a few common thing between python and ruby objects | |||
| chromatic | Certainly. | ||
|
23:58
eternaleye joined
|
|||