parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
cotto roadmap? 00:00
purl somebody said roadmap was www.xray.mpe.mpg.de/mailing-lists/p...00115.html
00:00 TiMBuS joined
cotto no, roadmap is trac.parrot.org/parrot/wiki/ParrotRoadmap 00:01
purl okay, cotto.
pmichaud afk (fetching dinner for kids) 00:06
00:07 dmknopp joined 00:08 allison joined 00:09 AndyA joined 00:11 bacek joined
Limbic_Region chromatic - sorry, forgot about the build - worked fine on Win32/MinGW/Perl 5.10/Storable 2.18 00:25
purl msg chromatic sorry, forgot about the build - worked fine on Win32/MinGW/Perl 5.10/Storable 2.18 most recent checkout as of 19:26 EST 2008-11-17 00:26
purl Message for chromatic stored.
chromatic Great, thanks.
I'm going to put the check for 2.12 in Configure.pl, remove it elsewhere, and worry about warnings only if we run into trouble on any other platform. 00:27
dalek r32784 | cotto++ | trunk: 00:28
: [t] make sure a hash test catches only the expected exception type
diff: www.parrotvm.org/svn/parrot/revision?rev=32784
pmichaud chromatic +1 00:42
Infinoid pmichaud: after I get back from some errands, I should have a few hours free to hack. how goes the lex2 battle? got any menial tasks you can offload? 00:49
pmichaud Infinoid: I haven't been able to get back into the lex2 branch as yet. I'm pretty confident it'll go okay, though. 00:52
essentially we'll want to identify the places where we adjust references/refcounts and make sure they're all doing the right thing. 00:53
I'm also going to have Parrot throw an exception if we attempt to free a context that already has a refcount of zero.
I'll probably want/need testers. :-) 00:54
chromatic If the core test suite runs, that's a good sign.
pmichaud I wonder how hard it would be to have parrot throw an exception if it tries to switch to a context with a refcount <= zero.
that might be also useful -- so we'd see it when we execute it in addition to when it's freed 00:55
chromatic That's a good idea.
pmichaud or, even better -- throw an exception if we attempt to mark a context with a zero refcount.
(all of these could be #ifdef'd out, of course.) 00:56
Infinoid ok, cool. I'll have some more spare cycles throughout the week, and am happy to test/debug/etc
pmichaud that'll be great.
chromatic You've convinced me.
pmichaud anyway, I have to do some shopping and get the kids to bed, then NEWS/TODO/other updates, and then lex2 branch. 00:57
Infinoid bbi~1h & 00:58
01:04 gmansi joined 01:05 bacek_ joined 01:26 klapperl joined
dalek r32785 | pmichaud++ | trunk: 01:27
: [rakudo]: spectest-progress.csv update: 220 files, 4506 passing, 41 failing
: Failure summary:
: S03-operators/increment.rakudo aborted 41 test(s)
diff: www.parrotvm.org/svn/parrot/revision?rev=32785
01:45 stockwellb joined
bacek_ -100 passed test... +41 failing... 01:46
BigInt?
purl well, BigInt is SLOWWW if you use it lots
chromatic If you don't have GMP, all of those tests fail. 01:47
bacek_ purl: good girl
purl thanks bacek_ :)
chromatic If you do have GMP, all of those tests fail because the BigInt mapping doesn't have .WHAT.
bacek_ :)
01:48 jimmy joined
stockwellb Where would I find the exceptions that might be thrown while executing the ops inspect, get_class and namespace? I found some by forcing an error and searching for the error message, I can't do that for these ops. 01:59
chromatic Other than tracing through the C code, I'm not sure there's a good general principle.
Mostly just ask yourself "What are all of the possible arguments and potential behaviors?" 02:00
02:01 japhb joined
stockwellb Dang. Maybe because I'm not looking for a specific type of error, I shouldn't trap at all?! 02:01
chromatic That depends on what you want to test.
jimmy particle? 02:02
purl The most abundant particle in the universe is the moron. or spin 1/2, charge 2/3 or jerry gay or a boson. or a bozon. or a bogon or one bad mobo. or full of lies or mailto:jerry.gay@gmail.com
stockwellb Right when you want to test that something fails, you know what error to trap. These traps are legacy if you will, they where there before. I just kept them. Almost like trap the inspect op just incase something goes wrong. There is no exception for that is there? 02:03
.EXCEPTION_REALLY_GENERAL 02:05
Seems like most test only have error handling if you testing that something throws an exception. Would you agree? 02:06
Add a role add it again make sure it throws. That type of thing. 02:07
cotto I can't think of any exceptions.
stockwellb Grrrr.
cotto a.k.a EXCEPTION_NO_EXCEPTIONS 02:08
stockwellb cotto: your the one who sent me on this quest!
cotto I'm saying that the tests should catch exactly one type of exception and let anything else kill/fail the test 02:09
chromatic Agreed.
cotto Many tests catch any exceptions, which means they might catch something other than what the test writer intended to catch. 02:10
stockwellb In this case the original code gives no indication of what they intended to catch. Well one does, so I let it error seached the phrase and found the exception. I'm thinking the other handlers are not neccessary.
dalek r32786 | particle++ | api2export: 02:11
: [api2export] creating a branch to convert PARROT_API to PARROT_EXPORT
diff: www.parrotvm.org/svn/parrot/revision?rev=32786
cotto what test are you looking at?
jimmy particle : hello
purl hey, jimmy.
stockwellb my ops.t
sub op_inspect_p_p for instance. 02:12
push_eh; inspect; pop_eh. Nothing more to it. 02:13
cotto you can excise that exception-related code
If an exception is thrown, it'll kill the test and make the bug immediately apparent, which is what tests are supposed to do.
s1n pmichaud: ping 02:15
stockwellb Got it. I can see when you want an exception to handle only that specific one. And there is one test that is like that. The others just sort of wrap it up so the test fails but doesn't bomb.
Graceful failure if you will.
cotto Yes. 02:16
stockwellb cotto: thanks. hey I gott role. later folks!
cotto someone's got Parrot on the brain
bye
stockwellb :) role... 02:17
bye
02:17 stockwellb left 02:27 bacek joined
dalek r32787 | particle++ | api2export: 02:38
: [api2export] first stab at s/PARROT_API/PARROT_EXPORT/g
diff: www.parrotvm.org/svn/parrot/revision?rev=32787
r32788 | particle++ | trunk: 02:42
: [DEPRECATED] mark release number for PARROT_API deprecation
diff: www.parrotvm.org/svn/parrot/revision?rev=32788
jimmy particle : I had fixed the mis-repalced line. 02:43
chromatic Hmm, make testS failures. 02:53
'examples/benchmarks/arriter_o1.pir' uses a deprecated opcode. 02:54
'examples/benchmarks/array_access.pir' uses a deprecated opcode. 02:55
02:57 Aisling joined 02:59 Tene joined
Coke so... sloooow. 03:03
dalek r32789 | particle++ | trunk:
: [RELEASE] NEWS updates
diff: www.parrotvm.org/svn/parrot/revision?rev=32789
Coke is the failure just extra output from -w ?
(assuming you mean deprecated and not removed) 03:04
03:04 chromatic joined 03:05 confound_ joined, purl joined 03:06 japhb joined
dalek r32790 | particle++ | trunk: 03:08
: [DEPRECATED] add tracking ticket numbers to newly announced deprecation items
diff: www.parrotvm.org/svn/parrot/revision?rev=32790
chromatic Easy patch for a Perl-capable novice: fix the errors from prove t/doc/pod.t 03:10
03:11 Tene joined
chromatic Easy patch for a PIR-capable novice: fix the errors from make examples_tests 03:11
Coke oh, hey, is that a new test target or an old one? 03:13
chromatic It's an old one.
error:imcc:Bareword method name 'export_to' not allowed in PIR
Coke huh. don't i feel stupid writing a shell script for it.
chromatic Thought you might like that.
Coke easy patch for the insane: make partcl 50% faster. 03:14
(er, 100% faster? stupid inverse percentages)
dalek r32791 | pmichaud++ | trunk:
: [rakudo]: Let BigInt properly map .WHAT/.HOW .
diff: www.parrotvm.org/svn/parrot/revision?rev=32791
pmichaud if something is 100% faster, that means it takes zero time (I think).
jimmy and parrot.org li tag css style bug? 03:15
Coke jimmy: I have no idea where the CSS lives.
so even if you had a patch, I'm not sure where to apply it.
(but if you had a patch, presumably someone could figure that part out.)
jimmy i found one. it affects my eye.
it is here, at the bottom www.parrot.org/wiki/parrot 03:17
i have no patch
Coke Yup. I've see that. I have no idea how/where to fix it. 03:20
jimmy coke: once i created the patch, i don't know whether affects other li tags. 03:21
dalek r32792 | coke++ | trunk:
: fixup example to current PIR syntax.
diff: www.parrotvm.org/svn/parrot/revision?rev=32792
r32793 | particle++ | trunk: 03:22
: [CAGE] fix pod errors
diff: www.parrotvm.org/svn/parrot/revision?rev=32793 03:23
03:24 bacek joined 03:25 Psyche^ joined
Coke I would probably bug jhorwitz, as he's the resident drupal expert. =-) 03:26
do we really need to list deprecations in NEWS as well as DEPRECATED?
they're not really news, izthey?
chromatic Depends on how big, but you're probably right. 03:27
Coke if I do an HLL_map of a .Sub, will the PIR compiler respect that, I wonder? 03:28
pmichaud good question. 03:29
purl Yeah, it is. I'm stumped.
03:30 stockwellb joined
stockwellb cotto: Do I reply to your email @ parrotbu-followup@parrotcode.org to resubmit? 03:31
pmichaud stockwellb: yes, that usually works.
stockwellb Thank you.
Coke sees not. 03:32
stockwellb Wasn't sure if it was supposed to go directly to cotto or not.
pmichaud that way the followup is in the ticket.
cotto stockwellb, you want the followup address. 03:33
03:33 petdance joined
pmichaud usually hitting 'reply or 'reply all' dtrt 03:33
stockwellb I was just replying to your email with comments. It's reply to *is* the parrot follow up.
cotto yup, that's how it should be 03:34
I think so, at least. 03:35
stockwellb cotto: it's bits are traveling through time and space as we speak.
cotto and routers
stockwellb Oh yea, and those. 03:36
nopaste "coke" at 72.228.52.192 pasted "here's a test that shows HLL map doesn't work on PIR compile'd subs" (25 lines) at nopaste.snit.ch/14620
Coke ... with a little too much extra; really only needs one say in there.
dalek r32794 | pmichaud++ | trunk: 03:37
: NEWS updates for rakudo, pct, other.
diff: www.parrotvm.org/svn/parrot/revision?rev=32794
chromatic Coke, I could probably make that work, with the caveat that that's a good way to crash Parrot hard.
Coke not a priority; I have a workaround. 03:39
more concerned about why box isn't boxing into my HLL type.
chromatic It should work, but it'll be dangerous for a while.
pmichaud ...box opcode? 03:40
oh, yes.
chromatic box is fine.
Autoboxing Sub in IMCC will be dangerous for a while.
Coke makes sure I'm in the right HLL. 03:41
pmichaud afk -- bbiah
03:41 Andy_ joined
Coke bah. 03:41
chromatic: defining a mapping for 'Tcl' doesn't magically make it work for '_Tcl' 03:44
03:49 allison joined
chromatic Coke: ENOMAGIC 03:53
Coke soooo slow.
dalek r32795 | chromatic++ | trunk: 03:56
: [tools] Fixed POD to pass t/doc/pod.t.
diff: www.parrotvm.org/svn/parrot/revision?rev=32795
04:01 elmex joined 04:16 Theory joined
nopaste "stockwellb" at 70.160.222.145 pasted "Why does Foo in one() conflict with Foo in two() 'Class Foo already registered'" (16 lines) at nopaste.snit.ch/14621 04:31
stockwellb Can anyone help me with this question?
cotto $P1 = subclass $P0, "Foo" 04:38
That attempts to create a subclass of $P0 called "Foo"
it doesn't work because a "Foo" class was already created.
stockwellb but isn't Foo = new 'Class' and instance?
pmichaud the class registry only permits one class to have a given name. 04:39
so, since a class was given the name 'Foo' in one(), it's not possible to create another with that name.
(which is what subclass would do) 04:40
stockwellb Isn't Foo in one() and instance not a class?
pmichaud it's an instance of 'Class'. All classes are instances of 'Class'.
(that's what makes them classes)
stockwellb 70_class_object.pir led me to believe this with its myobj = new 'Foo' example. My Object, no My Class. 04:41
cotto unquoted Foo in one() is just a name for a register and has nothing to do with the object system 04:42
pmichaud if you say new 'Foo', then you're creating an instance of 'Foo'
stockwellb then new 'Class' is an *instance* of Class. I should be able to have many of those. 04:43
pmichaud you can.
you just can't have more than one with a given name.
04:43 bacek joined
stockwellb but they can't have different names?! 04:43
pmichaud sure, they can have different names.
but in the example you nopasted, you create one class called 'Foo' in one(), and then try to create another (via subclass) in two() 04:44
stockwellb As long as it doesn't conflict with an existing class name.
I thought I created an instance of a Class. Creating a class requires newclass? 04:45
pmichaud no.
an instance of a Class is a class.
a class is an instance of Class
you can create a class by doing $P0 = new 'Class'; you can also create a class by using newclass or subclass
they're two different approaches to doing the same thing. 04:46
stockwellb So if I created a class called Dog and I wanted to create several instances of Dog to use as data say dogs in a kenel, what would be the syntax for creating those dogs. 04:48
pmichaud $P0 = new 'Dog'
$P1 = new 'Dog'
$P2 = new 'Dog'
(creates three Dog objects)
stockwellb Deep inside you must be laughing at me.
pmichaud no, not really -- just answering questions :-)
(also watching the football game :-) 04:49
stockwellb I can't see the two as the same. I'm having problems separating Class and Instance.
pmichaud see the two "what" as the same?
perhaps it helps to see it this way:
$P0 = new 'Class' 04:50
$P0.'name'('Foo') # ok
$P1 = new 'Class' # ok
$P2.'name'('Foo') # error, can't register two classes with the same name.
sorry, $P1 instead of $P2 there.
stockwellb I really do get that. 04:51
pmichaud okay.... also note that
purl also note that is slide code, so probably untested :)
pmichaud $P9 = newclass 'Foo'
is the same as writing
stockwellb yep
pmichaud $P9 = new 'Class'
$P9.'name'('Foo')
stockwellb yep, yep and yep. I think my problem is deeper. 04:52
pmichaud okay.
stockwellb In C# I write code to create a Class.
Then I call a new operator for that Class to create an instance of it.
I'm missing the parallel. 04:53
it's two different things for me. Yet here it's the same.
pmichaud $P0 = newclass 'Dog' # create a new class
04:53 klapperl joined
pmichaud $P1 = new 'Dog' # create an instance of the class 04:53
stockwellb that's pretty semantics, but both are equivalent. 04:54
pmichaud no they aren't.
purl yes they are!
stockwellb Whoa, then I missed the boat somewhere.
pmichaud the first line creates an instance of a Class.
The second line creates an instance of a Dog. 04:55
stockwellb Is my problem that...
$P1 = new 'Class'
and $P2 = new 'Dog'
are different
pmichaud depends on what you mean by "are different" 04:56
both create instances of something
the first is creating an instance of a Class, the second is creating an instance of a Dog
stockwellb in an kennel application I would want many instances of Dog. 04:57
pmichaud there's nothing to prevent that from happening
$P0 = new 'Dog'
$P1 = new 'Dog'
stockwellb is it common to want many instances of 'Class'
pmichaud $P2 = new 'Dog'
$P3 = new 'Dog'
creates four dogs.
sure, every class is an instance of a Class
$P0 = new 'Class'
$P1 = new 'Class'
$P2 = new 'Class'
stockwellb wow this feels like a cirlce to me.
pmichaud creates three classes. 04:58
it's not the creation of the instances that is causing the error in your nopaste
we can have many instance of a Class
we can have many instances of a Dog
what we cannot have is two instances of a Class that are given the same name.
stockwellb ok stop there.
Foo = new 'Class' 04:59
is an instance of Class.
pmichaud yes.
stockwellb I can make many many of them.
pmichaud at that point it still has no name.
stockwellb The second I take one of my instances and .'name'("something") I create a new class called something? 05:00
cotto yes
pmichaud no, you've given that instance a name.
it's still a Class. It's still the same Class that it was before. It just gets a name at that point.
stockwellb that name prevents me from creating a class with that name. 05:01
pmichaud correct
stockwellb I'm not used to being able to effect Classes via an instance of that class. It's hurting my brain.
pmichaud classes in Parrot are "first-class" objects -- i.e., they have attributes and names like anything else 05:02
let's look at it this way
if I say $P0 = new 'Integer'
and then $P1 = typeof $P0
then $P1 is the Integer class itself. okay so far?
stockwellb Yes I learned this earlier thanks to you. 05:03
Tene Classes are objects. There are methods that you can run on the class itself.
pmichaud not only that, but $P1 is exactly the same object that we would get if we said get_class 'Integer'. Still okay?
stockwellb still good.
pmichaud so, is $P1 an object?
stockwellb It's an object yes.
pmichaud what is the type of $P1, then? 05:04
stockwellb Class
pmichaud in other words, what would happen if we _then_ said $P2 = typeof $P1 ?
exactly.
classes are instances of Class.
so, if we want to create a new class, we simply create an instance of Class and possibly give it a name 05:05
$P0 = new 'Class'
$P0.'name'('Dog')
giving $P0 the name Dog means we can now do
$P1 = new 'Dog'
and $P1 will be created as an instance of the class given by $P0
stockwellb yes.
pmichaud this is typically called "metaobject programming" or a variety of other things, but the key feature is that we treat classes like objects as well. 05:06
stockwellb It's just strange to me to create several Dogs for Dog and then be able to pick anyone of Dogs and muck with .name() and effect other objects.
pmichaud oh, one can't do that. 05:07
all of the examples I've been using are simply using .name() on Class instances
it doesn't say _anything_ about what would happen with .name() on a Dog instance.
in fact, until we define a .name method for Dog's, we'd get a method not found error.
stockwellb Nail!!!
Head!!!
I think I see the difference now. 05:08
pmichaud right, Dog doesn't have a .name method. More precisely, the .name method we would define for Dog wouldn't be the same as the one that is already defined for Class
stockwellb I has everything to do with new "Class"
pmichaud or, more to the point, it's because the .name method on Class objects doesn't allow two instances to have the same name. 05:09
that doesn't say anything about names for other types of objects.
stockwellb other objects that are and must be derived from Class.
pmichaud ....derived from class? 05:10
er, derived from Class?
we typically don't derive other objects from Class itself (depending on what you mean by "derive")
if I say
stockwellb hold on
I'll show you.
.local pmc Dog 05:11
Dog = new 'Class'
Dog.'name'("Dog")
$P1 = new "Dog" 05:12
SP1 is derived (possibly crappy choice) from Class.
pmichaud it's not supposed to be. I think that's a bug in Parrot.
normally one would not consider $P1 to be an instance of 'Class'
it's an instance of Object 05:13
stockwellb why isn't it an instance of Dog?
pmichaud it's that also.
stockwellb Ok.
Whew.
pmichaud but Dog is not a subclass of Class, it's an instance of it.
so since Dog is not a subclass of Class, instances of Dog should not be instances of Class. 05:14
stockwellb so in practice Dog should be subclassed from Class first.
pmichaud no.
typically we don't want to create subclasses of Class.
we create instances of them -- those then become our classes.
stockwellb I thoughts that's what I did.
pmichaud it is. 05:15
yes, that's what you did -- you created an instance of a class.
stockwellb but you said it's not supposed to be.
pmichaud I said that Parrot likely has a bug.
I'll prove that a Dog is not an instance of a Class, though...
every Class has a .name method
however, Dogs do not
stockwellb I didn't run that code I just typed it.
nopaste "pmichaud" at 72.181.176.220 pasted "proof that a Dog instance is not an instance of a Class" (17 lines) at nopaste.snit.ch/14622 05:17
pmichaud note that I think that the "1" produced by the isa line is a bug -- it should be zero.
but since I can't use .name() on an instance of Dog, but I can use .name on an instance of Class, it follows that Dog is not a subclass of Class. 05:18
stockwellb right because there is no filo
fido
pmichaud hmmm?
you lost me there.
fido is an instance of Dog
stockwellb sorry fido is a nullpmc
oh crap sorry.
I'm getting punchy. Sorry. 05:19
so that's an example of how not to create Dog.
pmichaud no, that's the correct way to create Dog. 05:20
(or at least one correct way to create Dog)
we normally don't _want_ our Dog instances to inherit the .name method of class
*of Class
because fido is not a Class, it's a Dog
stockwellb I'm there. I rubbed my eyes a little more and read it more slowly. 05:21
pmichaud here's another example that might clear things up just a bit more
$P0 = newclass 'Foo'
$P1 = subclass $P0, 'Bar' 05:22
$P2 = typeof $P1
...what type is $P2?
stockwellb Foo
pmichaud no, it's a Class
stockwellb damn, because everything is.
pmichaud only classes are Class
but since $P1 is the class object for Bar, asking for its type will give us back the class object for Class 05:23
same as asking for the type of $P0
what makes a subclass is that we have a Class instance with a parent attribute
just as $P0 = newclass 'Foo'
stockwellb I saw that a test. 05:24
pmichaud is the same as $P0 = new 'Class'; $P0.'name'('Foo')
stockwellb passed in with attributes
pmichaud the subclass opcode is just creating a Class with name _and_ parent attributes
$P1 = new 'Class'
$P1.'name'('Bar')
$P1.'add_parent'($P0)
# above is same as $P1 = subclass $P0, 'Bar' 05:25
stockwellb This is metaprogramming.
pmichaud $P1 is still an instance of Class, it has a name ('Bar') and a parent attribute
it's the *parent* attribute that makes things into subclasses
stockwellb Let me play with this some more. You are a deeply patient man. Thank you for working with me for such a long time. 05:27
pmichaud it's my pleasure -- reminds me of my teaching days :-)
stockwellb I'm sure we'll have to set the wayback machine for again sometime. I just need to be clear that I *really* am grateful. 05:28
pmichaud oh, it's clear
you're patient with my answers, too :-)
stockwellb patient is not a word my children would use to describe me, but thank you. 05:29
cotto your teaching days... That explains it.
pmichaud patient is a word my doctor uses to describe me... but I'm not sure he means the same thing :-)
cotto: that explains... what? ;-)
stockwellb he means cash cow.
I just turned 40 this year, I've never been to the damn doctor so much. It's like my warranty expired. 05:30
pmichaud heh. I actually haven't been to a doctor in 24 years. 05:31
(I guess my dentist would've been a more accurate answer, then :-)
stockwellb Here's to keeping it that way!
What's a dentist?
purl IS IT SAFE?
pmichaud tooth doctor? 05:32
stockwellb Never heard of one. :)
Well it's bed time on the east coast. Goodnight. 05:34
pmichaud good night!
purl sleep fast, sleep tight, don't let the bed bugs bite
cotto night
05:34 stockwellb left
dalek r32796 | pmichaud++ | trunk: 05:44
: [rakudo]: Update ROADMAP with completion percentages and new estimates.
diff: www.parrotvm.org/svn/parrot/revision?rev=32796
05:55 mberends joined 06:06 Psyche^ joined
Coke ponders setting up a cron job to rant about how slow tcl is. 06:37
07:00 s1n joined
cotto Good idea, Coke. That way I can just have you add Pipp when it gets to that point. ;) 07:02
07:10 bacek joined 07:16 uniejo joined
cotto msg stockwellb it looks like your reply to #60600 was eaten. Can you resend it? 07:23
purl Message for stockwellb stored.
07:40 iblechbot joined 07:42 apeiron joined
chromatic Completely bizarre error. 07:51
cotto Speaking of which, #60556 has a nice PIR-triggered segfault. 07:55
07:59 bacek joined
jimmy what does segfault mean? 08:00
cotto segfault? 08:02
purl segfault is, like, xkcd.com/371/
cotto It means a program is trying to access memory that it shouldn't.
08:05 mberends joined
jimmy about RT #60556, I find a that a better way. 08:07
though I created the patch to modify some codes.
dalek r32797 | chromatic++ | trunk: 08:08
: [PIC] Made prederefd argument passing code create a COW STRING from constant
: STRINGs stored in the bytecode so that callees never modify constant strings
: unilaterally. See r32124 and RT #60030 (this fixes the switched and CGP
: cores).
diff: www.parrotvm.org/svn/parrot/revision?rev=32797
chromatic Scare anyone?
dalek r32798 | kjs++ | trunk: 08:11
: [pirc] update heredoc tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=32798
08:22 ff-wonko joined
jimmy cotto? 08:25
dalek r32799 | chromatic++ | trunk: 08:26
: [src] All PIC-using runcores, not just CGP, look in the wrong place for
: arguments passed via c_args (such as those in exception handlers). See RT
: #60048 again, as well as r32094.
diff: www.parrotvm.org/svn/parrot/revision?rev=32799
cotto jimmy?
purl jimmy is probably jimmy or a kind and warm-hearted person, albeit allegedly a sloth
jimmy rt.perl.org/rt3/Ticket/Display.html?id=60584 08:27
i had uploaded the result for windows ,can you help me testing on linux?
08:28 Ademan joined
jimmy use mis-repalce%20slash.patch, the older is a wrong way. 08:28
cotto I don't have access to a windows machine. Do you want me to make sure it doesn't break anything on Linux? 08:29
jimmy yes
just some @echo mis-replaced slash
does break anything 08:30
does'nt
cotto ok. I'll see what happens.
jimmy and just add a slash for vim-install
makes it working on windows, none of any other code was modified 08:31
cotto so make vim-install is all that needs to be tested?
jimmy yes. 08:32
and some @echo slash modified.
that makes the output of help can display ok. 08:33
cotto Why did you change URLs in comments? Was that intentional? 08:35
dalek r32800 | kjs++ | trunk:
: [pirc] fix macro test. more tests should be added with parameters.
diff: www.parrotvm.org/svn/parrot/revision?rev=32800 08:36
jimmy yes
because / will be repalced by \\
and // is not 08:37
it will be repacled /
cotto I see. You're making the resulting Makefile look good. 08:38
good jorb, then
jimmy yes.
and fixed vim-install on windows
chromatic The lack of STRINGNULL bites again!
jimmy the older patch is not well, it is ugly 08:39
s/well/good/
cotto How would you like to be credited? 08:40
jimmy i don't know.
I just fix some wrong thing that i know. 08:41
err. some thing wrong.
cotto: does it works well on linux? 08:42
cotto yup. It's committed. 08:43
jimmy++
jimmy thanks. the three days i alway gave a wrong patch. now is right.
cotto it's ok as long as you eventually get it right 08:44
dalek r32801 | cotto++ | trunk:
: [build] fix make vim-install on windows and fix URLs in generated Makefiles
: patch courtesy of jimmy on #parrot
diff: www.parrotvm.org/svn/parrot/revision?rev=32801
r32802 | kjs++ | trunk:
: [pirc] fix some tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=32802
jimmy and can you modify the status of RT#60584?
cotto yup
done 08:46
jimmy thanks
cotto thank you
dalek r32803 | chromatic++ | trunk: 08:47
: [src] Improved PIC argument-passing fixes. In particular, STRING pointers can
: be null, and argument offsets don't need COWing. This fixes the CGP core. 08:48
diff: www.parrotvm.org/svn/parrot/revision?rev=32803
jimmy welcome, it finishes my worry. 08:54
cotto on to the next worry! 08:55
jimmy The next worry hasn't come on now. :) 08:57
lu_zero yawn
good morning
jimmy hello lu_zero, and here good afternoon 08:58
lu_zero =)
cotto good 0100 08:59
GeJ good 2000 09:01
dalek r32804 | chromatic++ | trunk: 09:23
: [lib] Made CGP code set current_pc appropriately in the currently-executing
: context. This fixes file and line number reporting with CGP core.
diff: www.parrotvm.org/svn/parrot/revision?rev=32804
09:29 barney joined
chromatic Hmm, :immediate code doesn't get frozen to bytecode. 09:30
Or it doesn't get run when thawed. 09:33
jimmy does parrot want bootstrapping? 09:39
by using pir?
chromatic Bootstrapping how? 09:41
jimmy such as languages/PIR ? 09:42
chromatic What would you write in PIR as a bootstrap? 09:43
jimmy sorry I mean pir not parrot itself. 09:44
chromatic Oh, a PIR compiler written in PIR?
jimmy sometimes i was confused by IMCC, PIRC and languages/PIR
cotto chromatic, do you see any problem with my suggestion for #59810 (the string hashval caching bug) 09:58
or anything that I should watch out for when implementing it?
GeJ Who's Stephen Weeks? 09:59
cotto Tene
GeJ oh, thanks. Interesting blog post.
moritz which one?
purl THAT ONE!
cotto link?
moritz purl: forget which one 10:00
purl moritz: I forgot which one
cotto which one is <reply>
GeJ blogs.gurulabs.com/stephen/2008/11/...arrot.html
chromatic cotto, the per-interp seed makes sense to me. 10:01
I think Nicholas misunderstood my suggestion though.
(As Parrot already uses a static value.)
cotto Is there any reason it wouldn't be as straightforward as it appears? 10:02
chromatic STRINGs shared across interpreters with cached hashes. 10:04
cached hash values, that is.
Tene GeJ: I'm glad someone liked it. Feel free to comment with any questions you might have. 10:06
Tene sleeps. 10:07
cotto Do STRINGs have a flag that'd be set in that case? 10:09
chromatic To indicate cross-interpreter sharing? 10:10
cotto yes
chromatic I didn't think of that. They might. They probably should. In that case, we wouldn't use the cached hash value.
That could work.
cotto Could you add a flag like that (or give me an overview of what to do)? 10:12
chromatic Look in parrot_string_t or whatever it is; there might be a flag. 10:13
cotto There's a parrot_string_t->flags. Do I want PObj_is_shared? 10:15
chromatic Looks like it.
cotto Great. That's all I need. 10:16
Thanks.
chromatic There's a macro to test that flag; use the macro instead of doing your own bit checks.
(I usually forget that.) 10:17
cotto ok
10:19 tomyan joined
jimmy which one? 10:24
cotto now you know
purl It does the boots and shoes.
chromatic PObj_is_CONSTANT_SET or something.
dalek r32805 | bernhard++ | trunk: 10:31
: [perl] Minor beautification in ops_not_tested.pl
diff: www.parrotvm.org/svn/parrot/revision?rev=32805
cotto This may have to touch a lot of code. 10:43
chromatic What are you doing?
purl hanging around with these dorks here, as usual :(
cotto removing the seed arg key_hash_* 10:44
from key_hash_*
chromatic Seems a little risky the day of a release. 10:45
cotto I wouldn't think about committing until after the release.
chromatic Okay good.
(As I'm debugging a packfile problem.) 10:46
jimmy cotto?
cotto I'll submit the patch to the list first for review anyway.
jimmy, yes?
jimmy patched missing
cotto your next worry?
from where?
jimmy vim-install 10:47
beacause fo computer had been changed 10:49
cotto Oh. I thought the last patch included all the other changes too. 10:50
jimmy rt.perl.org/rt3/Ticket/Display.html?id=60584 10:51
added two lines
missing lines
go home now. please help me to test it and patch it. thanks. 10:52
cotto If it doesn't break anything, I'll apply it. 10:53
Thanks.
jimmy ok,
10:58 ff-wonko joined 11:01 elmex joined 11:03 ffwonko joined
dalek r32806 | fperrad++ | trunk: 11:10
: [WMLScript]
: s/::/_/ in class name
diff: www.parrotvm.org/svn/parrot/revision?rev=32806
11:10 ffwonko joined 11:25 tomyan joined 11:47 Lorn joined
dalek r32807 | cotto++ | trunk: 11:47
: [build] fix make vim-install on windows (#60584)
: patch courtesy of jimmy
diff: www.parrotvm.org/svn/parrot/revision?rev=32807
cotto msg stockwellb never mind about resending the patch. RT was just being really slow. 11:49
purl Message for stockwellb stored.
dalek r32808 | bernhard++ | trunk: 11:53
: RT#60632: [TODO] codingstd: No line splitting in CONST_STRING
: Courtesy of Andy Dougherty.
: Also fixed the ensuing linelength.t violations
diff: www.parrotvm.org/svn/parrot/revision?rev=32808
11:54 gaz joined
dalek r32809 | cotto++ | trunk: 12:01
: [t] PIRify and simplify OO ops test
: patch courtesy of bstockwell++
diff: www.parrotvm.org/svn/parrot/revision?rev=32809
cotto it's a very courteous set of commits we have here
jimmy++ 12:04
time-- #how'd it get to be 0400? 12:05
seen bstockwell 12:08
purl I haven't seen 'bstockwell', cotto
cotto seen stockwellb
purl stockwellb was last seen on #parrot 6 hours, 34 minutes and 20 seconds ago, saying: Well it's bed time on the east coast. Goodnight.
cotto bstockwell--
stockwellb++
sleep++ 12:10
dalek r32810 | bernhard++ | trunk: 12:11
: Reverting r32808, because barney-- didn't think
diff: www.parrotvm.org/svn/parrot/revision?rev=32810
r32811 | bernhard++ | trunk: 12:13
: Directory languages/pipp/src/yacc is gone
diff: www.parrotvm.org/svn/parrot/revision?rev=32811
12:17 alangu joined
alangu cotto: i think you got the wrong patch 12:18
it is add_two_line.patch
cotto for which ticket?
jimmy 60584 12:19
this file should be not patched.
svn.perl.org/viewvc/parrot/trunk/l...p;r2=32807
cotto ok. I'll undo that. 12:20
jimmy maybe i uploade too many files.
:( 12:21
cotto when you post several patches, make sure that each patch has the changes from all the previous ones 12:23
jimmy I am stupid.
cotto that way I can apply the most recent patch
jimmy ok
cotto you're just not familiar with the process 12:24
don't worry about it
it's fixed now 12:25
and I'm going to bed, because I definitely don't have enough brainpower to continue to use my commit bit
jimmy thanks, cotto
cotto thanks for finding that
jimmy good night.
dalek r32812 | cotto++ | trunk:
: [build] undo an unintentional commit in '07
cotto good night
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=32812
barney good night 12:27
dalek r32813 | bernhard++ | trunk:
: RT#60616: [PATCH] Fix CONST_STRING line numbers
: Courtesty of Andy Dougherty
: Also added an exception in t/codingstd/linelength.t
diff: www.parrotvm.org/svn/parrot/revision?rev=32813
12:30 lathos joined
jimmy masak? 12:31
purl masak is, like, _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl
lathos Are there any Perl 6 libraries yet? 12:32
barney There is at lease Test.pm 12:35
s/lease/least/
lathos OK. And is there a way yet to load Parrot libraries into Perl 6? 12:36
barney lathos: I don't really know. I'd say yes, as you only need to write PIR subs in the Perl6 namespace. #perl6 12:39
You can also ask in #perl6 12:40
lathos There's two people there. :)
OK, time to see what happens if you give load_bytecode a variable parameter. 12:41
jimmy what does rakudo meaning? 12:44
sorry ,mean
lathos "The joyful way".
jimmy is there a words in dict? 12:45
lathos Oh, you can 'use' .pbc files. Sorted. 12:46
12:49 apeiron joined
lathos Holy crap. 12:54
purl i think holy crap is only in the Vatican
lathos % ./perl6 -e 'use JSON; say _json(@*INC)'
["/Users/simon/svn/parrot/trunk/runtime/parrot/library","."]
szbalint things are becoming useful, eh? :)
lathos Nothing can stop me now. 12:55
barney lathos++ 13:00
jimmy kaudo: use JSON; say _json(@*INC) 13:02
rakudo: use JSON; say _json(@*INC)
polyglotbot OUTPUT[Can't find ./JSON in @INC␤current instr.: 'die' pc 13442 (src/gen_builtins.pir:8277)␤called from Sub 'require' pc 13750 (src/gen_builtins.pir:8536)␤called from Sub 'use' pc 13812 (src/gen_builtins.pir:8559)␤called from Sub '_block12' pc 83 (EVAL_12:38)␤called from Sub
..'parrot;PCT;HLLCompiler;evalpmc' pc 804 (src/PCT/HLLCompiler.pir:468)␤c...
barney lathos: did you look at November ?
jimmy a project? 13:03
purl i guess a project is theoretically more bitter than us
jimmy and where is it?
purl it's it!
barney a wiki written in Perl6
jimmy link?
November likes a month. 13:04
rakudo: say @*INC;
polyglotbot OUTPUT[.␤]
jimmy rakudo: join(' ',@INC).say; 13:05
polyglotbot OUTPUT[No handler to delete.␤current instr.: 'parrot;PAST;Compiler;as_post' pc 6052 (src/PAST/Compiler.pir:1651)␤called from Sub 'parrot;PAST;Compiler;post_children' pc 1779 (src/PAST/Compiler.pir:367)␤called from Sub 'parrot;PAST;Compiler;call' pc 3191 (src/PAST/Compiler.pir:841)␤called from Sub
..'parrot;PAST;Compiler;post_children' pc 1779 (src...
barney www.november-wiki.org/cgi-bin/w?act...p;page=FAQ
jimmy a project such as twiki.org
barney November?
purl November is the 'dead' month....all rain and darkness or a perl 6 wiki, see use.perl.org/~masak/journal/37212
barney november is also at www.november-wiki.org/ 13:06
purl okay, barney.
barney November?
purl November is the 'dead' month....all rain and darkness or a perl 6 wiki, see use.perl.org/~masak/journal/37212 or at www.november-wiki.org/
jimmy purl: forget November
purl jimmy: I forgot november
jimmy November?
purl: November is at www.november-wiki.org/ 13:07
purl OK, jimmy.
jimmy November?
purl it has been said that November is at www.november-wiki.org/
jimmy purl: November is aslo use.perl.org/~masak/journal/37212 13:08
purl ...but november is at www.november-wiki.org/...
jimmy purl: November is aslo at use.perl.org/~masak/journal/37212
purl ...but november is at www.november-wiki.org/...
barney November is also at use.perl.org/~masak/journal/37212
purl okay, barney. 13:09
jimmy November?
purl November is at www.november-wiki.org/ or at use.perl.org/~masak/journal/37212
13:23 apeiron joined 13:32 jimmy joined
pmichaud good morning 13:35
barney Anybody knows a PIR-lib for ini-file parsing, like Config::INI::Simple in Perl5 ? 13:36
pmichaud barney: not I.
barney morning, pm
jimmy good morning 13:38
dalek bernhard.schmalhofer@gmx.de | Pipp: 13:48
link: www.perlfoundation.org/parrot/index.cgi?pipp
bernhard.schmalhofer@gmx.de | Pipp: 13:52
link: www.perlfoundation.org/parrot/index.cgi?pipp
14:00 masak joined 14:01 tomyan joined 14:02 iblechbot joined 14:05 jimmy joined
jimmy hello masak, long time no see 14:06
masak hao jiu bu jian le
jimmy: been busy. I'm learning this crazy foreign language. takes all my time. :P
jimmy what lanaguage? 14:07
masak mandarin chinese.
don't know if you've heard of it.
jimmy none
masak :D
jimmy zhong guo guan hua? 14:08
masak sorry, what's 'guan hua'?
jimmy government's language 14:09
14:09 tomyan1 joined
masak well, putong hua 14:09
PerlJam that sounds vagues vulgar when I try to pronounce it. :>
14:09 stockwellb joined
PerlJam s/vagues/vaguely/ even 14:09
jimmy I am crazy with English and you crazy with Chinese. 14:10
masak :)
&
14:10 gryphon joined
stockwellb Does anyone know how to unregister a Class in PIR? 14:10
14:10 ff-wonko joined
jimmy well mandarin is used all of china. 14:11
dalek r32814 | bernhard++ | trunk:
: [Pipp] Fiddle with the documentation.
: Add empty doc dealing with extensions.
diff: www.parrotvm.org/svn/parrot/revision?rev=32814
jimmy it seems that Swedes can speak more than 4 languages? 14:12
pmichaud I don't know if it's possible to unregister a Class in PIR. 14:14
jimmy Perjam : i think so in english 14:15
14:16 jimmy joined 14:17 ff-wonko joined
stockwellb I have a problem in subclass.t. Each sub is creating new classes call 'Pre' and 'Foo' and they read pretty good that way in Perl. It can't stay that way in PIR. I don't want to use globals because it's not as easy to read whats going on. I was hope there was a way for each sub to clean up after itself. 14:17
dalek r32815 | pmichaud++ | trunk:
: [rakudo]: spectest-progress.csv update, 220 files, 4567 passing, 41 failing
: Failure summary:
: S03-operators/increment.rakudo aborted 41 test(s)
diff: www.parrotvm.org/svn/parrot/revision?rev=32815
14:17 ff-wonko joined
jimmy barney: wrong words 14:18
A secondary gaol in to provide a side by side comparison
goal
14:18 ff-wonko joined
jimmy i think it is 'goal is' 14:19
stockwellb pmichaud: any ideas? 14:20
purl burps
pmichaud stockwellb: no, no ideas. 14:21
stockwellb yuck, foo_1, foo_2 ... just doesn't look good. 14:22
pmichaud maybe a number after each one -- Pre1 and Foo1, Pre2 and Foo2, etc.
stockwellb The pre's and foo's are not equal so in one sub I'd have pre1 and foo2. Seems distracting to me and I'm the one writing it. 14:23
It would have been cool if I could have had the sub unregister the class it registered.
pmichaud actually, I'm thinking you don't need to recreate the class for each test
or do unregister/register 14:24
just re-use the same Pre/Foo
it's important to remember what is being tested -- for many of these, we're just testing the different ways of object creation, not whether we can create a different class each time
stockwellb I could. I was trying to keep the context of the test in tact.
pmichaud I think it's better to make sure we have the correct tests. The creation of new Sub/Foo classes is an artifact of the way that we have to write tests in Perl 14:25
stockwellb Sometimes Foo is created as a subclass other times not.
pmichaud i.e., we have to start from a new Parrot interpreter
stockwellb I'll have to use globals too because a couple test create from a class object not just a string. 14:26
pmichaud when I was doing t/library/p6object.t, I specifically chose PIR for the tests instead of Perl because I didn't want to have to recreate my objects for every test
let's quickly go through the tests in Perl and see what would be needed for each.
for test number one, create a class 'Pre' with newclass and a subclass 'Foo' from that one. Then run various tests on the 'Foo' class. No problem. 14:27
stockwellb correct
barney jimmy++ 14:28
pmichaud test #2 doesn't conflict with #1, so it can pretty much go as-is.
stockwellb correct
dalek r32816 | bernhard++ | trunk:
: [Pipp] Fix spelling and rephrase.
diff: www.parrotvm.org/svn/parrot/revision?rev=32816
stockwellb test #3 conflicts. 14:29
pmichaud for test #3, we just re-use the class object created in #2. No need to recreate it.
oh wait, it does.
stockwellb yes cause we use args to pass in parent.
pmichaud so, for test #3, just use a different name than 'Foo'.
it'll only appear in this one test so it's not a big deal.
for test #4, re-use the classes we created in #1. 14:30
instead of re-creating Pre/Foo classes.
same for test #5. 14:31
stockwellb 6 and 7
purl 13
pmichaud same for #6
same for #7
lathos NCI doesn't handle out-arguments, does it?
stockwellb # needs new names. 14:32
pmichaud for #8, we don't need newclass 'Pre' (we already have one), so just create the subclass directly.
stockwellb #8
pmichaud ['Foo';'Bar'] is okay as a name in #8.
stockwellb ok.
pmichaud #9 is todo anyway, but can re-use the classes from #8 14:33
stockwellb # needs #9 reuse
#10 resuse 14:34
pmichaud: I think I got the flow.
pmichaud #10 can re-use the classes from #1, but the addattribute needs to appear right after the classes are created
stockwellb Unless its global 14:35
pmichaud ...global?
stockwellb you could give it a global reference then call the reference in the sub where we add the attribute. 14:36
Otherwise your saying we'd have to add the attribute in a previous sub where the class was created right?
pmichaud the point is that addattribute needs to occur before we create any instance of the class
stockwellb Yes.
pmichaud i.e., once we create an instance of a class, we can't add an attribute to the class (yet)
so yes, I'd add the attribute at the point where the class is created. 14:37
stockwellb that makes the test less obvious doesn't it.
you won't see the attribute that your testing being added in this test.
pmichaud well, I hadn't been thinking about creating subs for every test -- I was just going to do it all in mainline. 14:38
stockwellb mainline? 14:39
in main?
pmichaud yes
you might take a look at how I did similar tests for P6object in t/library/p6object.t
stockwellb Oh, I write a sub for each one and call those subs from main. That's how the how to suggests.
This one would be a looooong main. 14:40
pmichaud okay. I agree that might be a better approach.
stockwellb The problem with sub and reuse is context.
For the reader.
pmichaud anyway, I'd just put a comment in the sub that says "we created the attribute in test so-and-so", if that's necessary.
stockwellb Ok. 14:41
pmichaud the alternative would seem to be to create new classes for every test, in which case they have to have unique names.
stockwellb I would need a comment like that or I'd be lost.
pmichaud where's the how-to for this?
stockwellb hold on.
I got to it from the parrot wiki, give me a second or two. 14:42
pmichaud okay, thanks.
I hadn't seen the how-to.
Coke hurls www.boingboing.net/2008/11/17/girl-...l-ear.html
stockwellb www.perlfoundation.org/parrot/index..._to_parrot 14:43
pmichaud okay.
I'd go with that, then. 14:44
stockwellb At least my quandry about what to do was well placed! 14:45
14:45 jimmy joined
jimmy nopaste? 14:46
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl i think nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
stockwellb pmichaud: my only problem with the how to. Is the namespace portion. It specifially addresses the multiple Foo class issue. I guess I should dig up some info on how to create classes within a specific namespace so the multiple tests don't collide. I just don't see how from the namespaces example. 14:49
14:58 jhorwitz joined
Coke lathos: hey, you're back. 15:02
lathos Hey, so I am!
Coke now I need to convince you to work on partcl!
how's japan? 15:03
lathos I'm fidding with SQLite wrappings right now.
Going well, going well; going to the UK in two months though.
PerlJam SQLite wrappings in parrot? 15:05
lathos Yep. 15:06
PerlJam heh, I started looking at creating a NCI wrapper for sqlite last night. :)
lathos NCI won't quite cut it, since SQLite uses out-args. So I'm writing sqlite3_simple, and trying to NCI-wrap that. 15:07
PerlJam yeah, I figured that out and then promptly fell asleep.
(tired from moving) 15:08
jhorwitz lathos: had to do similar things for mod_parrot. i have a thin C layer for funcs i couldn't call directly via NCI 15:09
it's annoying
15:10 wknight8111 joined
tewk_ we can add support for out args 15:10
lathos It's going to need to happen sometime.
jhorwitz tewk_: at this point it's more work for me to change it all out! but no, that would be a very nice thing to have. :)
PerlJam the NCI PDD is still in draft isn't it? 15:11
lathos Yep.
tewk_ the out args are char* I assume.
lathos Ho ho ho.
purl and a bottle of lube!
PerlJam tewk_: nope.
lathos sqlite3* 15:12
tewk_ is it an opaque struct?
lathos Yep.
PerlJam dong!
er, ding!
heh
lathos dong!
tewk_ you ought to look at managedstruct and unmanaged struct. I think those will do what you wan.t 15:13
lathos Oh, hmm. Maybe. 15:14
15:14 ruoso joined
lathos Just cons up an unmanaged struct and use it as an ordinary "p" function argument? 15:15
jhorwitz lathos: yes, that works if SQLite allocates memory for the structure 15:17
lathos Ah.
Then this is easy. :)
jhorwitz but won't work for sqlite ** where you provide a preallocated struct
lathos You don't.
jhorwitz then life is good. :)
tewk_ jhorwitz: what do you need out char* buffers or a sqlite ** like preallocated stucture 15:18
jhorwitz was that a question? 15:19
15:21 cognominal joined
jhorwitz i know the only problem i had with "out" params was char **, which i worked around with a wrapper function. 15:21
15:23 tomyan joined 15:24 Khisanth joined 15:25 davidfetter joined
dalek r32817 | bernhard++ | trunk: 15:25
: RT#60634: [PATCH] Minor test tempfile cleanup
: Courtesy of Andy Dougherty
diff: www.parrotvm.org/svn/parrot/revision?rev=32817
jhorwitz tewk_: IIRC there was a discussion on char ** a few weeks ago. was there any progress on fixing that? 15:26
lathos Oh, if I have unknown signatures, I just add them on the end of src/call_list.txt? 15:28
PerlJam lathos: yes (at least that's what I did last time I messed with NCI) 15:29
lathos: I think someone was working on a way to auto-generate src/call_list.txt though
NotFound If you have jit there is no need to add it. 15:38
Better said: if you don't care about platforms without kit. 15:41
s/kit/jit
15:41 stockwellb left 15:42 stockwellb joined
lathos Hrm, is there a way to pass in NULL? 15:42
tewk_ jhorwitz: I looked at it and found that what was there was not quite char**, but we could add it. There are several cases. depending on who does the alloc.
jhorwitz we're gonna run out of letters. ;-) 15:43
NotFound lathos: what kind of NULL?
tewk_ hence my hesitation, but I think char** is near the last of the obvious cases we should support, past that people will have to write their own c
15:43 stockwellb left
lathos I'll try changing it to an int and passing it 0... 15:44
NotFound tewk_: and depending on who must free, and why. 15:45
jhorwitz tewk_: agreed on char ** -- it's an easy win to support it, and everything else is too complex.
NotFound Not so easy. For example, several Xlib functions returns char ** the must be freed with XFree 15:46
jhorwitz that's why we'll need several vairants
lathos Ah. No, passing in a pointer did not work.
PerlJam jhorwitz: we could have modifiers ala pack/unpack.
particle lathos: don't assume sizeof (INT) == sizeof (void *) everywhere
lathos particle: Sure, I was just testing.
But it seems that just passing in an empty PMC as type 'p' did not do the trick. 15:47
jhorwitz lathos: 'p' is not an empty PMC
lathos (The trick of getting me an out arg.)
NotFound lathos: as a workaround, declare it as char * and pass a NULL STRING*
But only if it will not be used to return something non null. 15:49
Coke allison: does the new IO give me a way to query an IO object what its mode is? 15:53
wknight8111 how do I install the development ICU?
libicu-dev? 15:54
moritz wknight8111: that owr libicu36-dev (on debian)
s/owr/or/ 15:55
jhorwitz Coke: what mode? r/w? buffering? i see the latter in the PDD. 15:56
Coke r/w
jhorwitz yeah, i don't see it there.
Coke I can (as I do with Subs) subclass them and store the info in an attribute. 15:57
jhorwitz seems like a reasonable thing to do.
wknight8111 thanks
PerlJam seems like something you shouldn't have to do :)
Coke which, know, or subclass? 15:58
particle isn't there an icu 3.8?
PerlJam subclass
(why do you want to know anyway?)
particle seems mode is a reasonable param to put directly in the io object
Coke Hurm. I wonder what my original test case was. probably trying to print to a readonly filehandle; I can probably just catch the exception.
particle er, to be able to query directly, that is
Coke meh. without a snippet of failing tcl, it doesn't matter just yet. 15:59
tcl is soooo slow. make me go faster!
(make spectest took 12349 seconds last time I ran it.)
lathos Hang on, this isn't quite right. I need to at least allocate a pointer. 16:00
PerlJam I guess I can see where you have a sub that's expecting a writable IO object and you want to carp about it not being writable without actually attempting to write anything to it. 16:01
Coke yah, but that smells funny. 16:02
so, unless tcl lets me interrogate the status, i probably don't need it.
(was just going through docs/hacks.pod)
particle it might be nice to know whether you're in append or rewrite mode
to see whether or not you need to emit a header of some type for some data file format
NotFound The IO object can be a capsule around a handler that doesn't know how has been opened.
lathos OK, I can sort of see what I'm doing wrong here: nopaste.snit.ch/14623 16:06
But I don't know how to fix it. 16:07
16:08 mj41 joined
lathos sqlite3_open takes a void** as its second parameter. I think I want to wrap that in an unmanagedstruct, but handle's PMC_data is NULL rather than (address where I can store a pointer). 16:10
NotFound lathos: we need to add something to nci to allow that. 16:11
lathos Ah. So I go back to square one and use wrapper functions again. :)
But first, sleep.
PerlJam Hmm. you would only need one wrapper function that returns an sqlite* I think 16:15
s/wrapper/helper/ even 16:16
lathos I need one for sqlite3_prepare as well.
Thankfully, I still have them.
Coke do we have a documented entry point for libraries that have been compiled to pbc?
(or do we just assume the library has configured a :load sub appropriately?)
PerlJam you'd need one for each of the sqlite typedefs actually. 16:17
16:17 gryphon_ joined
NotFound I think several libraries hasn't even be tested as pbc 16:17
jhorwitz Coke: the :load sub is it
PerlJam well, I'm guessing at that from memory though. 16:18
16:18 mj41 joined
Coke at one point, we at least made sure all the runtime stuff was compiled during build; that's not the case anymore. 16:19
(as I found when 'make' worked after a PIR deprecation, but "make test" failed with some stuff that loaded .pir files instead of .pbc)
pmichaud Coke: this topic came up at the summit -- as yet we do not have a documented entry point for libraries.
nor do we have immediate plans to document one. 16:20
NotFound Did we need one?
pmichaud NotFound: if I do: load_bytecode 'foo.pbc' 16:21
...how do I invoke whatever I just loaded?
PerlJam pmichaud: you ask the author what the name of the sub is that has :load :)
pmichaud well, if a sub has :load, it got invoked already. 16:22
particle subs*
PerlJam (or whatever)
NotFound pmichaud: as with any other thing: reading the docs.
particle you can have multiple :load :init subs
pmichaud if we run a .pbc from the command line, we have a way of denoting which sub should be invoked (:main)
PerlJam Is there a tool for inspecting a .pbc similar to how nm works?
pmichaud if compile a .pbc from PIR (via the 'PIR' compreg), we have a way of denoting which sub should be invoked (the first) 16:23
if we load a .pbc or .pir with load_bytecode, we have no corresponding thing to the above two
NotFound pmichaud: and for a loaded lib, we have :load and :init
pmichaud :init has no effect in load_bytecode.
(that's why there's an :init that is separate from :load)
NotFound pmichaud: I think is invoked when you load a .pir 16:24
pmichaud NotFound: okay, you may be right there.
regardless, we might want to have libraries that say "this is my main sub to be invoked" without having them being invoked at the point of the load_bytecode op.
NotFound pmichaud: maybe, but is more usual to have to call functions with documented arguments. 16:25
PerlJam What does parrot do with multiple :main subs now? 16:26
pmichaud by that same logic, we should require that someone running a program from a command line should specify which function to invoke as 'main'
PerlJam: last :main wins.
PerlJam load_bytecode doesn't invoke :main subs, correct? 16:27
pmichaud correct.
16:27 Khisanth joined
pmichaud according to pdd19, :init is *not* invoked when loaded via load_bytecode. 16:28
Coke hurm. I'm coopting tcl's [load] to load PBC files. if I have a "stuff.pbc" and I do a "$S0 = "stuff", load_bytecode $S0", it goes boom. 16:29
if I do $S0 = "stuff.pbc" and load it, it works. 16:30
(boom in a non-catchable kind of way.) 16:31
particle the last :main takes effect currently
pmichaud coke: sounds like a bug. 16:32
purl bzzzzzzzzzzzzzz...
pmichaud prepares his #ps report. #ps in 118.
NotFound Coke: there was a problem in the way load_bytecode identify the type of action, don't know if it was fixed. 16:33
It may be trying to load the .pbc as pir source. 16:34
Or the .pir as bytecode.
PerlJam NotDound: load_bytecode "foo.pir" and load_bytecode "foo.pbc", both work (assuming foo.pir and foo.pbc exist :), but load_bytecode "foo" currently gives me a syntax error 16:35
dalek r32818 | fperrad++ | pdd22io:
: [pdd22io] fix win32 build
diff: www.parrotvm.org/svn/parrot/revision?rev=32818
16:35 ff-wonko joined
NotFound PerlJam: then I think is the first case: it takes the pbc as source. 16:35
PerlJam oh! nevermind. I have a file named foo in this dir.
hmm. nevermind my never mind. I got rid of the foo file and it still says syntax error 16:36
NotFound: I think you are correct.
NotFound I'll take another look at the issue, and prepare an rfc if needed. 16:38
wknight8111 how do I install the libcrypto dev libraries? 16:41
wknight8111 has a new computer, and is trying to get everything set up 16:42
NotFound wknight8111: What OS?
Coke (syntax error) yes. but if you try to catch that exception you can't. 16:43
moritz apt-cache search libcrypto
NotFound Coke: imcc has not a clean way of reporting errors 16:44
(talking in a diplomatic way) 16:45
wknight8111 debian 16:46
moritz wknight8111: on debian you can usually search for a package with `apt-cache search lib$name' and then install one that ends with -dev 16:48
16:49 Theory joined
NotFound I think libcrypto is in the ssl package 16:50
Infinoid libssl-dev
wknight8111 libcrypto++-dev sound right? 16:51
Infinoid wknight8111: apt-get install libssl-dev
NotFound wknight8111: no, this is a c++ lib
wknight8111 we should really have a POD with dependency info like this
dalek r32819 | coke++ | trunk:
: improve the state of `make examples_tests`
diff: www.parrotvm.org/svn/parrot/revision?rev=32819
NotFound wknight8111: a wiki page will be better, IMO 16:52
wknight8111 you don't need to tell me twice to edit a wiki :)
NotFound wknight8111: a wiki page will be better, IMO
Just in case ;)
Infinoid doesn't matter to me either way 16:53
I will happily add gentoo info, wherever the document ends up
moritz nay, we need a debian/rules file with which one can automatically install the dependencies
and build a debian package as well
NotFound A package that requires all dependencies and subversion, and gets parrot from svn may be helpfull 16:54
Infinoid a parrot-installer package (akin to the qmail stuff)? 16:58
nopaste "particle" at 98.232.28.49 pasted "timings on perl-based test files using "pasm_*" test functions" (74 lines) at nopaste.snit.ch/14624 16:59
particle converting those test files to pir will improve test performance
and will help get rid of tests written in pasm (where they don't make sense) 17:01
wknight8111 libssl-dev was it, thanks
pmichaud ....is that correct? t/op/01-parse_ops.t takes 51 seconds?! 17:02
allison Coke: what do you mean by "mode"? read, write, append, etc? 17:12
particle yes 17:13
Tene allison: looks like the only test that fails when I remove "disable exception handlers when they're used" is t/pmc/threads.t, but I can't quite figure out why. 17:22
Test 13 spins sucking up ram.
allison Coke: it does cache the mode string, so no reason it shouldn't be easily retrievable later 17:23
Tene: usually, that's an infinitely recursing exception
Tene: so, somewhere in the test I'd expect to find an exception handler 17:24
Tene: and, the exception handler doesn't test for a particular kind of exception, but just handles all exceptions, no matter what
nopaste "tene" at 166.70.38.237 pasted "Eats ram without disabling exception handlers" (66 lines) at nopaste.snit.ch/14625 17:25
Tene It doesn't contain push_eh anywhere.
allison Tene: then another exception is being thrown in the middle of the exception handler, so the same handler is catching that exception
Tene: hmmmm... curious...
purl gives the small curious key to Bilbo. Thorin sits down and starts singing about gold.
17:26 masak joined
allison Tene: Oh, but there is an exception handler there, every thread has one 17:26
NotFound Someone is playing "The hobbit" with purl?
allison Tene: it's just not a PIR exception handler, it's a C one
17:26 jan joined
Tene What is it catching? 17:27
allison Any exception thrown in the thread that isn't handled within the thread
it's crack-brained, but that's how it's worked for years 17:28
17:28 ruoso joined
allison what it should do at that point is hand the exception off to the main interpreter's thread 17:28
Tene Can you tell me where this is happening? 17:29
17:29 rhr joined
Tene ah, src/thread.c 17:30
allison yah: 457: if (setjmp(jump_point.resume)) {
that's the point where it checks if it needs to run an exception handler 17:31
Tene I'm not seeing and output on stderr, though.
allison well, if it's infinitely recursing on exception throwing, it never gets to the point of actually giving an error message 17:32
Tene ah, and Parrot_cx_peek_task throws an exception if (!interp->scheduler) 17:33
particle how about a recursion limit for eh's?
allison particle: it'd be tough to set, since exception-heavy code would run into the limit too often. But, we could set it to 10 for now, and make it tunable. 17:34
particle 1000 would still be reasonable 17:35
Tene I can do that.
particle you really just want to find the *infinite* cases in reasonable time
allison particle: yes 17:36
Tene The exception message being thrown is "Scheduler was not initialized for this interpreter."
PerlJam how long does it take to invoke 1000 exceptions?
Tene PerlJam: not long 17:37
purl not long is real soon now or notlong.com
Tene times 17:38
pmichaud #ps in 50. 17:39
Tene Hmm. Longer than I thought. 17:40
pmichaud bbi 45 17:41
Tene Oh, nevermind, I wasn't incrementing.
nopaste "tene" at 166.70.38.237 pasted "exception handler speed" (7 lines) at nopaste.snit.ch/14626 17:42
"tene" at 166.70.38.237 pasted "script to throw many exceptions" (34 lines) at nopaste.snit.ch/14627
Tene 6.5s to throw and resume from 100k exceptions 17:43
3.3s if I just create one exception ahead of time and keep throwing it. 17:44
nopaste "tene" at 166.70.38.237 pasted "script to throw one exception many times" (35 lines) at nopaste.snit.ch/14628 17:45
Tene allison: think you could fix that thread EH for me? 17:46
Tene drives to work.
allison Tene: possibly, I'll look at it
wknight8111 I'm seeing a few arithmetic-related test failures on a fresh checkout, is this a known issue? 17:48
Tene PerlJam: that answer your question? 17:49
particle wknight8111: no known issues are allowed to go unsaid on release day 17:51
Infinoid I'm getting lots of "warning: conversion to 'long unsigned int' from 'INTVAL' may change the sign of the result" that weren't there yesterday 17:52
17:53 tomyan joined
wknight8111 I'm seeing failures in t/op/arithmetics.t, bitwise.t, string_cclass.t, string_cs.t, stringu.t t/pmc/bigint.t, and few in t/dynops/ 17:53
Tene Is DEPRECATED.pod sorted in any way?
allison Tene: it's grouped into categories, under headers 17:54
Tene ah! Clever!
17:54 sjansen joined
particle the api2export branch is ready to merge to trunk after release 17:55
NotFound Infinoid: 32 or 64 bits?
Tene Which category does "EHs aren't automatically disabled" go in? PIR syntax?
Infinoid 64
particle it'll be nice to get a roadmap item finished :)
nopaste "allison" at 71.59.194.14 pasted "dumb down blanket thread exception handler" (27 lines) at nopaste.snit.ch/14629
Infinoid also getting some "warning: conversion to 'FLOATVAL' from 'INTVAL' may alter its value"
NotFound Infinoid: can you tell me file and line of one?
allison Tene: PIR syntax is good 17:56
Infinoid sure, moment. they are everywhere
heh, "warning: conversion to 'FLOATVAL' from 'opcode_t' may alter its value"
particle Infinoid: that sounds like it could be related to recent Integer/BigInt changes chromatic did
Infinoid that's ... odd
allison Tene: try that nopaste on your branch/working copy for the thread test
Tene allison: The exception that's being repeatedly created is thrown in Parrot_cx_peek_task
particle imcc autopromotes large intvals to floatvals iirc 17:57
NotFound FLOATVAL from opcode_t? Sounds ugly.
allison Tene: right, so this doesn't call 'peek_task' anymore
Infinoid NotFound: that's what I thought, too
wknight8111 I am also seeing A LOT of warnings about incompatible type conversions
purl okay, wknight8111.
Tene ... OH! Comments!
allison Tene: well, it comments out the call to 'peek_task'
NotFound Someone has changed the cflags today? 17:58
Infinoid ./src/pmc/default.pmc: In function 'does_isa':
./src/pmc/default.pmc:234: warning: conversion to 'INTVAL' from 'UINTVAL' may change the sign of the result
./src/pmc/default.pmc:248: warning: conversion to 'INTVAL' from 'UINTVAL' may change the sign of the result
./src/pmc/default.pmc:250: warning: conversion to 'UINTVAL' from 'INTVAL' may change the sign of the result
./src/pmc/default.pmc:255: warning: conversion to 'UINTVAL' from 'INTVAL' may change the sign of the result
there are a ton of these, with all sorts of types involved. nopaste coming up
NotFound Infinoid: I'm seeing them also. 17:59
Infinoid ok
I think you're right, it's probably a cflags change. or maybe some very commonly used macros 18:00
they are literally everywhere. pmcs, ops, text encoding plugins...
NotFound I haven't changed the compiler, so is some parrot change. 18:01
Infinoid me neither
18:02 Aisling joined
dalek r32820 | tene++ | trunk: 18:03
: [DEPRECATED]: Add exception handler auto-disable to DEPRECATED.pod
diff: www.parrotvm.org/svn/parrot/revision?rev=32820
wknight8111 okay, the test failures I saw appear to have disappeared after a make realclean 18:04
but still lots of build warnings
18:04 hercynium joined
particle tene: please add an rt ticket number to that entry 18:05
Tene I don't think there's a ticket about it.
particle then you need to create one
Tene But I can't create an RT ticket! Aren't we creating all new tickets on trac? 18:06
Also, I was supposed to leave for work a long time ago.
Tene leaves.
particle no, we're not creating tickets on trac until the infra is set up
Infinoid ... are we? that was quick.
particle i'll create the ticket
18:07 barney joined
Infinoid well, all tests still pass here, so that's a good sign these warnings are benign 18:08
18:08 NotFound joined
NotFound Sorry, lost connect 18:09
18:11 tomyan joined
dalek r32821 | particle++ | trunk: 18:12
: [DEPRECATED] add rt # for exceptions handler disablement item
diff: www.parrotvm.org/svn/parrot/revision?rev=32821
Infinoid is it worth having a codingstd test to ensure TODO test descriptions have ticket numbers? 18:14
particle Infinoid: given that we're not running codingstd tests by default anymore, i think yes 18:17
18:22 rdice joined 18:29 tomyan left
moritz is #ps now? 18:30
cotto yes
in theory (or David)
18:35 chromatic joined
chromatic allison, wknight8111, run 'make testC' or 'make testj' in the calling conventions branch. 18:37
I have a bad feeling about this.
allison chromatic: shouldn't be much different
chromatic: what's the error? 18:38
purl allison: Argument list too long
chromatic Remember how you wanted to delete src/pic.c? 18:39
That file also handles argument passing for dereferenced code.
Theory coughs
allison chromatic: well, yes, I assumed we'd be pulling some code out of the file
wknight8111 I just ran all tests in the calling_conventions branch
100% clean
chromatic With testC?
allison chromatic: and src/pic.c isn't removed in the calling_conventions branch, it's not even touched 18:40
wknight8111 'm running that now too
allison chromatic: the calling_conventions branch is very conservative, we've broken the changes down into small stages
chromatic Right, but if the way we pass arguments changes, src/pic.c or its equivalent needs to change too. 18:41
I'm not sure anyone understands it.
particle i'm in #ps
allison chromatic: but the way we pass arguments isn't changing
Coke has the cc branch been updated with recent trunk changes? 18:42
allison chromatic: all that's changing is what happens *after* we pass the arguments (it's a guts change, not an interface change)
Coke (last I checked, I couldn't run partcl in that branch at all.)
allison Coke: updating branch from trunk is always the last step before merging back into trunk
particle i got throttled on #ps. what was my last line?
allison Coke: then you should test again 18:43
chromatic <particle> ~ fixed bugs, applied patches, created/updated tickets
particle thanks, c
chromatic Let's hope I'm wrong about the prederef cores then.
allison chromatic: this calling conventions branch didn't touch pic.c at all, the next one might, or the one after that 18:45
chromatic I think it might need to.
nopaste "coke" at 72.228.52.192 pasted "This works..." (20 lines) at nopaste.snit.ch/14632
wknight8111 make testC in calling_conventions passes everything, including 1 TODO test
Coke allison; last step - except then you'll have to wait for those reports to trickle in. 18:46
(which is fine with me.)
chromatic That TODO test shouldn't pass, but you'll get a fix for that with a trunk merge.
wknight8111 the calling_conventions branch has not been updated to trunk in about a week I think
pmichaud I usually do my merges the other way around -- I merge the branch into trunk.
instead of trying to merge the trunk into the branch.
wknight8111 I've got at least one failure in make testj so far 18:47
allison pmichaud: the best way to do it is continuously update the branch from trunk (so the branch is up-to-date with all trunk changes)
pmichaud: then at the end merge the branch into trunk
chromatic Oh yeah, I need to work around the Task/Scheduler order of destruction bug.
pmichaud allison: even that I do the other way around. 18:48
allison pmichaud: (it just so happens that both ways are called 'merge' in svn)
pmichaud I apply the branch to trunk (don't commit), generate a diff, generate a new branch from trunk, apply the diff to the new branch.
generally there are fewer diffs to have to deal with, and fewer files to update.
allison pmichaud: there's not much difference, really, it's just a matter of which working copy you apply the patch to
pmichaud i.e., I don't have to merge the diffs of all of the languages/* updates. 18:49
allison pmichaud: if you do a merge into the branch, that's exactly what it does: create a diff, and apply the diff to the branch
pmichaud: oh, but we do have to apply all the languages updates, otherwise we can't know we're testing the languages properly
pmichaud yes, but then my branch keeps a lot of diffs, yes?
my way still gets the language updates, but it does so by copying from trunk instead of re-applying diffs. 18:50
wknight8111 no tests failed using make testj or make testC in the calling_conventions branch
allison pmichaud: also, we modify languages files, so we have to know that we're correctly testing the combination of our change and trunk changes
pmichaud anyway, it's just another approach.
allison: that also occurs in my approach.
Coke note that we have shiny new merging available in svn repo. 18:51
pmichaud because it appears as part of the diffs between branch and trunk.
allison pmichaud: then I must not be understanding your description
Coke (with svn 1.5)
particle coke: has docs/project/committer_guide.pod been updated wrt merging?
Coke no. I don't think anyone's done a run through with the new stuff. 18:52
pmichaud allison: any languages changes I make in the branch will show up when I apply them to trunk. 18:53
18:53 randi joined
allison particle: you're looking for docs/project/branching_guide.pod 18:54
pmichaud: and yes, it's up to date
I mean 'particle'
and pmichaud: try reading that. I think we're essentially doing exactly the same thing 18:55
pmichaud yes, but my way I don't have to keep track of the last time I merged from trunk. :-)
particle allison: okay, then committer_guide needs updating, because it too has branch/merge instructions
allison pmichaud: it's just a simple text file
pmichaud in my approach the diffs are always _only_ those things related to what I've been working on. The diffs don't include any completely unrelated changes in other parts of the repo. 18:56
particle allison: and no, branching_guide is not up to date. svn 1.5 removes the need to remember the rev at which the branch was created
allison pmichaud: when I'm changing the guts of a core subsystem there are no 'unrelated' parts of the repository 18:57
pmichaud allison: I'm not saying that I don't test those other core parts.
allison particle: then add an updated note for 1.5
pmichaud I'm saying that the diffs don't contain those changes.
particle will do
dalek r32822 | Whiteknight++ | calling_conventions:
: [calling_conventions] Move some documentation from a strange place in inter_call.c to the (slightly less inappropriate) src/pmc/callsignature.pmc
diff: www.parrotvm.org/svn/parrot/revision?rev=32822
barney pmichaud: For PHP 5.3 I need to specify which vars are captured. OTOH I don't know yet whether the PHP 5.3 closures are really closures
18:58 mberends joined
PerlJam barney: /me doubts :) 18:58
pmichaud because I get those changes by doing a copy instead of merging.
barney: yes, one can specify that a sub has no :outer
barney doubts too but doesn't really what to doubt
Coke in any case, I'm happy to test partcl against an up to date branch, or a patch if that's how we do it, or... 18:59
allison pmichaud: really not making sense to me, you may have to write out your full branching strategy like the branching_guide
pmichaud allison: okay.
Coke as long as our strategy involves short-lived branches, we'll be fine. :| 19:00
pmichaud if svn 1.5 means we no longer have to keep track of the latest merge from trunk it may be unimportant anyway.
I just like that my diffs are only the things I've diffed. :-)
Coke sadly, we only have 1.4 here at work or I'd ve done this already. =-)
allison pmichaud: I'm running 1.4.3 19:01
pmichaud I'm 1.4.6
Coke not sure if you need an updated client. probably.
pmichaud so, I guess it's still relevant. :-)
PerlJam (If parrot had a git repo, the merging debacle wouldn't even exist :)
Infinoid how much of testC and testj should I expect to pass in trunk on x86-64? 19:02
chromatic Infinoid, all of it passes for me on x86-32.
Infinoid I'm running them both and both have some failures so far. I'm just not sure whether that's news or not.
particle yes, you need client and server >= 1.5
chromatic Infinoid, it doesn't surprise me, but it's news to me. 19:03
19:03 gmansi joined
Infinoid ooh, jit runcore segfaults on all of the t/compilers/pge/pge_text.t tests 19:06
ok, I won't worry about it. the jit runcore isn't listed in PLATFORMS for x86_64 anyway...
Now, CGP, on the other hand... I think the only prerequisite is gcc, so that might be worth spending some time on. 19:09
chromatic t/compilers/imcc/imcpasm/optc.t hangs for me in testC
Infinoid here too 19:10
test #1
chromatic All of the tests there hang for me. 19:11
Infinoid, do you have time to bisect this for the last 40 commits?
Infinoid sure do
pmichaud barney: can I close the "our variables" ticket?
Infinoid think my chances of success will increase if I switch to a 32 bit platform, though... moment.
barney pmichaud: k 19:12
pmichaud I'll move the conversation to a new thread on parrotdev, but it's not really part of the original ticket.
also, can I remove the test?
barney I'll change it to the expected behavior 19:13
pmichaud okay, I'll let you do that.
wknight8111 When is the release shipping out today? 19:16
I'm anxious to get my grubby hands back on trunk
chromatic Later tonight. 19:17
I have some patches to apply and would like to reclaim testC and testj on x86-64.
Infinoid, make testj is fine for me on x86-32.
Infinoid I don't know if testj *ever* worked on x86-64 19:18
I can nopaste all the testC errors, if you like. 19:20
barney pmichaud: done in r32823 19:21
dalek r32823 | bernhard++ | trunk:
: [PCT] Test for the correct expected behavior in test for RT#60554.
diff: www.parrotvm.org/svn/parrot/revision?rev=32823
chromatic Yes, please.
Tene testJ is jit?
Infinoid yes
Tene jit hasn't worked on x86_64 since I've been working on parrot 19:22
Infinoid I figured as much, after seeing it not listed in PLATFORMS. thanks for confirming.
Tene np
19:24 NotFound joined
Infinoid go svn-bisect go 19:24
There are currently 10 revisions under scrutiny.
The last known-unaffected rev is 32799.
The first known- affected rev is 32810.
Currently testing 32805.
chromatic I hope it's not r32803. 19:25
Tene go 32803!
barney watching www.youtube.com/watch?v=DzpSREpLJY8 pmichaud++ 19:26
Infinoid I am doing this test on x86-32 linux, so I should hopefully be seeing the same thing you are.
Tene chromatic: do you have an x86_64 box to test on?
barney pmichaud: special subrule <.INIT> does what I need, tnx 19:32
pmichaud 648 tickets. 19:35
640 would be a much nicer number, yes? ;-)
masak jimmy? 19:36
purl i think jimmy is jimmy or a kind and warm-hearted person, albeit allegedly a sloth
masak masak?
purl you are _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl
masak purl: I am also out to get you 19:37
purl okay, masak.
cotto masak? 19:44
purl hmmm... masak is _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl or out to get you
masak hm :) 19:45
cotto out to get me?
oh noes!
masak refuses to comment at this point
chromatic Tene, I don't.
Tene chromatic: if you ever want to work on x86_64, let me know and I'll give you a shell on my laptop. 19:46
chromatic Thanks. 19:48
Patterner I can test x86_64 on my desktop 19:55
Infinoid I've got a nice x86_64 server with plenty of shell space, if anyone is interested in getting JIT working :) 20:04
lu_zero hi
Coke is it possible to alias namespaces?
dalek r32824 | pmichaud++ | trunk:
: [rakudo]: Use get_namespace opcode instead of interpinfo for $?PACKAGE.
diff: www.parrotvm.org/svn/parrot/revision?rev=32824
Coke so I could make all requests to namespaceA really look things up in namespaceB ? 20:05
Infinoid chromatic: sorry about the delay, had a meeting. The hangs did start in r32804. 20:06
(not r32803)
Tene Coke: just store the same namespace object in both places?
$P0 = get_namespace; set_namespace B, $P0 20:07
chromatic 32804... hmm. That was the CONTEXT(interp)->current_pc change.
At least it wasn't 32803. 20:08
Coke is there a standard for naming conventions of things shoved in namespaces? Tcl was using &foo; what's rakudo using, just foo for procs? 20:09
(and things with sigils are variables?)
tene: $P0 = get_root_namespace $P1 = get_hll_namespace $P1['parrot'] = $P0 20:11
?
dalek r32825 | pmichaud++ | trunk:
: [pct]: Report error if PAST::Val is missing :value attribute (RT #49177)
diff: www.parrotvm.org/svn/parrot/revision?rev=32825
Infinoid testC has several hangs on x86-64 in addition to the t/compilers/imcc/imcpasm/optc.t ones. 20:13
Tene Coke: that's what I'd try. 20:14
Coke tene: seems to work, but then partcl hangs at some point after that. 20:15
Tene Ouch.
I bet something is because the namespace contains itself.
chromatic Aha, I see what it is.
Tene [tcl;parrot;tcl;parrot;tcl;parrot;...\\
]
Coke yes, but that shouldn't matter unless something tries to walk it, should it? 20:16
Tene Right.
Infinoid the 'add overflow Integer' test in t/pmc/bigint.t line 452 seems to emit the expected 3 lines, and then keep emitting more "BigInt" lines forever after
Tene I'm suggesting that something probably is walking it.
Coke dies on load_bytecode 'Getopt/Obj.pbc'
Tene dies or hangs? 20:17
Coke hangs.
Tene does it successfully load any other pbcs?
Any evidence that it's Obj.pbc and not load_bytecode itself? 20:18
Coke no, it's hitting the load_bytecode op and hanging. 20:19
chromatic Infinoid, you're going to love this fix.
Infinoid is it fiendish? 20:21
chromatic It's a forehead slapper.
Infinoid those are good too.
chromatic if ((*(INTVAL *)OP_AS_OFFS(1)) != 0) 20:22
CONTEXT(interp)->current_pc = CUR_OPCODE + ((INTVAL)cur_opcode[2]);
goto **(void **)(cur_opcode += ((INTVAL)cur_opcode[2]));
That used to be:
if ((*(INTVAL *)OP_AS_OFFS(1)) != 0)
goto **(void **)(cur_opcode += ((INTVAL)cur_opcode[2]));
I added the second line.
Coke tene: and now I am doubting that this is state of the art. ISTR allison saying that if you wanted to poke outside of your HLL, you were going to have to write shim loading code. 20:23
(which we can't do since we don't know what's in any given PBC)
bacek good morning 20:24
Infinoid happy Wednesday, bacek
bacek Infinoid: oh... It's Wednesday already... 20:25
dalek allison@perl.org | Parrot: 20:27
link: www.perlfoundation.org/parrot/index.cgi?parrot
masak rumplo.com/tees/tee/1144-thank-god-...to-the-sea 20:29
Infinoid chromatic: sorry, I haven't looked at CGP before, and have no idea what the difference between CUR_OPCODE and cur_opcode is.
looking forward to testing the fix tho. :)
dalek r32826 | chromatic++ | trunk: 20:30
: [lib] Fixed the CONTEXT(interp)->current_pc setting code from r32804; the goto
: code has to be a single expression, otherwise testC and similar cores will
: hang.
diff: www.parrotvm.org/svn/parrot/revision?rev=32826
Infinoid oh, no curlies. heh. 20:31
chromatic Exactly.
Tene Coke: what's the issue you're trying to solve here? 20:34
Infinoid sadly, those same tests still hang on x86-64 20:35
I'm not sure if they hang for the same reason. (I was also seeing other tests hang on x86-64.)
allison Coke: no shim loading code for poking outside your hll
chromatic Infinoid, did they hang before r32804? 20:36
Infinoid good question, I will find out right now.
chromatic: no. 20:38
testC passes on x86-32 again
chromatic Did src/ops/core_ops_cgp.c get regenerated and rebuilt? 20:39
Infinoid if not, realclean is broken
chromatic If you remove the current_pc setting code in lib/Parrot/OpTrans/CGP.pm, does the hang disappear? 20:41
dalek r32827 | bernhard++ | trunk: 20:42
: [PCT] Add a testcase with a special init subrule.
: Pass in the input in test_pct().
diff: www.parrotvm.org/svn/parrot/revision?rev=32827
Infinoid ECANNOTREPRODUCE, nevermind. 20:44
Infinoid tries to ram a testC through on x86-64 while everything seems to be working 20:45
dalek r32828 | bernhard++ | trunk: 20:46
: [doc] add NEWS about Pipp
diff: www.parrotvm.org/svn/parrot/revision?rev=32828
20:46 klapperl joined
Infinoid got a TODO pass from the final test in t/pmc/exception.t, otherwise, testC passes on x86-64 20:50
chromatic Excellent. 20:51
Infinoid lunch &
barney good nite 20:52
dalek r32829 | pmichaud++ | trunk: 21:04
: [pct]: Report a useful error message for invalid parseactions (RT #48270).
diff: www.parrotvm.org/svn/parrot/revision?rev=32829
21:16 johbar joined
dalek allison@perl.org | Parrot: 21:16
link: www.perlfoundation.org/parrot/index.cgi?parrot
Krishna Sethuraman | Parrot Development on Windows: 21:19
link: www.perlfoundation.org/parrot/index...on_windows
21:29 apeiron joined
pmichaud Failed Test Stat Wstat Total Fail Failed List of Failed 21:31
-------------------------------------------------------------------------------
t/native_pbc/header.t 255 65280 9 18 200.00% 1-9
expected?
moritz when I run the test with the same perl that I used to configure parrot, it passes here 21:34
pmichaud I only have one perl, so that's not it. 21:35
dalek r32830 | pmichaud++ | trunk:
: [pge]: Fix parsing bug with aliases (resolves RT #56224, reported by cognominal++)
diff: www.parrotvm.org/svn/parrot/revision?rev=32830
pmichaud I'll try a fresh checkout in a second.
645 tickets. 21:36
Tene makes a note to write a Benchmark library for Parrot. 21:55
22:00 apeiron joined
Infinoid pmichaud: not expected. what platform? 22:02
pmichaud clean checkout gives me the same native_pbc/header.t error.
Kubuntu 8.04, x86
Infinoid any error output?
nopaste "pmichaud" at 72.181.176.220 pasted "error output of prove -v t/native_pbc/header.t" (15 lines) at nopaste.snit.ch/14634 22:03
22:05 bacek joined
dalek r32831 | pmichaud++ | trunk: 22:06
: [pge]: Fix bare cut operator at beginning of (sub)pattern (partial RT #42334)
diff: www.parrotvm.org/svn/parrot/revision?rev=32831
22:16 sjansen joined
chromatic make testr still brokenish. 22:17
pmichaud I'm getting the header.t errors in a standard "make test"
chromatic That one looks familar. 22:19
familiar
purl Good kitty, I always wanted an enchanted broadsword.
pmichaud I haven't started to try to track it down yet. 22:20
chromatic RT #58840 22:21
Infinoid Operation "eq": no method found ? 22:22
22:22 gryphon joined
chromatic That's the one. 22:22
pmichaud I have trouble following what that ticket is saying, or what it implies for what I'm seeing. 22:26
Infinoid File::Temp has overloaded the "eq" operator 22:28
chromatic There's some problem in Parrot::Test when comparing filehandles.
dalek r32832 | pmichaud++ | trunk: 22:31
: [pge]: Fix cut applied to null term (RT #42334, reported by Jim McKim)
diff: www.parrotvm.org/svn/parrot/revision?rev=32832
pmichaud oops, committed w/o make test there -- I need to do that. 22:32
22:35 klapperl joined 22:37 cotto joined
pmichaud yay! yay! yay! 22:37
I can now go through my code and get rid of the silly instances of 22:38
$P0 = new 'String'
$P0 = 'foo'
now it's just
$P0 = box 'foo'
chromatic++
cotto your kids can play with boxes, and now you can too!
pmichaud it's always bugged me that creating String/Integer/Float pmcs required two statements. 22:39
chromatic Just don't ask for Key PMCs any time soon.
pmichaud, can you change lib/Parrot/Test.pm:330?
pmichaud I'd like for Key PMCs to go away, actually. :-)
chromatic: sure 22:40
chromatic add quotes around the second occurrences of "$out" and "$err"
Then see if your header tests run again.
pmichaud looks like it's line 334 on my box.
if ( $out and $err and $out eq $err ) {
that one? 22:41
purl i guess that one is more Acme.
chromatic Yeah, that.
purl Sure, that.
pmichaud purl, forget that one
purl pmichaud: I forgot that one
chromatic Just because I can't count doesn't mean my code doesn't rock.
pmichaud that fixes it -- all tests successful.
commit?
purl hmmm... commit is to specific areas only
chromatic annnnnnd that's a triple negative word score, for 837 Scrabble points.
pmichaud purl, forget commit
purl pmichaud: I forgot commit
chromatic Go ahead; refer to RT #58840 in the log and a comment before that line perhaps, so we never lose that trick again. 22:42
pmichaud will do.
chromatic Or I can do it if my vague description is vague.
pmichaud r32833 22:45
22:45 bacek joined
pmichaud you can fix it if my description is vague. :-) 22:45
dalek r32833 | pmichaud++ | trunk: 22:46
: [test]: Force 'eq' to compare strings -- native_pbc/header.t passes again.
: See also RT #58840. chromatic++ for the patch.
diff: www.parrotvm.org/svn/parrot/revision?rev=32833
pmichaud 644 tickets. 22:48
dalek r32834 | pmichaud++ | trunk:
: [pge]: Update LHS message and add some tests for RT #42334 and #56224.
diff: www.parrotvm.org/svn/parrot/revision?rev=32834
pmichaud 643. 22:51
22:52 apeiron joined
Coke we should run examples_tests every release if that's not covered by one of the other targets. 22:59
pmichaud 642. 23:01
dalek r32835 | coke++ | trunk: 23:02
: This test is passing on my darwin.
diff: www.parrotvm.org/svn/parrot/revision?rev=32835
chromatic make manifest_tests examples_tests all pass for me now. 23:03
Coke I just uncommented another one that was passing.
(SKIP'd tests suck. :|)
chromatic TODO/SKIP test review is a milestone for 0.9.1.
pmichaud 0.9.1 is the Feb 2009 release? 23:04
Coke: it was commented at PDS that we probably need to get our release managers set up for early 2009. 23:05
chromatic Yes.
Coke: I want January.
pmichaud I vote that we reject RT #54478.
chromatic +0 23:06
purl 0
Coke I can coordinate the next six months if folks want.
easy enough to do.
pmichaud although, each of the Jan/Feb/Mar releases are "special" in some respects.
chromatic has already claimed Jan.
Whoever does Feb really needs to focus on packaging issues. 23:07
Coke then I nominate reini.
pmichaud The March release is 1.0.
chromatic I nominate Andrew for 1.0.
I don't know what makes his head explode, but that's the way the release ends.
o/~ it's for my experimental VM / that nobody knows about but it's o/~ 23:08
Or if Allison | Coke want it, that's a nice symbolic mishmash cute cosplay thingie too. 23:09
pmichaud Coke: Think we can reject RT #58108 (languages/Makefile 'test' has too many deps)? We're planning to move most of the languages out of the repo (or at least the tarball), yes?
chromatic Pruning the deps to the tutorial languages we want to keep around would resolve it too.
pmichaud or maybe convert the ticket to "create languages/Makefile.... what chromatic said.
Coke chromatic: ... please don't use those words in a single sentence again. thank you. 23:10
chromatic Coke cosplay tentacle trilateral commission cuba sirhan sirhan echelon.
pmichaud I'll add that to the ticket.
Coke ... what, cosplay?
chromatic When I am emperor, I'll stamp *that* out too.
Coke pmichaud: ... yah. go ahead. 23:11
pmichaud added.
641. 23:14
Infinoid Coke: you can sign me up for a release, what the hell. 23:17
23:19 davidfetter joined
Coke ... holy crap. anyone see the p5p summary this week? 23:20
particle nobody reads those
Infinoid I read those
Coke "PS: Hi, guys. Been a while. How you been?" -- Chip Salzenberg, back
on the chain gang.
23:21 klapperl joined
davidfetter heh 23:21
dalek r32836 | pmichaud++ | trunk: 23:23
: [p6object]: Correctly honor hll option to new_class (RT #60218, chrisdolan++)
: * Patch courtesy Chris Dolan <chris@chrisdolan.net>
diff: www.parrotvm.org/svn/parrot/revision?rev=32836
pmichaud 640.
davidfetter wehre teh p5p summary? 23:24
Infinoid use.perl.org top post
(rss hasn't updated yet, which is why I hadn't seen it.)
davidfetter thanks :) 23:25
23:26 Limbic_Region joined
Infinoid is it too late to update PLATFORMS? I seem to have a much bigger gcc rev than any of the linux/x86_64 entries currently there. 23:34
chromatic Please, feel free.
pmichaud well, I'm happy to get the RT ticket # down to 640. 23:35
Infinoid what's an EXEC runloop and how do I test it?
Coke watches the science get done.
pmichaud I have some other candidates for people to look at that might be low-hanging fruit -- will post those a bit later.
davidfetter 640 should be enough for anyone 23:36
particle that looks a bit better: trac.parrot.org/parrot/wiki/ParrotRoadmap 23:37
chromatic I don't think the EXEC runloop works anymore.
dalek r32837 | infinoid++ | trunk:
: Add linux-x86_64-gcc4.3.2 to PLATFORMS.
diff: www.parrotvm.org/svn/parrot/revision?rev=32837
Infinoid I think (and hope) that no entries in PLATFORMS use the *2 remark any more. 23:38
davidfetter particle, it does indeed :) 23:41
particle Infinoid: can you split PLATFORMS up into supported and extra platforms while you're in there?
pmichaud when would be a good time for a ticket sprint?
23:42 Whiteknight joined
pmichaud I'm finding some tickets that I think could be closed with just a bit of discussion (and the relevant principals present) 23:43
Infinoid particle: by "supported" you mean the stuff listed under "Supported Platforms" in docs/parrot.pod, right? 23:44
Coke pmichaud: did you say that the lex/ branch can be deleted?
pmichaud coke: yes, but not lex2/
particle Infinoid: yes, thanks
dalek r32838 | coke++ | lex: 23:46
: Remove obsolete branch (see branches lex2/ for the SoTA)
diff: www.parrotvm.org/svn/parrot/revision?rev=32838
Infinoid looks like it's been a couple years since tru64 has been updated in PLATFORMS 23:50
does win32-x86_64 count? (parrot.pod doesn't list a platform for the win32 arch.)
particle no, it's busted anyway
Infinoid (though I suppose the "32" part says a lot.)
Coke any votes on removing the extremely crufty t/compilers/imcc/syn/eval.t ?
... it's so old, it uses the 'compile' opcode. 23:51
particle wow, svn merge syntax is SOOOOO much easier with 1.5
c:\\Users\\particle\\dev\\parrot\\api2export>svn merge svn.perl.org/parrot/trunk 23:52
--- Merging r32786 through r32838 into '.':
...
i just updated my branch with all changes in trunk
Infinoid nice. does the reverse also work? (so it won't try to re-apply changes previously merged from trunk.)
dalek r32839 | infinoid++ | trunk: 23:53
: Reorganize PLATFORMS into "supported" and "extra" entries.
diff: www.parrotvm.org/svn/parrot/revision?rev=32839
particle yes
Infinoid well, that pretty much makes git unnecessary then
particle svn still doesn't support disconnected development 23:54
Coke they just store what's been merged in a property on the root of the branch, neh?
Infinoid that reorganization makes it pretty easy to see which platforms have been tried recently
Coke Infinoid: update that to point to smolder instead of smoke?
Infinoid purl, smolder? 23:55
purl smolder is sourceforge.net/projects/smolder or web-based smoke test aggregator used by developers and testers to upload (automated or manually) and view smoke/regression tests using the Test Anything Protocol (TAP). or smolder.plusthree.com/app/public_pr..._reports/8
particle that last one with the cryptic url :(
Infinoid ah, thanks.
purl somebody said ah, thanks. was it fast enough?
pmichaud purl, forget ah, thanks.
purl pmichaud, I didn't have anything matching ah, thanks
Coke we can setup a redirect at parrotcode.org pretty easily. 23:56
allison particle: we could make a shorter URL, if you want (www.parrot.org/smolder)
Coke ah, we can do that on parrot too? yes, please.
particle +1
purl 1
Infinoid waits for a shorter URL 23:57
Coke chromatic: didn't you fix RT#58934? 23:59