|
www.parrot.org | planet.parrot.org | 1.5.0 "TEH PARROTZ!" Released! | Feature freeze over, coders start your engines! Set by moderator on 18 August 2009. |
|||
| treed | jonathan: That is, the Array type object is ['rakudo';'Array';'Array'] ? | 00:00 | |
| jonathan | treed: We get it with | ||
| treed | or 'rakudo';'Array' which is also the same name as the namespace | ||
| jonathan | Yes, that one. | ||
| treed | Ah. | ||
| jonathan | The same as the namespace | ||
| treed | I was confused by the duplicated "the namespace". | ||
| jonathan | But they get stuck in different slots. | 00:01 | |
| chromatic | I wouldn't know how to start thinking about making STRINGs immutable. | ||
| treed | So a global and a namespace are stored differently in the HLL namespace, then? | ||
| Okay, that's helpful, thanks. | |||
| chromatic | Deprecate all modify-in-place functions in src/string/*? | ||
| treed | I was looking a bit at Rakudo. | ||
| and saw "get_hll_global 'Array'" | |||
| Which seemed to suggest that to me. | |||
| chromatic | ... but then think about upgrade-encoding-or-charset in place behavior. Yikes. | ||
| treed | But then I saw that the actual namespace for Array is Perl6Array. | ||
| jonathan | Well, the namespace PMC keeps nested namespaces apart from other things stored under that name. | ||
| treed: It is, that's because Parrot has an Array. | 00:02 | ||
| treed | Aha. | ||
| jonathan | treed: It was a hack before we could use .HLL | ||
| Whiteknight | chromatic: yeah, as soon as you talk about encodings and charsets it becomes a nightmare | ||
| treed | Wouldn't that be root_global, then? | ||
| chromatic | If STRINGs *were* immutable, we wouldn't have to pass around pointers. We could pass around indexes. | ||
| Whiteknight | but I don't think those conversions would happen in place | ||
| jonathan | In Rakudo | ||
| Whiteknight | a truely immutable string wouldn't have anything done to it in lace | ||
| s/lace/place/ | |||
| jonathan | $P0 = get_hll_global 'Foo' # the type object | ||
| chromatic | We'd have to find some way of identifying when a STRING modification produced a STRING we've already identified... but that's a nice memory saving. | 00:03 | |
| treed | and that gets you 'rakudo';'Foo', yeah? | ||
| jonathan | $P0 = get_hll_global ['Foo'], 'bar' # thing bar inside the Foo namespace | ||
| chromatic | Memoization basically. | ||
| jonathan | treed: Right. | ||
| Whiteknight | chromatic: a good hashing function would go a long way towards that end | ||
| treed | Okay, so that's at least part of the problem solved. | ||
| Now where to stick the metaclass. | |||
| maybe as a sigiled sub-NS of the parent | |||
| chromatic | I'm tempted to replace interp->const_cstring_hash with a binary tree and see if that helps things. | 00:04 | |
| treed | so 'cardinal';'Array' and then 'cardinal';'Array';'!meta' | ||
| OSLT | |||
| Ideally I'd find a sigil that's not usable in a method name in Ruby. | |||
| jonathan | treed: We store it as a prop on the Parrot class in Rakudo. | ||
| Whiteknight | chromatic: I don't know, might be worthwhile | ||
| treed | But I still need a namespace, don't I? | ||
| chromatic | More work than I want to do at the moment. | ||
| jonathan | treed: But we also need to worry about lexical classes and anonymous classes. | 00:05 | |
| treed | To define methods in PIR? | ||
| Yeah, Ruby has anonymous classes, too. | |||
| In fact, every object has its own anonymous class. | |||
| Or can. | |||
| jonathan | Well...that's a good question... | ||
| treed | I think CRuby makes it when it needs it. | ||
| jonathan | You can instantiate a Parrot class | ||
| And then do addmethod class, 'foo', $P0 | |||
| treed | I expect to start off with all objects having a declared eigenclass, and maybe optimizing that case later. | ||
| jonathan | Where $P0 is the sub to become the method. | ||
| Ah, OK | 00:06 | ||
| treed | But where do I define that $P0 without it polluting some other namespace? | ||
| jonathan | treed: Mark it as :anon and look it up by subid. | ||
| treed | :anon is nameless? | ||
| And I thought subids were randomly generated. | |||
| jonathan | Right. | ||
| (that was on :anon) | 00:07 | ||
| treed nods. | |||
| jonathan | You can control what the subid is set to. | ||
| .subid on the block iirc. | |||
| treed | :subid('foo') ? | ||
| jonathan | Aye | ||
| treed | Interesting. | ||
| jonathan | I actually originally started pushing Rakudo in that direction. | ||
| treed | But you didn't? | ||
| Thought better of it, or did the idea just not fly with the other devs? | 00:08 | ||
| jonathan | Then pmichaud in a refactor (one that was overall good) went for us having them in namespaces and calling the namespaces things like !ANON_10 and stuff. | ||
| treed | Ah. | ||
| jonathan | I'm still sort of half and half on the whole thing. | ||
| The issue that bothers me is this one: | |||
| treed | I get the feeling it'd be easier to have them in a namespace. | 00:09 | |
| treed waits. | |||
| jonathan | my @x; for 1..10 -> $n { push @x, class { has $.foo = $n } } | ||
| Do you understand enough Perl 6 to follow that? | 00:10 | ||
| I can explain if not... | |||
| treed | I think so? | ||
| @x is an array, right? | |||
| jonathan | Right | ||
| treed | So you're pushing a bunch of classes onto the array. | ||
| And giving them each a property with that number. | |||
| jonathan | Right, but note that in Perl 6 every block is meant to act like a closure. | ||
| So we'd expect a bunch of classes referring to the right outers. | 00:11 | ||
| treed | "right outers"? | ||
| jonathan | Sorry, that's a bad way of putting it. | ||
| The correct outer scopes. | |||
| That is, closure semantics. | |||
| chromatic | $n in the class initialization should be 1, 2, ... 10 | ||
| treed | Ah. | ||
| jonathan | chromatic: Right, so I think for @x -> $c { $c.new.foo.say } should print for 1 through 10. | ||
| Trouble is if in Parrot you have a class associated with a namespace, and then you try to re-create that class, you hit two issues. | 00:12 | ||
| chromatic | Agreed. | ||
| jonathan | 1) Parrot says a class under that name already exists. | ||
| 2) You have to play games to sort out the lexical scoping. | |||
| I play those games with parametric roles now...so it can be done. | 00:13 | ||
| treed | Does Perl6 allow for adding to a class later? | ||
| jonathan | Yeah | ||
| treed | k | ||
| So I know that's doable then. | |||
| jonathan | augment class Foo { ... } | ||
| Well | |||
| Adding new attributes is awkward. | |||
| As in, doesn't work in Parrot right now. | |||
| treed | With Ruby, you just define more class. | ||
| Whhen you do "class Foo", it'll look up that name. | 00:14 | ||
| If it's already a class, it'll add the stuff you define to it. | |||
| If not, then it makes a new one. | |||
| jonathan | Wow. | ||
| treed | Yeah. | ||
| jonathan | A little shoot-in-foot risk. ;-) | ||
| treed | Yeah. | ||
| but it means you can extend the builtins nicely. | |||
| Rails does this to interesting effect, expanding Integer so that you can say "3.days" and get a time object. | 00:15 | ||
| jonathan | *nod* | ||
| treed | makes doing time math pretty cool. | ||
| Time.now + 3.days | |||
| I sometimes find myself wanting those addons in non-Rails Ruby. | |||
| jonathan | The cleanest I've seen a language managed to do that kind of thing so far as been C# with extension methods. | ||
| treed has only done a little C#, and it was a while back. | 00:16 | ||
| jonathan | You had to import the extra extension methods on a per-file basis, so the changes to the class weren't global. | ||
| Whiteknight | I do C# every day and don't think I've ever used an extension method with it | ||
| treed | Ah. | ||
| jonathan | Whiteknight: Linq is built on top of 'em. | 00:17 | |
| treed | I wrote a wrapper for a C library and a little program to demonstrate the wrapper. | ||
| jonathan | Plus some syntax to hide them away. | ||
| treed | I think that was about it. | ||
| The library later went C++, so I dunno if the wrapper still even exists. | |||
| Oh! | 00:18 | ||
| What's the difference between properties and attributes? (Parrot) | |||
| I only recently saw "getprop". | |||
| Whiteknight | jonathan: yeah, I know all about them, I've just never used them | ||
| jonathan | treed: properties are out-of-band data that you can store on a PMC | 00:19 | |
| Whiteknight | never really used any of the new lamda stuff, "dynamic" type stuff, functional stuff, etc | ||
| jonathan | Whiteknight: Ah, I only started enjoying C# when the lambdas arrived. ;-) | ||
| treed | So, properties are meant for in-Parrot, and attributes are meant for in-HLL? | ||
| Or properties aren't for classes? | |||
| jonathan | Properties can be set on any PMC. | 00:20 | |
| treed | I got that, but if you add a property to a class, do the objects made from it have that property? | ||
| Whiteknight | Originally I had been doing all my development in .NET 2.0 for compatibility | ||
| treed | Or is that what attributes are for? | ||
| jonathan | That's attributes. | ||
| treed | Okay. | ||
| Whiteknight | my manager refused to update her computer for like two years, so I couldn't use new stuff | ||
| treed | so properties are only on the PMC you add them to | 00:21 | |
| Thanks. | |||
| jonathan | treed: Correct. | ||
| They're good for storing extra little bits of data against a PMC. | |||
| treed | And is the intention with attributes that they're directly HLL-accessible, or that you can use them for meta-stuff, and have just one hash in there for instance variables? | ||
| Or is that really just up to me? | 00:22 | ||
| (Although I'd expect the decision would have some impact on HLL-interop.) | |||
| jonathan | Up to you, but probably you should be able to build your HLL's support for attributes directly on top of getattribute and setattribute. | ||
| And yes, HLL-interop may get fun if you don't. | |||
| treed | Although with Ruby, attributes aren't meant to be directly accessible outside the class. | 00:23 | |
|
00:24
MikHel joined
|
|||
| jonathan | treed: Same in Perl 6. | 00:25 | |
| treed | Ah, that'll make it better for HLL-interop, I hope. | ||
| jonathan | treed: We enforce that in the compiler. | ||
| treed | I expect there'll be games to be played between languages that differ on that point. | ||
| jonathan | Well, to be more accurate, the language just doesn't have syntax for getting at an attribute outside of the class. | 00:26 | |
| Yes, I'm sure there will. ;-) | |||
| treed | Yeah, same with ruby. | ||
| You need to have accessor methods. | |||
| For which there are convenience methods. | |||
| so attr_reader :variable | |||
| Will generate .variable | 00:27 | ||
| but not .variable= | |||
| jonathan | In Perl 6 | ||
| has $!foo # just an attr | |||
| has $.foo # attr + readonly accessor | |||
| has $.foo is rw # attr + lvalue accessor | 00:28 | ||
| treed | huh. | ||
| Interesting. | |||
| jonathan | Yeah | ||
| Well | |||
| treed | attr_accessor is the rw one, IIRC | ||
| jonathan | If you write accessors so often, why make it long? :-) | ||
| treed | I think there's also attr_writer | ||
| To make it readable? :-P (Classic Perl vs Others thing there) | |||
| that's one of those things that's not easily determinable unless you know what you're looking at | 00:29 | ||
| other than the "is rw" | |||
| But I'd never have guessed the difference between ! and . | |||
| Reminds me of my first time trying to modify Perl. | |||
| jonathan | Oh sure, but I'd never have guessed the difference between pisat and pistat in Slovak before I learend the language. ;-) | ||
| treed | Spent quite some time trying to figure out what was setting these $1 $2 variables. | ||
| treed has been doing Sanskrit lately, so can relate. | 00:30 | ||
| I'm honestly still a little ambivalent about side-effect variable setting, but they are handy. | |||
| jonathan | I agree that things like this generally do mean that you actually *have to* sit down and learn Perl though. | 00:31 | |
| Whiteknight | you're pistat slovak? | ||
| jonathan | Rather than being able to guess your way through it. | ||
| treed | Yeah. | ||
| jonathan | Whiteknight: lol | ||
| Whiteknight can make bad puns in any language | |||
| treed | I place a fair amount of value on being able to glork a new language. | ||
| treed has had to modify things on the fly too often. | |||
| jonathan | Whiteknight: pistat actually *is* the verb "to piss" :-D | ||
| treed | Every time I try to learn Perl from a book, I get bored. | 00:32 | |
| jonathan | Whiteknight: Which is why you don't want to confuse it with pisat, which is "to write" :-) | ||
| treed | Heh. | ||
| Whiteknight | oh yes, I can imagine confusing those two would lead to some very unhappy readers | ||
| treed | I accidently coined a word once while doing Esperanto. | ||
| jonathan | That's always fun. | ||
| treed | Was supposed to tranlate "She runs" and I said kunas instead of kuras. | ||
| Whiteknight | treed: trying to learn perl by reading idiomatic source code will make you bored AND confused | 00:33 | |
| treed | Which my tutor-person translated as "to be with" as in "to have sex" | ||
| ("kun" is the word for "with") | |||
| jonathan | lol! | ||
| Language learning is so fun. | |||
| chromatic | jonathan, can you write in the snow in Slovak? | 00:34 | |
| treed | Fortunately it was via e-mail, so I didn't have to be embarassed face-to-face. | ||
| jonathan nearly sprays beer on his keyboard | |||
| Thanks for that one, chromatic. :-) | |||
| Actually the *most* embarassing one I managed to do so far in Slovak is accidentally saying that I was gay. | 00:35 | ||
| treed | Wow. | ||
| jonathan | Yeah | ||
| Whiteknight | who did you tell that gem to? | ||
| treed | Was it in a context where you could be believed about that? | ||
| jonathan | It was all to easy to do | ||
| In English, if somebody comments on how the weather is hot, saying "Yeah, I'm warm" is perfectly OK. | 00:36 | ||
| Whiteknight | let me guess, "I'm Gay" == "pisgat"? | ||
| jonathan | If you translate "I'm warm" literally to Slovak (which you often can do, e.g. "I'm tired" works that way), you get something which is the most common slang way of saying "I'm gay". :-) | 00:37 | |
| You actually need to say something more like "To me it's warm" | |||
|
00:37
whoppix joined
|
|||
| jonathan | I totally didn't see that one coming though. | 00:37 | |
| I can't remember who I said that one too first. | 00:38 | ||
| *to | |||
| Whiteknight | yeah slang can be a funny thing | ||
| jonathan | I'm pretty sure I didn't say it to anyone else again though. :-) | ||
| Whiteknight | like in english, saying "I program Cobol" is slang for "I'm retarded" | ||
| jonathan | s/program/created/ | ||
| Whiteknight | whichever | 00:39 | |
| purl | MAKE A DECISION | ||
| jonathan | I occasionally have the misfortune to look after some legacy codebase in ASP / VBScript. | ||
| treed | Damn, purl, calm down. | ||
| Whiteknight | capslock is cruise control for awesome | ||
| jonathan | That's a load of bull. | ||
| ;-) | |||
| treed doesn't even have a capslock. | |||
| vim++ | 00:40 | ||
| It's annoying when I'm on other systems though. | |||
| I end up accidenttly capslocking when I mean to escape. | |||
| jonathan | I claim that I'm not retarted though, because I asked the person who gave me this task to never, ever give me anything involving VBScript to work on again... | ||
| Whiteknight | I've had to translate programs from all sorts of languages into C# | ||
| rg1 | you put your capslock to be escape? i put it to control like on sun keyboards ;) | 00:41 | |
| treed | My poor girlfriend does GIS, and the main program for that allows extensions in VBA and Python. | ||
|
00:41
beta joined
|
|||
| Whiteknight | VB 5.0, ASP, very-poorly-written-C++, very-poorly-written-TCL | 00:41 | |
| treed | But the Python is only for scripting background stuff. | ||
| If you want to modify the UI, it has to be VBA. | |||
| jonathan | Whiteknight: In theory, over time we're meant to be migrating this thing to C#. | ||
| treed | rg: Yeah. I might have done that if I were into emacs. | ||
| But having escape there is very handy for using vim. | |||
| Whiteknight | I like C# a lot. I think it's a pretty great language | ||
| jonathan | Whiteknight: In reality, we are still adding new features to a 3,000+ line ASP file that nobody really understands the control flow of. Somehow. | 00:42 | |
| Whiteknight | wow, that's not very big at all to not understand it | 00:43 | |
| jonathan | C# - yes, I didn't like 1.0, but then it started getting better. | ||
| Whiteknight | but then again, it is ASP | ||
| yeah, C# 1.0 was just a lousy Java ripoff | |||
| jonathan | Whiteknight: You might be assuming that whoever initially wrote it knew functions existed? ;-) | ||
| Whiteknight | ouch | ||
| treed | Is <ident> a rule you get for free or something? | ||
| treed can't find it in his parser.pg | |||
| jonathan | treed: Yeah | 00:44 | |
| Whiteknight | yeah, <ident> is builtin | ||
| treed | Where can I see the definition? | ||
| jonathan | Whiteknight: To be fair, real old dialects of BASIC lacked them. ;-) | ||
| treed: Maybe in PCT::Grammar is the first place to check. | |||
| Whiteknight | yeah, one of my first programs was a Zelda knock-off written in GW-BASIC | ||
| jonathan | treed: Beyond that, it may be in PGE itself. | 00:45 | |
| treed: But grammars are just classes, so if it's doing the Wrong Thing you can always just re-define it rather than inherting the one that's already there. :-) | 00:46 | ||
| treed | I just wanted to know the definition. | 00:47 | |
| I'm actually trying to find a definition for what can go into a ruby method name or class name. | |||
| I figured that'd be in my grammar. | 00:48 | ||
| But if it's inherited, it may not be correct anyway. | |||
| jonathan | treed: I think it's along the lines of | ||
| First character must be alphabetic | |||
| And then \\w+ | |||
| I'd write [A-Za-z]\\w* | |||
| But actually I think it's smart about unicode too. | 00:49 | ||
| treed | I know with ruby you can have ! or ? at the end (and only the end) of a method name | ||
| But not a variable. | |||
| jonathan | So if you're implementing a language that can't take unicode variable names, you may need to re-define it. | ||
| treed | I see a lot of discussion about the first char of a varname. | 00:50 | |
| Looks like in Ruby it has to be either Alpha or _. | |||
| treed is trying to figure out a good sigil to use for the metaclass. | |||
| ! looks like it may be it. | |||
| Since that can only appear at the end of a method name, and in no variables. | |||
| jonathan | Sounds workable. | 00:52 | |
| treed | another option maybe simple "meta" | 00:53 | |
| Since class/module names must start with a capital. | |||
| And I don't think anything else would have a namespace. | |||
| jonathan | Aye | 00:54 | |
| Sounds like you have more than one workable option. | 00:55 | ||
| treed | Yeah. | 00:56 | |
| I think I like 'meta'. | |||
| Whiteknight | the hard part is in choosing between several equally workable solutions | 00:59 | |
| jonathan | It's easier than choosing between no workable solutions. ;-) | 01:01 | |
| treed | meta_cls = newclass ['Class';'meta'] | 01:03 | |
| Is that a reasonable way to call newclass? | |||
| (Similarly for get_class) | 01:04 | ||
| Or do I need to get the namespace first? | |||
| jonathan | I think that's OK. | ||
| treed | newclass(out PMC, in PMC) | 01:05 | |
| Create a new Parrot-style class, with the name given in $2 as a key, namespace, or string PMC. | |||
| treed isn't ever quite sure with those things. | |||
| That is a key, right? | |||
| jonathan | Correct | 01:06 | |
| treed | k | ||
| treed for some reason saw "I don't think that's OK." | |||
| treed carries on. | |||
| It's very weird to be writing a class for Class. | 01:14 | ||
| jonathan | treed: Oh, welcome to the world of meta-circularity. | 01:15 | |
| Quite a brainf**k. | |||
| treed | Indeed. | ||
| The best part is that I also have to deal with the metaclass of Class. | 01:16 | ||
| Which is itself a class. | |||
| jonathan | Right, that's the meta-circularity part. ;-) | ||
|
01:17
japhb joined
|
|||
| cotto | Halifax is in Nova Scotia, which is in Canada, which is on Earth, which is in Canada. | 01:17 | |
| jonathan | eh? | ||
| cotto | jonathan, www.youtube.com/watch?v=oz88kJSdT6Y | ||
| treed | I find myself wanting to use Class.new to define the metaclass. | ||
|
01:28
mokurai left
|
|||
| treed | Then I get to square this all away with dealing with the reality that a parrot class is not a Class. | 01:43 | |
| And what, then, is the equivilent of get_class for cardinal Classes? | 01:44 | ||
| I guess I can store a global hash or something. | |||
| Or something in the metaclass. | |||
| I may also need to do the declarations for Object, Module, and Class all at once, and do their methods separately. | 01:52 | ||
| jonathan | oh noes, it's 4am! | ||
| dalek | rrot: r40685 | dukeleto++ | trunk/t/op/arithmetics.t: [cage] De-backslashitis a rounding test by using a non-interpolating heredoc. coke++ |
||
| treed | You still other-timezoners. | ||
| treed | It's only 17 here. | ||
| er | |||
| 19 | |||
| s/still/silly/ | 01:53 | ||
| jonathan -> sleep | |||
| treed | Unsure how that happened. | ||
| jonathan | lol | ||
| treed | night! | ||
| jonathan | yeah, you've no excuse if it's still yesterday ;-) | ||
| night! | |||
| treed | My head hurts from metaprogramming metaclasses. :-P | ||
| That's my excuse. | |||
| ttbot | Parrot trunk/ r40685 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/75069.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 01:58 | |
|
02:04
jan joined
|
|||
| dalek | kudo: ae56d02 | (Kyle Hasselbacher)++ | docs/release_guide.pod: [release_guide] a paragraph on getting spectest statistics |
02:08 | |
|
02:22
theory joined
02:35
janus joined
02:52
protorom joined
02:54
protorom joined
03:08
TiMBuS joined
03:09
dukeleto joined
|
|||
| mikehh | testr FAIL, all others PASS (pre/post-config, smoke, nqp_test, fulltest) at r40685 - Ubuntu 9.04 amd64 (gcc) | 03:25 | |
|
03:26
japhb joined
|
|||
| mikehh | t/dynpmc/foo.t - Failed tests: 6-7 in testr - segmentation fault in each case (as part of fulltest) | 03:26 | |
| rakudo (ae56d02) builds on parrot r40685 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 | 03:29 | ||
|
03:38
theory joined
03:40
Andy joined
03:49
Khisanth joined
|
|||
| dalek | TT #939 created by mikehh++: t/dynpmc/foo.t FAILs testr with Segmentation fault | 03:51 | |
| mikehh | parrot r40685 fails to build with g++ | 03:56 | |
| src/pmc/nci.pmc: In function āINTVAL (* build_func(parrot_interp_t*, PMC*, Parrot_NCI_attributes*))(parrot_interp_t*, PMC*)ā: | |||
| src/pmc/nci.pmc:120: error: invalid conversion from āvoid*ā to āINTVAL (*)(parrot_interp_t*, PMC*)ā | 03:57 | ||
| make: *** [src/pmc/nci.o] Error 1 | |||
| it builds with gcc | |||
| cotto | mikehh, I'll look at that. | 03:58 | |
| mikehh | cotto: which? | ||
| purl | which is the complicated bit of the equation | ||
| cotto | g++ | 04:00 | |
| or not. I'm not sure how to fix that. | 04:03 | ||
| mikehh | me neither | 04:04 | |
| I think I got something similar when I was trying to build decnum-dynpmcs with g++ - it built ok with gcc | 04:07 | ||
| Coke thanks the parrot community for not, in general, getting all pissed off on the mailing list. | 04:10 | ||
| cotto | Coke, should we be? | 04:11 | |
| ;) | |||
| Coke | I had joined the spamassassin lists, thinking I might contribute there (looked like some low hanging perl fruit.) the users list just got rude. | 04:14 | |
| mikehh | far too many places like that - fortunately our community doesn't seem to have that problem | 04:20 | |
| cotto | except purl | 04:21 | |
| mikehh | partcl r605 builds on parrot r40685 - make test same 6 tests FAIL but pass all subtests | 04:22 | |
| 5 of the tests report current instr.: '_main' pc 340 (src/tclsh.pir:166), but not t/cmd_lsort.t | 04:23 | ||
|
04:24
cotto joined
|
|||
| treed | Yeah, the Parrot community is pretty friendly. | 04:25 | |
| mikehh | I think NotFound should be able to help with the g++ problem | 04:26 | |
| cotto | I guess all the cantankerous people got bored and left during Parrot's long history. | 04:35 | |
| treed | I think I may have finally wrapped my brain around the metaclass thing. | 04:42 | |
| But I haven't touched eigenclasses yet, either. | 04:43 | ||
| cotto | That's an accomplishment. | 04:46 | |
| the metaness is disorienting | |||
| treed | I managed it by commenting my way through it, to keep track of what I was doing. | 04:47 | |
| gist.github.com/171674 | 04:48 | ||
| Should be a pretty complete implementation of Ruby's Class. | |||
| (Of course, much of the classy stuff is actually in Module, which I haven't really touched yet.) | |||
| The function that creates the Object, Module, and Class classes uses 14 locals, which I think is the most I've ever used. | 04:49 | ||
| Thank goodnees we have 32 registers. | 04:50 | ||
|
04:50
japhb joined
|
|||
| treed | I suppose I oughtta POD that file up. | 04:51 | |
| treed should actually learn POD syntax. | |||
| dukeleto | treed++ | 04:53 | |
| should "$P1 = new 'Complex' \\n $P1 = 'NaN' " be valid ? currently that barfs with "Complex: malformed string" | 04:54 | ||
| treed | I assume that's Perl6? | ||
| treed would have implemented NaN as an hll_global singleton. | 04:55 | ||
| cotto | Is it possible to use a sub as an exception handler in the same way a label can be used? | 04:56 | |
| treed wouldn't think so, but would mostly be talking out of his ass if he said so. | 04:57 | ||
| bacek_at_work | cotto: it's deprecated | ||
| cotto | bacek_at_work, is there an example of how to do it? I sounds like it'd be a good demonstration of unusual control flow. | 04:58 | |
| TiMBuS | last time i tried to use a sub as a handler it just crashed and burned =/ | 04:59 | |
| it was a while ago, can't remember the specifics, but i remember i switched to labels pretty fast after trying | 05:00 | ||
| cotto | I'll just do it with labels then. | 05:01 | |
| bacek_at_work | cotto: trac.parrot.org/parrot/ticket/218#comment:18 | ||
| dukeleto | treed: that is parrot. I used a "\\n" to mean a new line between those statements. see trac.parrot.org/parrot/ticket/358 | 05:16 | |
|
05:19
mokurai joined
|
|||
| dukeleto | treed: the idea of NaN being a singleton is interesting | 05:21 | |
| treed | dukeleto: Ah. | 05:32 | |
| In Ruby, true, false, and nil are all singletons. | 05:33 | ||
| They're also the only exception to the usual requirement for global names. | |||
| (Which otherwise must begin with a capitalized letter.) | |||
|
05:38
beta joined
05:41
szabgab joined
05:48
michel joined
|
|||
| dukeleto | treed: does ruby have any idea of a signallying NaN? That is, a NaN that throws an exception when used or generated? | 05:53 | |
|
06:02
uniejo joined
|
|||
| treed | There's no NaN singleton, but I believe there's an exception for it. | 06:04 | |
| Just a sec. | |||
| In the meantime, is this permitted use of $S0: | |||
| $P0 = self.$S0(args) | |||
| FloatDomainError? | 06:05 | ||
| ZeroDivisionError is available for that case | |||
| dukeleto | treed: seems that it would be too much going on in one line for PIR | ||
| treed | How else would you call that method? | 06:06 | |
| I know you can use a variable there. | |||
| treed is trying to think of a case besides division by zero that would lead to NaN. | 06:07 | ||
| dukeleto | treed: there are a lot of cases | ||
| treed | I guess I could assign it to a string variable. | ||
| dukeleto: Well, give me one and I'll test it to see what exception is thrown. | |||
| dukeleto | treed: arcsin(2) is either a complex number or a NaN, depending on your language | 06:08 | |
|
06:08
mikehh_ joined
|
|||
| treed | irb(main):004:0> Math.asin(2) | 06:09 | |
| Errno::EDOM: Numerical argument out of domain - asin | |||
| I think Ruby 1.9 returns a Complex. | |||
| Nope, same result. | 06:10 | ||
| dukeleto | treed: I am toying with the idea of having a function to call which will turn a NaN into a signaling NaN in a lexical context | ||
| treed | signaling == throwing an exception? | ||
| dukeleto | so you could say "make a NaN throw an exception in this .sub, but not over here" | ||
| treed | Seems vaguely reasonable. | ||
| dukeleto | treed: basically | ||
| treed | I'd just make it always throw an exception and you catch if it you want. | 06:11 | |
| But I don't claim to know Perl. | |||
| 6 or anything before it. | |||
| So your solution may be more reasonably for Perl. | |||
| dalek | rrot: r40686 | NotFound++ | trunk/src/pmc/nci.pmc: [cage] fix c++ build |
06:16 | |
| NotFound | Someone called me? ;) | ||
| moritz | ... but did not find you? ;-) | 06:17 | |
| treed | Is there a way to get a list of all the attributes of an object? | ||
| moritz | rakudo implements that, you might look for prior art there | 06:18 | |
| or ask jonathan when he wakes up ;-) | 06:19 | ||
| ttbot | Parrot trunk/ r40686 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/75133.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 06:20 | |
| dukeleto | todo tests are a pain in PIR | 06:33 | |
| but perhaps that motivates me to fix the issue instead of jumping through hoops to write todo tests in PIR | 06:34 | ||
|
06:35
chromatic joined
|
|||
| dalek | ose: r98 | Austin++ | trunk/ (16 files): Scopes resolved. Need to reorganize tree during declarator handling. |
06:42 | |
|
06:58
HG` joined
07:07
mokurai left
|
|||
| dalek | rrot: r40687 | NotFound++ | trunk/src/pmc/filehandle.pmc: [cage] don't assume that PIOHANDLE is an INTVAL |
07:50 | |
| cotto | chromatic, I'm trying to make a list of weird things Parrot does with control flow. | 07:55 | |
| I've got coroutines, exception handlers, methods and tailcalls. What others can you think of? | |||
| ttbot | Parrot trunk/ r40687 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/75195.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 07:56 | |
| cotto | also, pir-level VTABLE functions | 08:02 | |
| chromatic | :init | 08:04 | |
| :onload | |||
|
08:05
payload joined
|
|||
| cotto | good ones | 08:05 | |
| purl | good ones are always gone by the time i make it in. | ||
| chromatic | I think that covers it. | ||
| dalek | TT #940 created by fperrad++: miniparrot segfaults on Windows | ||
| cotto | Hmmm. My randomly written code generated "42". | 08:09 | |
| I'll keep it. | |||
|
08:23
payload left
|
|||
| cotto | chromatic, what would you do to make the profiling runcore easy to test? | 08:23 | |
| chromatic | Let's make example PIR of each type of control flow we expect to go weird and figure out what kind of markers in the output we expect to see. | 08:24 | |
| cotto | Ok. I've been making examples and checking how they break stuff. | 08:25 | |
| apparently contexts can be reused between methods in the same ns, although not always | |||
|
08:26
dukeleto joined
|
|||
| dalek | rrot: r40688 | cotto++ | branches/pluggable_runcore (2 files): [profiling] make profiling probably somewhat less broken by looking at CONTEXT(interp) instead of specific instructions |
08:27 | |
|
08:30
payload joined
|
|||
| mikehh | testr FAIL, all others PASS (pre/post-config, smoke, nqp_test, fulltest) at r40686 - Ubuntu 9.04 amd64 (g++) | 08:33 | |
| see TT #939 for test failure | 08:34 | ||
| dukeleto | treed: sin(Inf) is another good one | 08:50 | |
| moritz | sin(Inf) == NaN where { -1 <= $_ <= 1 }; # ;-) | 08:51 | |
| cotto | If you cast NaN to a long, does it become NaaN? | 08:53 | |
| chromatic | long int or long float? | 08:55 | |
| The latter becomes FLaN | |||
| dukeleto | cotto: which language are you talking about? or are you trolling me? | 08:56 | |
| chromatic: don't feed the trolls | |||
| chromatic | They can have my FLaN; I don't want it. | ||
| Why so much recalculation in build_attrib_index in the Class PMC? | 08:57 | ||
| dukeleto | moritz: you are correct | ||
| chromatic | If it's an instance of Class, why not clone its parent's attrib_index and cache (in a single inheritance situation), then add any new elements? | 08:58 | |
| dalek | kudo: c06ba3a | moritz++ | docs/release_guide.pod: [docs] small udapte to release_guide.pod, mentioning tools/test_summary.pl |
09:02 | |
| rrot: r40689 | NotFound++ | trunk/include/parrot/gc_api.h: Disable fixed size allocator on windows, TT #940 |
09:08 | ||
| mikehh | t/dynpmc/foo.t just failed testg (test 7) as well as test 6 & 7 in testr at r40688 | 09:09 | |
| let me do a clean checkout and test again | 09:10 | ||
| dalek | rrot: r40690 | dukeleto++ | trunk/t/op/arithmetics.t: [t] Add more tests for NaN/Inf behavior |
09:11 | |
| mikehh | rakudo (ae56d02) builds on parrot r40688 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 | 09:12 | |
|
09:15
MoC joined
09:29
masak joined
09:31
szabgab joined
09:37
flh joined
|
|||
| dalek | rrot: r40691 | mikehh++ | trunk/include/parrot/gc_api.h: fix codetest failure - indent preprocessor directives |
10:19 | |
|
10:21
szabgab joined
|
|||
| mikehh | rakudo (c06ba3a) builds on parrot r40691 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 | 10:36 | |
| jonathan | treed: see the inspect opcode. e.g. $P0 = inspect class, 'attributes' should get you a list of the class' attributes. | 10:47 | |
|
11:56
Taulmarill joined
|
|||
| dalek | kudo: f39e739 | moritz++ | src/parser/ (2 files): parse ** (HyperWhatever) |
11:59 | |
|
12:25
payload joined
|
|||
| dalek | kudo: 527cb8f | moritz++ | src/setting/NYI.pm: NYI-message for cat($) |
12:28 | |
|
12:29
quek joined,
AndyA joined
12:38
payload joined
|
|||
| Coke has a segfault in partcl's make test. grumble. | 12:55 | ||
| and, better, it goes away with -G! | |||
| mikehh | docs on www.parrot.org are still 1.4 | 13:27 | |
|
13:30
bkuhn joined
|
|||
| Coke | I am NOT the spof. | 13:32 | |
| however, I'll fix that. moment. | |||
| fixed. | 13:39 | ||
|
14:22
quek left
|
|||
| Coke | quiet today. | 14:29 | |
|
14:30
Psyche^ joined
14:33
ruoso joined
|
|||
| mikehh | it one of those TGIF days | 14:39 | |
| partcl builds on parrot r40691 - make test same 6 failures but all subtests pass | 14:46 | ||
| all failing tests have attempt to access code outside of current code segment and 5 also display current instr.: '_main' pc 340 (src/tclsh.pir:166) - but not t/cmd_lsort.t | 14:49 | ||
| Files=74, Tests=1319, 142 wallclock secs ( 0.55 usr 0.16 sys + 128.05 cusr 5.24 csys = 134.00 CPU) | 14:51 | ||
| Coke | mikehh: huh. I am getting a failure in t/tcl_namespace.t (that's my segfault) | 14:53 | |
| can you try running .../parrot --gc-debug t/tcl_namespace.t ? | |||
| er. | |||
| can you try running .../parrot --gc-debug tcl.pbc t/tcl_namespace.t ? | |||
|
14:56
TiMBuS joined
|
|||
| mikehh | Coke: all ok I am on Ubuntu 9.04 amd64 - installed parrot r40691 built with g++ | 14:58 | |
| it got the same results at r40685 with gcc | 15:01 | ||
|
15:03
theory joined
|
|||
| Coke | k | 15:08 | |
| guess I should bisect to find it, but what a PITA. =-) | |||
| (bisecting parrot to test partcl) | |||
| ... will do so after $DAYJOB | 15:09 | ||
| Tene | you can just write a script that builds partcl and runs the test and pass that script to bisect and let it run. | ||
| Coke | Tene: true. it'd be faster if I conned someone else into doing it, though. =-) | 15:10 | |
| Infinoid | I've got an idea. You could write a CPAN module that takes a script that builds partcl and runs the test... :) | 15:11 | |
| Coke | Infinoid: I need to delete that module. | ||
| Infinoid | Why? It has a purpose. | 15:12 | |
| Coke | well, first, I'd give you a patch to yours... | ||
| (basically, support 'git bisect run') | |||
| Infinoid | Oh, neat. I didn't know that existed. | 15:13 | |
| Coke | or I could just trick you into supporting it yourself... | ||
| Tene | echo -e '#!/bin/bash\\nmake realclean; perl Configure.pl --prefix=$HOME/parrot && make && make install install-dev\\npushd ~/src/partcl\\nmake realclean ; OMGBUILD; ./tcl t/something/whatever.t; return $?' > /tmp/test_partcl.sh | ||
| s/return/exit/ | 15:14 | ||
| Coke | but yah, yours is better than mine; I'm lazily waiting for Iterator to get fixed. | ||
| Tene | then git bisect run /tmp/test_partcl.sh | ||
|
15:14
Andy joined
|
|||
| Infinoid | Eh, just different, not better. Yours is perfect for this task | 15:14 | |
| Coke | Tene: ok, ok, I'll do it. =-) | 15:15 | |
| Tene | Coke: I'd do it, but my laptop is already having heat problems. My misbehaving VOIP client is using an entire core for itself. | 15:16 | |
|
15:16
Andy joined
15:18
whoppix joined
|
|||
| mikehh | weird - I just got an email from parrot-commits for r40690 - 4 hours after the one for r40691 (I think it might have somethinf to do with git-svn users) | 15:27 | |
| Coke | could have been stuck in a queue somewhere, no worries. | ||
| well, crud, now I can't duplicate the error in HEAD. | 15:28 | ||
| mikehh | yeah - but I still think that it has something to do with git-svn :-} | 15:29 | |
| Infinoid | mikehh: git-svn users shouldn't cause out of order commits on the svn side (the svn server assigns those) | ||
| mikehh | it's not the commits - it sending to the mailing list | 15:30 | |
| Infinoid | okay. how is that git-svn's fault? :) | 15:31 | |
| mikehh | I usually get stuff from the mailing list before dalek reports it here | ||
| Infinoid | which seems reasonable, as dalek only polls the rss once every 5 minutes or so | ||
| Coke | yup. but no guarantees on mail delivery order. I remember being very annoyed by this in the past, but have since gotten over it. | ||
| mikehh | don't know but nearly all the ones that have been delayed are from people using git-svn - not the commits but getting to the mailing list | 15:32 | |
| Infinoid | that's probably just because we have a high concentration of prolific git-svn users. :) | 15:33 | |
| mikehh | perhaps :} | ||
| Infinoid | (and deadbeat git-svn users, like me) | ||
| Tene | It could be because if you have several commits queued up, and send them all at once, it would send mails all at once, maybe triggering some kind of rate-limiting? | ||
| Coke | bah. I need a benchmark that doesn't take 2 hours to run. | 15:34 | |
| dukeleto | coke: benchmark which language? | 15:35 | |
| Coke | partcl. | ||
| The "easiest" way I have right now to see if we're running faster is run the full spec test. | |||
| (as that records the total time of the suite.) | |||
| mikehh | BTW did anyone sort out the svn properties problem with git-svn - moritz mentioned something about a script on the server | 15:38 | |
| dalek | kudo: 6fe1764 | jnthn++ | src/setting/traits.pm: Re-write some trait_mods for how I want them to look. Breaks stuff, but that's fine - it's a branch. |
15:46 | |
| kudo: fd812be | jnthn++ | src/classes/ (2 files): Get first cut of attribute trait application in place. |
|||
| kudo: 94f4c8d | jnthn++ | src/ (6 files): Get traits on variables working more along the lines of the way discussed on #perl6 (spec will want tweaks). We now invoke the trait with a ContainerDeclarand object, which contains various information about the declaration. At the moment, we ain't applying the tratis only once ever - that will come in the future lexicals refactor. |
|||
| kudo: 20b0d77 | jnthn++ | src/setting/Temporal.pm: Temporal.pm used lexical subset types as type constraints. Due to the lexicals plus classes visibility bugs, this doesn't work - we got away with it silently failing before, but not now. So make them package scoped until we fix the lexical issues. |
|||
| kudo: 5627efa | jnthn++ | src/ (3 files): Remove special-case code for handling typed attributes and just emit a call to trait_mod:<of>, like we do with variables, passing an AttributeDeclarand instead of a ContainerDeclarand. |
|||
| kudo: b545108 | jnthn++ | src/setting/Temporal.pm: Can't just make those subtypes non-lexical in Temporal or they leak out and break spectest; just comment out the type annotations instead. |
|||
| kudo: 44ab31b | jnthn++ | src/ (2 files): Couple of other fixes/tweaks. |
|||
|
15:48
bacek joined
|
|||
| dalek | kudo: 59cb023 | jnthn++ | src/parser/actions.pm: Fix //=, ||= and &&= to only evaluate the LHS once. Fixes various quirks, including a failure exposed by recent refactors as a result of the double-evanluation. |
15:52 | |
| TT #803 closed by pmichaud++: PCT emits bogus code for getattribute on named register variable | 15:53 | ||
|
15:54
rdice joined
|
|||
| Coke wishes he could do "make test && git commit -a" | 16:00 | ||
| davidfetter | well, you *can* do that | 16:03 | |
| it's just a question of having that take effect where you want it do | |||
| isn't there some git->svn bridge? | |||
| davidfetter pretty much with linus on the svn issue :P | 16:04 | ||
| Coke | davidfetter: given that 'make test' in partcl /always fails/, no, I can't. =-) | 16:06 | |
| davidfetter | heh | ||
| Coke | rt.perl.org/rt3//Public/Bug/Display...l?id=57088 | ||
| davidfetter | well, you *can* do it. it just wouldn't do exactly what you want | ||
| Coke | yes I can. It would just be entirely unuseful. Thanks! | 16:07 | |
| davidfetter | sry | 16:10 | |
|
16:10
jan joined
|
|||
| davidfetter | how hard would it be to fix partcl? | 16:11 | |
| Coke | it's a parrot bug. | 16:12 | |
| rt.perl.org/rt3//Public/Bug/Display...l?id=57088 | |||
| all the tests in the .t pass, but then it dies with an error message, so you get "all tests pass" but "make test" fails. | 16:13 | ||
| l3t0 | coke: an exit code issue ? | 16:20 | |
| Coke | l3t0: no. | ||
| the exit code correctly reflects the incorrect death. | |||
| dalek | kudo: 99f4e45 | jnthn++ | t/spectest.data: Add S14-traits/attributes.t and S14-traits/varialbes.t to spectest.data. |
16:23 | |
| mikehh | how do you run an individual test on a given runcore? It has slipped my mind (what there is of it :-}) | 16:25 | |
| Coke | for PIR tests, just use --runcore on parrot and invoke the test manually. for perl tests... I'd have to check t/harness. | 16:28 | |
| probably an option to the harness script. | |||
| treed | jonathan: Ah, thanks. I saw that opcode, but nothing defining what you could request out of it. | 16:29 | |
| jonathan | treed: Well, it various depending on the PMC you are requesting stuff from. | 16:30 | |
| treed: The PMCs themselves (should) document what you can ask for. | |||
| erm, it varies | |||
| treed | But wouldn't every PMC have attributes? | 16:31 | |
| jonathan | Well, yes and no. :-) | ||
| I'm not sure PMCs in general have their (C-level) attributes as introspectable. | 16:32 | ||
| treed | Was it determined that there's still no way to call a superclass's method? | 16:33 | |
| pmichaud | one can call a superclass method no problem -- the tricky part is locating the method | 16:35 | |
| treed | But nothing simple like Ruby's "super" function? | ||
| pmichaud | there's not anything simple built-in, no. But classes aren't also "simple" | 16:37 | |
| a class could have multiple parents, in which case "super" isn't always sufficient | |||
| treed | Oh. | ||
| In Ruby that's not the case. | |||
| Ruby only has single inheritance. | |||
| pmichaud | right. | 16:38 | |
| treed | (Although I have to fudge things somewhat for things like Array, which has to be both an Object and an RPA. | ||
|
16:46
mokurai joined
|
|||
| dalek | kudo: ef035f4 | jnthn++ | perl6.pir: Check for when we have missing dynexts at startup and emit a nice error message. |
16:53 | |
| mikehh | What is the parrot option to use the same runcore as testr as in -R switch for testS | 17:11 | |
| t/dynpmc is failing testr on my system, it passes all the other runcores, if I run perl t/harness -r t/dynpmc/foo.t it fails test 6 & 7 | 17:24 | ||
|
17:26
chromatic joined,
delta joined
|
|||
| mikehh | if I run ./parrot -R <whatever> t/dynpmc/foo_6.pir it passes for slow|fast|cgoto|bounds|cgp|switch - I am on amd64 so no jit | 17:28 | |
| cotto | mikehh, it looks like -r compiles to bytecode and runs the bytecode | 17:37 | |
| mikehh | how the heck do you test that | 17:39 | |
| chromatic | ./parrot -o foo_6.pbc t/dynpmc/foo_6.pir; ./parrot foo_6.pbc | 17:42 | |
| delta | anyone looking at the coverity defects? Is there a workflow? I was recently at coverity and thought I might be able to help out. | 17:45 | |
| delta delta | |||
| chromatic | A few people look at them off and on, but there's no master plan. | 17:46 | |
| mikehh | running ./parrot -t t/dynpmc.foo_6.pbc (&7) gets Segmentation fault (1-5,8,9) don't | 17:48 | |
| delta | I also write plans! | ||
| (but I don't do IM much :)) | |||
| dalek | kudo: 0a5b07e | jnthn++ | src/ (2 files): Fix up add_method on the metaclass to be more inline with the HOW API proposed by smop. |
17:52 | |
| Coke | chromatic: I wouldn't see a problem with giving an eager person access to poke at the coverity buglist, even if they didn't have a parrot commitbit. | ||
| mikehh | foo_6.pbc -> 20 add P2, P3, P0 - P2=Undef=PMC(0x211e840) P3=Foo=PMC(0x211f590) P0=BigInt=PMC(0x211eed0: 134217727) then Segmentation fault | ||
| Coke | then we can get patches back. | ||
| mikehh | foo_7.pbc -> 18 sub P1, P3, P0 - P1=Integer=PMC(0x1e3e560: 0) P3=Foo=PMC(0x1e3e590) P0=Integer=PMC(0x1e3e530: 2) then Segmentation fault | 17:54 | |
| nopaste | "tene" at 24.10.252.130 pasted "Subclass HLLCompiler without P6object demo for treed++" (28 lines) at nopaste.snit.ch/17632 | ||
| chromatic | I don't either, but practically speaking most of those reports need *some* Parrot experience to understand. | 17:55 | |
| Coke | fair enough. | 17:56 | |
| delta | I've done triage for lots of code bases that I had no experience with. I've been flown into about 20 customer sites and trained them on triaging thier code base. It will help to have someone with experience in the code base but there are also lots of defects (like buffer overflows, obvious of by one, etc.) that can be triaged without experience. | 18:01 | |
| mikehh | almost exactly the same results from my g++ version (different addresses) | ||
|
18:01
darbelo joined
18:15
nillo joined
|
|||
| cotto | Let's go for it. Other than a few minutes to get him set up, there's not much to lose. | 18:16 | |
|
18:21
hercynium joined
18:43
allison joined
|
|||
| Coke | hey, allison, how goes the branch? =-0 | 19:02 | |
| er, =-) | |||
| allison | no work the past couple of days, been on the road and visiting my son | ||
| whois japhb | 19:03 | ||
| purl | japhb is Geoffrey Broadwell, mailto:geoff@broadwell.org | ||
| japhb | blink? | ||
| purl blinks | |||
| allison | sorry, wrong window | 19:04 | |
| japhb | bot puppetry! | ||
| allison | I'm trying to make sure I've got member access to all parrot members in the voting interface :) | ||
| japhb | allison: Ah. Yes, I tried to vote before, I couldn't log in, and I got sidetracked and forgot to follow up with you. | 19:05 | |
|
19:06
particle joined
|
|||
| Tene | anyone know how well Parrot supports subclassing Class? | 19:08 | |
| allison | japhb: makes sense. Hmmm...I don't see a japhb account in www.parrot.org... | 19:09 | |
| jonathan | Tene: Not tried that one. Rakudo has a dynpmc subclass of Object. | 19:10 | |
| japhb | allison, do I need to create one? I thought all we needed were bitcard and svn? | ||
| allison | japhb: parrot.org is yet-another system | 19:11 | |
| japhb | ETOOMANYLOGINS | 19:12 | |
| allison | japhb: but, you don't have to, you can email the paper form in instead | ||
| (it's just a convenience) | |||
| Coke | your son who is japhb? wow. =-) | ||
| allison | japhb: we don't use bitcard for parrot anymore, though rakudo and perl 5 still use it | 19:13 | |
| japhb | allison, Might as well create the account -- I'll probably need it for something else down the road. | ||
| allison, ah. | |||
| Coke, son? | 19:14 | ||
| allison | Coke: I'm sneaking in some work while my son plays SuperTux :) | ||
| japhb | Coke, oh, NM, I see the reference | ||
| allison, Should I expect the account info to arrive right away, or do you need to "moderate" it? | 19:16 | ||
| Tene | allison: do you know if it should be possible to subclass Class in parrot? | ||
| allison | japhb: added right away, but I have to grant it additional permissions | ||
| japhb | allison, got it | 19:17 | |
| allison | japhb: I've granted member access, so you should be able to vote | ||
| japhb: I'll grant posting access too | |||
| japhb | allison, thanks. As soon as the account-created email arrives ... | 19:18 | |
| allison | Tene: it should be possible (as in, designed and developed to be possible), but I don't think it's been extensively tested | ||
| Tene nods. | 19:19 | ||
| allison | Tene: if you run into problems doing it, they are officially bugs | ||
| japhb | (oh dear lord, hope this one isn't running into my MX again -- if so, the priority on changing providers is going to rise in a damn hurry) | ||
| allison | japhb: it very well could be | ||
| japhb swears mentally like a BSG cast member | |||
| dalek | rrot: r40692 | chromatic++ | trunk/examples/benchmarks/primes.pasm: [examples] Added a minor optimization to the primes.pasm benchmark to avoid one |
19:21 | |
| rrot: r40693 | chromatic++ | trunk/src/pmc/class.pmc: [PMC] Extracted cache_class_attribs() from build_attrib_index() in Class PMC to |
|||
| allison | japhb: I have admin ability to reset your password if needed to get around the email problem | 19:24 | |
| nopaste | "tene" at 24.10.252.130 pasted "failing Class subclass example for allison++" (26 lines) at nopaste.snit.ch/17634 | 19:31 | |
| allison | tene: I take it it doesn't work? | 19:33 | |
| Tene | it segfaults. | ||
| nopaste | "tene" at 24.10.252.130 pasted "backtrace for alison++" (14 lines) at nopaste.snit.ch/17635 | 19:34 | |
| Tene | The failing part of init_class_from_hash is: VTABLE_get_string(interp, self); | 19:35 | |
| allison | Tene: hmmm... you can try overriding VTABLE_get_string to return a constant string (just temporarily) | 19:36 | |
| jonathan | Tene: I maybe shoulda said that Rakudo subclases Object in C rather than PIR... | 19:37 | |
| allison | Tene: it probably means get_string isn't respecting the attribute interface appropriately | ||
| Tene | It ends up off in Object... should Classes be Objects? | ||
| allison | Classes aren't Objects | ||
| but, init_class_from_hash is only called when you instantiate a class | 19:38 | ||
| no, wait, that's not true | |||
| Tene | it's also called from name() | ||
| when you set a name for the class. | |||
| I can't find another way to associate an instantiated class with a namespace. | 19:39 | ||
| jonathan | If you subclass it in PIR, you'll end up with an Object. | ||
| allison | yes, that's correct | ||
| it's an Object that is a Class | |||
| jonathan | As in, an instance of your subclass of class with be an Object. | ||
| treed | with class Class | 19:40 | |
| treed has dealt with that a lot in the last 24 hours. | |||
| >_> | 19:41 | ||
| allison | treed: with parent class Class | ||
| Tene | and it's considered a bug that I can't subclass Class successfully from PIR? | ||
| allison | Tene: yes, but lot if it is probably the known bug of subclassing any C PMC from PIR | ||
| treed | allison: Oh? It's not an Object by virtue of being a Class? | ||
| Tene | Ah. | ||
| treed: src/pmc/object.pmc | 19:42 | ||
| allison | treed: it's an Object by virtue of being a PIR created thing | 19:43 | |
| treed | Ah. | ||
| In Ruby all Classes are Objects. | |||
| (Actually, all Classes are Modules, which are Objects.) | 19:44 | ||
| allison | the equivalent in Parrot we call PMC | 19:45 | |
| treed | Ah, so PMC != Object. | ||
| allison | PMC == object | 19:46 | |
| but, we have a special class called Object, that is only for instances of PIR-defined classes | |||
| everything that's an object in Parrot is a PMC | |||
| Tene | allison: which vague future plan is supposed to fix this, again? | ||
| allison | Tene: that one's not on the grand scheme yet, but could be | 19:47 | |
| Tene | Ah. | ||
| Speaking of vague future plans, how's the pcc branch going? | |||
| allison | visiting my son this week, so only limited time to work on it | 19:48 | |
| Tene: down to 301 failing tests | 19:49 | ||
|
20:09
jrtayloriv joined
|
|||
| Coke | allison: fyi, I can't even build the branch. | 20:12 | |
| on feather, it hangs after: | |||
| ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc | |||
| er, /in/, not after, apparently. | |||
| allison checking to make sure she doesn't have any un-committed changes | |||
| Coke | ... I just realized I can avoid a ton of runtime lookups. | 20:13 | |
| allison | nope, just the 'corevm' makefile changes | ||
| Coke: could you email me a dump of the error message? | 20:14 | ||
| Coke | no error. | ||
| it just hangs during that line. | |||
| allison | segfault? | ||
| purl | well don't DO that, then. | ||
| Coke | hangs. | ||
| allison | or, infinite loop | ||
| purl | see infinite regress | ||
| allison | (as in, it just keeps running, never returns) | ||
| what's feather running? | 20:15 | ||
| l3t0 | wow, complex.pmc is third-largest in terms of lines and still needs lots of love | ||
| l3t0 gets out his Riemann sphere | |||
| Coke | Linux feather 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686 GNU/Linux | ||
| allison | Coke: okay, good to know. If it's still doing it after I fix the remaining failing tests, I'll get you to do some more investigation (or try to get access to feather) | 20:16 | |
| Coke: the symptom is similar to some existing failing tests, so fixing those might fix it | 20:17 | ||
| japhb | Wow. This Friday is definitely becoming a Monday. Allison: yes please reset my parrot.org password, so that I can at least complete the voting task. In the mean time, I think changing MX has become the afternoon's #1 task. Okay, #2, after chocolate. :-/ | 20:28 | |
| allison | japhb: will do | ||
| japhb | allison: thank you. | 20:29 | |
| allison++ # relieving stress | |||
| dalek | TT #941 created by allison++: testing forward of new tickets to the mailing list | ||
| allison | you should be able to change the password yourself once you log in | 20:30 | |
| Tene | Thanks for the reminder. | 20:33 | |
| Tene just did the voting thing. | 20:34 | ||
| allison | Tene++ (voting) | 20:35 | |
| japhb voted too. | 20:36 | ||
| chromatic | The Class PMC's build_attrib_index ecosystem is... confusing, at best. | 20:37 | |
| Coke wonder if he can vote against himself. | 20:39 | ||
| Tene | WhiteKnight was kind of freaking out about test failures in t/pmc/complex.t on his blog | ||
| the issue is that a recent update removed a test and didn't update the test count. | |||
| japhb | Is www.parrot.org running Drupal? (I'm guessing based on links in the <head>) | 20:40 | |
| Coke | yes. | 20:41 | |
| Tene | oh, no, there's a commented test. | ||
|
20:41
joeri joined
|
|||
| japhb | The edit account page does some less than awesome things. Like allowing password change without knowing the old one, and treating timezones and time offsets as equivalent. (Which is roughly like treating languages and countries as equivalent.) | 20:43 | |
|
20:46
marius joined
|
|||
| Coke | japhb: did you get there from clicking on a link in an email to edit your passwd? | 20:51 | |
| (if so, then presumably your auth is tied to the email, not the old password.) | |||
|
20:53
payload joined
|
|||
| japhb | Coke, no, I had just logged in with my temporary password, and I confirmed that it was still bad after logging off and logging back in with new password. | 20:53 | |
| Nevertheless, it's a fundamental security error to assume that because a browser is logged in somewhere that the *owner of the account* wants to change their password. | 20:54 | ||
| Coke | mm, the only time I'd allow a change without the old password was if you were resetting a forgotten one. | ||
| (and had proven yourself otherwise temporarily) | 20:55 | ||
| japhb | Coke, right -- in which case you wouldn't allow the client to choose the new password (or display it back) | ||
|
21:09
mokurai joined
|
|||
| Coke finally thinks to install the video component for google chat on his mac. | 21:09 | ||
| mikehh | make realclean does not remove the *.pbc files in t/dynpmc | 21:24 | |
|
21:40
Whiteknight joined
|
|||
| mikehh | testr FAIL, all others PASS (pre/post-config, smoke, nqp_test, rest of fulltest) at r40693 - Ubuntu 9.04 amd64 (gcc) - see TT #939 | 21:45 | |
|
21:51
allison joined
22:05
kid51 joined
|
|||
| Whiteknight | hello #parrot | 22:05 | |
| jrtayloriv | hello | ||
| allison | queue.acm.org/detail.cfm?id=1595636 | 22:07 | |
| jonathan | allison: Hmm, looks worth a read, when my branes are in a better state. | 22:09 | |
| kid51 | allison: I like this: "no revision-control tool will suit every team: each tool comes with a complicated set of trade-offs that can be hard even to see, much less to evaluate." | ||
|
22:14
mokurai joined
|
|||
| kid51 | It's interesting that the VCS for which the author, ultimately, is an advocate is one that doesn't get much buzz in Perl/Parrot circles. | 22:15 | |
|
22:16
nillo joined
22:34
Limbic_Region joined
|
|||
| GeJ | Good morning everyone | 22:37 | |
| Whiteknight | good morning GeJ | ||
| GeJ | Hi Whiteknight. Congratulations on the release out there. | 22:39 | |
| Whiteknight | thanks! | ||
|
22:41
rg1 joined
|
|||
| mikehh | rakudo (0a5b07e) builds on parrot r40693 - make test/make spectest (up to 28048) PASS - Ubuntu 9.04 amd64 (gcc) | 22:45 | |
|
22:45
bacek joined
|
|||
| Whiteknight | allison: thanks for the link! fun article | 22:48 | |
| allison | kid51: I've heard a lot of good things about Mercurial | 22:58 | |
|
23:15
MoC joined
23:28
dukeleto joined
23:31
payload joined
23:42
jrtayloriv joined
23:44
quek joined
23:52
darbelo joined
|
|||
| darbelo | rm -rf ../ins/* | 23:54 | |
| Sorry, wrong window. | 23:55 | ||