Camelia, the Perl 6 bug

IRC log for #parrot, 2009-11-07

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:08 dalek TT #1104 closed by jkeenan++: Correct erroneous reference in docs to Number PMC
00:09 mikehh joined #parrot
00:10 * darbelo realizes that performing a 'net install' was a bad idea.
00:10 darbelo Debian mirror slooooooooow.
00:21 Whiteknight joined #parrot
00:21 dukeleto parrot github mirror is synced again!
00:22 darbelo dukeleto: You should document the procedure and add backup commiters there. Give it a higher bus number.
00:23 dukeleto darbelo: it is a script :) the machine it was running on died
00:23 dukeleto darbelo: i have the script in my github util repo
00:24 dukeleto darbelo: http://github.com/leto/Util/b​lob/master/bin/update_parrot
00:24 darbelo Ok, as long as the bus doesn't hit both you and github we're safe.
00:24 darbelo ;)
00:24 dukeleto darbelo: don't worry, i back up to my gitweb as well :)
00:25 darbelo Good enough for me.
00:41 kesselhaus couldn't parrot and all the languages look for parrot-executable in ['.',PATH] + argv[0], and then if it's bindir is found use the bin + '../' as base to look for the rest ofthe rumtime stuff?
00:44 chromatic Wouldn't the +argv[0] open a world of symlink attacks?
00:48 NotFound kesselhaus: we don't expect that most users have lots of parrot instalations.
00:49 kesselhaus the thing is, i can't execute parrot installed on C:\parrot-1.7.0, when i am in an directory on drive d:
00:50 NotFound kesselhaus: Do you have the parrot bin dir in your PATH ?
00:51 kesselhaus D:\temp>C:\parrot-1.7.0\bin\perl6 --help
00:51 kesselhaus == SORRY! ==
00:51 kesselhaus Unable to find Perl 6 dynops and dynpmcs library.
00:51 kesselhaus If you want to run Rakudo outside of the build directory, please make install.
00:52 kesselhaus D:\temp>parrot_nqp --help
00:52 kesselhaus "load_bytecode" couldn't find file 'PGE.pbc'
00:52 kesselhaus current instr.: 'parrot;NQP;Compiler;__onload' pc -1 ((unknown file):-1)
00:52 kesselhaus called from Sub 'parrot;NQP;Compiler;main' pc 44 (nqp.pir:19)
00:53 kesselhaus so neither way works... it just doesn't find the base dir C:\parrot-1.7.0  .. how would i set that?
00:54 kesselhaus C:\Users\kesselhaus>perl6 --help
00:54 kesselhaus perl6 ... Usage: perl6 [switches] [--] [programfile] [arguments]
00:55 kesselhaus see? being on drive C: --> no problem, being on drive D: --> major problem
00:57 kesselhaus that's why i suggested, that parrot and the languages should somehow bring the base dir into the environment, which can be somehow picked up by all parrot tools, e.g. check envvar PARROT_HOME, if not exist, try find parrot in PATH, if exist, set PARROT_HOME internally to one dir up, if not in path, use argv[0], maybe there is a whole path...
00:59 japhb pmichaud, what am I doing wrong here: $ nqp -e 'pir::load_bytecode("P6Regex.pbc"); my $p6regex := Q:PIR { %r = compreg "Regex::P6Regex" }; my $regex := $p6regex.compile("a*"); my $cursor := Regex::Cursor.new; my $match := $cursor.parse("dbcaaaa", $regex);  say($match.dump_str("mob", " ", ""));'
00:59 japhb mob: < @ 0> 0
00:59 japhb If I change the target string to just "aaaa", it matches.
01:00 NotFound kesselhaus: unfortunately we have very few developpers working habitually on windows, so that type of things are poorly tested.
01:00 japhb pmichaud, it's like there's an implicit '^' at the start of the regex
01:02 kid51 mikehh ping
01:09 japhb pmichaud, sorry, the above should have had a regex of "a+" ... too many different attempts, sigh
01:10 hercynium joined #parrot
01:13 japhb pmichaud, AH!  Nevermind, I found the proper incantation.
01:13 japhb .oO( One monkey, hitting keys randomly ....)
01:22 dukeleto thank $deity for beer and fridays
01:22 Tene japhb: am I correct in remembering that plumage can install rakudo?
01:22 dukeleto Tene: yes
01:27 japhb Tene: yes, in fact that's how I always install rakudo.  :-)
01:38 pmichaud back again
01:38 * Coke yawns
01:46 japhb pmichaud, halp!  I can't figure out how to get the next match from a cursor.  (I can get the first match fine, but I can't figure out the incantation to get the *next* one in the same string.)
01:46 japhb in NQP-rx, of course
01:46 pmichaud well, you normally don't have a cursor, you have a match.
01:47 pmichaud there might not be a way to get "next match" yet.
01:47 japhb Oh.  ow.
01:47 pmichaud put it on the list, I can add it soon
01:47 pmichaud (as in the next 24 hrs)
01:47 japhb adding ...
01:47 dukeleto pmichaud: ping!
01:47 pmichaud dukeleto: pong
01:47 * japhb now has a permanent browser tab open on the Plumage Requests wiki page
01:48 dukeleto pmichaud: have you had a chance to make something like tools/dev/mk_language_shell.pl for nqp-rx ?
01:48 japhb Also, I've taken to using the NQP-rx test suite to figure out what is implemented and what isn't.  I didn't see tests for attribute declaration in there ....
01:48 dukeleto pmichaud: also, i was having trouble compiling nqp-rx recently
01:49 pmichaud dukeleto: you had to have had some old sources lying around somewhere
01:49 dukeleto pmichaud: do you have a recommended commit for plumage/HLL authors?
01:49 pmichaud dukeleto: master is working for me, latest commit.  If it's not working for you, let me know.
01:49 pmichaud (and I checked it from a fresh clone)
01:49 pmichaud japhb: yes, attribute declaration is implemented and (I think) tested.  checking
01:50 dukeleto pmichaud: i have the examples you gave me, is that what you are asking about?
01:50 japhb dukeleto, I've been reinstalling nqp-rx regularly using Plumage, which implicitly pulls from master, so I ride the blead.
01:50 dukeleto pmichaud: i am going to try the latest nqp-rx master now
01:50 pmichaud japhb: you're correct, no tests for attributes yet
01:50 pmichaud but attributes are implemented
01:50 dukeleto japhb: which os/platform and parrot configure flags?
01:50 japhb Ha!  I'm not as blind as I appear!
01:51 pmichaud class XYZ {  has $!abc;  }   # should work
01:51 japhb Debian/x86, --optimize --jitcapable=0 --prefix=/usr/local/parrot
01:51 japhb pmichaud, excellent, thank you
01:51 dukeleto japhb: are you using an installed parrot with nqp-rx or using --gen-parrot ?
01:52 dukeleto japhb: or do you hate -gen-parrot ;) ?
01:52 japhb I never use --gen-parrot any more.  It is the anti-Plumage.  It must die.
01:52 japhb :-)
01:52 dukeleto japhb: is it supported? are people going to use it?
01:52 pmichaud fwiw, last I chatted with allison we're likely to include nqp as part of the parrot core
01:52 japhb I consider --gen-parrot FAIL to be a *feature*.  ;-)
01:52 dukeleto we need to either kill gen-parrot, or make it work
01:52 japhb pmichaud, I saw that.  I'm VERY happy to see sanity prevailed.
01:52 japhb I vote kill.  We don't need it.
01:53 japhb OK, maybe I'm being a bit harsh
01:53 pmichaud plumage probably doesn't need --gen-parrot.  But other environments need it.
01:53 dukeleto pmichaud: 'make test' gives me: $ make test
01:53 dukeleto prove -r --exec ./nqp t/nqp
01:53 dukeleto Unknown option: exec
01:53 pmichaud it depends on what you expect the users' installation model to be
01:54 japhb I can see the use for people to keep their playground in one place.  But I'd like to just incorporate that little bit of magic into Plumage.
01:54 pmichaud dukeleto: I'm guessing you have an older version of 'prove'
01:54 dukeleto pmichaud: prove v2.64, using Test::Harness v3.16 and Perl v5.10.0
01:54 pmichaud Any profiling gurus around?
01:54 pmichaud http://pmichaud.com/sandbox/snapshot4.png
01:54 dukeleto pmichaud: what is the min version required? shouldn't that be checked at configure-time ?
01:54 japhb All kidding aside, I'd really like to see all other installation methods for Parrot projects go away, and Plumage be considered canonical.  Only then can we get people eating dog food enough to really work out all the problems.
01:55 pmichaud japhb: that doesn't always work, though.  Will plumage be able to follow Parrot head constantly?
01:55 japhb The only reason I haven't marched down the field with that flag yet is that I spent a while being sick, and couldn't respond to people needing help with Plumage.
01:55 pmichaud if Plumage only targets monthly releases, that absolutely won't work for developers
01:55 japhb pmichaud, I'm not sure I understand your question.
01:56 japhb For now, Plumage is making use of the newest stuff nqp-rx is adding, so I have to ride HEAD on both.
01:56 pmichaud you're suggesting that, say, Rakudo go through plumage in order to obtain Parrot, yes?
01:57 japhb pmichaud, no.  I'm saying people should install Parrot, then Plumage, then use that to build and install Rakudo.  Only thing missing there is
01:57 pmichaud japhb: that's not the sequence I want people to use
01:57 pmichaud how will people know what version of Parrot to install?
01:57 japhb the 'this' pronoun to build and install the user's working directory, rather than in the temp space.
01:58 Tene why don't we just make a tarball of all released versions of Parrot?
01:58 Tene and install them side-by-side?
01:58 pmichaud rakudo development doesn't target released parrots
01:59 japhb I've designed (but been too sick to implement yet -- soon though) the ability to say 'plumage upgrade all' and have it pull down the projects, find the minimal parrot version that works, rebuild and reinstall parrot, and then reinstall all projects on top of it.
01:59 pmichaud the longest that rakudo has ever been able to use a released parrot is 5 days
01:59 Tene Yes, and that's the only thing wrong with my idea. ;)
01:59 pmichaud japhb: what if the minimal version of parrot is too new for the current version of parrot?
01:59 japhb pmichaud, I know that.  :-)
01:59 pmichaud sorry, for the current version of rakudo?
02:00 japhb pmichaud, you're asking if for example partcl needs a newer version of parrot than Rakudo can handle?
02:00 pmichaud japhb: yes
02:00 pmichaud but beyond that
02:00 purl rumour has it beyond that is just groovy :)
02:00 japhb pmichaud, that is a valid point.  let me think for a minute on it.
02:00 pmichaud I don't want to tell people that in order to develop for rakudo they have to first go grab parrot, install it, grab plumage, install it, and then start with rakudo
02:01 pmichaud I'd much prefer to say "grab rakudo, run Configure.pl with the --gen-parrot (or --gen-plumage) option, and go."
02:01 dukeleto pmichaud++ # i like --gen-plumage
02:01 pmichaud now then, for an end-user installation, plumage is probably the way to go
02:01 japhb Plumage will be snapshotted into Parrot in the same way as nqp-rx is.
02:01 Tene for an end-user installation, distro packages are even nicer.
02:01 japhb So only "install Parrot, plumage install rakudo"
02:02 pmichaud personally I think that "plumage install rakudo" should be targeting released versions of Rakudo, not head
02:02 japhb Tene: yes, and several people have demanded that Plumage be able to help distro packagers make binary packages.  So it will, eventually.  :-)
02:03 pmichaud japhb: anyway, if the tools get sophisticated enough then eventually we might recommend the plumage approach.  but for rakudo development, --gen-parrot is currently far better.
02:04 japhb pmichaud, I've been thinking about that, actually.  I want people to be able to (in fact, I think according to the design of Perl 6, we *have to*) be able to install multiple versions of any Parrot project.  And I'm running up against the problem that parrot's library handling structure really doesn't like to do that, especially for HLLs.
02:04 pmichaud japhb: I agree, it's a big problem.  :)
02:04 japhb pmichaud, I totally understand that the short term reality is not representative of the long term goal.  :-)
02:04 pmichaud anyway
02:06 japhb In all that, Plumage Requests was updated with one new item.  :-)
02:06 pmichaud okay
02:06 japhb And thanks for making attribute declarations work, I hopefully can start doing an OO refactor of Plumage soon.
02:06 joeri left #parrot
02:06 pmichaud they were already working earlier in the week :)
02:06 pmichaud actually, last week, come to think of it
02:06 pmichaud but we definitely need a test
02:17 * japhb stashes his attempts at switching to P6Regex into a branch, and tries starting the OO work instead.
02:18 dalek TT #1170 closed by jkeenan++: /docs/book/pir/ch04_variables.pod:  Iterator does not work as documented
02:19 eiro joined #parrot
02:30 japhb pmichaud, does nqp-rx have file-scoped class declarations?
02:30 pmichaud depends on what you mean by "file-scoped"
02:35 japhb class Foo;  as opposed to class Foo { }
02:35 pmichaud I don't know if it has that yet
02:35 pmichaud checking
02:35 pmichaud looks like "yes"
02:36 japhb Yay
02:36 japhb pmichaud++ # yet again
02:36 pmichaud afk for a bit
02:37 * japhb keeps writing 'had $!foo;' instead of 'has $!foo;'
02:37 japhb My classes are prone to losing themselves.
02:40 eternaleye joined #parrot
02:53 elmex joined #parrot
03:14 japhb pmichaud, Am I correct in assuming that only private attributes exist in NQP ('has $!foo;' only)?
03:14 japhb er nqp-rx
03:21 kthakore joined #parrot
03:35 janus joined #parrot
03:42 pmichaud correct, only private attributes
03:42 pmichaud I'm not sure how to handle public ones, since what makes an attribute public in p6 is that there's an accessor method generated
03:47 pmichaud We could generate accessor methods for readonly public attributes, though
03:47 pmichaud that's probably worthwhile
03:47 pmichaud I have no good idea how to make   "has $.foo is rw"  work though
03:47 pmichaud (because there's no way to lvalue an attribute)
03:48 japhb nod
03:48 pmichaud but having  $.foo   automatically generate a 'foo' method is probably worthwhile
03:48 eternaleye pmichaud: my $ret := $!var; return( $ret ); ?
03:48 pmichaud eternaleye: that gets you read only access, yes
03:49 eternaleye pmichaud: I would have thought the := would bind as 'is ref', allowing writes?
03:49 pmichaud yes, but what is a "write" ?
03:49 eternaleye read/write
03:49 pmichaud right
03:49 eternaleye left!
03:49 pmichaud so, suppose you have $ret.  How do you write to it such that it changes $!var ?
03:49 japhb On a separate note ... according to the P6protoobject docs, it's possible to override the proto object's .new() by just declaring a method new in the class itself.  But what do I need to put in that method to instantiate the object?
03:49 pmichaud (nqp code, please)
03:49 pmichaud japhb: I need to come up with a good way to do that, yes.
03:50 pmichaud japhb: I'm thinking it will be worthwhile to have a CREATE method to do that
03:50 pmichaud or... something
03:50 eternaleye Well, they're bound to the same container, so $obj.var = "foo"; since that ends up as '$ret := $!var; $ret = "foo"'
03:50 pmichaud eternaleye: nqp doesn't have assignment, or containers
03:51 pmichaud (because parrot doesn't have them)
03:51 eternaleye Ah, thinko on my part
03:52 japhb pmichaud, I'd be willing to make the first half of my new method be inline PIR at this point.  I just don't know what PIR to use ... because the only example I have is the proto object new method, and that's written from the perspective of a completely different point in the meta space.
03:53 eternaleye In that case, the only way I can think of would be to introduce a layer of abstraction. Have all 'names' be links to a 'supername', and do something like $ret.ROOTOBJ := "foo"
03:53 pmichaud eternaleye: the point is that there's no real concept of a "supername" in Parrot either
03:53 eternaleye and since $ret and $!var both point to the smae 'supername', both now point to "foo"
03:53 pmichaud NQP simply layers a Perl 6 syntax on Parrot semantics
03:53 pmichaud if Parrot doesn't have it, then NQP either generates code to do it, or does without
03:54 pmichaud and NQP isn't fond of creating its own custom data types
03:54 eternaleye Hm
03:55 pmichaud In rakudo we're able to solve the problem by creating container types
03:55 pmichaud but that gets kind of ugly.  In particular, arrays often end up being arrays of container PMCs, which then have to point to the value PMC
03:56 pmichaud so we end up with two PMCs for every element
03:56 eternaleye pmichaud: In that case, make a slight syntax difference: $obj.var => returns $!var; $obj.var($val) => sets $!var to $val and returns $val
03:56 pmichaud (we get around this by using references)
03:57 pmichaud well, in nqp private attributes will probably not be truly private
03:57 eternaleye There are already several syntax differences (say(...) vs say ...), so this wouldn't be a big deal
03:57 pmichaud there's a bit difference there
03:57 pmichaud say(...)   is valid p6 syntax
03:57 eternaleye Mmm, true
03:58 pmichaud nqp uses a subset of p6 syntax.  It tries not to introduce things that fall outside of p6 syntax.
03:58 plobsing joined #parrot
03:58 pmichaud the reason I'm (as yet) able to get    say ...   to work is that there's not a good way to distinguish bareword type names from bareword listops
03:59 pmichaud we might introduce the notion that  barewords beginning with uppercase are types, while barewords beginning with lowercase are listops.... but I'm not sure that works out well in the long run.
04:00 eternaleye pmichaud: Going slightly off topic (back to your comment about 2 PMCs per object), would there be any way to default to not having them, and then 'promote' (similar to autoboxing) when a request that requires them is made?
04:00 pmichaud eternaleye: we pretty much do this in rakudo already
04:00 eternaleye Okay
04:00 pmichaud but sometimes it can't be helped
04:00 pmichaud for the basic value types  (Int, Str, Num)  we're able to avoid the extra PMC reference
04:01 pmichaud but for everything else we basically end up with a reference PMC
04:01 eternaleye pmichaud++ # teaching me neat stuff
04:02 * japhb raises his hand and looks anxious to be called on
04:03 pmichaud japhb:  ...yes?  ;-)
04:04 japhb I could really use even some example inline PIR of how to create an object from within an NQP class's new() method.  I want my new() to be able to take an argument, and I can't do that with the default protoobject new
04:05 pmichaud oh, sorry, thought I answered that
04:05 pmichaud I'd suggest
04:05 pmichaud pir::new(<Some Class>)    # create an instance of Some::Class
04:05 pmichaud or you can do it with
04:05 pmichaud Q:PIR{ %r = new ['Some';'Class'] }
04:06 japhb Wait, that's all?  I don't have to do anything to hook it up to the metamodel?
04:06 pmichaud p6object takes care of that automatically
04:06 pmichaud the hooks into the p6object metamodel are based on an object's (parrot) class
04:06 japhb Oh, cool.  I was thinking I had to do a whole bunch of magic in new(), and I was at a loss as to what to do.
04:07 pmichaud as long as the class itself was created by or registered with P6object  (and all NQP-created classes are), then P6object gets the rest
04:07 japhb Oh, what a relief.
04:07 purl D-E-A-T-H
04:07 * japhb goes to actually try it
04:07 pmichaud here's the default .new method, fwiw
04:08 pmichaud .sub 'new' :method .local pmc parrotclass $P0 = self.'HOW'() ##  for speed we access the 'parrotclass' attribute directly here parrotclass = getattribute $P0, 'parrotclass' $P1 = new parrotclass .return ($P1)
04:08 pmichaud .end
04:08 pmichaud pasto
04:08 pmichaud oops
04:08 pmichaud (nopasting)
04:08 nopaste "pmichaud" at 72.181.176.220 pasted "P6object's default .new method" (8 lines) at http://nopaste.snit.ch/18594
04:09 pmichaud it just gets the parrotclass of the invocant and then creates a new object of the same type
04:10 japhb Can 'self' be assigned to?
04:10 pmichaud ...assigned?
04:10 japhb bound, Mr. Pedantic Boy
04:10 japhb ;-)
04:10 pmichaud sure, it's just a lexical
04:10 pmichaud of course, inside of .new  it starts out as the invocant
04:10 pmichaud but you can rebind it to a different object
04:11 pmichaud I'm not sure that's valid Perl 6, but... :)
04:11 pmichaud while we try hard to always be valid Perl 6, we do sometimes come up short.
04:12 japhb OK, so in NQP, I can do: method new($name) { my $how := self.HOW; my $class = pir::getattribute($how, 'parrotclass'); self := $class.new; $!name = $name; }
04:12 japhb er, last = should be := of course
04:12 pmichaud I don't think you can do  self := $class.new though
04:12 japhb er, and the first as well
04:12 pmichaud I don't think parrot classes have a 'new' method
04:12 japhb bah
04:13 pmichaud you could do   pir::new($class) though
04:13 japhb self := pir::new($class) then?
04:13 pmichaud yeah
04:13 japhb Ok, lemme try that
04:13 pmichaud I'd even shorten it to
04:13 pmichaud pir::getattribute(self.HOW, 'parrotclass')
04:13 pmichaud or for real fun
04:13 pmichaud pir:new( pir::getattribute( self.HOW, 'parrotclass' ) )
04:14 pmichaud which avoids binding the lexicals
04:14 pmichaud ...but I think it's probably worthwhile for me to just add a BUILD method to p6object
04:15 pmichaud then it can just be   self = self.BUILD; $!name := $name
04:15 pmichaud or something like that
04:15 nopaste "japhb" at 76.191.190.8 pasted "Hmmm, new() fails" (7 lines) at http://nopaste.snit.ch/18595
04:16 pmichaud huh
04:16 pmichaud getattribute_PPs then
04:16 pmichaud er
04:16 pmichaud getattribute__PPs
04:16 japhb Do I have to do the type specifier thing on the pir::getattribute?
04:16 japhb ah, right
04:16 pmichaud shouldn't have to, but apparently do
04:16 pmichaud checking
04:16 pmichaud looks like yes, needs the signature
04:17 pmichaud I'll add it to PAST so that a plain getattribute works in the future
04:17 pmichaud (after I get through figuring out why POST -> PIR generation is now taking an incredibly huge amount of time.... it didn't used to)
04:17 pmichaud ....did the pcc refactor significantly slow down pccmethod calls?
04:18 pmichaud as in, by at least an order of magnitude or more?
04:18 japhb Hmmm, I got the same error with pir::new now, so I tried pir::new__Ps and pir::new__PP, and neither one worked (both get Null PMC access in find_method() )
04:18 pmichaud it would be __PP
04:19 japhb yeah, I tried both just in case my logic was wrong.  :-)
04:19 japhb afk for a sec
04:19 pmichaud oh, I'm missing a colon in the version I gave above
04:19 pmichaud pir::new instead of pir:new
04:19 pmichaud maybe that's it.
04:20 japhb nope, I had it right in my code
04:20 pmichaud hmmm
04:20 pmichaud I'll have to look at it a bit later
04:20 pmichaud I suggest the Q:PIR for now
04:20 pmichaud (I _know_ that works :-)
04:21 * japhb really wishes the 'Null PMC access in find_method()' error actually said which method it was trying to find ....
04:21 pmichaud yeah, me too
04:21 pmichaud that might be fixable
04:22 pmichaud although I suspect if it was fixable, we would've already fixed it
04:22 japhb nod
04:22 dukeleto 'ello
04:22 * dukeleto attempts to start backlogging
04:23 japhb o/
04:24 pmichaud oh, I think it can be fixed
04:26 pmichaud pcc refactor landed after the oct release, yes?
04:27 japhb yes
04:28 pmichaud okay
04:28 * pmichaud benchmarks the october release
04:29 japhb Is there a way to put a newline into Q:PIR{} strings? \n doesn't seem to work. Without it, oneliners are kinda painful?
04:29 pmichaud ...one liners?
04:29 pmichaud (short answer, no)
04:29 japhb sigh
04:29 * japhb is a big fan of -e
04:30 japhb OK, time to put this in a probe script
04:30 pmichaud if Q:PIR{...} honored \n as a newline, then   Q:PIR{  print "foo\nbar" };   would dtwt
04:30 japhb Not if it also handled \\
04:31 japhb which I guess with shell quoting would become \\\\, sigh
04:31 plobsing what about QQ:PIR?
04:31 pmichaud no, it would want to be qq:PIR { ... }
04:31 pmichaud but then $'s would get interpolated
04:31 pmichaud so really what you want is  qb:PIR { ... }
04:32 pmichaud or  q:b:PIR { ... }
04:34 plobsing do you plan on adding such a construct?
04:35 pmichaud hadn't planned on it, but could be talked into it :)
04:37 pmichaud hmmm.  my slowdown doesn't appear to be due to PCCMETHOD
04:45 dukeleto pmichaud: do you know the min version of prove that nqp-rx's test suite requires?
04:52 pmichaud dukeleto: no
04:56 dukeleto pmichaud: it is > -test] Error 1
04:56 dukeleto (kadath)(~/git/nqp-rx master )$ prove --version
04:56 dukeleto prove oops
04:57 dukeleto sorry about the paste bomb
04:57 dukeleto i meant to say "it is > v2.64"
04:57 nopaste "japhb" at 76.191.190.8 pasted "Works! But how to simplify ...?" (24 lines) at http://nopaste.snit.ch/18596
04:58 pmichaud dukeleto: looks like you need something after 2.64 though
04:58 dukeleto japhb: that looks pretty tricked out
04:59 pmichaud dukeleto: prove 2.64 appears to have come out in Oct 2006.  The --exec option was added in August 2007.
04:59 japhb pmichaud, can you see a way to improve that method new()?  And why do I need to restate '$!name;' at the end of method name()?  It appears as if the binding statement cannot work with implict return
04:59 japhb dukeleto, :-)
05:00 dukeleto pmichaud: wow, i am behind the times
05:04 pmichaud japhb: I'm not sure why the need for the extra $!name
05:04 pmichaud I suppose that binding might not be returning the lvalue side
05:04 pmichaud (but it should...)
05:05 japhb Is that likely to be a difficult fix?
05:05 pmichaud only if it ends up requiring a deprecation
05:05 pmichaud otherwise, no
05:05 * pmichaud checks
05:06 pmichaud yeah, looks like setattribute isn't returning a value
05:06 pmichaud looking further...
05:07 pmichaud hmmmmm
05:08 pmichaud given     setattribute $P0, 'attr', $P1
05:08 pmichaud what should be the "value" of that bind?
05:09 pmichaud $P0, or $P1 ?
05:09 pmichaud I can argue it both ways.
05:10 eternaleye pmichaud: What's the argument ordering for a simple binding? I'd say they should be consistent.
05:10 pmichaud in this case, it's
05:10 japhb Well, the high level versions would be 'return($!foo := $bar)' and '$!foo := $bar; return(self)', so I argue $P1
05:10 pmichaud yeah, in this case it's pretty clear it should be $P1
05:11 pmichaud we might have a deprecation issue here, then.
05:12 japhb :-(
05:12 pmichaud for some reason setattribute in PAST::Compiler is set to return $P0
05:12 pmichaud may have been to make it easy to set multiple attributes on an object
05:12 pmichaud setprop does the same
05:12 japhb chaining
05:12 purl i heard chaining was Catalyst::DispatchType::Chained or http://www.catalystframework.org/calendar/2006/10 or the bizomb
05:13 pmichaud yeah
05:13 pmichaud but that's a :pirop, not bind, so....
05:13 pmichaud checking
05:13 japhb Yeah, I can see how that might have been useful for some HLLs.
05:18 japhb Come to think of it, the JavaScript library jQuery is really, REALLY into chaining.  If it even vaguely makes sense to do so, it's chainable.  Even when it's a bit of a stretch.
05:18 japhb In any case, NQP != jQuery.  :-)
05:18 pmichaud japhb: aha, looks like a pct bug
05:18 pmichaud japhb: which means it can be fixed :)
05:19 japhb yay!
05:19 pmichaud I'll do that now.
05:19 japhb Excellent, thank you.
05:20 pmichaud testing now
05:39 japhb pmichaud, any luck?
05:43 japhb ENOPMICHAUD
05:43 japhb Ah well, I think I'll go eat some ice cream then.  :-)
05:45 pmichaud r42317
05:46 dukeleto where would a good place be in the parrot repo to put notes about the RTEMS port?
05:46 dukeleto the wiki is pissing me off
05:47 dalek parrot: r42317 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
05:47 dalek parrot: [pct]:  binding an attribute node should return the bound value (japhb++)
05:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42317/
05:54 japhb OK, while my parrot rebuilds ... any thoughts on improving that method new() in my test program?
05:54 pmichaud looked fine to me
05:58 japhb Just felt a little over-heavy ... ah well.
06:05 japhb r42137 confirmed working for me, thanks!
06:05 japhb pmichaud++
07:00 workbench joined #parrot
07:08 dalek parrot-plumage: 0e62a77 | japhb++ | :
07:08 dalek parrot-plumage: [PROBES] Add class.nqp, testing accessor and custom new() creation
07:08 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/0e62a770cfffd00f71ce8cb946dae9e02123c6f9
07:11 japhb pmichaud, CREATE added to Classes section of http://wiki.github.com/per​l6/nqp-rx/plumage-requests
07:11 nopaste "NotFound" at 213.96.228.50 pasted "Do you want to find a method?" (7 lines) at http://nopaste.snit.ch/18597
07:11 NotFound Is this that you were talking about?
07:12 NotFound Just five lines of code :)
07:13 japhb NotFound, who are you talking to?
07:13 NotFound [05:21] * japhb really wishes the 'Null PMC access in find_method()' error actually said which method it was trying to find ....
07:14 japhb Oh, yes, actually!
07:14 japhb Thank you!
07:14 japhb is that committed?
07:14 NotFound I'm testing it
07:15 NotFound Pass tests, going to commit.
07:16 japhb NotFound++
07:18 NotFound r42318
07:19 dalek parrot: r42318 | NotFound++ | trunk/src/pmc/null.pmc:
07:19 dalek parrot: show the method name in 'Null PMC access in find_method' messages
07:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42318/
08:16 iblechbot joined #parrot
08:34 fperrad joined #parrot
09:00 bacek joined #parrot
09:00 bacek o hai
09:01 bacek seen pmichaud
09:01 purl pmichaud was last seen on #parrot 3 hours, 6 minutes and 41 seconds ago, saying: looked fine to me
09:03 NotFound Can someone give me review of this page? http://code.google.com/p/winxed/wiki/HowToInstall
09:20 chromatic joined #parrot
09:23 dalek parrot: r42319 | bacek++ | branches/pmc_headers_move:
09:23 dalek parrot: Branch for moving generated pmc_foo.h headers in include/pmc
09:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42319/
09:27 dalek parrot: r42320 | bacek++ | branches/pmc_headers_move (55 files):
09:27 dalek parrot: Generate pmc_foo.h files inside include/pmc instead of src.
09:27 dalek parrot: 1. Change lib/Parrot/Pmc2c/UtilFunctions.pm to generate different
09:27 dalek parrot: pmc_foo.h files for core and dynpmc.
09:27 dalek parrot: 2. Change all #include "../src/pmc/pmc_foo.h" to just #include
09:27 dalek parrot: "pmc/pmc_foo.h"
09:27 dalek parrot: 3. Change dependencies in root.in and dynpmc.in
09:28 dalek parrot: This bring build-tree closer to installed parrot and allows to use
09:28 dalek parrot: consistent #include "pmc/pmc_foo.h" across codebase.
09:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42320/
09:28 dalek parrot: r42321 | bacek++ | branches/pmc_headers_move/include/pmc (2 files):
09:28 dalek parrot: Add dummy file inside include/pmc to keep directory from being removed.
09:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42321/
09:28 dalek wmlscript: b92879a | fperrad++ | src/pmc/wmls (4 files):
09:28 dalek wmlscript: modernize API
09:28 dalek wmlscript: s/PCCINVOKE/Parrot_pcc_invoke_method_from_c_args/
09:28 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/b92879a2462e315e92bde35fd2c0b9d4e438376c
09:28 dalek wmlscript: 85f1ad5 | fperrad++ |  (8 files):
09:28 dalek wmlscript: convert Configure to PIR (from Perl)
09:28 purl I don't know how to convert Configure to PIR (from Perl).
09:28 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/85f1ad5431f7dc64ca6aec3d6697f18d9b117650
10:01 bacek msg pmichaud LexPad.get_iter is (partially) implemented. DynLaxPad is little bit more tricky.
10:01 purl Message for pmichaud stored.
10:01 dalek parrot: r42322 | bacek++ | trunk (2 files):
10:01 dalek parrot: [pmc] Implement LexPad.get_iter
10:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42322/
10:03 dalek wmlscript: 2000d2c | fperrad++ |  (41 files):
10:03 dalek wmlscript: reorg tree
10:03 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/2000d2c4ab3cfad16462ae0c30ed807451c54afb
10:09 dalek wmlscript: db3475e | fperrad++ |  (2 files):
10:09 dalek wmlscript: chmod +x
10:09 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/db3475e0d344c8ed806e1ec3b86534be40c86611
11:20 dalek wmlscript: 43328b9 | fperrad++ |  (6 files):
11:20 dalek wmlscript: update PMC tests,
11:20 dalek wmlscript: the following syntax is gone :
11:20 dalek wmlscript:   .const 'WmlsType' K = 'from string'
11:20 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/43328b9cb9d98f3dd601e8934295ed349bbe06d0
11:20 dalek wmlscript: f8c4443 | fperrad++ | Makefile.in:
11:20 dalek wmlscript: remove PROVE
11:20 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/f8c4443026c105e744eb8b99078885422fcc48f3
11:20 dalek wmlscript: 4d8d4d8 | fperrad++ | dynext/pmc/wmls (4 files):
11:20 dalek wmlscript: [codingstd] fix line length
11:20 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/4d8d4d8be618fa3f03e74d61780a7e4c50995a9b
11:20 dalek wmlscript: 3b24ba6 | fperrad++ | doc/ (2 files):
11:20 dalek wmlscript: update doc :
11:21 dalek wmlscript: Configure.pir
11:21 dalek wmlscript: various paths
11:21 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/3b24ba6a84c3a948c0cca7b5fa040d4904a732b1
11:21 dalek wmlscript: db914b9 | fperrad++ | Makefile.in:
11:21 dalek wmlscript: clean up
11:21 purl clean up is a breeze
11:21 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/db914b9894ae3b2dd2419a6d6a44d7eb4f95f005
11:32 joeri joined #parrot
12:09 payload joined #parrot
12:44 dalek TT #1217 created by bubaflub++: [PATCH] t/dynpmc/foo.t converted to PIR
12:48 dalek TT #1218 created by bubaflub++: [PATCH] t/dynpmc/foo2.t converted to PIR
12:49 Whiteknight joined #parrot
12:54 mokurai left #parrot
13:23 kj joined #parrot
13:39 kj Coke: ping
13:51 dalek TT #1219 created by kjs++: Parrot's default namespaces should be fully typed
13:52 dalek lua: 00bc9aa | fperrad++ |  (13 files):
13:52 dalek lua: Since r42279, VTABLE instantiate_str is gone.
13:52 dalek lua: So, the following syntax is dead :
13:52 dalek lua:    .const 'LuaType' K = 'init_from_string'
13:52 dalek lua: review: http://github.com/fperrad/lua/commit/00​bc9aa5e3a1e44949a5f7755a6eaec9e83ccef6
13:54 Whiteknight purl msg desertm4x there are a few parrot-linear-algebra test failures after your last commit. I'll try to do some debugging to see what I can find. Most of your changes look very nice
13:54 purl Message for desertm4x stored.
13:57 dalek parrot: r42323 | kjs++ | trunk/src/global.c:
13:57 dalek parrot: [src] update reference from RT ticket to TT ticket nr.
13:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42323/
14:00 dalek parrot: r42324 | kjs++ | trunk/src/global.c:
14:00 dalek parrot: [src] update reference from RT ticket to TT ticket nr.
14:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42324/
14:01 dalek TT #1220 created by kjs++: Stop depending upon typed namespaces in internal_ns_keyed()
14:01 dalek TT #1221 created by kjs++: Match HLL of enclosing namespace in internal_ns_keyed()?
14:04 dalek parrot: r42325 | kjs++ | trunk/src/global.c:
14:04 dalek parrot: [src] update reference from RT ticket to TT ticket nr.
14:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42325/
14:04 dalek TT #1222 created by kjs++: Use the untyped interface in Parrot_find_global_n()
14:07 dalek parrot: r42326 | kjs++ | trunk/src/global.c:
14:07 dalek parrot: [src] update reference from RT ticket to TT ticket nr.
14:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42326/
14:07 dalek parrot: r42327 | kjs++ | trunk/src/global.c:
14:07 dalek parrot: [src] update reference from RT ticket to TT ticket nr.
14:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42327/
14:11 dalek parrot: r42328 | kjs++ | trunk/src/global.c:
14:11 dalek parrot: [src] update reference from RT ticket to TT ticket nr.
14:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42328/
14:11 dalek TT #1223 created by kjs++: Parrot_find_name_op() should walk up the scopes
14:15 dalek TT #1224 created by kjs++: Fix temporary hack for cache invalidation; should be a namespace function; ...
14:18 dalek TT #1225 created by kjs++: Method cache invalidation should be a namespace function
14:21 dalek parrot: r42329 | kjs++ | trunk/src/global.c:
14:21 dalek parrot: [src] update reference from RT ticket to TT ticket nr + add a ticket reference for a TEMPORARY HACK note.
14:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42329/
14:25 dalek parrot: r42330 | kjs++ | trunk/t/compilers/json/to_parrot.t:
14:25 dalek parrot: [t] update RT ticket no. to TT ticket no.
14:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42330/
14:25 dalek TT #1226 created by kjs++: Increase code coverage of json
14:41 Whiteknight purl msg desertm4x nevermind, I figured it out. Small typo in the INDEX_XY_ROWMAJOR macro. Resolved now. Everything is working normally
14:41 purl Message for desertm4x stored.
14:46 dalek parrot-linear-algebra: ddc652b | Whiteknight++ | src/pmc/pla_matrix_types.h:
14:46 dalek parrot-linear-algebra: fix a small typo that was breaking some tests
14:46 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/ddc652be76a72971d171e82949a1739be57f4bd1
14:47 dalek parrot: r42331 | mikehh++ | trunk/src/global.c:
14:47 dalek parrot: fix codetest failure - trailing space
14:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42331/
14:58 dalek lua: 171cc98 | fperrad++ |  (43 files):
14:58 dalek lua: reorg tree (non core libraries)
14:58 dalek lua: review: http://github.com/fperrad/lua/commit/17​1cc989060edc58bf2afb3b6e192b1100fa5b00
14:58 dalek lua: a28bbc6 | fperrad++ |  (30 files):
14:58 dalek lua: reorg tree (PMC)
14:58 dalek lua: review: http://github.com/fperrad/lua/commit/a2​8bbc631f5e85c2739ae2542c7abc5076886202
15:05 payload joined #parrot
15:06 nbrown joined #parrot
15:17 nbrown joined #parrot
15:21 masak joined #parrot
15:24 Psyche^ joined #parrot
15:49 dalek lua: 53bff84 | fperrad++ |  (50 files):
15:49 dalek lua: reorg tree
15:49 dalek lua: review: http://github.com/fperrad/lua/commit/53​bff84b49afc1b6cc76302c1ad19ce9b5f9c5ef
15:54 Hunger joined #parrot
16:00 dalek lua: 597612d | fperrad++ | lua/library/Makefile.in:
16:00 dalek lua: fix after reorg
16:00 dalek lua: review: http://github.com/fperrad/lua/commit/59​7612d3aa81ec251c6687dc14f751b0ac2c66e4
16:04 dalek wmlscript: 98c7001 | fperrad++ | dynext/ (2 files):
16:04 dalek wmlscript: fix after reorg
16:04 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/98c700164251fc5a7a7ecc8003b3faeb264f025d
16:04 dalek wmlscript: 029ea8f | fperrad++ | dynext/ (2 files):
16:04 dalek wmlscript: fix after reorg
16:04 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/029ea8fddf800f48a592c67c7555004cdc31fb63
16:17 dalek lua: 0eae52a | fperrad++ | dynext/pmc/Makefile.in:
16:17 dalek lua: fix after reorg
16:17 dalek lua: review: http://github.com/fperrad/lua/commit/0e​ae52a37b9a92e20d82c44e342af1dee412379b
16:17 dalek lua: 7bab379 | fperrad++ | doc/ (2 files):
16:17 dalek lua: update doc
16:17 dalek lua: review: http://github.com/fperrad/lua/commit/7b​ab3799412c26d4ee12363de4b9b19430fb0d2d
16:22 theory joined #parrot
16:23 dalek lua: 4ed6f1d | fperrad++ | Configure.pir:
16:23 dalek lua: chmod +x
16:23 dalek lua: review: http://github.com/fperrad/lua/commit/4e​d6f1d3dfdd11291810fc65e1b463e6484dd704
16:29 dalek lua: 3245743 | fperrad++ | dynext/pmc/Makefile.in:
16:29 dalek lua: fix after reorg
16:29 dalek lua: review: http://github.com/fperrad/lua/commit/32​457433dd1148b2384ea33c90b85a30a72a3364
16:29 dalek lua: baef520 | fperrad++ |  (2 files):
16:29 dalek lua: fix after reorg
16:29 dalek lua: review: http://github.com/fperrad/lua/commit/ba​ef5208b54f6b5a696c9885798988c631efc86e
16:44 davidfetter joined #parrot
16:57 dalek lua: 4c22900 | fperrad++ |  (2 files):
16:57 dalek lua: fix after reorg
16:57 dalek lua: review: http://github.com/fperrad/lua/commit/4c​2290068f66944d104ed40726ac2edeea635546
16:58 iblechbot joined #parrot
17:08 DrForr_ joined #parrot
17:32 Zak joined #parrot
17:34 whoppix joined #parrot
18:03 kid51 joined #parrot
18:57 Coke ~._
18:58 diakopter \__/
18:59 dalek parrot: r42332 | coke++ | trunk (7 files):
18:59 dalek parrot: Fix codingstd outdent test, courtesy plobsing++
18:59 dalek parrot:  -- also fix 'denting levels on files that were incorrect
18:59 dalek parrot:     (but passed the old test.)
18:59 dalek parrot: Resolves issue #1137.
18:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42332/
19:01 dalek TT #1137 closed by coke++: [PATCH] fix codingstd/c_indent.t wrt switch/case labels
19:03 eternaleye joined #parrot
19:04 Coke yay, RT down to 61.
19:04 Coke (and I didn't even do those 8.)
19:06 diakopter is the goal to move all the RT ones to trac?
19:12 mikehh joined #parrot
19:14 dalek TT #759 closed by coke++: Reconsider one-test-file-per-PMC policy
19:16 dalek parrot: r42333 | coke++ | trunk (2 files):
19:16 dalek parrot: Remove test file that checks for test files.
19:16 dalek parrot: (Instead, let's use code coverage to make sure we're testing functionality)
19:16 dalek parrot: Resolves Issue #759
19:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42333/
19:20 Coke msg kid51 fyi, hll_interop is not appropriate for /every/ HLL-related ticket, only for those where two HLL's are trying to talk to each other.
19:20 purl Message for kid51 stored.
19:21 dalek TT #376 closed by coke++: support policy refers to x.5 releases
19:22 bacek joined #parrot
19:23 Coke is trac this slow for anyone else, or is it just me?
19:25 NotFound Coke: an hour or so ago it worked well.
19:28 Coke If I want the trac wiki page for languages, is there somethign I can enter in the seach to force it?
19:30 NotFound google ;)
19:31 dalek TT #252 closed by coke++: xlst out of date
19:33 NotFound Coke: uh... There is a trac wiki page for languages? I only know the one in www.parrot.org
19:34 dalek TT #915 closed by coke++: email2trac test
19:36 Coke I have no idea why that effort was duplicated on parrot.org
19:36 Coke the one on trac was the "real" one, I thought.
19:38 Coke msg  mikehh hey, when you untodo a test that has a TT number... you might want to resolve the ticket. =-)
19:38 purl Message for mikehh stored.
19:38 NotFound Coke: The one that that feeds dalek?
19:41 dalek TT #1027 closed by coke++: PIR-only segfault
19:43 NotFound Coke: the search works reasonably fast for me now.
19:44 dalek TT #897 closed by coke++: Review test coverage and add more tests or deprecate unused functionality.
19:48 Coke pmichaud: ping
19:48 Coke Can we reject #590 (presuming these are only going to be in nqp-rx, not PGE)
19:48 pmichaud pong
19:49 pmichaud yes
19:49 pmichaud or we can mark it as being done in nqp-rx instead
19:51 dalek TT #590 closed by coke++: PGE proto regex
19:52 dalek tracwiki: v106 | NotFound++ | Languages
19:52 dalek tracwiki: https://trac.parrot.org/parrot/wiki/L​anguages?version=106&amp;action=diff
19:58 payload joined #parrot
19:58 Coke I wonder which page dalek is using.
19:59 NotFound pmichaud: Have you seen my patch in TT #1078 ?
20:01 pmichaud NotFound: no, hadn't seen it -- looking
20:01 pmichaud the original source is incorrect -- it forgets to pop the handler after catching the exception
20:02 pmichaud i.e., I don't think a patch is needed, because the original test case is flawed
20:03 NotFound pmichaud: dying with exahusted stack for a pitfall like that is very wrong, IMO.
20:04 NotFound And from time to time people create new tickets like that, wich doesn't help anything.
20:04 pmichaud NotFound: I'd be fine with (re)using the recursion limit as a limit for exception handler triggering
20:04 pmichaud since they're effectively the same thing.  does your patch do that?
20:04 Coke I'm kind of surprised the recursion limit doesn't already trigger that.
20:04 NotFound pmichaud: no, just tested with an arbitrary value.
20:04 pmichaud I'd suggest recursion limit.
20:04 pmichaud and throw the same sort of exception as a recursion limit
20:05 NotFound pmichaud: but my main question is that I'm doing the right thing to avoid interfere with control exceptions.
20:05 Coke I don't think that limiting the # of times a handler can fire is the right approach.
20:05 Coke (and if we do, the limit should be 1.)
20:05 NotFound Coke: segfaulting sure is not.
20:06 pmichaud I agree, limiting the number of times a handler can fire is wrong.
20:06 NotFound Coke: I agreed, but last time I asked the answer was a big NO.
20:06 Coke right.
20:07 NotFound Is wrong, but segfaulting is hardly better.
20:07 pmichaud putting in an incorrect behavior is equally bad, though.
20:08 pmichaud worse, because people might come to depend on it
20:08 pmichaud (I admit, not likely in this case)
20:08 NotFound What is the correct behavior, then?
20:08 pmichaud use the same logic that gets used for recursion limits, I suspect
20:09 NotFound The logic is setting a limit and throw. That's what I'm doing.ç
20:09 pmichaud right, but the question is where the limit gets counted
20:09 pmichaud it shouldn't be counted in the exception handler itself
20:09 NotFound Ah, that is a secondary question for me.
20:09 Coke I imagine we'd get this for free if we used sub-based handlers.
20:09 pmichaud because it's very likely that one handler might be asked to handle thousands or tens of thousands of exceptions that aren't recursive
20:10 pmichaud Coke: I'm in general disagreement that sub-based handlers solve any of the problems they're intended to solve (inferior runloop, e.g.), although I admit it might help with this case
20:12 NotFound pmichaud: given that we don't have a way to know when the handler has finished, I can't imagine other place.
20:13 pmichaud I'd prefer to segfault on incorrect code than to have incorrect behavior on correct code, though.
20:14 pmichaud segfaults are bad, yes, but fixing them shouldn't cause correct code to fail
20:14 NotFound pmichaud: I'm tired of losing time tracking that type of bugs.
20:15 pmichaud then we should fix the issues with exception handlers at some point
20:15 pmichaud I'll add my comments to the ticket, and then others can decide the best approach.
20:18 pmichaud Added.
20:18 dalek TT #1227 created by bubaflub++: [PATCH] config/gen/crypto/digest_t.in for generated tests in t/dynpmc
20:20 NotFound I suppose that best approach will be the same as in previous cases: do nothing.
20:20 pmichaud s/best/best currently available/
20:20 pmichaud I fully agree with you that it should not segfault.  I do not have a superior answer at the moment, though.
20:21 NotFound I wonder why we check array out of bounds access. After all, is an error in the user code, same as this.
20:21 NotFound </rant> ;)
20:21 pmichaud because adding that check doesn't impose an incorrect semantic on correct code.
20:23 pmichaud adding a limit to the number of times a handler may be triggered would be like adding a limit to the number of times a subroutine can be invoked
20:23 chromatic joined #parrot
20:27 mikehh Coke: which ticket?
20:27 purl which ticket is, like, this now
20:28 diakopter purl, forget which ticket
20:28 purl diakopter: I forgot which ticket
20:28 diakopter purl, forget yourself
20:28 purl diakopter, I didn't have anything matching yourself
20:31 Zak joined #parrot
20:34 mokurai joined #parrot
20:39 dalek parrot: r42334 | pmichaud++ | trunk/compilers/pct/src/POST/Compiler.pir:
20:39 dalek parrot: [pct/post]:  Remove spurious tailcall of void result in void context.
20:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42334/
20:40 pmichaud Coke: since you'll be away for the week, I'll plan that we'll do partcl stuff soon after you get back
20:41 pmichaud hopefully I'll have a lot of the other rakudo and nqp stuff out of the way by then
20:41 eternaleye joined #parrot
21:10 mokurai joined #parrot
21:11 mikehh I am getting a failure with t/op/comp.t with g++ and --optimize on Ubuntu 9.10 i386 - it does not fail with gcc and without --optimize
21:17 nopaste "mikehh" at 81.149.189.7 pasted "failure with t/op/comp.t with g++ and --optimize on Ubuntu 9.10 i396" (31 lines) at http://nopaste.snit.ch/18601
21:19 kid51 mikehh:  Have you tested with that platform/compiler/options combination before?
21:19 mikehh bah i386
21:19 kid51 i.e., is this a new failure ... or something newly exposed by different, say, compiler?
21:22 mikehh kid51: we have only recently got g++ 4.4.1 to work on Ubuntu 9.10 (NotFound++) and it the first time I tested (yesterday I think) on Ubuntu 9.10 i386
21:23 mikehh I Haven't got any other i386 installations at the moment - I updated my 9.04 i386 and it was ok last time I tested there
21:23 kid51 Sounds like it's mostly the new version of g++
21:23 mikehh possibly - it does pass without optimize and passes on amd64
21:24 NotFound mikehh: going to try now on my laptop
21:24 kid51 But it sounds more like our code being exposed to a new environment, rather than a long-standing (known) defect in our code.
21:25 kid51 i.e., it doesn't sound like it's due to a recent commit.
21:25 kid51 ... so bisecting probably wouldn't say very much.
21:27 NotFound Thanks to new platform, otherwise I'm unable to convince some people to fix 'features' }:)
21:28 kid51 mikehh:  Sorry I wasted your time on that test for TT #1194
21:29 mikehh kid51: np
21:29 kid51 Would you be able to give that another try on your amd64?
21:30 NotFound mikehh: fails also for me
21:30 mikehh the last test I did on Ubuntu 9.04 i386 was at r42132 - that passed (with g++ and --optimize)
21:31 NotFound Don't worry too much, I had an old gcc where 0.0 > 0.0 failed sometimes X-)
21:32 mikehh I can't go back to that revision with g++ 4.4.1 because it won't build
21:33 * kid51 tries compiling for first time with mikehh's combination of command-line options
21:36 mikehh kid51: I am headed back to amd64 shortly - I just want to look at that test in more detail
21:38 kid51 Thanks!
21:43 Util Does Parrot provide any way to undo a `loadlib` op in a running PIR program?
21:44 NotFound The numbers looks equal in the Float vtable function using an fprintf with lot of precission
21:51 NotFound left #parrot
21:51 NotFound joined #parrot
21:53 NotFound FLOATVAL n1= SELF.get_number();
21:53 NotFound FLOATVAL n2= VTABLE_get_number(INTERP, value);
21:53 NotFound (n1 == n2) and (SELF.get_number() == VTABLE_get_number(INTERP, value)) give different values
21:55 dalek parrot: r42335 | jkeenan++ | trunk/src/pmc/integer.pmc:
21:55 dalek parrot: Add 'TODO' notation.
21:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42335/
21:57 * Coke buys disney tickets for 9 people for 3 days and nearly faints.
21:58 Coke Util: I don't think so.
21:58 dalek TT #1228 created by jkeenan++: src/pmc/integer.c:  Implement Complex and BigInt RHS values for the pow() ...
21:58 Coke it's basically a dynamic load, yes? (is there a way to do that unload from C?)
21:58 Coke kid51++: thanks for doing ticket cleanup.
21:58 Coke also kj++ and fperrad++
22:01 dalek parrot: r42336 | jkeenan++ | trunk/src/pmc/integer.pmc:
22:01 dalek parrot: Change RT # to TT #.
22:01 purl dalek: that doesn't look right
22:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42336/
22:08 dalek TT #1229 created by jkeenan++: src/pmc/fixedpmcarray.pmc:  get_repr() should use freeze/thaw
22:12 dalek parrot: r42337 | jkeenan++ | trunk/src/pmc/fixedpmcarray.pmc:
22:12 dalek parrot: Change RT # to TT #.
22:12 purl dalek: that doesn't look right
22:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42337/
22:17 NotFound SELF.get_number() - VTABLE_get_number(INTERP, value) gives 4.445229e-17
22:18 NotFound No wonder that == gives false
22:18 dalek TT #1230 created by jkeenan++: src/pmc/eval.pmc:  Walk the fixups, locate globals and nullify the Sub PMC
22:18 dalek parrot: r42338 | jkeenan++ | trunk/src/pmc/eval.pmc:
22:18 dalek parrot: Change RT # to TT #.
22:18 purl dalek: that doesn't look right
22:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42338/
22:20 Util Coke: Ah, I see. I had not thought it through to the dyld/dlopen calls.
22:20 Util So, anything that tests different ways of loading a lib (like t/dynpmc/foo.t does) will need a fresh Parrot instance for each `loadlib`.
22:20 Util bubaflub++ did nice work in TT #1217 converting foo.t from Perl to PIR. However, it is now full of false negatives, since the first successful `loadlib` masks any later failures.
22:20 NotFound I don't know if we must fix this by storing the values in a FLOATVAL variable before comparing, or fix the test because is wrong to compare for exact equality two floating values calculated in different ways.
22:21 Coke it's always wrong to test floats for equality. no?
22:22 NotFound Coke: in the vast majority of cases, yes.
22:24 NotFound I'm not sure if the optimizer is doing the right thing is this case, though.
22:24 mikehh the problem being is that it passes the test in most cases but not with optimized g++ on i386
22:25 dalek TT #1231 created by jkeenan++: src/pmc/hash.pmc:  Use freeze in get_repr() (for hashes)
22:25 NotFound mikehh: if the test is wrong, I don't care that it passes.
22:25 dalek parrot: r42339 | jkeenan++ | trunk/src/pmc/hash.pmc:
22:25 dalek parrot: Change RT # to TT #.
22:25 purl dalek: that doesn't look right
22:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42339/
22:26 NotFound I don't want tests that fails when optimizing if they are not testing the absolutely right thing.
22:26 mikehh NotFound: oh I agree, but just curious why it fails in that case
22:26 NotFound mikehh: I'm not sure, nut maybe just because the compiler is doing a better optimization.
22:28 NotFound I think that the standard allows to optimize any temporary result until is assigned to a variable, and for floats this mean he can use the higher precision available.
22:28 mikehh fp values should never be tested for equality
22:29 Tene should we make that an error, then?
22:29 NotFound mikehh: not always. For example, in a compiler deciding if he must use the absolute zero format for printing.
22:29 Coke "almost never"
22:30 Tene can the cases where it's appropriate be completely enumerated, so we can fail the rest of the time?
22:31 NotFound Did we have a mathematician in the room? ;)
22:31 mikehh if (abs(value1 - value2) < epsilon)
22:32 Tene mikehh: that's not equality.
22:33 NotFound But perfect equality is not what that test must be doing.
22:33 mikehh it's a valid test for approximate values - i.e. floating point
22:33 Tene Right.
22:34 NotFound In fact, I'm not sure if having that opcode makes sense.
22:34 Tene So, could it ever make sense to change the is_equal vtable in float.pmc to throw an exception?
22:35 NotFound Compare for exact equality floating point values stored or obtained in different ways, which is what that opcode do, is wrong.
22:36 Essobi joined #parrot
22:36 NotFound Tene: is not the is_equal vtable, is the is_equal_num
22:39 NotFound But I think the is_equal multi has the same problem when comparing PMC of different types.
22:41 dalek TT #1232 created by jkeenan++: t/src/warnings.t:  Test fails when Parrot built with g++ and --optimize
22:41 NotFound The problem is that in an op with an integer result we can't test the result is 'almost true' X-)
22:49 NotFound Mmmmm... I've found the simplest fix: add a lot of zeros to the values used in the test
22:49 NotFound set P0, -1.200000000000000 ... set P1, "-1.200000000000000"
22:54 dalek TT #1233 created by jkeenan++: t/pmc/exporter.t:  Refactor namespace getting code once make_namespace() ...
22:55 dalek parrot: r42340 | jkeenan++ | trunk/t/pmc/exporter.t:
22:55 dalek parrot: Change RT # to TT #.
22:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42340/
22:55 purl dalek: that doesn't look right
22:56 NotFound TT #1176 migth be the cause of that failure:
22:56 NotFound "I have redefined POW to be pow() unconditionally in r42217, and put a note  referencing this TT"
22:57 NotFound Yes, defining POW as powl the test pass.
22:58 NotFound At least we know why it don't failed before :)
23:05 Zak joined #parrot
23:14 mikehh NotFound: you only need to add zeros to the string not the number
23:14 mikehh and minimum is "-1.2000000000"
23:15 mikehh any fewer fails
23:15 mikehh zeros that is
23:16 NotFound mikehh: yes, but maybe that way is worsen things, it may fool the precision in the Parrot_str_to_num calculations.
23:17 NotFound Why we just doesn't use scanf?
23:17 NotFound sscanf
23:40 dalek tracwiki: v107 | NotFound++ | Languages
23:40 dalek tracwiki: Restore alphabetic order
23:40 dalek tracwiki: https://trac.parrot.org/parrot/wiki/L​anguages?version=107&amp;action=diff
23:46 mikehh NotFound: I'll create a ticket for this in a bit - I want to check on some issues
23:46 * mikehh needs a break - bbl
23:51 dalek parrot: r42341 | jkeenan++ | trunk (77 files):
23:51 dalek parrot: Merge convert_OSNAME into trunk.  In config steps after auto::arch, we know 'osname', so use '->data->get('osname')' instead of '->data->get_p5('OSNAME')'.  Cf.:  https://trac.parrot.org/parrot/ticket/1194.
23:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42341/
23:52 NotFound mikehh: I've put a comment in TT #1176
23:54 dalek parrot: r42342 | jkeenan++ | branches/convert_OSNAME:
23:54 dalek parrot: Branch has been merged into trunk and is no longer needed at HEAD.
23:54 purl i already had it that way, dalek.
23:54 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42342/

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

Parrot | source cross referenced