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