Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: merge tt_389_fix and one_make branches | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 23 January 2010.
00:10 payload joined 00:39 cognominal joined
kid51_at_dinner msg Coke Please see r43577: realclean;configure;make;clean;make works for me 00:42
purl Message for coke stored.
kid51 Smolder, at least intermittently, is giving proper feedback and not timing out. 00:45
cconstantine How would I go about creating a non-anonymous function declaration in PAST? I set the subid, but it still has a :anon in the generated PIR 00:46
dalek rrot: r43577 | jkeenan++ | branches/one_make/config/gen/makefiles/root.in:
'clean' target has been deleting files which are still being created during

re-enables successful 'make' after 'make clean'. This is valid on assumption that gen::opengl will continue to create those files.
00:48
Tene cconstantine: :name('foo') 00:53
00:59 PacoLinux joined
dalek rrot: r43578 | coke++ | branches/one_make/tools/dev/checkdepend.pl:
Re-add XXX removed in 43575 ; this is a todo in a branch; it'll get a ticket
01:04
Coke cotto_w0rk: tools/dev/checkdepend.pl is barfing. 01:07
ok 153 - compilers/tge/TGE/Rule.pir has correct dependencies (.
Use of uninitialized value $rule_deps in split at tools/dev/checkdepend.pl line 261.
dalek TT #1413 created by jkeenan++: Convert planet.parrotcode.org to planet.parrot.org
01:14 LaVolta joined
cconstantine Tene: I forgot! that worked, thanks! :) 01:46
01:56 cognominal joined 02:02 cotto joined 02:17 eternaleye joined
nopaste "kid51" at 70.85.31.226 pasted "checkdepend.pl: This patch makes uninitialized value warning go away -- but is it what we want?" (158 lines) at nopaste.snit.ch/19340 02:21
kid51 sorry, wrong paste 02:22
nopaste "kid51" at 70.85.31.226 pasted "checkdepend.pl: This patch makes uninitialized value warning go away -- but is it what we want?" (19 lines) at nopaste.snit.ch/19341
kid51 that's more like it 02:23
cotto that's fine 02:24
I'll apply that. 02:28
actually, you can. I have some other stuff going on in that file and we haven't switched to git yet. 02:29
kid51 grows old waiting for 'svn diff' to complete on orderedhash_revamp branch ;-) 02:34
cotto If you don't feel like committing, the change will go in next time I commit. 02:36
kid51 It's on its way 02:39
dalek rrot: r43579 | jkeenan++ | branches/one_make/tools/dev/checkdepend.pl:
Check for truth (non-empty string) on rule dependencies, rather than definedness.
02:41
cotto good use of apostrophe 02:53
anyone up for a makefile question? 02:58
nopaste "cotto" at 96.26.227.153 pasted "is this a valid rule?" (10 lines) at nopaste.snit.ch/19343
cotto make doesn't seem to choke on it, fwiw 03:00
Bah. The tool is already approaching a reimplementation of make and it's still not catching some stuff. I'm wondering if this is the right approach. 03:03
03:11 plobsing joined
kid51 By 'the tool', do you mean checkdepend.pl? 03:12
cotto yes
Coke what does r43579 buy us?
kid51 It eliminates the uninitialized value warning you were getting.
Nothing else.
purl nothing else is probably counting how many hours scrottie's computer has been on! SMART rules!
Coke that works. 03:13
cotto_w0rk: why would that not be a valid rule?
cotto I'm not especially familiar with makefile syntax 03:14
It looked valid from what I could find but I wanted to verify.
Coke A : B is pretty basic. 03:17
(you can always just do a make clean, make <target> to see.) 03:18
05:25 chromatic joined
cconstantine anyone left in here? 06:09
I'm attempting to invoke a compiler directly and run the resulting code.... I know I'm getting back a block (defining a sub). How do I go about executing it? 06:10
github.com/cconstantine/Reason/blob...ns.pm#L204 06:12
replcaing 'magic goes here' with a call to the generated function
cotto does $code() not work? 06:14
cconstantine it does not 06:16
well... I'm defining a func with 1 arg 06:17
$code() gives me a 'not enough args' error 06:18
$code(1) gives me a 'Null PMC access in invoke()
got it! 06:27
i wasn't setting the HLL for the block
cotto happy 06:36
06:39 cognominal joined
dalek rrot: r43580 | cotto++ | branches/one_make/tools/dev/checkdepend.pl:
[checkdepends] add line and file info to output
07:48
07:53 fperrad joined 08:25 joeri joined 09:06 chromatic joined 10:10 AndyA joined 12:16 muixirt joined
muixirt hi 12:16
purl bonjour, muixirt.
muixirt what version of prove does setup.pir need?
12:39 kid51 joined 12:42 Whiteknight joined 12:56 LaVolta joined
muixirt hi Whiteknight 13:28
Whiteknight hello muixirt 13:30
muixirt sorry for my comments :-) 13:31
Whiteknight it's okay. Parrot needs criticism
it's healthy
things have been moving relatively slow lately, I have noticed that
13:48 Austin joined
Austin moo 13:48
muixirt hi Austin 13:49
Austin Hi muixirt.
muixirt is 'Close' active?
Austin I think that the FPA .sort() method should return self.
mux: not at present. I'm working on kakapo so I can (eventually) get back to close.
muixirt kakapo? 13:50
purl kakapo is a program framework, runtime library, and collection of useful functions for NQP programs.
Austin In particular, I would like to be able to do this: 7 for %hash.keys.sort { say($_); } 0
Right now, RPA inherits FPA.sort, which returns nothing. 13:51
muixirt: kakapo is a RTL for NQP programs. I extracted a lot of utils from the close compiler 13:52
TT#1414 13:57
Okay, this is weird. Why doesn't a parent class show up in the list? 14:05
kid51 Whiteknight: Can you look at trac.parrot.org/parrot/ticket/850 ? Should we just close it? 14:07
dalek TT #1414 created by Austin_Hastings++: Change ??A .sort() methods to return self 14:08
kid51 Austin: Re 1414: what do RPA and FPA mean?
Austin Resizable/Fixed Pmc Array
kid51 Given that I had to ask that, you might want to clarify that in ticket.
Austin I added a note 14:10
kid51 thanks 14:11
Is this issue related at all to that in trac.parrot.org/parrot/ticket/218 ? 14:12
Whiteknight kid51: looking
Austin kid51: No. #218 was a problem related to "internal" (C-level) objects versus "external" (pir-level) objects. 1414 is simply a request that whatever the object type, the invocant should be returned after the sort. Currently, nothing is returned after the sort. 14:15
While there *are* some sort-related TTs already, none of them that I saw (search: sort array) pertained to the return value. 14:17
Whiteknight it seems we need a bigger policy about the return values of mutator methods that modify a PMC in place 14:26
sort is just one example 14:27
Austin Good morning, Andrew.
Q{ This compiler is built with the Parrot Compiler Toolkit, parrot revision 0. } 14:28
Possibly a useless message. But at least it says parrot.
I'd think that in-place modification should always return self. I'm thinking now about how to get self back from things like shift. 14:29
Here's a question: If I find what I think is a bug in nqp (parrot-nqp), how do I know if it's a -rx bug, or an nqp bug? 14:31
14:32 cognominal joined 14:34 payload joined
kid51 Whiteknight: trac.parrot.org/parrot/ticket/993 Can you respond to dukeleto? Thanks. 14:39
14:41 cghene joined 14:52 fperrad joined
Whiteknight kid51, sure 14:52
dalek TT #643 closed by jkeenan++: Segfault while compiling fperrad's lua 14:56
cconstantine I'm trying to write a function that gets a PAST object as an argument and returns a PAST node who's value is the given PAST object... If I pass in the PAST object to a new PAST::Val as it's :value I get an "undefined identifier 'Capture'" error. Is it possible to have a PAST Node who's runtime value is another PAST node? 15:06
github.com/cconstantine/Reason/blob...ns.pm#L198 15:08
I think I'm getting the PAST tree I want 15:11
parrot.pastebin.com/d4951469b 15:12
Austin cconstantine: you can't do that.
cconstantine *pout* 15:13
dalek TT #681 closed by whiteknight++: Cannot use a PIR object for IO
cconstantine but I wanna?
Austin The Past::Value class expects something that it can store in a string and pass literally to pir
cconstantine hmmm
Austin So the :value has to be literal-compatible
cconstantine right
Austin (0x01, 1, "hello, world", etc.)
cconstantine which another PAST::Node isn't
so mabe I want a PAST::Var ? 15:14
Austin Looks like you want an expression, no?
But why the indirection?
cconstantine it's for the (quote <foo>) lisp form 15:15
Austin Okay. What's that?
purl that is the case, but I don't know
cconstantine a lisp macro is a function that returns a list that can be compiled
so, a list like (PAST::Symbol .... )
would compile to an invoke call on the PAST::Symbol 15:16
Austin Okay.
So should you just store the string, and do an "eval" on it later?
cconstantine to write macros I need to be able to say: (list (quote say) (quote 1)) so that I get back a list of PAST nodes instead of they're values
no, that would be the C way of doing macros (aka, "The Bad Way") 15:17
Austin Are you compiling this, or interpreting the AST? 15:18
cconstantine Aren't those kind of the same thing?
Austin Clearly not.
Else I would not have asked.
cconstantine oh, not 'interpreting' like QBasic is interpreted
I am compiling it 15:19
Austin Using the PAST/POST/PIR cycle?
cconstantine yup
Austin So how do you imagine the macros are going to work?
cconstantine when a programmer does a (defmacro foo (x) (list (quote say) x)) a macro named 'foo' is created 15:20
the macro 'foo' is really just a function that is registered and available to execute at runtime
I have that part working
see the compile_defmacro form
in the foo example the function returns a list whose first value is a symbol 'say' 15:21
so when I call 'foo' later, the call to it is compiled and executed. the returned value is a list and I continue compiling that list 15:22
oh, I'm missusing 'compile' there
I take that list to a PAST tree
and I return that isntead of a call to foo
Austin But you don't really return a past tree, because what would anyone do with it? You need to return a sexp that will compile the list and return its result, no? 15:23
cconstantine right, the macro returns an sexp
the call to 'to_past' takes that sexp and converts it to a PAST tree github.com/cconstantine/Reason/blob...ns.pm#L271 15:24
Austin So I think you want to built a call to a function that does an eval, or a "compile the rest of this past tree" if you like.
cconstantine I have that
Austin So use that instead of your Past::Value node. 15:25
cconstantine the $code object created/stored in %?MACROS is invoke-able, so I just call exec_macro on it
Austin FYI, looking at compile_node, it is possible to store subs in a hash table. 15:26
cconstantine yeah, I tried that for about 2 seconds and it didn't work
I'll probably convert to that at some point
I know the big if/else block is ugly 15:27
nopaste "Austin" at 68.37.46.53 pasted "subs in hash" (15 lines) at nopaste.snit.ch/19345 15:28
15:28 jan joined
cconstantine thanks :) 15:28
dalek TT #1415 created by coke++: parrot macport for 2.0.0 15:29
15:29 bacek joined
Austin So it seems like you've got this working. 15:30
What's the problem?
purl well, the problem is that WikiDoc doesn't use Pod formatting codes, and I don't like to have two sets of formatting codes.
cconstantine hehe
the only thing that isn't working is the 'quote' form
Austin The relationship between quote and defmacro is? 15:31
Because it seems like quote might be a noop here. 15:32
cconstantine for me to be able to compile the sexpr returned by the macro I need to be able to quote symbols so i don't get back the value of the symbol (like the sub 'say' instead of the PAST::Var who's name is 'say')
Austin Ah, but in other cases you want the value, right?
cconstantine right
sometimes I want the value... actually most of the time I want the value
Austin (defmacro foo (x) (quote say) x)
cconstantine something like that :) 15:33
(defmacro foo (x) (list (quote say) x))
Austin So then quote has to defer ...
Which means putting "say" into a PAST::Val
cconstantine to which (foo 'bar') would be rendered as a (Symbol<say> Val<'ba'>) 15:34
Austin But the result of "quote" can't be a value. It has to be a sexp that expands its first arg.
cconstantine the value of quote can be a PAST::Node type
but that node's rvalue needs to be another PAST::Node
or a PMC
Austin So you need an identity function?
(quote x) => x 15:35
cconstantine not exactly
(quote x) => Symbol(x)
so it looks liek I need to create a block, and have the value of the block be the symbol 15:36
(quote (a b c) ) => (a b c) too... this isn't just about symbols
Austin what does exec_macro do? 15:38
cconstantine it's just the only way I know how to get a :flat
I need to flatten the arguments out from a list (or array) into an argument list
so it's a PIR sub in compiler.pir 15:39
Austin okay.
(I've got "call_sub" and "call_method" that do similar things. :)
cconstantine github.com/cconstantine/Reason/blob...er.pir#L47
hehe
Austin Then what does to_past do? 15:40
found it 15:41
cconstantine cons -> PAST 15:42
ties into the compile_* methods
15:43 Psyche^ joined
Austin So if I type: (say 'hello') it translates into [call:say [val:'hello']] right? 15:43
cconstantine hmm, I could probably create a 'register' Var and assign it the type
[ call:[var:'say'] [val:'hello']] 15:44
the [var:'say'] has a scope of 'package', and the sub say is defined 15:45
so it effectivly turns into PIR like 'say'
bah
like 'say'('hello')
15:45 Austin_Hastings joined
Austin_Hastings But if I do: (foo 'hello') what should it produce? 15:45
Ugh. I don't know what that was.
cconstantine, are you still here?
cconstantine yeah
did you see my responses to your translation of (say 'hello') ? 15:46
Austin_Hastings Yeah, in the logs
cconstantine ok
Austin_Hastings What would (foo 'hello') do?
Assuming (defmacro foo (x) (list (quote say) x)) 15:47
cconstantine given (defmacro foo (x) (list (quote say) (quote 'foo') x))
ok that
at compile time the function 'foo' defined in the defmacro is called
that function returns a list (symbol:say val:'foo' val:'hello')
that list is given to to_past which returns a PAST tree of a call to the package var say with 2 arguments 15:48
Austin_Hastings So exec_macro calls the macro function right now, and the result is expected to be a ... ? 15:49
cconstantine an object that can be to_past()ed
Austin_Hastings :)
cconstantine so either a PAST::Node or an sexpr
Austin_Hastings clearly.
cconstantine detects a hint of sarcasm :) 15:50
dalek rrot: r43581 | jkeenan++ | trunk/runtime/parrot/library/Getopt/Obj.pir:
Applying modified version of patch originally submitted by tene++ in ļæ½trac.parrot.org/parrot/ticket/1372: Change usages of 'Getopt::Obj' to ['Getopt';'Obj'].
15:53
cconstantine Austin_Hastings: did I lose you? 15:54
15:55 Austin joined
Austin It seems pretty clear that the internet godz don't like me talking about Reason. 15:57
cconstantine hehe 15:58
that seems pretty unreasonable
Ha! reason, unREASONable... ahem, sorry :)
so the problem with quote is that the PAST compiler wants to be able to render everything involved into PIR 15:59
if the value can't be written as a PIR value it can't
whereas i want it to generate code that references and already existing object in memory 16:00
Austin Yepper.
So (quote say) will work, since 'say' is a valid string.
But (quote (a b c)) not so much
cconstantine well.. neither will work right 16:01
kinda
when I say (quote say) I get back the literal sub named 'say'
Austin Which is what you want, right?
cconstantine where i want it to be a PAST::Val/Var who's value is the sub named 'say' 16:02
Austin Get the sub, then call it.
Ah.
cconstantine I can't compile the literal sub named say
Austin But quote doesn't compile things. 16:03
If I run (say 'foo') I get foo as output. 16:04
cconstantine right
Austin What do I get if I run (say (quote 'foo')) ?
cconstantine you should get something like 'Capture[0x125da10]' 16:05
Austin I should?
cconstantine yeah
Austin Why?
cconstantine because 'Capture [...]' is how PAST nodes are output from 'say'
Austin Is Capture even a part of the Reason type model?
cconstantine it's part of the compiler 16:06
the whole point of macros is to execute code in the compiler
or part of the point at least
Austin Right, but this isn't a macro.
It's just quote.
cconstantine compiler and runtime of lisps are kinda indistinguishable 16:07
Austin Sure.
But is quote a compile-time function?
Or a run-time function 16:08
cconstantine so if you did a (quote (list 1 2 3)) you'd get back the list created at compile time that has a symbole:'list' etc
compile-time
well.. it's a special form
Austin According to google, quote returns its single argument "unchanged". 16:11
So I would expect (say (quote 'foo')) would be the same thing as (say 'foo') 16:12
cconstantine that's not very useful
16:12 fperrad_ joined
Austin :) 16:12
no comment
purl hmmm... no comment is assent :-) or dissent :-(
cconstantine :P
Austin And (say (quote (1 2 3))) would be the same as (say (1 2 3)) - which I have no idea what that produces. 16:13
cconstantine clojure.org/special_forms#toc5 16:14
Austin So (say (1 2 3)) produces what? 123 16:15
Or would that be (say 1 2 3)?
cconstantine that would be (say 1 2 3) 16:16
(say (1 2 3)) produces an error because '1' isn't a function
Austin okay 16:17
cconstantine '(1 2 3) is a reader macro for (list 1 2 3)
in clojure
so you probably meant (say (list 1 2 3))
which would produce '(1 2 3)'
and (say (quote (1 2 3))) should produce the same thing 16:18
the difference being that (say (list 1 2 3)) prints the list generated at runtime via a call to the func 'list' whereas (say (quote (1 2 3))) prints the list generated at compile-time
Austin Right.
So there's a quote-parsing mode, since (say (1 2 3)) and (quote (1 2 3)) are different, yes? 16:19
cconstantine as an asside, I plan on having reader macros like '(1 2 3) supported at some point
'quote-parsing mode' and compile time are the same thing 16:20
Austin Or maybe not, since you're compiling lists.
Okay.
cconstantine compiling the special form (quote ...) .... hmm, maybe this is something I'm not as familiar with as I thought
ok 16:21
so, if we have (foo bar baz) in the source that string turns into a cons tree
Austin So when I say (quote (1 2 3)) the parser produces a (1 2 3) sexp/cons tree.
cconstantine yeah 16:22
but what I'm not sure of anymore is *when* that happens
Austin And quote sticks it in a temporary variable and returns a variable reference.
Right at compile time.
cconstantine right, idealy it returns a PAST node that is a var who's value is the thing it's given at compile-time 16:23
so I could probably do this with globals (have a global array of values and generate PAST nodes that generate lookups into the array) 16:24
Austin Is quote commutative? (Is commutative the right word?)
cconstantine but taht seems really ugly
does it go into a list? not sure yet :) 16:25
Austin If I say (quote (1 a 2)) what is the result?
Is 'a' a literal char, or a symbol reference?
cconstantine it wouldn't be a literal char
Austin Okay. 16:26
cconstantine it's wether it is a symbol reference or the value of that symbol
for now lets say it's the symbol reference
Austin But '(1 a 2) is not ('1 'a '2)
cconstantine correct
('1 'a '2) would cause the compiler to attempt to generate a function call to '1 16:27
'(1 2 3) has a runtime value of a list
ok, how would i build a PAST that references a 'package' array variable's index? 16:28
Austin So try this: Create a @QUOTES variable, make the compiler push when it sees (quote x) and replace the (quote) with a reference to @QUOTES[counter++]
cconstantine yeah
is there an example of how to generate array indexing code? 16:29
Austin PAST::Var.new(:scope('index'), PAST::Var.new(:scope('package'), :name('@Q')), PAST::Val.new(:value(1)))
Or maybe it's backwards.
I've got it here someplace. 16:30
cconstantine hehe
Austin keyed. 16:32
cconstantine ah
I see it in the docs now
Austin It's [keyed [var] [index]] 16:34
So [PAST::Var :scope(keyed) [PAST::Var :scope(package), :name('@QUOTES')] [PAST::Val :value(8675309)] ] 16:35
cconstantine so how would I get the length of the array in nqp? 16:36
Austin In Close, I have to screw around because I need to unshift the array into the postfix index PAST.
+@array
-1
purl -1
cconstantine obviously 16:37
Austin Or not.
You could compute and then push.
cconstantine I've got a global @?QUOTES
Austin $index := +@array; @array.push(temp)
cconstantine I .push($node)
Austin $node?
cconstantine PAST node i want to preserve
Austin Yeah, I see it. 16:38
cconstantine well, really first($node)
Austin Is first($node) just $node[0] ?
cconstantine not exactly
$node isn't an array
or an indexable
it's a 'cons' PMC
and first is a multimethod
Austin Ah.
Why not call it $cons then? :) 16:39
I was assuming that it was a PAST node.
cconstantine it's a node, and dynamic typing is awesome right?
Austin Yeah.
cconstantine it's a cons node instead of a PAST node
Austin I love the shit out of dynamic typing...
cconstantine hehe 16:40
Austin One reason I'm still paying my taxes...
cconstantine +@?QUOTES - 1 is yielding -1 for me 16:41
after the push
Austin Heh 16:43
cconstantine which is bad
Austin Did you initialize it correctly? 16:44
cconstantine I think?
Austin Store a new array into @QUOTES somewhere?
The auto-viv of arrays (used to - it may have changed) doesn't store the new array. 16:45
That is: my @x; @x.push(1);
The @x.push detects an undef, creates a temp array, pushes 1 into the temp array, and then stops - never storing the temp.
cconstantine my current attempt is on github 16:46
Austin I lost the url on the reboot.
actions.pm?
purl i guess actions.pm is getting kinda...big. What would you think to trying to refactor some of the larger actions a bit to use various subs, and putting those into a separate .pm file or files? It's just that it takes a little while to compile.
cconstantine github.com/cconstantine/Reason/blob...ns.pm#L198
now does purl know I'm throwing everything in a single .pm? 16:47
creepy
Austin I think that's a comment that every single HLL developer has made at some point. 16:48
cconstantine hehe
so, I probably need to give a namespace
Austin Yeah, @?QUOTES isn't initialized.
cconstantine it is in reason.pir
Austin Is it? okay. 16:49
cconstantine but I think I'm grabbing ::@?QUOTES instead of ::Reason::Grammar::Actions::@?QUOTES (to use C++'s namespacing syntax)
Austin Okay.
So Var.new(:scope('package'), :namespace( ('Reason', 'Grammar', 'Actions') ), :name('@?QUOTES')) 16:50
16:53 theory joined
cconstantine that appears to have done it 16:55
Austin Yeah? 16:56
cconstantine my only reservation with this solution is that the array and items in it won't get GCed
but yeah, I appear to be limping allong to the next problem :)
Austin Maybe you should create temporary variables - $quote_123 - instead of an array.
cconstantine that would be awesome 16:57
working quote form is up
is it possible to create named temporary variables like that? 16:58
Austin At the nqp level it's just string catenation, right: PAST::Var(:name( '$quote_' ~ $index++))
Of course, you have to remember them somehow...
But that's what the rest of the PAST tree is about.
cconstantine how do I create the variable so I can do $quote_N := first($node); 16:59
Austin You should probably create a new namespace (Reason::_quote) to stuff them in..
cconstantine probably 17:01
ok, I think I can use PIR to create the var 17:04
nopaste "Austin" at 68.37.46.53 pasted "Create temp vars" (26 lines) at nopaste.snit.ch/19346 17:07
Austin Frankly, I'm not sure about that "first(rest($node))" thing. 17:08
Should it just be "rest($node)" ?
cconstantine possibly? 17:09
I'm not sure about it either
Austin In the case where you say (quote (1 2 3)) it seems like you would get "1" 17:10
cconstantine well, $node is the list starting with symbol:quote 17:11
Austin But maybe you start with [ 'quote' [ [1] [2] [3] ] ]
17:11 tetragon joined
cconstantine so rest($node) is the list starting at (1 2 3) 17:11
Austin And so rest($node) is [ [ [1] [2] [3] ] ]
Try it like it is, and see.
cconstantine ok 17:20
I got it
it was correct to begin with, but the list was missing it's $/ object
Austin woot 17:21
cconstantine w00t indeed 17:26
*working macros are up
*may not really be working
Austin :) 17:27
cconstantine I'm always setting the 'node' attribute to the $/ object on the thing returned from executing the macro
if the result is a simple PAST::Node that won't work
Austin Why not? 17:28
cconstantine will it?
purl will it is it being written to use djb's string functions and such?
Austin The :node attribute points to the source location.
cconstantine oh, PAST::Node has a node method...
oh, it's an attribute
well then, see I knew what i was doing *shifty eyes*
Austin :) 17:29
Make sure it does what you think it does.
cconstantine yeah no 17:30
dalek rrot: r43582 | jkeenan++ | branches/one_make (2 files):
Extract subroutines from h2inc.pl and place them in lib/Parrot/H2inc.pm. This makes them potentially reusable and/or testable.
cconstantine thanks so much for the help Austin 17:32
Austin no problem. I'm glad you got it working.
cconstantine I think I'll tackle this problem later, and I have a plan (multi-method so I only attach the $/ to 'node' if the result of the macro is a cons object) 17:33
I have a weekend's worth of work to do in 3 hours
Austin :)
17:34 payload joined
moritz Coke: re timtowtdi, use aptitude for installing packages 17:38
18:20 cognominal joined 18:27 chromatic joined
dukeleto 'ello 19:00
dukeleto just got out of order test detection working in Tapir 19:01
davidfetter dukeleto++ :) 19:02
dalek pir: 00cc34d | dukeleto++ | Makefile:
Make the compile target required for the test target in the Makefile
19:13
pir: 959dbdf | dukeleto++ | lib/Tapir/Parser.pir:
Almost-working out of order test detection
pir: 7b1962d | dukeleto++ | t/03-parse_tapstream_error.t:
Add some tests for parsing out of order tests, mostly passing.

