Camelia, the Perl 6 bug

IRC log for #parrot, 2009-08-21

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 treed jonathan: That is, the Array type object is ['rakudo';'Array';'Array'] ?
00:00 jonathan treed: We get it with
00:00 treed or 'rakudo';'Array' which is also the same name as the namespace
00:00 jonathan Yes, that one.
00:00 treed Ah.
00:00 jonathan The same as the namespace
00:00 treed I was confused by the duplicated "the namespace".
00:01 jonathan But they get stuck in different slots.
00:01 chromatic I wouldn't know how to start thinking about making STRINGs immutable.
00:01 treed So a global and a namespace are stored differently in the HLL namespace, then?
00:01 treed Okay, that's helpful, thanks.
00:01 chromatic Deprecate all modify-in-place functions in src/string/*?
00:01 treed I was looking a bit at Rakudo.
00:01 treed and saw "get_hll_global 'Array'"
00:01 treed Which seemed to suggest that to me.
00:01 chromatic ... but then think about upgrade-encoding-or-charset in place behavior.  Yikes.
00:01 treed But then I saw that the actual namespace for Array is Perl6Array.
00:01 jonathan Well, the namespace PMC keeps nested namespaces apart from other things stored under that name.
00:02 jonathan treed: It is, that's because Parrot has an Array.
00:02 treed Aha.
00:02 jonathan treed: It was a hack before we could use .HLL
00:02 Whiteknight chromatic: yeah, as soon as you talk about encodings and charsets it becomes a nightmare
00:02 treed Wouldn't that be root_global, then?
00:02 chromatic If STRINGs *were* immutable, we wouldn't have to pass around pointers.  We could pass around indexes.
00:02 Whiteknight but I don't think those conversions would happen in place
00:02 jonathan In Rakudo
00:02 Whiteknight a truely immutable string wouldn't have anything done to it in lace
00:02 Whiteknight s/lace/place/
00:02 jonathan $P0 = get_hll_global 'Foo' # the type object
00:03 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?
00:03 jonathan $P0 = get_hll_global ['Foo'], 'bar' # thing bar inside the Foo namespace
00:03 chromatic Memoization basically.
00:03 jonathan treed: Right.
00:03 Whiteknight chromatic: a good hashing function would go a long way towards that end
00:03 treed Okay, so that's at least part of the problem solved.
00:03 treed Now where to stick the metaclass.
00:03 treed maybe as a sigiled sub-NS of the parent
00:04 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'
00:04 treed OSLT
00:04 treed Ideally I'd find a sigil that's not usable in a method name in Ruby.
00:04 jonathan treed: We store it as a prop on the Parrot class in Rakudo.
00:04 Whiteknight chromatic: I don't know, might be worthwhile
00:04 treed But I still need a namespace, don't I?
00:04 chromatic More work than I want to do at the moment.
00:05 jonathan treed: But we also need to worry about lexical classes and anonymous classes.
00:05 treed To define methods in PIR?
00:05 treed Yeah, Ruby has anonymous classes, too.
00:05 treed In fact, every object has its own anonymous class.
00:05 treed Or can.
00:05 jonathan Well...that's a good question...
00:05 treed I think CRuby makes it when it needs it.
00:05 jonathan You can instantiate a Parrot class
00:05 jonathan And then do addmethod class, 'foo', $P0
00:05 treed I expect to start off with all objects having a declared eigenclass, and maybe optimizing that case later.
00:05 jonathan Where $P0 is the sub to become the method.
00:06 jonathan Ah, OK
00:06 treed But where do I define that $P0 without it polluting some other namespace?
00:06 jonathan treed: Mark it as :anon and look it up by subid.
00:06 treed :anon is nameless?
00:06 treed And I thought subids were randomly generated.
00:06 jonathan Right.
00:07 jonathan (that was on :anon)
00:07 * treed nods.
00:07 jonathan You can control what the subid is set to.
00:07 jonathan .subid on the block iirc.
00:07 treed :subid('foo') ?
00:07 jonathan Aye
00:07 treed Interesting.
00:07 jonathan I actually originally started pushing Rakudo in that direction.
00:07 treed But you didn't?
00:08 treed 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.
00:08 treed Ah.
00:08 jonathan I'm still sort of half and half on the whole thing.
00:08 jonathan The issue that bothers me is this one:
00:09 treed I get the feeling it'd be easier to have them in a namespace.
00:09 * treed waits.
00:09 jonathan my @x; for 1..10 -> $n { push @x, class { has $.foo = $n } }
00:10 jonathan Do you understand enough Perl 6 to follow that?
00:10 jonathan I can explain if not...
00:10 treed I think so?
00:10 treed @x is an array, right?
00:10 jonathan Right
00:10 treed So you're pushing a bunch of classes onto the array.
00:10 treed And giving them each a property with that number.
00:10 jonathan Right, but note that in Perl 6 every block is meant to act like a closure.
00:11 jonathan So we'd expect a bunch of classes referring to the right outers.
00:11 treed "right outers"?
00:11 jonathan Sorry, that's a bad way of putting it.
00:11 jonathan The correct outer scopes.
00:11 jonathan That is, closure semantics.
00:11 chromatic $n in the class initialization should be 1, 2, ... 10
00:11 treed Ah.
00:11 jonathan chromatic: Right, so I think for @x -> $c { $c.new.foo.say } should print for 1 through 10.
00:12 jonathan 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.
00:12 jonathan 1) Parrot says a class under that name already exists.
00:12 jonathan 2) You have to play games to sort out the lexical scoping.
00:13 jonathan 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?
00:13 jonathan Yeah
00:13 treed k
00:13 treed So I know that's doable then.
00:13 jonathan augment class Foo { ... }
00:13 jonathan Well
00:13 jonathan Adding new attributes is awkward.
00:13 jonathan As in, doesn't work in Parrot right now.
00:13 treed With Ruby, you just define more class.
00:14 treed Whhen you do "class Foo", it'll look up that name.
00:14 treed If it's already a class, it'll add the stuff you define to it.
00:14 treed If not, then it makes a new one.
00:14 jonathan Wow.
00:14 treed Yeah.
00:14 jonathan A little shoot-in-foot risk. ;-)
00:14 treed Yeah.
00:14 treed but it means you can extend the builtins nicely.
00:15 treed Rails does this to interesting effect, expanding Integer so that you can say "3.days" and get a time object.
00:15 jonathan *nod*
00:15 treed makes doing time math pretty cool.
00:15 treed Time.now + 3.days
00:15 treed I sometimes find myself wanting those addons in non-Rails Ruby.
00:15 jonathan The cleanest I've seen a language managed to do that kind of thing so far as been C# with extension methods.
00:16 * 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.
00:16 Whiteknight I do C# every day and don't think I've ever used an extension method with it
00:16 treed Ah.
00:17 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.
00:17 jonathan Plus some syntax to hide them away.
00:17 treed I think that was about it.
00:17 treed The library later went C++, so I dunno if the wrapper still even exists.
00:18 treed Oh!
00:18 treed What's the difference between properties and attributes? (Parrot)
00:18 treed I only recently saw "getprop".
00:18 Whiteknight jonathan: yeah, I know all about them, I've just never used them
00:19 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
00:19 jonathan Whiteknight: Ah, I only started enjoying C# when the lambdas arrived. ;-)
00:19 treed So, properties are meant for in-Parrot, and attributes are meant for in-HLL?
00:19 treed Or properties aren't for classes?
00:20 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?
00:20 Whiteknight Originally I had been doing all my development in .NET 2.0 for compatibility
00:20 treed Or is that what attributes are for?
00:20 jonathan That's attributes.
00:20 treed Okay.
00:20 Whiteknight my manager refused to update her computer for like two years, so I couldn't use new stuff
00:21 treed so properties are only on the PMC you add them to
00:21 treed Thanks.
00:21 jonathan treed: Correct.
00:21 jonathan They're good for storing extra little bits of data against a PMC.
00:21 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?
00:22 treed Or is that really just up to me?
00:22 treed (Although I'd expect the decision would have some impact on HLL-interop.)
00:22 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.
00:22 jonathan And yes, HLL-interop may get fun if you don't.
00:23 treed Although with Ruby, attributes aren't meant to be directly accessible outside the class.
00:24 MikHel joined #parrot
00:25 jonathan treed: Same in Perl 6.
00:25 treed Ah, that'll make it better for HLL-interop, I hope.
00:25 jonathan treed: We enforce that in the compiler.
00:25 treed I expect there'll be games to be played between languages that differ on that point.
00:26 jonathan Well, to be more accurate, the language just doesn't have syntax for getting at an attribute outside of the class.
00:26 jonathan Yes, I'm sure there will. ;-)
00:26 treed Yeah, same with ruby.
00:26 treed You need to have accessor methods.
00:26 treed For which there are convenience methods.
00:26 treed so attr_reader :variable
00:27 treed Will generate .variable
00:27 treed but not .variable=
00:27 jonathan In Perl 6
00:27 jonathan has $!foo # just an attr
00:27 jonathan has $.foo # attr + readonly accessor
00:28 jonathan has $.foo is rw # attr + lvalue accessor
00:28 treed huh.
00:28 treed Interesting.
00:28 jonathan Yeah
00:28 jonathan Well
00:28 treed attr_accessor is the rw one, IIRC
00:28 jonathan If you write accessors so often, why make it long? :-)
00:28 treed I think there's also attr_writer
00:28 treed To make it readable? :-P (Classic Perl vs Others thing there)
00:29 treed that's one of those things that's not easily determinable unless you know what you're looking at
00:29 treed other than the "is rw"
00:29 treed But I'd never have guessed the difference between ! and .
00:29 treed Reminds me of my first time trying to modify Perl.
00:29 jonathan Oh sure, but I'd never have guessed the difference between pisat and pistat in Slovak before I learend the language. ;-)
00:29 treed Spent quite some time trying to figure out what was setting these $1 $2 variables.
00:30 * treed has been doing Sanskrit lately, so can relate.
00:30 treed I'm honestly still a little ambivalent about side-effect variable setting, but they are handy.
00:31 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?
00:31 jonathan Rather than being able to guess your way through it.
00:31 treed Yeah.
00:31 jonathan Whiteknight: lol
00:31 * Whiteknight can make bad puns in any language
00:31 treed I place a fair amount of value on being able to glork a new language.
00:31 * treed has had to modify things on the fly too often.
00:31 jonathan Whiteknight: pistat actually *is* the verb "to piss" :-D
00:32 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" :-)
00:32 treed Heh.
00:32 Whiteknight oh yes, I can imagine confusing those two would lead to some very unhappy readers
00:32 treed I accidently coined a word once while doing Esperanto.
00:32 jonathan That's always fun.
00:32 treed Was supposed to tranlate "She runs" and I said kunas instead of kuras.
00:33 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"
00:33 treed ("kun" is the word for "with")
00:33 jonathan lol!
00:33 jonathan Language learning is so fun.
00:34 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.
00:34 * jonathan nearly sprays beer on his keyboard
00:34 jonathan Thanks for that one, chromatic. :-)
00:35 jonathan Actually the *most* embarassing one I managed to do so far in Slovak is accidentally saying that I was gay.
00:35 treed Wow.
00:35 jonathan Yeah
00:35 Whiteknight who did you tell that gem to?
00:35 treed Was it in a context where you could be believed about that?
00:35 jonathan It was all to easy to do
00:36 jonathan 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"?
00:37 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 jonathan You actually need to say something more like "To me it's warm"
00:37 whoppix joined #parrot
00:37 jonathan I totally didn't see that one coming though.
00:38 jonathan I can't remember who I said that one too first.
00:38 jonathan *to
00:38 Whiteknight yeah slang can be a funny thing
00:38 jonathan I'm pretty sure I didn't say it to anyone else again though. :-)
00:38 Whiteknight like in english, saying "I program Cobol" is slang for "I'm retarded"
00:38 jonathan s/program/created/
00:39 Whiteknight whichever
00:39 purl MAKE A DECISION
00:39 jonathan I occasionally have the misfortune to look after some legacy codebase in ASP / VBScript.
00:39 treed Damn, purl, calm down.
00:39 Whiteknight capslock is cruise control for awesome
00:39 jonathan That's a load of bull.
00:39 jonathan ;-)
00:39 * treed doesn't even have a capslock.
00:40 treed vim++
00:40 treed It's annoying when I'm on other systems though.
00:40 treed I end up accidenttly capslocking when I mean to escape.
00:40 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...
00:40 Whiteknight I've had to translate programs from all sorts of languages into C#
00:41 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 #parrot
00:41 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.
00:41 treed If you want to modify the UI, it has to be VBA.
00:41 jonathan Whiteknight: In theory, over time we're meant to be migrating this thing to C#.
00:41 treed rg: Yeah. I might have done that if I were into emacs.
00:41 treed But having escape there is very handy for using vim.
00:41 Whiteknight I like C# a lot. I think it's a pretty great language
00:42 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:43 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.
00:43 Whiteknight but then again, it is ASP
00:43 Whiteknight yeah, C# 1.0 was just a lousy Java ripoff
00:43 jonathan Whiteknight: You might be assuming that whoever initially wrote it knew functions existed? ;-)
00:43 Whiteknight ouch
00:43 treed Is <ident> a rule you get for free or something?
00:43 * treed can't find it in his parser.pg
00:44 jonathan treed: Yeah
00:44 Whiteknight yeah, <ident> is builtin
00:44 treed Where can I see the definition?
00:44 jonathan Whiteknight: To be fair, real old dialects of BASIC lacked them. ;-)
00:44 jonathan treed: Maybe in PCT::Grammar is the first place to check.
00:44 Whiteknight yeah, one of my first programs was a Zelda knock-off written in GW-BASIC
00:45 jonathan treed: Beyond that, it may be in PGE itself.
00:46 jonathan 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:47 treed I just wanted to know the definition.
00:47 treed I'm actually trying to find a definition for what can go into a ruby method name or class name.
00:48 treed I figured that'd be in my grammar.
00:48 treed But if it's inherited, it may not be correct anyway.
00:48 jonathan treed: I think it's along the lines of
00:48 jonathan First character must be alphabetic
00:48 jonathan And then \w+
00:48 jonathan I'd write [A-Za-z]\w*
00:49 jonathan 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
00:49 treed But not a variable.
00:49 jonathan So if you're implementing a language that can't take unicode variable names, you may need to re-define it.
00:50 treed I see a lot of discussion about the first char of a varname.
00:50 treed Looks like in Ruby it has to be either Alpha or _.
00:50 * treed is trying to figure out a good sigil to use for the metaclass.
00:50 treed ! looks like it may be it.
00:50 treed Since that can only appear at the end of a method name, and in no variables.
00:52 jonathan Sounds workable.
00:53 treed another option maybe simple "meta"
00:53 treed Since class/module names must start with a capital.
00:53 treed And I don't think anything else would have a namespace.
00:54 jonathan Aye
00:55 jonathan Sounds like you have more than one workable option.
00:56 treed Yeah.
00:56 treed I think I like 'meta'.
00:59 Whiteknight the hard part is in choosing between several equally workable solutions
01:01 jonathan It's easier than choosing between no workable solutions. ;-)
01:03 treed meta_cls = newclass ['Class';'meta']
01:03 treed Is that a reasonable way to call newclass?
01:04 treed (Similarly for get_class)
01:04 treed Or do I need to get the namespace first?
01:04 jonathan I think that's OK.
01:05 treed newclass(out PMC, in PMC)
01:05 treed Create a new Parrot-style class, with the name given in $2 as a key, namespace, or string PMC.
01:05 * treed isn't ever quite sure with those things.
01:05 treed That is a key, right?
01:06 jonathan Correct
01:06 treed k
01:06 * treed for some reason saw "I don't think that's OK."
01:06 * treed carries on.
01:14 treed It's very weird to be writing a class for Class.
01:15 jonathan treed: Oh, welcome to the world of meta-circularity.
01:15 jonathan Quite a brainf**k.
01:15 treed Indeed.
01:16 treed The best part is that I also have to deal with the metaclass of Class.
01:16 treed Which is itself a class.
01:16 jonathan Right, that's the meta-circularity part. ;-)
01:17 japhb joined #parrot
01:17 cotto Halifax is in Nova Scotia, which is in Canada, which is on Earth, which is in Canada.
01:17 jonathan eh?
01:17 cotto jonathan, http://www.youtube.com/watch?v=oz88kJSdT6Y
01:17 treed I find myself wanting to use Class.new to define the metaclass.
01:28 mokurai left #parrot
01:43 treed Then I get to square this all away with dealing with the reality that a parrot class is not a Class.
01:44 treed And what, then, is the equivilent of get_class for cardinal Classes?
01:44 treed I guess I can store a global hash or something.
01:44 treed Or something in the metaclass.
01:52 treed 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!
01:52 dalek parrot: r40685 | dukeleto++ | trunk/t/op/arithmetics.t:
01:52 treed You still other-timezoners.
01:52 dalek parrot: [cage] De-backslashitis a rounding test by using a non-interpolating heredoc. coke++
01:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40685/
01:52 treed It's only 17 here.
01:52 treed er
01:52 treed 19
01:53 treed s/still/silly/
01:53 * jonathan -> sleep
01:53 treed Unsure how that happened.
01:53 jonathan lol
01:53 treed night!
01:53 jonathan yeah, you've no excuse if it's still yesterday ;-)
01:53 jonathan night!
01:53 treed My head hurts from metaprogramming metaclasses. :-P
01:53 treed That's my excuse.
01:58 ttbot Parrot trunk/ r40685 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/75069.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
02:04 jan joined #parrot
02:08 dalek rakudo: ae56d02 | (Kyle Hasselbacher)++ | docs/release_guide.pod:
02:08 dalek rakudo: [release_guide] a paragraph on getting spectest statistics
02:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​e56d02caabc8eabc72bffc3a973074b68d35854
02:22 theory joined #parrot
02:35 janus joined #parrot
02:52 protorom joined #parrot
02:54 protorom joined #parrot
03:08 TiMBuS joined #parrot
03:09 dukeleto joined #parrot
03:25 mikehh testr FAIL, all others PASS (pre/post-config, smoke, nqp_test, fulltest) at r40685 - Ubuntu 9.04 amd64 (gcc)
03:26 japhb joined #parrot
03:26 mikehh t/dynpmc/foo.t - Failed tests:  6-7 in testr - segmentation fault in each case (as part of fulltest)
03:29 mikehh rakudo (ae56d02) builds on parrot r40685 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64
03:38 theory joined #parrot
03:40 Andy joined #parrot
03:49 Khisanth joined #parrot
03:51 dalek TT #939 created by mikehh++: t/dynpmc/foo.t FAILs testr with Segmentation fault
03:56 mikehh parrot r40685 fails to build with g++
03:56 mikehh src/pmc/nci.pmc: In function ‘INTVAL (* build_func(parrot_interp_t*, PMC*, Parrot_NCI_attributes*))(parrot_interp_t*, PMC*)’:
03:57 mikehh src/pmc/nci.pmc:120: error: invalid conversion from ‘void*’ to ‘INTVAL (*)(parrot_interp_t*, PMC*)’
03:57 mikehh make: *** [src/pmc/nci.o] Error 1
03:57 mikehh it builds with gcc
03:58 cotto mikehh, I'll look at that.
03:58 mikehh cotto: which?
03:58 purl which is the complicated bit of the equation
04:00 cotto g++
04:03 cotto or not.  I'm not sure how to fix that.
04:04 mikehh me neither
04:07 mikehh I think I got something similar when I was trying to build decnum-dynpmcs with g++ - it built ok with gcc
04:10 * Coke thanks the parrot community for not, in general, getting all pissed off on the mailing list.
04:11 cotto Coke, should we be?
04:11 cotto ;)
04:14 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:20 mikehh far too many places like that - fortunately our community doesn't seem to have that problem
04:21 cotto except purl
04:22 mikehh partcl r605 builds on parrot r40685 - make test same 6 tests FAIL but pass all subtests
04:23 mikehh 5 of the tests report current instr.: '_main' pc 340 (src/tclsh.pir:166), but not t/cmd_lsort.t
04:24 cotto joined #parrot
04:25 treed Yeah, the Parrot community is pretty friendly.
04:26 mikehh I think NotFound should be able to help with the g++ problem
04:35 cotto I guess all the cantankerous people got bored and left during Parrot's long history.
04:42 treed I think I may have finally wrapped my brain around the metaclass thing.
04:43 treed But I haven't touched eigenclasses yet, either.
04:46 cotto That's an accomplishment.
04:46 cotto the metaness is disorienting
04:47 treed I managed it by commenting my way through it, to keep track of what I was doing.
04:48 treed http://gist.github.com/171674
04:48 treed Should be a pretty complete implementation of Ruby's Class.
04:48 treed (Of course, much of the classy stuff is actually in Module, which I haven't really touched yet.)
04:49 treed The function that creates the Object, Module, and Class classes uses 14 locals, which I think is the most I've ever used.
04:50 treed Thank goodnees we have 32 registers.
04:50 japhb joined #parrot
04:51 treed I suppose I oughtta POD that file up.
04:51 * treed should actually learn POD syntax.
04:53 dukeleto treed++
04:54 dukeleto should "$P1 = new 'Complex'  \n $P1 = 'NaN' " be valid ? currently that barfs with "Complex: malformed string"
04:54 treed I assume that's Perl6?
04:55 * treed would have implemented NaN as an hll_global singleton.
04:56 cotto Is it possible to use a sub as an exception handler in the same way a label can be used?
04:57 * 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
04:58 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:59 TiMBuS last time i tried to use a sub as a handler it just crashed and burned =/
05:00 TiMBuS it was a while ago, can't remember the specifics, but i remember i switched to labels pretty fast after trying
05:01 cotto I'll just do it with labels then.
05:01 bacek_at_work cotto: https://trac.parrot.org/pa​rrot/ticket/218#comment:18
05:16 dukeleto treed: that is parrot. I used a "\n" to mean a new line between those statements. see https://trac.parrot.org/parrot/ticket/358
05:19 mokurai joined #parrot
05:21 dukeleto treed: the idea of NaN being a singleton is interesting
05:32 treed dukeleto: Ah.
05:33 treed In Ruby, true, false, and nil are all singletons.
05:33 treed They're also the only exception to the usual requirement for global names.
05:33 treed (Which otherwise must begin with a capitalized letter.)
05:38 beta joined #parrot
05:41 szabgab joined #parrot
05:48 michel joined #parrot
05:53 dukeleto treed: does ruby have any idea of a signallying NaN? That is, a NaN that throws an exception when used or generated?
06:02 uniejo joined #parrot
06:04 treed There's no NaN singleton, but I believe there's an exception for it.
06:04 treed Just a sec.
06:04 treed In the meantime, is this permitted use of $S0:
06:04 treed $P0 = self.$S0(args)
06:05 treed FloatDomainError?
06:05 treed ZeroDivisionError is available for that case
06:05 dukeleto treed: seems that it would be too much going on in one line for PIR
06:06 treed How else would you call that method?
06:06 treed I know you can use a variable there.
06:07 * 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
06:07 treed I guess I could assign it to a string variable.
06:07 treed dukeleto: Well, give me one and I'll test it to see what exception is thrown.
06:08 dukeleto treed: arcsin(2) is either a complex number or a NaN, depending on your language
06:08 mikehh_ joined #parrot
06:09 treed irb(main):004:0> Math.asin(2)
06:09 treed Errno::EDOM: Numerical argument out of domain - asin
06:09 treed I think Ruby 1.9 returns a Complex.
06:10 treed 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
06:10 treed signaling == throwing an exception?
06:10 dukeleto so you could say "make a NaN throw an exception in this .sub, but not over here"
06:10 treed Seems vaguely reasonable.
06:10 dukeleto treed: basically
06:11 treed I'd just make it always throw an exception and you catch if it you want.
06:11 treed But I don't claim to know Perl.
06:11 treed 6 or anything before it.
06:11 treed So your solution may be more reasonably for Perl.
06:16 dalek parrot: r40686 | NotFound++ | trunk/src/pmc/nci.pmc:
06:16 dalek parrot: [cage] fix c++ build
06:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40686/
06:16 NotFound Someone called me? ;)
06:17 moritz ... but did not find you? ;-)
06:17 treed Is there a way to get a list of all the attributes of an object?
06:18 moritz rakudo implements that, you might look for prior art there
06:19 moritz or ask jonathan when he wakes up ;-)
06:20 ttbot Parrot trunk/ r40686 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/75133.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
06:33 dukeleto todo tests are a pain in PIR
06:34 dukeleto but perhaps that motivates me to fix the issue instead of jumping through hoops to write todo tests in PIR
06:35 chromatic joined #parrot
06:42 dalek close: r98 | Austin++ | trunk/ (16 files):
06:42 dalek close: Scopes resolved. Need to reorganize tree during declarator handling.
06:42 dalek close: review: http://code.google.com/p/close/source/detail?r=98
06:58 HG` joined #parrot
07:07 mokurai left #parrot
07:50 dalek parrot: r40687 | NotFound++ | trunk/src/pmc/filehandle.pmc:
07:50 dalek parrot: [cage] don't assume that PIOHANDLE is an INTVAL
07:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40687/
07:55 cotto chromatic, I'm trying to make a list of weird things Parrot does with control flow.
07:55 cotto I've got coroutines, exception handlers, methods and tailcalls.  What others can you think of?
07:56 ttbot Parrot trunk/ r40687 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/75195.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
08:02 cotto also, pir-level VTABLE functions
08:04 chromatic :init
08:04 chromatic :onload
08:05 payload joined #parrot
08:05 cotto good ones
08:05 purl good ones are always gone by the time i make it in.
08:05 chromatic I think that covers it.
08:05 dalek TT #940 created by fperrad++: miniparrot segfaults on Windows
08:09 cotto Hmmm.  My randomly written code generated "42".
08:09 cotto I'll keep it.
08:23 payload left #parrot
08:23 cotto chromatic, what would you do to make the profiling runcore easy to test?
08:24 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:25 cotto Ok.  I've been making examples and checking how they break stuff.
08:25 cotto apparently contexts can be reused between methods in the same ns, although not always
08:26 dukeleto joined #parrot
08:27 dalek parrot: r40688 | cotto++ | branches/pluggable_runcore (2 files):
08:27 dalek parrot: [profiling] make profiling probably somewhat less broken by looking at CONTEXT(interp) instead of specific instructions
08:27 dalek parrot: also, some internal cleanups
08:27 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40688/
08:30 payload joined #parrot
08:33 mikehh testr FAIL, all others PASS (pre/post-config, smoke, nqp_test, fulltest) at r40686 - Ubuntu 9.04 amd64 (g++)
08:34 mikehh see TT #939 for test failure
08:50 dukeleto treed: sin(Inf) is another good one
08:51 moritz sin(Inf) == NaN where { -1 <= $_ <= 1 }; # ;-)
08:53 cotto If you cast NaN to a long, does it become NaaN?
08:55 chromatic long int or long float?
08:55 chromatic The latter becomes FLaN
08:56 dukeleto cotto: which language are you talking about? or are you trolling me?
08:56 dukeleto chromatic: don't feed the trolls
08:56 chromatic They can have my FLaN; I don't want it.
08:57 chromatic Why so much recalculation in build_attrib_index in the Class PMC?
08:57 dukeleto moritz: you are correct
08:58 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?
09:02 dalek rakudo: c06ba3a | moritz++ | docs/release_guide.pod:
09:02 dalek rakudo: [docs] small udapte to release_guide.pod, mentioning tools/test_summary.pl
09:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​06ba3a0c5d747e9bc039e33d5d43315d8ed3dab
09:08 dalek parrot: r40689 | NotFound++ | trunk/include/parrot/gc_api.h:
09:08 dalek parrot: Disable fixed size allocator on windows, TT #940
09:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40689/
09:09 mikehh t/dynpmc/foo.t just failed testg (test 7) as well as test 6 & 7 in testr at r40688
09:10 mikehh let me do a clean checkout and test again
09:11 dalek parrot: r40690 | dukeleto++ | trunk/t/op/arithmetics.t:
09:11 dalek parrot: [t] Add more tests for NaN/Inf behavior
09:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40690/
09:12 mikehh rakudo (ae56d02) builds on parrot r40688 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64
09:15 MoC joined #parrot
09:29 masak joined #parrot
09:31 szabgab joined #parrot
09:37 flh joined #parrot
10:19 dalek parrot: r40691 | mikehh++ | trunk/include/parrot/gc_api.h:
10:19 dalek parrot: fix codetest failure - indent preprocessor directives
10:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40691/
10:21 szabgab joined #parrot
10:36 mikehh rakudo (c06ba3a) builds on parrot r40691 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64
10:47 jonathan treed: see the inspect opcode. e.g. $P0 = inspect class, 'attributes' should get you a list of the class' attributes.
11:56 Taulmarill joined #parrot
11:59 dalek rakudo: f39e739 | moritz++ | src/parser/ (2 files):
11:59 dalek rakudo: parse ** (HyperWhatever)
11:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​39e7396a6160175fbd1a1e54a06a07c378eb325
12:25 payload joined #parrot
12:28 dalek rakudo: 527cb8f | moritz++ | src/setting/NYI.pm:
12:28 dalek rakudo: NYI-message for cat($)
12:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​27cb8fdba9d618b72e68748f46fc1000b9e6afc
12:29 quek joined #parrot
12:29 AndyA joined #parrot
12:38 payload joined #parrot
12:55 * Coke has a segfault in partcl's make test. grumble.
12:55 Coke and, better, it goes away with -G!
13:27 mikehh docs on www.parrot.org are still 1.4
13:30 bkuhn joined #parrot
13:32 Coke I am NOT the spof.
13:32 Coke however, I'll fix that. moment.
13:39 Coke fixed.
14:22 quek left #parrot
14:29 Coke quiet today.
14:30 Psyche^ joined #parrot
14:33 ruoso joined #parrot
14:39 mikehh it one of those TGIF days
14:46 mikehh partcl builds on parrot r40691 - make test same 6 failures but all subtests pass
14:49 mikehh 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:51 mikehh Files=74, Tests=1319, 142 wallclock secs ( 0.55 usr  0.16 sys + 128.05 cusr  5.24 csys = 134.00 CPU)
14:53 Coke mikehh: huh. I am getting a failure in t/tcl_namespace.t (that's my segfault)
14:53 Coke can you try running .../parrot --gc-debug t/tcl_namespace.t ?
14:53 Coke er.
14:53 Coke can you try running .../parrot --gc-debug tcl.pbc t/tcl_namespace.t ?
14:56 TiMBuS joined #parrot
14:58 mikehh Coke: all ok I am on Ubuntu 9.04 amd64 - installed parrot r40691 built with g++
15:01 mikehh it got the same results at r40685 with gcc
15:03 theory joined #parrot
15:08 Coke k
15:08 Coke guess I should bisect to find it, but what a PITA. =-)
15:08 Coke (bisecting parrot to test partcl)
15:09 Coke ... 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.
15:10 Coke Tene: true. it'd be faster if I conned someone else into doing it, though. =-)
15:11 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.
15:12 Infinoid Why?  It has a purpose.
15:12 Coke well, first, I'd give you a patch to yours...
15:12 Coke (basically, support 'git bisect run')
15:13 Infinoid Oh, neat.  I didn't know that existed.
15:13 Coke or I could just trick you into supporting it yourself...
15:13 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
15:14 Tene s/return/exit/
15:14 Coke but yah, yours is better than mine; I'm lazily waiting for Iterator to get fixed.
15:14 Tene then git bisect run /tmp/test_partcl.sh
15:14 Andy joined #parrot
15:14 Infinoid Eh, just different, not better.  Yours is perfect for this task
15:15 Coke Tene: ok, ok, I'll do it. =-)
15:16 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 Andy joined #parrot
15:18 whoppix joined #parrot
15:27 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.
15:28 Coke well, crud, now I can't duplicate the error in HEAD.
15:29 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)
15:30 mikehh it's not the commits - it sending to the mailing list
15:31 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
15:31 Infinoid which seems reasonable, as dalek only polls the rss once every 5 minutes or so
15:31 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.
15:32 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:33 Infinoid that's probably just because we have a high concentration of prolific git-svn users. :)
15:33 mikehh perhaps :}
15:33 Infinoid (and deadbeat git-svn users, like me)
15:33 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?
15:34 Coke bah. I need a benchmark that doesn't take 2 hours to run.
15:35 dukeleto coke: benchmark which language?
15:35 Coke partcl.
15:35 Coke The "easiest" way I have right now to see if we're running faster is run the full spec test.
15:35 Coke (as that records the total time of the suite.)
15:38 mikehh BTW did anyone sort out the svn properties problem with git-svn - moritz mentioned something about a script on the server
15:46 dalek rakudo: 6fe1764 | jnthn++ | src/setting/traits.pm:
15:46 dalek rakudo: Re-write some trait_mods for how I want them to look. Breaks stuff, but that's fine - it's a branch.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​fe176402c6e4b9f2864604f5c115c727e5132a4
15:46 dalek rakudo: fd812be | jnthn++ | src/classes/ (2 files):
15:46 dalek rakudo: Get first cut of attribute trait application in place.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​d812be220ce0173b27118e7fc1f1d489d99c355
15:46 dalek rakudo: 94f4c8d | jnthn++ | src/ (6 files):
15:46 dalek rakudo: 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.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​4f4c8d867c8d63c80911087a270f22f740b38f7
15:46 dalek rakudo: 20b0d77 | jnthn++ | src/setting/Temporal.pm:
15:46 dalek rakudo: 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.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​0b0d7751a49a24c41b81bb84622ba5fbf123ebd
15:46 dalek rakudo: 5627efa | jnthn++ | src/ (3 files):
15:46 dalek rakudo: 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.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​627efa7efd139aabf1887002804e43cabda0f79
15:46 dalek rakudo: b545108 | jnthn++ | src/setting/Temporal.pm:
15:46 dalek rakudo: Can't just make those subtypes non-lexical in Temporal or they leak out and break spectest; just comment out the type annotations instead.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​5451085ea725672e32226ae7f454af31f6489f5
15:46 dalek rakudo: 44ab31b | jnthn++ | src/ (2 files):
15:46 dalek rakudo: Couple of other fixes/tweaks.
15:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​4ab31b34b47d995e0e12959dc3215b97e163d9f
15:48 bacek joined #parrot
15:52 dalek rakudo: 59cb023 | jnthn++ | src/parser/actions.pm:
15:52 dalek rakudo: 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 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​9cb0232159cac5bd0be828eb791514fdd733fce
15:53 dalek TT #803 closed by pmichaud++: PCT emits bogus code for getattribute on named register variable
15:54 rdice joined #parrot
15:54 rdice joined #parrot
16:00 * Coke wishes he could do "make test && git commit -a"
16:03 davidfetter well, you *can* do that
16:03 davidfetter it's just a question of having that take effect where you want it do
16:03 davidfetter isn't there some git->svn bridge?
16:04 * davidfetter pretty much with linus on the svn issue :P
16:06 Coke davidfetter: given that 'make test' in partcl /always fails/, no, I can't. =-)
16:06 davidfetter heh
16:06 Coke http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=57088
16:06 davidfetter well, you *can* do it. it just wouldn't do exactly what you want
16:07 Coke yes I can. It would just be entirely unuseful. Thanks!
16:10 davidfetter sry
16:10 jan joined #parrot
16:11 davidfetter how hard would it be to fix partcl?
16:12 Coke it's a parrot bug.
16:12 Coke http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=57088
16:13 Coke 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:20 l3t0 coke: an exit code issue ?
16:20 Coke l3t0: no.
16:20 Coke the exit code correctly reflects the incorrect death.
16:23 dalek rakudo: 99f4e45 | jnthn++ | t/spectest.data:
16:23 dalek rakudo: Add S14-traits/attributes.t and S14-traits/varialbes.t to spectest.data.
16:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​9f4e450130e4a8e56f23d5f4351ac7d37f4bc61
16:25 mikehh how do you run an individual test on a given runcore? It has slipped my mind (what there is of it :-})
16:28 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 Coke probably an option to the harness script.
16:29 treed jonathan: Ah, thanks. I saw that opcode, but nothing defining what you could request out of it.
16:30 jonathan treed: Well, it various depending on the PMC you are requesting stuff from.
16:30 jonathan treed: The PMCs themselves (should) document what you can ask for.
16:30 jonathan erm, it varies
16:31 treed But wouldn't every PMC have attributes?
16:31 jonathan Well, yes and no. :-)
16:32 jonathan I'm not sure PMCs in general have their (C-level) attributes as introspectable.
16:33 treed Was it determined that there's still no way to call a superclass's method?
16:35 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?
16:37 pmichaud there's not anything simple built-in, no.  But classes aren't also "simple"
16:37 pmichaud a class could have multiple parents, in which case "super" isn't always sufficient
16:37 treed Oh.
16:37 treed In Ruby that's not the case.
16:37 treed Ruby only has single inheritance.
16:38 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 #parrot
16:53 dalek rakudo: ef035f4 | jnthn++ | perl6.pir:
16:53 dalek rakudo: Check for when we have missing dynexts at startup and emit a nice error message.
16:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​f035f471b9fd2c1686bbd28bf341c3cfe56432c
17:11 mikehh What is the parrot option to use the same runcore as testr as in -R switch for testS
17:24 mikehh 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:26 chromatic joined #parrot
17:26 delta joined #parrot
17:28 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:37 cotto mikehh, it looks like -r compiles to bytecode and runs the bytecode
17:39 mikehh how the heck do you test that
17:42 chromatic ./parrot -o foo_6.pbc t/dynpmc/foo_6.pir; ./parrot foo_6.pbc
17:45 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
17:46 chromatic A few people look at them off and on, but there's no master plan.
17:48 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!
17:48 delta (but I don't do IM much :))
17:52 dalek rakudo: 0a5b07e | jnthn++ | src/ (2 files):
17:52 dalek rakudo: Fix up add_method on the metaclass to be more inline with the HOW API proposed by smop.
17:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​a5b07e1ac84a78c356a73d0dfdffe223b86bbd6
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.
17:52 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
17:52 Coke then we can get patches back.
17:54 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 http://nopaste.snit.ch/17632
17:55 chromatic I don't either, but practically speaking most of those reports need *some* Parrot experience to understand.
17:56 Coke fair enough.
18:01 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 #parrot
18:15 nillo joined #parrot
18:16 cotto Let's go for it.  Other than a few minutes to get him set up, there's not much to lose.
18:21 hercynium joined #parrot
18:43 allison joined #parrot
19:02 Coke hey, allison, how goes the branch? =-0
19:02 Coke er, =-)
19:02 allison no work the past couple of days, been on the road and visiting my son
19:03 allison whois japhb
19:03 purl japhb is Geoffrey Broadwell, mailto:geoff@broadwell.org
19:03 japhb blink?
19:03 * purl blinks
19:04 allison sorry, wrong window
19:04 japhb bot puppetry!
19:04 allison I'm trying to make sure I've got member access to all parrot members in the voting interface :)
19:05 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:06 particle joined #parrot
19:08 Tene anyone know how well Parrot supports subclassing Class?
19:09 allison japhb: makes sense. Hmmm...I don't see a japhb account in www.parrot.org...
19:10 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?
19:11 allison japhb: parrot.org is yet-another system
19:12 japhb ETOOMANYLOGINS
19:12 allison japhb: but, you don't have to, you can email the paper form in instead
19:12 allison (it's just a convenience)
19:12 Coke your son who is japhb? wow. =-)
19:13 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.
19:13 japhb allison, ah.
19:14 japhb Coke, son?
19:14 allison Coke: I'm sneaking in some work while my son plays SuperTux :)
19:14 japhb Coke, oh, NM, I see the reference
19:16 japhb 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?
19:16 allison japhb: added right away, but I have to grant it additional permissions
19:17 japhb allison, got it
19:17 allison japhb: I've granted member access, so you should be able to vote
19:17 allison japhb: I'll grant posting access too
19:18 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
19:19 * Tene nods.
19:19 allison Tene: if you run into problems doing it, they are officially bugs
19:19 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)
19:19 allison japhb: it very well could be
19:19 * japhb swears mentally like a BSG cast member
19:21 dalek parrot: r40692 | chromatic++ | trunk/examples/benchmarks/primes.pasm:
19:21 dalek parrot: [examples] Added a minor optimization to the primes.pasm benchmark to avoid one
19:21 dalek parrot: unnecessary loop.
19:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40692/
19:21 dalek parrot: r40693 | chromatic++ | trunk/src/pmc/class.pmc:
19:21 dalek parrot: [PMC] Extracted cache_class_attribs() from build_attrib_index() in Class PMC to
19:21 dalek parrot: facilitate other simplifications.
19:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40693/
19:24 allison japhb: I have admin ability to reset your password if needed to get around the email problem
19:31 nopaste "tene" at 24.10.252.130 pasted "failing Class subclass example for allison++" (26 lines) at http://nopaste.snit.ch/17634
19:33 allison tene: I take it it doesn't work?
19:33 Tene it segfaults.
19:34 nopaste "tene" at 24.10.252.130 pasted "backtrace for alison++" (14 lines) at http://nopaste.snit.ch/17635
19:35 Tene The failing part of init_class_from_hash is: VTABLE_get_string(interp, self);
19:36 allison Tene: hmmm... you can try overriding VTABLE_get_string to return a constant string (just temporarily)
19:37 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
19:37 Tene It ends up off in Object... should Classes be Objects?
19:37 allison Classes aren't Objects
19:38 allison but, init_class_from_hash is only called when you instantiate a class
19:38 allison no, wait, that's not true
19:38 Tene it's also called from name()
19:38 Tene when you set a name for the class.
19:39 Tene 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.
19:39 allison yes, that's correct
19:39 allison it's an Object that is a Class
19:39 jonathan As in, an instance of your subclass of class with be an Object.
19:40 treed with class Class
19:40 * treed has dealt with that a lot in the last 24 hours.
19:41 treed >_>
19:41 allison treed: with parent class Class
19:41 Tene and it's considered a bug that I can't subclass Class successfully from PIR?
19:41 allison Tene: yes, but lot if it is probably the known bug of subclassing any C PMC from PIR
19:41 treed allison: Oh? It's not an Object by virtue of being a Class?
19:41 Tene Ah.
19:42 Tene treed: src/pmc/object.pmc
19:43 allison treed: it's an Object by virtue of being a PIR created thing
19:43 treed Ah.
19:43 treed In Ruby all Classes are Objects.
19:44 treed (Actually, all Classes are Modules, which are Objects.)
19:45 allison the equivalent in Parrot we call PMC
19:45 treed Ah, so PMC != Object.
19:46 allison PMC == object
19:46 allison but, we have a special class called Object, that is only for instances of PIR-defined classes
19:46 allison everything that's an object in Parrot is a PMC
19:46 Tene allison: which vague future plan is supposed to fix this, again?
19:47 allison Tene: that one's not on the grand scheme yet, but could be
19:47 Tene Ah.
19:47 Tene Speaking of vague future plans, how's the pcc branch going?
19:48 allison visiting my son this week, so only limited time to work on it
19:49 allison Tene: down to 301 failing tests
20:09 jrtayloriv joined #parrot
20:12 Coke allison: fyi, I can't even build the branch.
20:12 Coke on feather, it hangs after:
20:12 Coke ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc
20:12 Coke er, /in/, not after, apparently.
20:12 * allison checking to make sure she doesn't have any un-committed changes
20:13 Coke ... I just realized I can avoid a ton of runtime lookups.
20:13 allison nope, just the 'corevm' makefile changes
20:14 allison Coke: could you email me a dump of the error message?
20:14 Coke no error.
20:14 Coke it just hangs during that line.
20:14 allison segfault?
20:14 purl well don't DO that, then.
20:14 Coke hangs.
20:14 allison or, infinite loop
20:14 purl see infinite regress
20:14 allison (as in, it just keeps running, never returns)
20:15 allison what's feather running?
20:15 l3t0 wow, complex.pmc is third-largest in terms of lines and still needs lots of love
20:15 * l3t0 gets out his Riemann sphere
20:15 Coke Linux feather 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686 GNU/Linux
20:16 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:17 allison Coke: the symptom is similar to some existing failing tests, so fixing those might fix it
20:28 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
20:29 japhb allison: thank you.
20:29 japhb allison++ # relieving stress
20:29 dalek TT #941 created by allison++: testing forward of new tickets to the mailing list
20:30 allison you should be able to change the password yourself once you log in
20:33 Tene Thanks for the reminder.
20:34 * Tene just did the voting thing.
20:35 allison Tene++ (voting)
20:36 * japhb voted too.
20:37 chromatic The Class PMC's build_attrib_index ecosystem is... confusing, at best.
20:39 * 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
20:39 Tene the issue is that a recent update removed a test and didn't update the test count.
20:40 japhb Is www.parrot.org running Drupal?  (I'm guessing based on links in the <head>)
20:41 Coke yes.
20:41 Tene oh, no, there's a commented test.
20:41 joeri joined #parrot
20:43 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:46 marius joined #parrot
20:51 Coke japhb: did you get there from clicking on a link in an email to edit your passwd?
20:51 Coke (if so, then presumably your auth is tied to the email, not the old password.)
20:53 payload joined #parrot
20:53 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:54 japhb 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.
20:55 Coke (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 #parrot
21:09 * Coke finally thinks to install the video component for google chat on his mac.
21:24 mikehh make realclean does not remove the *.pbc files in t/dynpmc
21:40 Whiteknight joined #parrot
21:45 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:51 allison joined #parrot
22:05 kid51 joined #parrot
22:05 Whiteknight hello #parrot
22:05 jrtayloriv hello
22:07 allison http://queue.acm.org/detail.cfm?id=1595636
22:09 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 #parrot
22:15 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:16 nillo joined #parrot
22:34 Limbic_Region joined #parrot
22:37 GeJ Good morning everyone
22:37 Whiteknight good morning GeJ
22:39 GeJ Hi Whiteknight. Congratulations on the release out there.
22:39 Whiteknight thanks!
22:41 rg1 joined #parrot
22:45 mikehh rakudo (0a5b07e) builds on parrot r40693 - make test/make spectest (up to 28048) PASS - Ubuntu 9.04 amd64 (gcc)
22:45 bacek joined #parrot
22:48 Whiteknight allison: thanks for the link! fun article
22:58 allison kid51: I've heard a lot of good things about Mercurial
23:15 MoC joined #parrot
23:28 dukeleto joined #parrot
23:31 payload joined #parrot
23:42 jrtayloriv joined #parrot
23:44 quek joined #parrot
23:52 darbelo joined #parrot
23:54 darbelo rm -rf ../ins/*
23:55 darbelo Sorry, wrong window.

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced