Parrot 1.7.0 "African Grey" is out! | Testing hackathon November 14 and 15 -- trac.parrot.org/parrot/wiki/Opcode...gHackathon | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 14 November 2009.
dalek rrot-linear-algebra: a4567f9 | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
fix set_pmc_keyed to work with Floats and Complex
00:01
00:05 chromatic joined
dalek rrot-linear-algebra: 56c374d | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
add support for Integer on ComplexMatrix2D set_pmc_keyed
00:07
00:09 NotFound joined
NotFound hi 00:09
00:14 Essobi joined
dalek rrot-linear-algebra: ec61009 | Whiteknight++ | src/pmc/ (2 files):
fix complex matrix indexing
00:37
rrot-linear-algebra: 664950e | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
remove diagnostics message
00:43
cconstantine hi
00:48 abqar joined
nopaste "GeJ" at 202.171.79.135 pasted "[PATCH] fix probable typo in t/op/time.t" (13 lines) at nopaste.snit.ch/18709 01:02
GeJ And Good morning everyone. 01:03
cconstantine dumb question: how do I get the svn checkout address for trac.parrot.org/languages/browser/scheme/trunk ? 01:07
nm, it appears that there isn't a lisp implementation on parrot that supports macros? 01:18
01:54 kid51 joined
kid51 cconstantine: svn.parrot.org/languages/scheme/trunk 01:59
cconstantine thanks 02:00
dukeleto 'ello 02:17
cconstantine: you can also do "svn info" in an svn scheckout to find that out
dukeleto made some good progress on PL/Parrot today. it passes some tests! 02:18
cconstantine dukeleto: all I had was that url, I didn't have it checked out
02:18 Austin joined
dukeleto cconstantine: yes, i know. i am saying for future reference, when you have 50 checkouts and you want to know where one came from 02:18
cconstantine dukeleto: ah, yes. I'm aware of that command :) 02:19
is there anyway to build a PAST without using globals? 02:23
and compile/run it
japhb "without using globals"?
cconstantine the standard parser generater uses globals for blocks, and as best I can tell the 'make' in the actions modifies a global 02:26
Austin CConstantine: The 'make' builtin is a convenience function only. You don't have to use it in order to generate a past tree. 02:27
japhb: Standard library?
purl Standard library is, like, one of the decent part of Python actually. It's the plethora of useless and relatively sparse addons that pisses me off
japhb Austin, huhwhat?
cconstantine Austin: what does it do?
Austin It links the past node with the grammar node (parse tree). 02:28
You can do the same thing with :node()
cconstantine it only takes one argument... how does it connect two things?
Austin Japhb: The wiki says to ask you about the parrot standard library.
japhb It does? 02:29
purl if you say so...
japhb link?
purl or "Link is ... like ... this pointy eared goblin that walks around in midi-music land with a letter opener attacking circles and things and wooing princesses but not bannon, you know?" or preaction is Error.
02:29 Austin left
japhb OMFG I'm going to go all DOOM on purl one of these days 02:29
02:29 Austin joined
Austin # working on Parrot standard library (talk to japhb) 02:29
japhb Right, but what's the url of the page containing that? 02:30
cconstantine ok, so if I were to build a PAST manually... how would I compile it? run it through the HLLCompiler's 'POST' and 'PIR' methods?
Austin trac.parrot.org/parrot
Cconstantine: yes, exactly.
japhb I'll be darned.
cconstantine Austin: ok, I think the whole parser/generater that comes with parrot isn't exactly what I need. 02:31
japhb Well, it's kinda silly to ask me, since I don't appear to have much influence on it, other than needing what Plumage needs. I was once tasked with figuring out what our base set should be, but not long after that, our library goal changed. 02:32
Austin Cconstantine: To answer an earlier question of yours, the action rules where it is okay to use 'make' are methods of a grammar object. That grammar object is a mechanically-generated subclass of a type called 'Match' or something like that.
japhb So I could probably beg for an addition, but that's about all the influence I have.
Austin The 'match' object knows about substrings (matches) of the input text. The 'make' builtin is essentially calling Match.!make($past_node), so it links the input file with the generated PAST. 02:33
cconstantine Austin: ah, I think I remember something about 'match' objects from before...
japhb removes himself from the page
Austin japhb: :) I was going to suggest that Kakapo is intended to do some of that.
cconstantine: Anyway, the relationship is kind of backwards, since the past nodes include match text, which links to past nodes, which include... 02:34
cconstantine Austin: yeah
Austin But the "model" of P6 grammars is that you always start from the source text, so that's how it is built. 02:35
Anyway, they're not globals, except in the sense that the whole parser is a global object.
Lots of *other* stuff in there is global, though.
cconstantine I'm trying a lisp model... so I need to be able to go from text->lists or code->lists and from lists-> AST 02:36
Austin Hmm.
Are you sure you don't have that backwards?
cconstantine quite possibly, howso?
Austin Are both lists and AST relevant at the same time?
(In my poor understanding, lists are the internal representation, so why would you go from list -> something else?) 02:37
cconstantine when a macro executes it'll return a list (as in a linked list of cons cells)
dalek tracwiki: v119 | japhb++ | WikiStart 02:38
tracwiki: I'm not in charge of the standard library
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
Austin Right?
purl ...
cconstantine I like the idea of just converting a tree of cons cells to a PAST (should be pretty easy), and let parrot compile the PAST
Austin Oh.
Okay.
There's no reason not to do that. 02:39
cconstantine I could be way off, but I don't see any other way of doing macros that execute at compile-time
Austin: are you familiar with lisp?
Austin Not "implement an interpreter" familiar, but I did some emacs hacking a millenium or so ago. 02:40
cconstantine hehe, I'm afraid I'm not either... but I've done some minor hacking with CL and clojure 02:42
the macro system lets you define functions that execute at compile time.
Austin Okay. Sounds a lot like perl. 02:43
cconstantine calling a macro looks exactly like calling a function, but the function executes at compile-time, the arguments are not evaluatable (they are just uncompiled code represented as lists), and the result of the macro is put in place of macro 02:44
am I making sense? 02:47
Austin Yes. 02:48
So a macro definition essentially translates into a call to "eval(...)" 02:49
cconstantine kinda yeah
but the key part is that the result of the macro execution (the return value) is placed back into the AST 02:50
Austin So you need to do "recursive compilation" yes
?
cconstantine yes
and macros can't be expected to return PAST nodes
Austin I'm doing that in Close (for #include processing) and it works fine.
Yeah. 02:51
You need to go further than me.
cconstantine Close?
purl Close is close file (or pipe or socket) handle or bad on sockets, use shutdown() instead or horseshoes or grenades or nuclear weapons or code.google.com/p/close/
Austin I just want the PAST nodes, and I'm done.
It's a C-like language for Parrot.
(And no, it doesn't run right now. I'm wasting time on Kakapo when I should be doing compiler work. :(
cconstantine hehe 02:52
right, these aren't C-style macros, this is arbitrary code 02:53
lisp syntax is so simple I should be ok without the parrot provided parser-generater as long as I can generate my own PAST and compile/run it as needed 02:54
Austin Oh yeah, no problem there.
I routinely do that when I'm trying to demonstrate some problem of another. 02:55
cconstantine and I'd like to still make use of HLLCompiler
Austin I just start fabricating PAST::Nodes and tie them together. Eventually, in that scenario, I replace everything my parser has done with the "faketree()" output and do one final "make $past" in my TOP target so the compiler will accept it. 02:56
cconstantine So, I guess I need to back-up, look at what I need to do to manual parse lisp code, and walk through the various stages
I would really like to avoid 'make' calls like that 02:57
Austin :)
cconstantine 'magic' like globals, implicit arguments, and invisible arguments bother me 02:58
Austin Yeah, but this isn't any of those.
It's just 'self'
cconstantine I guess I don't understand what it does then
Austin My Close grammar has a line like "grammar close::Compiler;" in it. 02:59
Then it has "rule TOP { ... }" 03:00
Well, if you replace "grammar" with "class", and replace "rule" with "method", what do you get?
cconstantine downloading 03:01
purl i think downloading is easy.
Austin The various grammar rules are methods for this generated class that does parsing. And 'make' is an inherited method from the base class 'Match'.
So your "grammar lisp;" becomes "class lisp"
and your "rule s_expression" becomes "method s_expression" 03:02
And in the middle of "method s_expression" you are calling "make", which is just an implicit call to "self.make(...)"
cconstantine ok
so self.make(...) adds '...' to? 03:03
everytime there is a call to make it seems like the Node is done
Austin So "make" is a little bit of syntactic sugar that Pmichaud put in, but it's just a method call.
Make takes the current match object (the "parse tree" node) and adds a link to whatever PAST node you give it. 03:04
cconstantine how does it know what the parse node is?
Austin So calling "make" is like saying "self.current_parse_tree_node.set_past_node($past)" 03:05
cconstantine 'this'?
purl 'this' is the current object, usually
cconstantine wierd
Austin Remember, the parser is a tree-builder object.
Actually, two objects. 03:06
(Grammar + Actions)
cconstantine right
diakopter (aside) ah. in jsmeta the equivalent is this.result = $past 03:07
Austin So Grammar.s_exp calls methods like "match(L_PAREN)" and self.s_exp() (recursive s_exps, right?)
And Grammar.s_exp eventually calls Actions.s_exp when you put a {*} in the grammar.
cconstantine github.com/cconstantine/Reason/tree...r/src/pct/
so, TOP is a sequence of statements, a statement is a '(' TERM ')' 03:08
and so on
Austin okay
So Reason::Grammar::statement 03:09
calls (inherited method) self.match( '(' )
then calls local method self.TERM()
then calls inherited method self.match( ')' ) 03:10
cconstantine ok
Austin Somewhere down the line we get to your "token integer"
TERM -> value -> integer, I'd guess.
cconstantine right
Austin So Reason::Grammar::integer calls \\d+ (however that gets coded), and then sees {*} 03:11
So Reason::Grammar::integer calls Reason::Grammar%C7::Actions::integer 03:12
So Reason::Grammar::integer calls Reason::Grammar 7::Actions ::integer
cconstantine that results in an IntegerNode
Austin (love the color)
cconstantine ?
Austin And Reason::Grammar::Actions::integer is NQP code, not P6Grammar code.
So Actions::integer calls PAST::Val.new to construct a new past node. 03:13
Then it calls 'make'
Secretly, and here you can hate on the implicit parameters
cconstantine that adds the PAST::Val to Actions::integer
Austin Reason::Grammar::integer passed a Match object (the current parse tree node) over to Reason::Grammar::Actions::integer. 03:14
It was $/
So Reason::Grammar::Actions::integer calls 7 make( $past ) 03:15
and 'make' secretly does 7 $/.ast( $past );
settings the .ast attribute of the current match node.
cconstantine so, the cons that uses the term can pull it out from $/.ast() 03:16
Austin And then Reason::Grammar::Actions::integer returns to Reason::Grammar::integer, which does whatever finishing-up and then returns to value, which returns to TERM, etc.
cconstantine wow
ok, so much more than I would put in a parser.. but I've never built a parser so.... 03:17
Austin :)
Yeah, it's expensive as hell
cconstantine so, if I 'knew' some functions were to be called at compile-time
Austin Frankly, the guys doing ANTLR (a Java based recursive-descent parser generator) have spent a long time trying to improve the performance of their parser.
I'm not sure that P6's approach will ever be the super-performant thing that P5 was. 03:18
cconstantine I could generate the 'call' PAST and execute it in the action, 'make $result'
Austin I'm not sure, because the semantics might change, right?
cconstantine well, if the result was a value that'ld be fine
Austin I mean, if you have one macro nested inside another, you can't really do much in advance, can you? 03:19
cconstantine but the result could be something like (let (x-123 (some-func)) (if x 1 0)))
you do the nested macro first 03:20
Austin Right.
cconstantine and that result wouldn't be a string, it'd be a data-structure
Austin But what I'm thinking is that you've really just got a set of function calls.
And some of the functions are "meta"
cconstantine that structure needs to be converted into the equivalant PAST
meta?
purl somebody said meta was so large it's seriously polluting searches or at search.cpan.org/~veltzer/ or metabot, an IRC frontend to Acme::MetaSyntactic
Austin Yeah.
Say I have a function 'foo' and it returns 1. 03:21
That's pretty straightforward.
cconstantine right
Austin But a macro is really a function that calls eval.
Or something.
cconstantine not exactly
Austin Okay. 03:22
cconstantine a macro is a function that's called during compilation
Austin (Whatever "compilation" means. :)
cconstantine the lines blur
the funny lisp syntax turns directly into a tree
Austin Right
But a macro is a lisp function that is called during compilation, right? 03:23
cconstantine and while turing that tree into a PAST (depth first) if I see something that looks like a function call to a function defined as a macro, that function is called, and the return value is put in place of the call to the function
pmichaud I would tend to think of lisp as being more of an interpreter than a compiler.
Austin Yeah, me too.
cconstantine ish
the end result is fully-compiled code
Austin So in order to compile, you have to be "running lisp" to execute the macro.
cconstantine be it x86 or pir, or whatever 03:24
right
pmichaud one could certainly use the Action methods to directly run the code instead of converting to PAST that then runs the code.
i.e., I'm not sure PAST is really needed in an interpreter.
cconstantine the issue is then compiling the return-value of that code
Austin So it sounds like you've got N passes, where N > 1, where you run parts of the tree.
pmichaud no, you just make the return value the result of the thing you just parsed 03:25
(which could be a closure... which I suppose is why you need PAST)
cconstantine but the thing returned needs to be compiled
pmichaud yeah
cconstantine and it won't be text
Austin No
pmichaud that's okay, PAST normally isn't text
Austin It'll be a sub.
pmichaud and there's nothing that requires the thing to be attached to a parse tree to be PAST or text 03:26
anything can be attached as the .ast
Austin So I can do "make 0;"
cconstantine but it needs to be someting POST can interperet
pmichaud ?
Austin Only if you run POST on it.
:)
pmichaud one could certainly compile PAST directly to a Sub
cconstantine right
pmichaud and then just keep the Sub
Austin But in your case, cconstantine, suppose there is no PAST. 03:27
Suppose there's only cons cells and lists.
cconstantine right
pmichaud yeah, that's the way I'd be approaching it 03:28
so the result of every operation is a list
Austin So parsing '1' calls TERM -> value -> integer, which eventually does7 make Lisp::Cons.new(:value(1));
cconstantine pmichaud: exactly
Austin Or whatever the right data structure is.
cconstantine so I'd go from text-> a tree of cons cells, symbols, and values 03:30
Austin Right.
pmichaud exactly
and the program is executed as it is parsed.
cconstantine and I'd zip up that structure into a PAST (things like PAST::Blocks and PAST::Ops) 03:31
pmichaud if you're wanting to have a precompiled form, I guess so.
I'm not quite sure how that would work -- I've only ever dealt with Lisp as an interpreter (and that was 20+ years ago)
cconstantine during zipping if I come across a call to a macro I'll make that call code, execute it and treat the result as if it were the macro 03:32
Austin Or do it immediately.
Since your 'zipping' corresponds to the compile phase.
cconstantine kinda
yeah
it's the first step into compiling 03:33
Austin So how do lisp macros behave?
cconstantine 'or' is frequently a macro
Austin Are they function-like, or text-like (a la the C preprocessor)
cconstantine they work directly on the AST 03:34
so, with 'or'
Austin If they work on the AST, then they have to be balanced, right? So they must be function-like.
(In other words, you can't have a macro defined as ")) x)" 03:35
cconstantine correct
Austin or some other horror that would be trivial in C :-|
cconstantine without any other info it's not possible to tell if you're calling a function or a macro
Austin okay
cconstantine so, (or 1 2) would turn into something like (let (x 1) (if x x 2)) 03:36
the conversion happens at compile time
Austin Macros can call other user-defined functions, right? 03:37
cconstantine the 'or' macro is just some code that returns a list that corresponds to code that implements 'or'
yeah
as long as they've been compiled
Austin And if they haven't been compiled, what happens?
cconstantine function-not-found 03:38
Austin Ah.
As long as they've been defined.
cconstantine right
Austin So in this case, you could "interpret" the lists, or you could zip along and convert them to pir.
cconstantine most freqently macros are more like templates (ie, take these forms and plug it into a template)
in lisp worlds you typically convert text to this tree of cons cells, and 'compile' means go from that tree to executable code 03:40
so What I need to do is go from text to the tree
Austin Right.
But you could stop right there, at the tree, and interpret. 03:41
Or you could compile.
cconstantine then when converting that tree into executable code (or PAST Nodes) if I see a call to a macro I execute the macro and compile the result of the macro instead of the call to the macro
well.. you could interpret C...
Austin Sure. And I've used that product. 03:42
:)
cconstantine so I could use the parser to build the tree of cons cells 03:43
Austin Right.
cconstantine instead of using make $SomePASTNode
I'd do make $someConsCell 03:44
Austin rogjt/
eep
right
cconstantine roger?
purl Roger Roger. What's our vector Victor?
cconstantine and the object type I'd get to the next phase (say I made a phase 'lisp-is-awesome')
would be a.. tree of cons cells? 03:45
Austin Right. Now you have a function that gets passed a $tree. The $tree isn't past, it's cons cells. What you do with that is up to you.
cconstantine so I wouldn't get something funky like a Match object? 03:46
Austin Nope.
Of course, you could if you wanted.
But you don't.
cconstantine correct 03:47
hmmm 03:48
ok
Austin For example, in $_PARROT/compilers/pct/src/PAST/Compiler.pir is the code that gets handed a $tree of PAST nodes.
It compiles them into POST nodes.
03:48 janus joined
cconstantine I've spent some time reading in there ;) 03:48
is'nt that just 'post' ? 03:49
Austin ?
cconstantine the stage 'post'
Austin I think it's 'past'.
But I don't know for sure.
cconstantine the actions are executed in 'past'
Austin Okay.
cconstantine (I put a print in 'compile' that displays the stage to be executed as it loops through them) 03:50
Austin :)
So you call 'past', which has secretly become 'cons'
cconstantine so, a minor problem is that 'past', which calls the actions won't realy be returning a PAST
right
Austin What's in a name, anyway? 03:51
:)
cconstantine everything!
purl i think everything is sorted throughout
Austin Now you have to write the compile-cons stage.
cconstantine cool
that work is unavoidable
Austin (And, of course, the parse-into-cons stage.) 03:52
cconstantine that'll just be a matter of changing the actions from creating PAST nodes to cons cells
Austin Will it?
purl Will it is it being written to use djb's string functions and such?
cconstantine and renaming the stage?
for the most part
Austin Could you simply derive some new Past:: types?
PAST::Cons, PAST::List, etc. 03:53
cconstantine eep
Austin :)
cconstantine these will be the types creted and used during runtime also
that seems pretty heavy
Austin Will they?
cconstantine s/creted/created
Austin Never mind, then.
cconstantine yeah
that old mingling of runtime and compile-time 03:54
functions like 'map' will be available at runtime and compile time
and map returns a list 03:55
(I believe)
cconstantine wishes his local sports-team would score more points and allow the other team to score fewer points. 03:56
Austin Don't we all.
purl I don't!
cconstantine hehe
ok, so I think I finally understand what 'make' in actions does 03:57
and I'm mostly ok with it
I can use it to build my cons tree 03:58
Austin Yep.
cconstantine anyway I can rename the 'past' stage?
Austin You can't actually do $/.ast($const), because it is specifically disallowed.
But that's exactly what make does.
*$const = $cons 03:59
cconstantine odd
$/.ast = $cons
04:00 irc joined
Austin w00t. 04:00
irc w00t.
cconstantine Austin++ 04:01
thanks for the chatty help
AustinClipse Now I can has IRC in eclipse.
cconstantine eep
AustinClipse No problem.
cconstantine is not a fan of eclipse 04:02
AustinClipse :)
cconstantine I have no problem with people liking eclipse
I dun like it
AustinClipse There was some question a while back if it could be set up. Apparently, the answer is yes.
cconstantine oh I"m sure it can
AustinClipse I will say it has taken a long-assed time to get this up and running, though.
cconstantine ecipse has the feel of being the java versino of emacs 04:03
AustinClipse Yep.
Austin jmacs!
cconstantine except, we already have emacs
Austin Yeah, but I think ultimately Stallman has poisoned that well. 04:04
cconstantine a little
Austin You notice that one of the big things about eclipse is that there is a lot of commercial support for it. 04:05
cconstantine the company I work for made a plugin for it
Austin Stallman was always death on anybody making money within 10 feet of an emacs session.
cconstantine yeah...
Austin So presto. Eclipse comes along, and everybody that has been waiting to do cool IDE stuff finally has an outlet. 04:06
cconstantine and they do a lot of hey-presto stuff... it's really easy to do complicated stuff.... but hard as hell to do easy stuff 04:07
Austin Yeah.
cconstantine like, say.. open a file
Austin I don't think it's hard to do that, necessarily. It's just that the sheer volume of stuff coming out has swamped any effort to document the thing.
cconstantine to open a file it needs to be in the project 04:08
well now suddenly I need a project
Austin Even now, there are all these step-by-step tutorials on how to do X, and 90% of them are out of date because the product has sped away.
cconstantine yup
Austin So what's your team? 04:09
cconstantine Colts
Austin Ahh. Eagles here.
Big surprise: Westbrook injured (again). Eagles suck (again).
cconstantine Patriots are showing us what's-what
Austin That *is* surprising.
Does %C7 color %O work? 04:10
Nope.
cconstantine we have a better QB, but they ahve a better everything-else
Austin Yep.
Although the Pats were supposed to be rebuilding this year.
cconstantine yeah....
Austin Apparently you rebuild pretty well when you come from the same place as "This Old House"...
04:11 bacek_at_work joined
cconstantine this'll be our first loss of the season :( 04:11
Austin Do you live in the Indy area? 04:13
cconstantine Purdue
so, within an hour drive
Austin Close enough.
Do you get affected by the blackouts?
Or are you far enough away to miss that? 04:14
cconstantine 'the blackouts'?
oh, TV blackouts
sometimes
purl sometimes I think you're off your rocker.
Austin Most NFL teams black out the games on local TV if they don't sell out.
cconstantine our stadium isn't that big
Austin :)
cconstantine it's awesome... but it sells out pretty regularly
'not that big' for a building larger than our down-town area. 04:15
Austin It's all relative, I guess.
I mean, look at the college stadiums for places like OSU.
cconstantine true 04:16
Austin "Yeah, we've got 112 thousand people here today..."
chromatic That's the whole population though.
Austin Chromatic: Thing is, in the midwest pretty much the entire population shows up for the games.
cconstantine yup 04:17
chromatic 112,000 is most of the population of Eugene, Oregon -- home of U of O. That's the second largest city in Oregon.
Austin Last year I was in Des Moines during the Iowa / Iowa State game. The town was empty of everybody except me and a really unhappy cop.
cconstantine small-midwest college towns frequently host more fans than their small-midwest-town has residents.
Austin Large-midwest-college-towns, too. :) 04:18
cconstantine Eugene is hardly midwest :P
chromatic Midwest Oregon.
Austin Still FOC to me.
cconstantine oh dear
cconstantine isn't sure when he moved to Oregon
Austin Unless that's where the customer is. 04:19
Hey, chromatic: (re: TT#1273 Provide a parrot 'backtrace' with assertion failures) 04:21
Does it make sense to turn assert failures into super-fatal exceptions?
severity=doomed, or whatever it's called. 04:22
chromatic Sometimes, yes. 04:23
cconstantine Austin: Some good reading on macros if you're interested: gigamonkeys.com/book/macros-standar...ructs.html
Austin Unfortunately, the word macro describes a lot of things in computing to which Common Lisp's macros bear only a vague and metaphorical similarity. 04:24
:)
cconstantine I believe CL was there first
:P
the entire book is good: gigamonkeys.com/book 04:25
Austin chromatic: The implications are that there are times when it doesn't. The obvious case to me is "Parrot is so borked that throwing an exception has no meaning," but did you have something else in mind? 04:26
chromatic I'm thinking of voluminous backtraces and wondering how useful they are.
More information is better than less, though. 04:28
cconstantine I'm a fan of 'enough' information.
Austin Yeah. I don't think the information has any value at all, unless you're trying to come up with a "steps to reproduce" scenario. Then it's really, really valuable.
chromatic We expect those cases to be exceptional anyway. 04:29
Austin :)
brb. Don't say anything important.
04:30 Austin left, Austin joined
Austin Ahh. 04:30
cconstantine chromatic: yeah, I agree we should definitely change that 04:31
you know, that thing you said when austin was gone 04:32
Austin :)
You know, Cconstantine, the more I think about it, the more I think it's important that you do everything in PAST...
cconstantine oh no.... 04:33
oh wow... Patriots may have blown it 04:34
w0000000t 04:39
Austin Touchdown!
cconstantine you watching it?
Austin ESPN.
(.com)
cconstantine ah
we can still blow it... but man I'd given up on us winning 04:40
Austin I noticed.
Do you guys play the dolphins this year?
cconstantine no idea
the wife is much more into football than I am
Austin If you're going to go undefeated, it's polite to give the fins a chance to beat you... :) 04:41
cconstantine well yea
04:42 Austin joined
Austin Can do != should do. 04:42
Eclipse IRC client is pretty minimal.
cconstantine hehe
I hear IRC in emacs is pretty good
Austin :) 04:43
cconstantine ok, it's late, I have to get early and still do some chores
thanks again for the help austin
Austin No problems.
04:59 Zak joined
dalek parrot: 769b547 | dukeleto++ | IDEAS:
Add ideas about pgTAP
06:26
parrot: b2b08bd | dukeleto++ | (2 files):
Add a license and update .gitignore
06:29 mokurai left
dukeleto should imcc tests be left in perl? 06:44
i am conflicted
chromatic What's the drawback?
purl i guess the drawback is that the syntax is messy.
06:46 uniejo joined
dukeleto chromatic: do we have a conflict of interest? imcc would be testing itself then, right? 06:46
chromatic: if we used PIR
chromatic: i am looking at trac.parrot.org/parrot/ticket/1118 and trying to decide what to do with the patch 06:47
chromatic: it could use more tests, and I want to know if they should be in PIR or Perl 06:48
cotto dukeleto, +1 to more PIR tests. 07:02
I don't there are any blockers that prevent pir tests from executing pir tests similarly to pir_output_is() et al apart from a smop. 07:03
With that, testing __END__ in several different ways from a pure-pir test becomes possible. 07:05
cotto sleeps 07:10
chromatic If we get more tests, I'm not picky. 07:13
However, we might have better diagnostics if we had something less complex than Test::More behind them.
07:16 mokurai joined 07:31 Zak joined 07:34 davidfetter joined 07:53 iblechbot joined 08:11 barney joined 08:42 fperrad joined
dalek TT #1275 created by mikehh++: failure with eq_num op in t/op/comp.t with g++ 4.4.1 --optimized build 09:03
09:19 gaz joined
mikehh All tests PASS (pre/post-config, smoke (#29934), fulltest) at r42529 - Ubuntu 9.10 i386 (gcc with --optimize) 10:24
All tests PASS (pre/post-config, smoke (#29935), fulltest) at r42529 - Ubuntu 9.10 i386 (g++ no --optimize)
All tests PASS (pre/post-config, smoke (#29936), fulltest) at r42529 - Ubuntu 9.10 i386 (gcc no --optimize)
t/op/comp.t - Failed test: 17 - smoke (#29946) at r42529 - also fails fulltest in all cores - Ubuntu 9.10 i386 (g++ with --optimize)
see TT #1275 - all other tests PASS (pre/post-config, smoke, fulltest)
in all 4 of the above test runs - in testr - t/pmc/eval.t - TODO passed: 12 - see TT #1142
10:42 iblechbot joined 11:04 payload joined 11:38 plobsing joined
mikehh going to re-boot to amd64 - bbl 12:04
12:06 cconstantine joined 12:22 bacek joined 12:40 mikehh joined 13:04 whiteknight joined
whiteknight good morning #parrot 13:06
plobsing morning whiteknight 13:08
2 things:
1 how can I get the recent fixes in trunk into the libjit_framebuilder branch? 13:09
2 what is the appropriate place to write down my ideas about lorito (RFC ticket, existing wiki page, new wiki page, etc)?
whiteknight 1) you can svn merge trunk into branch, though that can be dangerous 13:14
because when you go back to merge branch->trunk, there can be conflicts
2) Wiki probably. Let me look for a page
plobsing I ask about merging because bacek++ made some changes that fix --optimize in various ways. 13:15
and those failures, related to libjit or not, likely block the merge to trunk 13:16
whiteknight what I might suggest is that you cherrypick only those commits to add to the branch 13:17
plobsing ok, will do
whiteknight is the branch ready to merge otherwise?
dalek tracwiki: v120 | whiteknight++ | WikiStart
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
whiteknight Or, are there any more changes to make to the branch besides these fixes from trunk?
plobsing AFAICT. 13:18
whiteknight (use this page) trac.parrot.org/parrot/wiki/Lorito
plobsing it passes all on x86, x64 linux. --optimize fails on mac.
no testing on windows yet
oops, that should have been "AFAICT, no." 13:20
I have to run, I'll fill that Lorito page sometime within the next 24 hours. 13:26
thanks for the advice whiteknight++
whiteknight no problem. Talk to you later
13:26 payload joined 13:47 payload joined 14:10 particle joined 14:12 mikehh joined 14:14 Coke joined
Coke yawns 14:15
14:18 payload joined
Coke trac? 14:50
purl rumour has it trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow
Coke trac =~ s/REALLY/REALLLLLLLLLLLLLLLLLLLLLY/
who is doing the release for 1.8? 14:51
moderator Parrot 1.7.0 "African Grey" is out! | Latest 14:51
moderator Parrot 1.7.0 "African Grey" is out! | Latest modified TT's: icanhaz.com/parrotbugs 14:52
mikehh All tests PASS (pre/post-config, smoke (#29959), fulltest) at r42529 - Ubuntu 9.10 amd64 (g++ with --optimize) 14:57
Coke: barney
Coke seen barney? 15:02
purl barney was last seen on #parrot 4 days, 3 hours, 11 minutes and 52 seconds ago, saying: bacek: tnx, I've updated NEWS [Nov 12 11:50:12 2009]
mikehh All tests PASS (pre/post-config, smoke (#29961), fulltest) at r42529 - Ubuntu 9.10 amd64 (gcc with --optimize) 15:04
Coke: that's bs - he was here yesterday 15:05
anyway bbiab 15:07
15:07 PacoLinux joined 15:08 bubaflub joined 15:12 mikehh_ joined
particle could have been bernhard or barney_ or something 15:12
15:14 Psyche^ joined
Austin seen barneyr 15:16
purl I haven't seen 'barneyr', Austin
15:29 mikehh__ joined 15:39 payload joined 15:41 mikehh joined 15:43 theory joined 15:45 patspam joined
barney mikehh: Could you provide a patch for PLATFORMS? 15:56
Coke seen barney? 16:09
purl barney was last seen on #parrot 13 minutes and 10 seconds ago, saying: mikehh: Could you provide a patch for PLATFORMS?
Coke there we go. =-)
barney: what time tomorrow are you aiming for? 16:10
16:14 uniejo joined
whiteknight it's hard to really pinpoint a time 16:16
since it's hard to estimate how long the release will take
barney: did you get access to the osu ftp server?
barney Yep, that worked 16:18
16:18 iblechbot joined, mikehh joined, cognominal joined
barney Coke: I'll start in the European morning 9:00 UTC 16:18
Don't know yet, how busy I'll be with $DAYJOB 16:19
mikehh barney: looking into it 16:20
whiteknight I'll see if I can get some Win32/Strawberry testing today 16:22
barney mikehh++; tnx
whiteknight maybe I'll have a few moments to test MSVC++ too 16:23
barney whiteknight++
16:24 mikehh joined 16:28 preflex joined 16:29 mikehh joined
Coke barney: ok. I have a small announcement I was thinking of asking you to bundle with the release, but I'll probably just do it separately. thanks. 16:30
barney Coke: I could hold in till 18:00 UTC 16:33
barney got to run. Attending a talk about Conflict resolution in IT
whiteknight t/op/number.t:131 is still failing on w 16:34
Win32-gc-3.4.5 16:35
Coke msg barney no worries, not that important.
purl Message for barney stored.
whiteknight gcc*
moritz
.oO( git-rerere ftw )
16:36 Casan joined
dalek p-rx: 2212d9b | pmichaud++ | src/Regex/Cursor-protoregex-peek.pir:
Fix bug with calculating subrule prefixes.
16:43
p-rx: 2046e24 | pmichaud++ | src/stage0/ (4 files):
Update bootstraps with bugfix.
Coke pmichaud: ping 16:48
bubaflub whiteknight: that seems like a random place for it to fail 16:49
pmichaud Coke: pong
Coke pmichaud: added you as a collaborator on partcl/partcl
pmichaud Coke: gracias
Coke: I actually expect I'll have some time to work on it tomorrow :) 16:50
Coke excellent. I will be mostly unavailable during the day for hacking, but available for questions, etc. I can devote some time in the pm.
pmichaud at least to see how far I can get on it :)
Coke feel free to make a branch on git, obviously.
dalek rrot: r42530 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (4 files):
[nqp]: Update nqp with latest subrule prefix bugfix.
16:51
Coke -> for a bit. 16:52
whiteknight what is ar? 17:00
purl ar is ActiveRecord, a ruby ORM. or ar.rubyonrails.org/
diakopter purl, ar is also a gnu archive tool 17:01
purl okay, diakopter.
whiteknight okay, so why is Parrot calling ar.exe when I am building with MSVC? 17:02
and what do I replace it with?
17:03 rob joined 17:04 darbelo joined 17:08 payload joined
whiteknight building here is turning out to be very hard since I have strawberry installed also and the build process keeps wanting to use those utilities 17:08
Util_ whiteknight: edit the path in your open command prompt session, and remove c:\\strawberry 17:11
whiteknight Util: already did tht 17:12
I'm building now with the clean path
17:13 mikehh joined 17:15 davidfetter joined
whiteknight of note, msvc is taking >5minutes to compile core_ops_switch.c each tim 17:15
so that's obnoxious
probably spending a lot of cycles producing a jumtable for a ~1300 item switch statement 17:16
mikehh I have tested parrot (up to r42529) with Ubuntu 9.10 i386 and Ubuntu 9.04 and 9.10 amd64 with both g++/gcc both with and without --optimize
the only problems I have come up with are TT #1142 and TT #'1275 17:17
whiteknight urg. I got a "command line too long" error from nmake 17:27
how shitty is that? 17:28
and it's still trying to call ar.exe, even with strawberry not in the path
dalek lscript: 1e32a62 | fperrad++ | (21 files):
rewrite tests in PIR (from Perl)
17:34
TT #1276 created by whiteknight++: Parrot does't build on Win32 with MSVC 17:36
rrot: r42531 | mikehh++ | trunk/PLATFORMS:
update PLATFORMS to include g++ 4.4.1 for linux x86 and amd64
17:37
lscript: 884ba48 | fperrad++ | t/libstring.t:
this test contains a trailing space (test_squeeze)
17:40
rrot: r42532 | whiteknight++ | trunk/PLATFORMS:
[PLATFORMS] updated the state of parrot on Win32. The state is not good.
17:43
Util_ whiteknight: my MSVC+ActivePerl just finished building with no problems. Might you need `make realclean`? 17:44
whiteknight Util: What was the Config command you used? 17:45
I tried "perl configure.pl --cc=cl --link=link --ld=cl --make=nmake, and ran into those issues I mentioned 17:46
Util_ `perl Configure.pl` - nothing else. Building with `nmake`
whiteknight doesn't work with strawberry. Configure fails looking for gcc 17:47
Util: out of curiosity, can you open your generated make file and tell me what $(AR_CL) is defined to?
17:47 desertm4x joined 17:49 cotto_work joined
Util_ AR_CR is "lib". There is no "AR_CL". In file "config_lib.pasm", which is where Makefile generation draws from, "ar"="lib", "ar_extra"="", "ar_flags"="", "ar_out"="-out:" 17:50
whiteknight okay, awesome. let me try that 17:52
NotFound I'm starting to wonder... Didn't we have any developer that uses msvc? If not, just stop supporting it. 17:54
whiteknight I think particle has been on it 17:55
Coke s/has/had/
not for some time.
whiteknight I can do irregular testing there at best 17:56
and if I have to do all sorts of manual makefile hacking just to make it build, I won't bother
Util_ I think MSVC is an important platform for Parrot. No special hacking is needed to using it with ActivePerl, and I have added MSVC+StrawberryPerl to my (long) tasklist, to make sure this goes smoothly in the future. 17:58
dalek lscript: 82abff3 | fperrad++ | t/pragmas.t:
use simplified regex with like().
lscript: 475d066 | fperrad++ | t/l (2 files):
git mv t/lang.t t/liblang.t
NotFound Util_: I think s just a tool, not a platform.
whiteknight it is an impornt platform, but if it doesn't build and if we don't have anybody using it, we can't "support" it
particle what doesn't build?
cotto_work Util_, yes. If I knew how to get msvc+strawberry working, I'd be glad to do regular testing on it.
particle msvc+strawberry? why on earth would you try that? would you try to build parrot with icc when the perl you're using is built with gcc? 17:59
Util_ NotFound: In the strictest sense, yes, Win32 is the platform, and MSVC is the tool. 18:00
particle: good point. I did not think to ask whiteknight why he was attempting it.
particle blech, lots of ugly warnings building parrot 18:03
CUR_CTX : local variable is initialized but not referenced
in *.ops
Util_ particle: yes, no one has done cage work on the MSVC warnings in a long time. 18:04
18:05 payload joined
cotto_work particle, or msvc+whatever. Strawberry would be nice because that's what I have installed on my main windows box, but it'd be fine if I could make the msvc build avoid Strawberry (or set up a vpc or ...) 18:07
particle your strawberry perl env should use gcc to compile parrot
cotto_work right
particle msvc+activestate perl works fine 18:08
cotto_work I can do a ming-gcc build just fine with strawberry
How do I keep them from stepping on each other's toes?
Coke (works fine) good.
particle: can you update PLATFORMS?
Util_ My MSVC+ActivePerl `nmake test` passed all but t/op/number.t #131 - "not ok 131 - neg 0.0\\n# Have: 0\\n# Want: -0\\n"
particle i'm >< to done building parrot now
then i'll run nmake test
Util_: what version of msvc? 18:09
there was a -0 bug in msvc 7
dalek lscript: da79879 | fperrad++ | plumage/wmlscript.json:
add plumage/wmlscript.json
nopaste "coke" at 72.228.52.192 pasted "new warnings." (10 lines) at nopaste.snit.ch/18715 18:11
Util_ particle: Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.00.9466 for 80x86
Is that the same as MSVC 7 ?
nopaste "coke" at 72.228.52.192 pasted "also wik:" (5 lines) at nopaste.snit.ch/18716
particle might be... i have to check
i have 15, which is 2005 iirc
so i think 14 would be 2003, and 13 would be 7 18:12
cotto_work: i have separate scripts run for each build environment 18:16
Util_ particle: so, we need a TODO triggered on OS, *and* on compiler version. Since I have the buggy platform, I will look into that.
particle Util_: yes, correct
Util_ cotto_work: manually edit the path before running Configure.pl
particle i think there used to be an rt ticket on that issue
i thought there used to be a #ifdef in spfrender, too 18:18
Util_ particle: I think that test 131 may have been un-TODOed during the "ack! win32 FAILs" flurry in the 1.7 release, since the TODO was succeeding on other Win32 systems.
particle ah, definitely possible 18:19
t/op/arithmetics TODO passed: 21, 24
t/op/io TODO passed: 4
dalek nxed: r174 | julian.notfound++ | trunk/winxed.cpp:
naive implementation of the '%' operator
18:20
particle gets all tests successful on x86-msvc-asperl
Util_ Hmmm. number.t was converted to PIR 3 days ago. How do we TODO in pure PIR tests? 18:21
nm; I see how now. 18:23
18:32 patspam1 joined
dalek lscript: 2b179b4 | fperrad++ | t/pragmas.t:
better regex
18:33
Coke kid51++ 18:34
Util_ particle, in your MSVC-15 run, what value does config_lib.pasm set for P0["has_negative_zero"] ?
Coke particle: your %-age of owned RTs is now 16%
(as is mine.)
particle set P0["has_negative_zero"], "1" 18:35
Util_ particle: Aha! Mine is "0". I will TODO based on "has_negative_zero".
Coke Util_: aka ./parrot_config has_negative_zero 18:36
particle Util_++
Util_ Coke: true
particle boots up a parrot win32 x64 vm that hasn't been run since svn.perl.org/parrot existed
Util cue haunted house creaky door sound effects 18:37
18:46 chromatic joined
Coke chromatic: hio 18:47
chromatic good $localtime
Coke chromatic: any chance you can close/transfer/stab the few RT tickets assigned to you?
chromatic I can do that. 18:48
Coke danke.
46761, 39856, 57236
cotto, ping
cotto: you have 56718, 36407 18:49
cotto_work Coke, same for me?
Coke whiteknight: you have 45959, 46155, 46403, 46675
whiteknight for what? 18:50
Coke RTs.
whiteknight ah yes, I took a few of those that I wanted not to forget
and here I am forgetting them
Coke =-)
chromatic: if you want to poke at allisons, that might also be a good idea.
"allison's"
chromatic I prefer poking at giant eyeballs: www.sluggy.com/comics/archives/daily/20000223 18:51
18:51 joeri joined
Coke chromatic: heh. 18:51
cotto_work chromatic, can you give a +1 or -1 to rejecting rt.perl.org/rt3/Ticket/Display.html?id=36407 ? 18:52
chromatic +1 to reject; let's fix it in pirc. 18:54
cotto_work great
chromatic Coke, let's migrate RT #39856 to Trac. 18:58
19:03 xenoterracide joined
Coke cotto_work: I hesitate to reject things that say "fix in pirc instead of imcc" because in the meantime they're still broken. 19:04
(can you open a trac to make sure that issue is fixed in pirc? =-) 19:05
chromatic: (migrate) sure. 19:06
19:06 desertm4x joined
Coke parrotbug needs to be redone again. 19:09
dalek rrot: r42533 | Util++ | trunk/t/op/number.t:
TT#313 - TODOed t/op/number.t test #131 (neg 0.0) on platforms that cannot print -0.0
Coke chromatic: you preferred [TR]T #\\d+ , yes? 19:11
(there's several in the codebase without the ' ') 19:13
chromatic Yes. 19:15
Coke k. fixing.
19:16 desertm4x_ joined
cotto_work Coke, I'm going to ask about deprecating Array at #ps tomorrow. it doesn't have a lot going for it. 19:18
whiteknight cotto_work: awesome. I've wanted to deprecate Array for a long time now 19:24
At the very least it's redundant
Using ResizablePMCArray is preferred in almost all cases I have seen and most documentation/examples
Coke only thing I would be concerned about is inheritance. 19:26
dalek rrot: r42534 | coke++ | trunk (46 files):
Prefer "RT #NNN" or "TT #NNN"
Coke (you could make it abstract) 19:29
19:32 jan joined 19:35 bubaflub left
cotto_work Coke, nothing inherits from it. 19:35
Some functions return an Array, but that's it. 19:36
Coke cotto_work: k. 19:37
whiteknight the decodetime and decodelocaltime opcodes, for instance, return an Array 19:42
19:44 bubaflub joined
cotto_work there are a few uses of it, but I doubt that switching them away even constitutes an API break. 19:45
Coke my one concern about that (having already said it wasn't a problem on whiteknight's ticket) is the hll mapping of the Array type. 19:49
whiteknight It's definitely an API break, and we want a proper deprecation notice for it 19:50
Coke if those usages of Array don't respect hll mapping now, they should (of whatever the type you end up picking is.) if they /do/ respect it, that might be a break.
whiteknight: no, it's not definitely a break.
whiteknight any user code that says "new ['Array']" will break. PIR syntax is a publicly-visible API
Coke oh, that.
yes, removing Array is a break.
changing the return type of decodetime is not. 19:51
whiteknight I would even disagree with that, but I don't think it's important
19:54 mikehh joined
Coke mikehh++ #testing 20:34
20:35 bacek joined
Coke ponders a podcritic 20:41
er... pircritic.
Coke supposes it would be slightly less crazy to abuse a pct version of pir to output itself nicely formatted. 20:42
(ISTR I already started this once in perl and gave up) 20:43
if I want to upgrade perl 5.10.0 to 5.10.X, is there a way to do it in place? (I don't want to have to reinstall all the CPAN modules that I've done for 5.10.0) 20:47
(or is "install to the same dir and take my chances" the best bet?) 20:48
dalek trixy: 8f9b525 | Whiteknight++ | (2 files):
fix zeros.pir. zeros.t tests pass
20:49
trixy: d6ba95e | Whiteknight++ | src/builtins/eye.pir:
fix eye() so all it's tests pass
trixy: 2697ae6 | Whiteknight++ | src/builtins/ones.pir:
fix ones() and related tests
trixy: 8bdbb6a | Whiteknight++ | (3 files):
transpose() was just transposing the input argument in place. Fix that, and add a test to prevent it from happening again
trixy: 954f0e7 | Whiteknight++ | src/builtins/arrayfun.pir:
some fixes to arrayfun. It operates correctly for one matrix but does not operate correctly for multiple matrices
trixy: 87fea1c | Whiteknight++ | src/ (2 files):
fix arrayfun so that it properly works for N matrices
trixy: e7e880d | Whiteknight++ | src/builtins/floor.pir:
fix the floor() function
trixy: 1d2a274 | Whiteknight++ | src/builtins/ (3 files):
fix floor, ceil, round and associated tests
trixy: be2be80 | Whiteknight++ | t/800-loadlibrary-examples.t:
remove the loadlibrary-examples test, it relied on stuff we no longer have (or want)
trixy: e5ddc56 | Whiteknight++ | :
merge the pla_integration branch into master
whiteknight ...I did not expect that to happen 20:51
apparently I need to find a more graceful way to merge branches without flooding dalek
darbelo whiteknight: Maybe if you rebased your local copy. 20:52
chromatic --squash
darbelo Oh. Right. What chromatic said.
whiteknight I don't know what rebasing is, really.
chromatic Coke, you should be able to upgrade in place; they're binary compatible so that you can use the same directories.
whiteknight --squash is probably what I want
Coke chromatic: so, just use CPAN, neh?
Coke will give it a shot. 20:53
GeJ Good morning everyone 20:55
dalek rrot: r42535 | whiteknight++ | trunk/PLATFORMS:
[PLATFORMS] Update platforms. Subsequent testing shows that it does build on win32-msvc-9.0. My earlier failures were based on windows dll hell nonsense.
20:57 mikehh joined
Coke chromatic: cpan> install /path/to/5.10.1 sure seems to like chewing up a cpu. 20:58
chromatic I read that as "chewing up a cow" and thought "Omnivore much?" 20:59
dalek rrot-plumage: 97f4606 | japhb++ | :
[METADATA] New wmlscript.json, courtesy of fperrad++
Coke is quite omni. 21:00
whiteknight GEJ++ 21:07
GeJ++
cotto_work karma GEJ
purl gej has karma of 40
cotto_work karma geJ
purl gej has karma of 40
whiteknight oh, is purl caps-insenstive? 21:08
(how un-unixy)
cotto_work purl is insensitive to most things
dalek rrot: r42536 | whiteknight++ | trunk/t/op/time.t:
[t] fix a typo in time.t. GeJ++
whiteknight disappears 21:09
cotto_work pouf
Coke annoying that doing the install doesn't use answers from the perl you're using to run cpan. 21:14
darbelo materializes. 21:26
21:26 mokurai joined
dalek TT #1277 created by geraud++: [PATCH] cleanup nqp-rx leftovers on `make realclean` 21:28
GeJ while I'm there, anyone willing to review the second patch for TT #1095 ? 21:30
darbelo GeJ: I'll give it a look. 21:32
GeJ darbelo: thanks.
Coke "Your patch is very important to us. Please hold."
dalek rrot-plumage: b5099e6 | japhb++ | :
[TESTS] t/sanity.t: reorganize tests
darbelo patch2_t_io.t right? 21:33
GeJ darbelo: yup
the previous one was reverted by Util because of some failure on Win32. So instead of adding a new line to add FreeBSD as a passing platform. I reverted the logic of the test to list only the failing platforms (ie. Win32 as Util reported it breaking). 21:35
darbelo Looks sane to me.
NotFound +1 21:36
purl 1
dalek nxed: r175 | julian.notfound++ | trunk/examples/parser.winxed:
tiny refactor of example parser classes
darbelo Let's commit and see what else breaks ;)
NotFound Why it has been closed and reopened? A mistake, or something changed?
Coke it was closed, and then someone reverted it accidentally. 21:37
er, applied, then closed, then reverted accidentally, then reopened, then re-patched. =-)
GeJ yep, as Coke said. 21:38
Coke GeJ++
GeJ I whined on IRC to have it reopened since I couldn't do it myself. Coke did it so I could finally shut up. 21:39
Coke chromatic: aside from the annoyance that I apparently don't have a sites file for saving my settings, that was pretty painless.
21:42 bacek joined
darbelo GeJ: committed, but dalek is decidedly not being speedy about it. 21:43
dalek rrot: r42537 | darbelo++ | trunk/t/op/io.t:
Change tests in t/op/io.t to always run, except on platforms which are known to fail.
21:44
purl dalek: that doesn't look right
GeJ darbelo: thank you.
Coke any chance we can get some more segfaults fixed before the release? =-) 21:45
darbelo Coke: Do you have a list somewhere easy to find? 21:46
Coke darbelo: search for "segfault" ? I can point you at the ones that are blocking me last I checked:
966 and 1131 21:47
purl 2097
Coke darbelo: hey, code.google.com/p/partcl/issues/det...%20Summary is assigned to you.
darbelo Ouch. I had forgotten about that. 21:48
dalek rrot-plumage: 56a1a6a | japhb++ | :
[CORE] Another Win32 fix
21:49
fperrad ping japhb 21:51
purl I can't find japhb in the DNS.
japhb fperrad, I'm here.
darbelo Coke: I'll give installation a shot this week.
fperrad japhb, 21:52
C:\\fperrad\\Parrot\\parrot-plumage>make test
\\Parrot-1.7.0-devel\\bin\\parrot-nqp t\\harness t\\\\*.t
t\\01-sanity.t ...passed 5 tests
t\\02-glue.t ...passed 17 tests
t\\03-util.t ...passed 26 tests
t\\sanity.t ...passed 18 tests
PASSED 66 tests in 4 files
japhb w00t!
Coke darbelo: in addition to just copying files around, I'm sure the runtime will have some issues that I'd be happy to consult on.
japhb Well, as I said in the email, plumage is still woefully undertested, so there's a lot that can still be wrong. But I call this a milestone. :-) 21:53
darbelo Coke: If I'm remembering correctly, there was some path stuff to fix, and not much else.
Coke right, that's probably the worst of it.
any place where I track the build dir is suspect.
darbelo I started to work on this before the move to github, but got sidetracked and then forgot about it. I *think* I had a list of suspect places, but I can't find it now. 21:54
japhb dukeleto, Plumage is up to 100% passing tests on Win32 -- time to write more tests! ;-) 21:55
fperrad++ # tireless testing
fperrad japhb, plumage doesn't work 21:57
C:\\fperrad\\Parrot\\parrot-plumage>plumage install mt19937
Fetching mt19937 ...
git clone git://github.com/fperrad/parrot-MT19937.git mt19937
###
### FAILED!
###
Coke darbelo: for penance, you can also take issue # 85. =-)
japhb Um. That's rather ... sudden.
Coke could it have something to do with you being a committer, fperrad? 21:58
japhb I figured it would be broken still (like I said, undertested), but that's rather faster fail than I expected.
Coke (do you already have that checked out somewhere?)
oh, fperrad:
I think we might have to leave a copy of that library in parrot until post-2.0 due to support policy. Would you agree? 21:59
darbelo Coke: I don't seem to be able to 'take ownership' of that ticket. Can you assign it to me?
Coke SRSLY?
purl I'm totally serial
Coke done. =-) 22:00
(hell, take as many as you want. =-)
fperrad Coke, ok, revert the commit which removes mt19937
japhb fperrad, Did plumage actually succeed at the fetch? Is there a HOME/.parrot/plumage/build, and does it contain an mt19937 subdir?
Coke fperrad: roger. 22:01
darbelo Coke: I don't see any 'steal this ticket' button in the UI. Maybe it's a permisssions thing.
Coke darbelo: You might have to edit the ticket/update the owner field manually.
(that's what I just did)
darbelo Coke: I can comment on tickets, but not edit them. I checked that too. 22:03
fperrad japhb, no, I've only an empty subdir .parrot\\plumage\\build
Coke checking perms...
arbelo - you have the EditIssue priv. 22:05
/also darbelo =)
japhb fperrad, Well, at least that got created, that's better than nothing
I wonder if it was a chdir() problem .... 22:06
Coke darbelo: so, no clue; in the meantime, feel free to comment on the tickets to force me to update them, if that works. 22:10
darbelo Coke: Nevermind. PEBCAK on my side. 22:11
I can edit tickets.
japhb fperrad, ping 22:16
fperrad japhb pong
japhb fperrad, please add 'say($cwd);' after line 641 of plumage.nqp, rebuild, and retry. I want to make sure the various directory movements are working for you. 22:17
Debugging by remote print statements, whee!
.oO( I knew I should have thrown more cycles at testing the core plumage libs this weekend ... )
22:19
dalek nxed: r176 | julian.notfound++ | trunk/examples/parser.winxed:
first step towards expression parsing in example parser
22:20
fperrad japhb, looks good, say : 22:21
D:\\Documents and Settings\\fperrad\\.parrot\\plumage\\build
japhb Hum.
fperrad, OK, next thought: try manually cd'ing to that directory, and copy and paste the git clone command it showed, and see what happens. (I'm thinking perhaps a goofy permissions error or something) 22:23
22:24 dcolish joined 22:25 bacek joined
fperrad japhb, manually ok 22:28
but I work with
C:\\fperrad\\Parrot\\parrot-plumage>which git
C:\\Program Files\\Git\\cmd\\git.CMD
I don't known how 'spawnw' handles .CMD
japhb oh, ah. Hmmm, interesting.
fperrad, looks like it's (at least) me being stupid. 22:30
trying to fix.
fperrad japhb, use find_program() from Util.nqp 22:32
japhb fperrad, see this push. ;-) 22:34
dalek TT #1095 closed by darbelo++: [PATCH] un-TODO unconditionally some tests in t/op/io.t 22:38
rrot-plumage: 6729156 | japhb++ | :
[plumage] Actually use BIN hash, duh.
japhb What is dalek's refresh interval set to? 22:39
nopaste "fperrad" at 77.200.211.132 pasted "japhb, another step" (21 lines) at nopaste.snit.ch/18717
darbelo Varies from feed to feed I think. But the default seems to be 'too damm long' 22:40
;)
japhb darbelo, nodnod
fperrad, because of mixed / and \\ maybe?
fperrad, what is the output for you of 'parrot_config bindir' ? 22:42
fperrad japhb, no, in fact, my HOMEDIR is D: & my parrot is in C: 22:43
japhb oh, arg. 22:44
and parrot_config bindir does not in fact contain the drive?
fperrad japhb, yes, so I must work in the same drive 22:45
darbelo wonders why couldn't MS just freaking use unix for their OS.
japhb darbelo, They did that, a long time ago. It was called 'Xenix'. 22:46
fperrad, That seems like a parrot bug then ... 22:47
darbelo japhb: I know about that, It just makes me wonder all that harder.
japhb darbelo, :-) 22:48
darbelo I'm still hoping the pull an 'apple' and ship Windows X on top of a unix foundation.
fperrad japhb, no, I configure Parrot with --prefix=/Parrot-1.7.0-devel 22:49
chromatic Hopefully they'll pull one better than Apple and ship a Unix from at least the late 90s.
japhb fperrad, why not include the drive in your prefix? 22:50
fperrad japhb, that allows to install in any drive 22:51
japhb fperrad, but ... how am I supposed to find it when I want to run it? 22:53
fperrad japhb, the setup.exe which install Parrot, modify the PATH 22:55
japhb fperrad, another push incoming ... this at least makes all binaries go via %BIN 22:56
OK, so path is modified ... but what if you install multiple versions of Parrot on the system? 22:57
I should be able to use 'bindir' to find the *particular* parrot that invoked plumage.
Come to think of it, that information ought to be frozen into the plumage fakecutable somehow, neh? 22:58
23:00 mikehh joined
he_ Hmm, I admit I don't know pir, but how is "mod $N2, 10, $N0" supposed to leave something in $N1? 23:00
dalek rrot-plumage: ec77f9f | japhb++ | :
[plumage] Use %BIN more aggressively
he_ This is test_mod_n_nc_n_by_zero from t/op/number.t which failed on one of my platforms after a recent svn update. 23:01
23:01 ascent joined
he_ The test doesn't otherwise set $N1, but tests for its contents. 23:02
chromatic That sounds like a test error, _he.
I mean he_.
japhb he_ ... looks like the test right above the one you quoted is wrong also. 23:03
chromatic They should both check $N2, not $N1. 23:04
japhb fperrad, still thinking or did I lose you?
fperrad japhb, works with the same Parrot is mandatory when you load library or dynext
but when you spawnw 'parrot', you could use another one, so you could spawnw parrot in the PATH 23:05
japhb Why would you want to do that for an application like plumage
?
Especially since the next problem you're going to stumble over is trying to install into the bindir ... 23:06
dcolish does anyone know of a current effort to port haskell to parrot? 23:07
cotto_work dcolish, there aren't any I've heard of
japhb We can't allow something like 'setup.pir' to be accidently run by a parrot other than the one that you want to be installing into, it will get the wrong config info.
nopaste "chromatic" at 72.87.39.97 pasted "Fix mod tests (japhb, he_)" (20 lines) at nopaste.snit.ch/18718 23:08
japhb chromatic, looks good to me.
fperrad japhb, you are right, I forget the goal of Plumage 23:09
japhb fperrad, OK, now that that's settled. How do we fix it? I can understand your goal of being able to install to any drive, so now the question is how to achieve that and still allow plumage to get the fully qualified path to the correct parrot ... 23:10
chromatic I had to switch the expected value of the second test. 23:11
japhb chromatic, yeah, noticed that.
23:11 payload joined
dcolish cotto_work: cool, i thought so. i want to make sure i'm not starting from scratch for nothing 23:13
he_ chromatic: with that it passes here as well -- thanks! 23:16
23:17 cconstantine joined
cotto_work dcolish, are you at all familiar with Rakudo? Its source is a great place to steal stuff from. 23:21
dcolish only by name 23:22
i've yet to really look at it
fperrad japhb, I try to build a installable_plumage, it'll installed near its good parrot 23:29
23:29 Austin joined
japhb fperrad, How does that help? 23:30
23:31 Whiteknight joined
dalek rrot: r42538 | chromatic++ | trunk/t/op/number.t:
[t] Fixed improper register usage in two tests in t/op/number.t (for the mod
23:33
23:37 Zak joined 23:40 kid51 joined 23:42 mikehh joined
nopaste "fperrad" at 77.200.211.132 pasted "japhb, Plumage works on Windows (when I fix my environment)" (46 lines) at nopaste.snit.ch/18719 23:47
23:48 Whiteknight joined
Whiteknight hello #parrot 23:50
davidfetter oh hai 23:51
japhb fperrad, sweet! 23:52
fperrad good night
japhb fperrad, mind if I tweet that nopaste? 23:53
23:57 hercynium joined, tetragon joined