so test files with out of order tests do not pass, but this is currently dumb luck. The parse_tapstream method needs to be modified to detect out of order tests and still count which pass and fail.
pir: fb239bd | dukeleto++ | (2 files):
Improve the is_tap method in Tapir::Parser and add some tests
pir: eda3b9e | dukeleto++ | t/03-parse_tapstream_error.t:
Add tests for bail_if_necessary to Tapir::Parser
pir: 8c4680b | dukeleto++ | lib/Tapir/Parser.pir:
Refactor is_tap to use a natural control flow
pir: ff8b843 | dukeleto++ | lib/Tapir/Parser.pir:
Refactor parse_tapstream
pir: 42a74c6 | dukeleto++ | lib/Tapir/ (2 files):
Out of order tests are now detected

Better diagnostics, such as:
   Out of order tests detected, saw test 42 but expected test 5
would be nice.
19:20 iblechbot joined 19:29 AndyA joined 19:37 kid51 joined 19:38 lucian joined 19:57 hercynium joined
dalek rrot: r43583 | jkeenan++ | branches/one_make/t/tools/pmc2cutils (2 files):
Update README to explain purpose of tests. Fix one TODO-ed test.
20:28
20:32 bacek joined 20:49 preflex joined 20:50 fperrad joined 20:59 plobsing joined
dukeleto make fulltest PASS on orderedhash_revamp (darwin x86) 21:08
Coke grumbles. 21:35
dukeleto PackFile_unpack: This Parrot cannot read bytecode files with version 5.4. 21:38
i am sure i am ding something wrong, but that error messages doesn't tell me what
21:39 chromatic joined
dalek rrot-plumage: ee53364 | leto++ | t/03-util.t:
Add tests for %hash.values
21:57
rrot-plumage: cdd56bd | leto++ | (3 files):
Update Tapir
22:03
mikehh one_make branch at r43583 - codetest FAIL (perlcritic.t - 2 failures) 22:08
all other tests PASS - pre/post-config, corevm/coretest, smoke (#31876), fulltest - Ubuntu 9.10 amd64 (g++ with --optimize)
Coke's XXX and missing use warnings in lib/Parrot/H2inc.pm 22:10
22:33 hercynium joined 22:40 patspam joined
Coke ... so, it's a good thing to hide all that stuff for a one shot script into .pm's? 23:17
to me, it'slike premature obfuscation. 23:18
->zzz
japhb seen whiteknight 23:21
purl whiteknight was last seen on #parrot 8 hours, 28 minutes and 1 seconds ago, saying: kid51, sure
japhb *sigh*
msg whiteknight I need a PMC that can represent WebGLArray and WebGLArrayBuffer as seen in the WebGL draft spec: cvs.khronos.org/svn/repos/registry...-spec.html -- can parrot-linear-algebra's packed arrays do this? In particular, can you share a single buffer amongst multiple array "views"? 23:23
purl Message for whiteknight stored.
23:23 Whiteknight joined
chromatic That was useful. 23:24
japhb well, that was convenient
Whiteknight, see your messages. :-)
Whiteknight messages
japhb: Looks feasible 23:28
I would want to do it in a way that wasn't opengl-specific 23:29
Coke chromatic: what was useful?
chromatic japhb complaining that Whiteknight wasn't here. 23:30
Whiteknight if people complain when I'm not here, there must be a lot of complaining recently 23:32
23:32 LaVolta joined
Coke rant: everything in DEPRECATED.pod should have a ticket. 23:41
japhb Whiteknight, excellent. I hadn't wanted it opengl-specific, merely that it could be bent to that task. :-)
Whiteknight, what currently works in p-l-a? The README and ROADMAP appear to only contain future plans ... 23:44
Whiteknight japhb: the test suite is a decent example of the capabilities 23:45
it's missing stuff for some
p
PMCs
japhb Whiteknight, ah, OK
Whiteknight i'll give you a commit bit if you want 23:47
japhb Whiteknight, sure, thank you
Whiteknight done 23:49
japhb Merci. 23:52
Coke ah, chromatic, 'twas you. - can you create a ticket for the :: issue you added to the D.pod?
(and link back to it from DEP.pod?)
chromatic The double-colon namespace pseudo-separator? I thought we had many tickets for that.
23:53 BooK joined
Coke ok. can you list them in the pod? =-) 23:57
chromatic I will put that on my task list. 23:58
Coke it's a good task for minions.
Whiteknight muah hah hah!! 23:59