Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, close tickets.
Set by moderator on 15 June 2010.
kthakore oh well I guess you guys are busy ... I will have the guy try later 00:07
thanks any ways
whiteknight who's busy? What do you need?
kthakore whiteknight: trac.parrot.org/parrot/ticket/1687
whiteknight: I have apatch there Coke said it was ok 00:08
whiteknight: I messed up the patch
whiteknight: let me fix that
whiteknight: I fixed tha patch
whiteknight: sdlperl.ath.cx/patch 00:09
whiteknight patch failed
how to apply it? 00:10
kthakore oh right you guys use svn not git
*sigh*
whiteknight I got the important part. We can get you added to credits later 00:11
typically, adding yourself to credits is the first commit you make when you get a commit bit
00:11 mikehh joined
kthakore whiteknight: try now? 00:11
whiteknight: hah! read the back log. cotto_work made me do it 00:12
whiteknight: you guys are mean. :(
whiteknight :)
kthakore I was like it is a one line fix.
whiteknight I applied the action part of the patch 00:13
kthakore and he is like NO you n00b. a contribution is a contribution
and I am like fine ...
and you are like NOOB who said you can be in my repo
and I was like :*(
STOP TOYING WITH MY FEELINGS !
cotto_work There are other first commits that can be made upon the receipt of a commit bit.
kthakore w/e .... I am jaded to the underbelly of the open source world now 00:14
cotto_work I guess that's one of those policies that changes depending on who you ask.
kthakore you guys can't faze me
I have seen it all!
whiteknight I think the lesson is that we need to get kthakore a damn commit bit :) 00:15
kthakore NOOOOooOoOOooooooo,.........
dalek rrot: r47748 | bacek++ | trunk/src/pmc/sub.pmc:
Initialize Sub.vtable_index with -1 as required by Namespace PMC to properly store Sub.
rrot: r47749 | whiteknight++ | trunk/editor/mk_skeleton.pir:
[editor] Fix TT#1687. Patch courtesy kthakore++
kthakore whiteknight: but that willl mean I will have to commit
cotto_work not really
but it will be easier 00:16
whiteknight kthakore: there are worse things
cotto_work and the commit button will be so shiny ...
kthakore cotto_work: yeah and that is why I am in 10 project when all I wanted was to make games in perl and perl6
FUUUUU
11 months ago I wasn't in a single project 00:17
I just used stuff and did bug reports
now ... I know things ... my cherry has broken. 00:18
kthakore curls up into a ball
cotto_work I suppose we definitely shouldn't give him two commit bits. 00:21
dalek TT #1684 closed by bacek++: examples/pir/*.pir aren't executed during make fulltest.
TT #1684: trac.parrot.org/parrot/ticket/1684
TT #1685 closed by bacek++: Fix for #389 broke examples/pir/make_hello_pbc.pir
TT #1685: trac.parrot.org/parrot/ticket/1685 00:22
TT #1687 closed by whiteknight++: make vim-install broken
TT #1687: trac.parrot.org/parrot/ticket/1687
kthakore cotto_work: hehe
kthakore scheme worked
:)
whiteknight: can you also close this ticket trac.parrot.org/parrot/ticket/1478 00:23
whiteknight: that test doesn't exist any more
whiteknight ok, let me look 00:27
cotto_work: We definitely shouldn't give him the super-secret extra-responsibility commit bit 00:28
kthakore: I can't get to 1478 tonight. Have too much to do still and bedtime is fast approaching
Coke kthakore: ticket closed. 00:30
kthakore Coke: thanks 00:32
whiteknight: yeah thanks
Coke Feel free to comment on tickets, if folks aren't about. 00:33
dalek kudo: 1277e18 | pmichaud++ | docs/ROADMAP:
Add closures to ROADMAP (so we don't forget about them :-).
00:36
kthakore Coke: I can't comment on them. NO access 00:38
dalek TT #1478 closed by coke++: t/pmc/iterator.t: split test
TT #1478: trac.parrot.org/parrot/ticket/1478
cotto_work I'm not really a fan of that skeleton. 00:47
01:01 abqar joined
dalek rtcl-nqp: 32a24fc | mdiep++ | (3 files):
Implement [array size]
01:17
cotto hi 01:30
01:33 TiMBuS joined
cotto time to review some khairul code 01:42
and that blog thing he seems to write in from time to time 01:43
Coke kthakore: you have to create an account on trac. 01:44
01:44 plobsing joined
Coke I am in the non-yapc reserved portion of the lobby in morrison. 01:45
cotto How'd the Lorito BOF go?
whiteknight ah yes, I'm definitely looking forward to a recap about that 01:46
Coke chuckles. mdiep has made 2 commits in 2 days!
dalek rrot-linear-algebra: 471954c | Whiteknight++ | (3 files):
add a row_swap method, and test. Add an example file showing the use of row
cotto mwho? ;)
Coke it wasn't really a lorito bof.
we ended up talking more about remaining (but not urgent) big pain points for rakudo. 01:47
cotto do kid51's notes cover everything? 01:50
thenceforward.net/parrot/yapc_bof_20100621.txt 01:51
whiteknight Coke: ...and what are those pain points, pray tell?
Coke Task::Parrot is github.com/coke/Task-Parrot/ 01:53
ah, yah, I don't have to transcribe my snapshot of the whiteboard. 01:54
whiteknight is going to bed, will hear details tomorrow 01:55
goodnight
Coke ~~
Coke is going to try to release Task::Parrot tonight.
dalek rrot: r47750 | coke++ | trunk/README:
use a less confusing sample install dir.
02:10
kthakore Coke: I have one. But I can't edit tickets 02:12
02:30 khairul joined 02:35 JimmyZ joined
cotto hi khairul 02:52
khairul hi cotto 02:53
meeting?
purl rumour has it meeting is at 3:30pm eastern
cotto sure 02:55
Coke kthakore: what's your ID? 02:59
cotto forget meeting
purl cotto: I forgot meeting
cotto purl, PLEASE ABSTAIN FROM BEING STUPID
purl cotto: what?
cotto I guess INTERCAL would be a little much to expect from purl.
Coke purl, choke on a botsnack.
purl thanks Coke :)
kthakore Coke: kthakore 03:00
purl you are working on rehashing SDL_perl or making a Tetris clone in Modern Perl which shows an Example of MVC and the mediator design pattern in SDL Perl
cotto plobsing, ping 03:02
Coke kthakore: gave you TICKET_APPEND
cotto seen plobsing 03:03
purl plobsing was last seen on #parrot 3 days, 22 hours, 37 minutes and 39 seconds ago, saying: I'll try the 2 word/op variant. Hopefully it will go better. [Jun 18 04:25:29 2010]
plobsing cotto: pong 03:06
cotto plobsing, do you have an eta for dynop_mapping being ready to merge?
plobsing I'm fairly stuck trying to do things in any way that is remotely close to right. I can probably bang out a quick hack tonight because it is a pain point. 03:07
so tomorrow if you want it now, two weeks from now if you want it right. 03:08
cotto we have enough broken stuff already 03:09
Is there something I could help parallelize?
plobsing hmmm... planning is not my strong suit. 03:11
the quick hack won't break anything. 03:12
cotto will it be reasonably easy to implement the proper fix though?
plobsing it just isn't clean and uses more memory than it should and doesn't get some of the goals I want to acheive
cotto: yes. but it involves moving around some management of dynoplibs. That, I'm not terribly familiar with 03:13
I've been stuck for a week or two now, so I'll just the the quick 'n dirty now, so people aren't in pain while I think about this. 03:14
cotto wfm 03:15
khairul will eventually need it, but he's got other things to work on in the meantime
bacek, ping 03:39
bacek_at_work cotto, pong
cotto bacek_at_work, do you know when gc_massacre will be ready for trunk? 03:40
bacek_at_work cotto, after someone will tune GC triggering policy...
cotto, I'm slightly out of ideas how it should be implemented
cotto That sounds like an interesting problem. 03:42
03:42 LoganLK joined 03:44 janus joined
cotto bacek_at_work, how do I edit my commit history to make myself look less stupid? 03:47
bacek_at_work cotto, did you push it already?
cotto nope
sorear is it the most recent commit?
bacek_at_work Ok. What do you want to edit?
1. git commit --amend to edit message in last commit. 03:48
cotto the changes made by the previous three commits
bacek_at_work 2. git rebase --inter HEAD~10 to rebase (squash/drop) last 10 commits.
cotto that one sounds promising 03:49
bacek_at_work 3. git reset HEAD~3 to "remove" 3 last commit and commit them again.
3a. git commit --inter to commit parts of file instead of whole.
www-cs-students.stanford.edu/~blynn.../book.html really good git tutorial 03:50
cotto with 3, will the changes still be in the fs?
sorear yes
git reset (no options) undoes a commit -a; leaving the changes in working 03:51
git reset --soft undoes a commit; leaving the changes in working and marked to be committed
git reset --hard undoes a commit and removes it from fs
4. git config author.name xxx; git commit --amend to shift the blame to someone else
cotto sorear, bacek_at_work, thanks 03:53
bacek_at_work, were there only two more ops that needed desugaring? 03:55
bacek_at_work about 4 I think
cotto unary, binary_math and binary_logic too?
bacek_at_work yes 03:56
cotto gets to work 03:57
atrodo I love YAPC. For some reason, I'm getting some good hacking going
bacek_at_work cotto, why don't use hash for mapping op? Instead of lot of if/elsif
dalek r: d13e8c3 | cotto++ | (2 files):
desugar if_op and unless_op
03:58
bacek_at_work (and leftover comment for desugarizing sym<unless_op>)
cotto The if/else chunks only appear in one place. If there's somewhere else they'll be useful, a hash will be much prettier. 03:59
bacek_at_work ok.
line 299, 332 in Actions.pm. Are you sure that there is space after <=?
And definitely more tests are welcome :) 04:00
afk # meetings...
cotto nope, definitely a goof 04:01
bacek++
04:08 arnsholt_ joined
bacek_at_work cotto, (here briefly) ... else { $/.CURSOR.panic("Unhandled op $<relop>"); } in if_op/unless_op will help to catch (future) errors. 04:16
cotto good idea 04:20
It appears that imcc will still happily convert $I0 = ~ 1234 into bnot, even though the bit ops are now dynops. 04:22
apparently ** is also quite untested 04:51
dalek rrot: r47751 | plobsing++ | branches/dynop_mapping/src/packfile.c:
off by one error
05:11
05:11 theory_ joined 05:22 contingencyplan joined 05:32 contingencyplan joined
cotto bacek_at_work, do you see any value in dealing with the sugared forms of the bitwise ops? 05:41
bacek_at_work cotto, e.g.?
cotto all of them, since they're dynops now 05:42
plobsing sugared bitwise as in $I0 & $I1 ?
cotto yes
bacek_at_work "$I0 &= $I1"?
or "$I2 = $I0 & $I1"? 05:43
cotto both, but I'm thinking of the $I0 & $I1 form now
bacek_at_work cotto, hmm. Why don't support it? It's just matter of creating POST::Op node with proper pirop. 05:44
cotto for one, it'll break if there's not an explicit loading of the bitwise dynops somewhere 05:45
05:49 s1n joined
plobsing is it possible to define mutually-recursive static const values in C? 05:49
cotto nm. I guess the bitwise ops are back as core ops now. 06:01
06:02 contingencyplan joined
plobsing cotto: some of them are. Not many. Mostly integer bitwise ops. 06:05
I couldn't eliminate them because NQP made use of them, so they are needed for bootstrap.
cotto ok 06:08
dalek rrot: r47752 | plobsing++ | branches/dynop_mapping (4 files):
add back-reference to library in op_info_t
06:17
nxed: r514 | julian.notfound++ | trunk/examples/pirado.winxed:
update example pirado to change in PBC fixups types
06:37
r: 79412c6 | cotto++ | src/PIR/Actions.pm:
various cleanups
06:39
r: afa09fc | cotto++ | (2 files):
implement and test unary ops
r: 0cce82d | cotto++ | src/PIR/Actions.pm:
add error checking to if_op and unless_op
r: 67adc35 | cotto++ | (2 files):
add actions and tests for binary math desugaring
r: 12d9ae5 | cotto++ | src/PIR/Actions.pm:
better error messages
06:39 kjeldahl joined
r: 126f2ce | cotto++ | (2 files):
add desugaring and tests for pir_instruction:sym<binary_logic>
bacek_at_work yay!
sorear is "pir" the new name of "PIRATE"?
bacek_at_work "pir" is language, "pirate" is compiler 06:40
cotto git is fun 06:41
dalek nxed: r515 | julian.notfound++ | trunk/examples/pirado.winxed:
use magic value to store subs in namespace in example pirado, bacek++
06:42
bacek_at_work NotFound, winxed r515 is unnecessary. I've changed Sub PMC to set it to -1 if not passed. 06:43
NotFound bacek_at_work: better to be in the safer way for a now. 06:45
bacek_at_work: great work, BTW.
bacek_at_work NotFound, half-an-hour in gdb... 06:46
cotto bacek++ 06:48
bacek_at_work, is there something else I could hack on in pirate? 06:49
bacek_at_work cotto, POSTing args pragmas?
06:50 fperrad joined
cotto arg pragmas? 06:50
like :slurpy?
06:51 fperrad_ joined
cotto I can take a shot at that tomorrow evening. 06:52
bacek_at_work cotto, yes, :slurpy, :flat, etc. 06:53
sorear and the ones nobody has ever heard of, like :call_context 06:54
cotto You find all kinds of funny things when you troll through the grammar. 06:55
sorear I found out about call_context because apparently rakudo uses it
rakudo doesn't really use getargs
it binds a single arg to the CallContext, then calls a dynop to do binding 06:56
bacek_at_work yak... I definitely missed :call_context
cotto Our measly calling conventions aren't quite awesome enough. ;)
you mean call_sig? 06:57
I'm a little tempted to patch pirate's grammar, but at this point I can barely type. 07:00
definitely time for bed
night
NotFound bacek_at_work: modifiers is the name used in several places. 07:07
bacek_at_work NotFound, you mean "pragma" == "modifier"? 07:13
08:55 clinton joined 09:36 lucian joined 09:58 muixirt joined
muixirt hi folks 09:58
10:03 JimmyZ joined 10:36 contingencyplan joined
bacek aloha, humans 10:55
muixirt hi bacek 11:10
bacek aloha, muixirt
muixirt bacek, can you descibe in simple terms what parrot does when executing a sub/invokecc_p? 11:11
bacek muixirt, how simple?
very simple - some dark magic
muixirt for a non-C-programmer
bacek Ooookey. 11:12
1. Create Continuation.
2. Create CallContext.
3. Populate CallContext with parameters
4. Jump to first op in Sub. 11:13
muixirt which are expensive operations?
bacek 3a. Call Sub.invoke which will switch interpreter CallContext to one from step 2
all except 4... 11:14
and "3a"
muixirt i ask because calling a sub with pir seems to be slower than in perl5 11:16
bacek muixirt, it is. But it's more expensive at least due multi-methods lookups.
muixirt even if there's only one candidate? 11:19
dalek r: 6c941a0 | bacek++ | t/ (17 files):
Rename t/data into t/parse for consistency reason with other tests.
r: 7f3da9f | bacek++ | src/PIR/Grammar.pm:
Refactor <param_flag> to have only one flag per param
bacek muixirt, it's cached afaik.
muixirt my little test prog calls an empty sub a million times, so if it's cached then there shouldn't be a time penalty. Right? 11:22
bacek muixirt, something like this. You can check current performance on examples/benchmarks/fib.{pir,pl} 11:23
muixirt bacek, yes these examples show the same as my test programs do 11:25
bacek muixirt, yeah. parrot is about 2 times slower than perl5. 11:27
11:42 whiteknight joined 11:47 lucian_ joined
dalek r: 5b529bc | bacek++ | src/POST/Register.pm:
Add POST::Register.modifier attribute to use with PCC calls.
11:47
r: a56687b | bacek++ | src/PIR/Actions.pm:
Store param modifier in POST.
muixirt hi whiteknight 11:49
whiteknight good morning muixirt
muixirt whiteknight: sorry for being "incredibly unfair" 11:51
whiteknight muixirt: that's okay. I tend to take the long view on Parrot
we've obviously not done much optimizing so far
muixirt whiteknight: well that would be difficult for a fast moving target like parrot 11:53
whiteknight muixirt: Yeah, it's a two-edged sword. There is a lot of fixing in some places before we can start optimizing things 11:54
PCC system is a good example of a system where we've done all the fixing, but none of the optimizing. Hence the performance disparity you are seeing 11:55
moritz that's not quite true 11:56
whiteknight not quite?
moritz there was an optimization phase after The Big PCC Merge
whiteknight not much of one, and not on the top-level algorithmic scale that I am envisioning
I estimate we could cut PCC overhead by 50% in coming months 11:57
moritz is anybody working on that 11:58
?
whiteknight moritz: not working, no. "planning"
we need to come up with a good strategy to actually squeeze that performance out, and it may require fixes to other systems (like packfiles) first 11:59
moritz wonders on what time scales Lorito will be implemented 12:00
whiteknight that's a good question. They were supposed to talk about it at YAPC either yesterday or sometime this week 12:01
I wish I could be there for that conversation
nopaste "muixirt" at 192.168.1.3 pasted "test programs" (27 lines) at nopaste.snit.ch/21470 12:21
whiteknight yeah, I suspect the vast majority of runtime cost there is all in creating the call object and sub context 12:24
plus, the GC pressure
muixirt I might be incredible unfair again but I think Parrot is to dynamic languages like complicated shaped building blocks is to tetris 12:29
whiteknight muixirt: I don't argue that Parrot isn't great *now*, but we've hardly stopped development 12:30
if anything, development velocity has been increasing in recent years
and a majority of work that we've done in the past two years has been focused on cleanup, improvements, and bugfixes. 12:31
We're at the point now where people can really begin optimizing and optimizing some things very aggressively
ash_: ping 12:33
12:37 dmalcolm joined
nopaste "bacek" at 192.168.1.3 pasted "little bit faster version of sub invoke test." (20 lines) at nopaste.snit.ch/21471 12:37
bacek muixirt, check nopaste. It's about 30% faster.
muixirt bacek, great! 12:42
bacek muixirt, our current PIR compiler isn't smart enough to do such optimisations...
muixirt I'm not smart enough either to parse that :-) 12:43
nopaste "muixirt" at 192.168.1.3 pasted "even faster" (12 lines) at nopaste.snit.ch/21472 12:45
whiteknight if we could add the optimization that a function with no arguments doesn't create a call object, that would be very good 12:49
combine that with optimizations to cache constant call objects to bytecode, a "fast path" for calls which only have a fixed number of positional arguments, and polymorphic call-side caching, we could end up with huge performance gains 12:50
bacek muixirt, it's not subroutine call
whiteknight ...and an optimization pass to inline simple functions
muixirt bacek, it's more Knuthian MIX style subroutine :-)
dalek rrot: r47753 | khairul++ | branches/gsoc_instrument (2 files):
Combined 4 methods into 1 method returning a hash of the current context information + updated test.
whiteknight though inlining we probably want to do at the PAST optimization level
bacek whiteknight, we still need CallContext for arg-less subs. For local registers
whiteknight, with PIRATE it doesn't really matter. We can do optimisations on all levels :) 12:52
whiteknight bacek: true. We can't get rid of CallContext entirely 12:53
bacek: yes, PIRATE is quite awesome. The problem is that we use IMCC instead of PIRATE
bacek whiteknight, it's temporary :) 12:54
whiteknight what is temporary?
bacek IMCC 12:55
12:56 cognominal joined
whiteknight we really should come up with a roadmap to deprecate and remove IMCC eventually 12:56
We can't replace it with PIRATE if PIRATE is going to be much slower 12:57
and we can't replace it with PIRC if PIRC is not functional
bacek pirate is slow because parrot (and nqp) is slow. 12:58
whiteknight True.
bacek Eat your own dog food in action... 12:59
whiteknight if we have an AOT compiler, we can compile PIRATE down to a proper native executable and use it that way
that would be the best speed boost
bacek But. With tcurstis's optimizer we can optimize POST generated by pirate 13:00
whiteknight yes
bacek and than use it for optimizing pirate it self
whiteknight right. So we build PIRATE with PIRATE, all optimizations turned on. Then we pass it to LLVM, turn on all optimizations there too, and create a .so. 13:01
bacek yes
stage2
whiteknight link that to Parrot, and we have a new frontend
bacek yes
13:02 kid51 joined
bacek looks like good bootstrapping plan :) 13:02
kthakore hola! 13:09
trac?
purl 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
kthakore Can we (noobies) have some more tickets here? trac.parrot.org/parrot/report/19 13:10
13:14 bluescreen joined 13:16 spinclad joined 13:20 bluescreen joined 13:27 gbacon joined
bacek kthakore, take any "todo" ticket. They are usually not-so-complex. 13:41
kthakore, e.g. TT#1627 13:42
or "deprecation" tickets with milestone in past. 13:43
NotFound whiteknight: even better: don't link it, dynload it when needed. 13:46
13:48 kid51 joined
dalek nxed: r516 | julian.notfound++ | trunk/winxedst1.winxed:
fix again multi const
13:51
NotFound bacek: Not-so-complex lke, for example, moving ops to dynops? ;) 13:52
bacek NotFound, yeah, something like this :) 13:53
whiteknight NotFound: if we get to the point where we can compile PIRATE to a heavily-optimized .so file, we're in a good shape whether we statically or dynamically load it
at that point, all the hard problems have been solved
NotFound Let's hope so, and keep fixing problems in the meantime. 13:54
whiteknight NotFound: how is Winxed doing now? I would like to write up some examples for PLA in Winxed sometime soon, so I'm looking to see if you have a stable version or a release or anything I can play with 13:55
whiteknight also wants to write up some basic bindings for Rakudo, will probably wait till after Rakudo STar 13:56
NotFound whiteknight: after that last commit is doing well.
whiteknight NotFound: okay, do you have releases, or should I just track master?
kthakore bacek: thanks 13:57
whiteknight er, I guess it is HEAD on google code
NotFound whiteknight: current releases is 0.Work-in-progress, which means trunk
whiteknight gotcha
NotFound I'll be glad to help you, and learn something PLA while doing it. 13:58
whiteknight NotFound: it's really easy. Basically just new 2D matrix PMC types, instead of arrays
NotFound Is plumage fixed? 13:59
whiteknight I have no idea
13:59 bubaflub joined
NotFound How can I install PLA, then? 14:00
Coke cries. it /was/ too late for more coffee.
whiteknight it has a README file. git clone, "parrot setup.pir build; sudo parrot setup.pir install"
Coke Ok. Task:Parrot is on its way to CPAN. Another useless module for your enjoyment.
NotFound Nice
whiteknight We should probably get plumage fixed soon 14:01
14:01 patspam joined
whiteknight maybe I can take a look at that nowish 14:02
NotFound whiteknight: I hope sudo isn't required if installing to a user dir.
whiteknight NotFound: no, probably isn't
I've never installed to a user dir, so I can't say for sure. But I can't imagine why it would need to be 14:03
NotFound I'll tell you in a minute... 14:04
atrodo Apparently, my netbook, if I'm moving the mouse while holding down the key for 2 minutes (say, checking back IRC logs), it dims the lights as though the mouse hasn't moved in the past 2 minutes 14:06
NotFound Some more than a minute, I must install libatlas first. 14:08
Coke (task parrot is underspecified. will add the rest of the deps this week. 14:10
NotFound whiteknight: Uh.... setup.pir doesn't compile.
$S0 = sysinfo 4
14:10 plobsing joined
NotFound I think syssinfo is a dynop now. 14:10
japhb <rez> 14:11
Plumage is still broken. I took a look last night, but didn't get very far. I think that Plumage needs to switch over to using nqp-setting.pbc in the Configure stage, and that should bring it back to life. 14:12
If someone wants to do that, I'd be most appreciative. Otherwise I'll try to find another small break today and see if I can get it done. 14:13
Also, if there are any dynops needed, well clearly that will have to be fixed as well. 14:14
whiteknight NotFound: weird, I thought I had fixed that problem 14:15
NotFound whiteknight: I just git cloned it
whiteknight NotFound: oh, nevermind. PLA is only targetted to run against Parrot 2.3.0, not Parrot HEAD
this was back before the dynops were separated out
japhb I'm soon to disappear for yet another meeting. Anyone have any other Plumage questions for me before I have to leave?
whiteknight japhb: no questions. I'm looking at the code now to see what (if anything) I can do 14:16
japhb whiteknight, thank you!
NotFound Adding: .loadlib 'sys_ops.so' it works,.
whiteknight japhb: if I can get a commit bit later, I may actually be able to do some actual helping 14:17
japhb Do you have a gitorious account?
whiteknight japhb: whiteknight
purl whiteknight is probably mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
japhb OK, hold on
NotFound whiteknight: then we may be in trouble, I just test winxed with almost-trunk parrot.
whiteknight NotFound: okay, I may need to create a bleed branch in the repo to track Parrot head, and keep the integration branch targetted towards the last stable release 14:18
NotFound whiteknight: you need to target something recent if you want it to be usable with Rakudo* 14:19
whiteknight NotFound: stable versions. Rakudo Star will be after 2.6, which will also be stable
everybody wins
NotFound Good
wins-winxed ;) 14:20
whiteknight NotFound: by the deprecation policy, winxed should target stable releases too :)
NotFound whiteknight: yeah, but I'm the only developer and life is short. 14:21
whiteknight life is short 14:22
NotFound It may work, I just don't test it.
japhb whiteknight: want to be an admin for Plumage as well? 14:23
whiteknight japhb: sure, whatever I can sucker you in to giving me :)
japhb You've got it.
*imagine sudo warning here* 14:24
:-)
whiteknight of course :) 14:25
NotFound With a great power... 14:26
atrodo comes great parties 14:27
NotFound And great bill from the electric company. 14:28
japhb And mysterious holes in the wall
dalek kudo: 7b5b9d5 | moritz++ | docs/announce/2010.06:
un-split cognominal's personality
14:30
rrot: r47754 | NotFound++ | trunk/t/pmc/arrayiterator.t:
test ArrayIterator defined_keyed
14:32
rrot: r47755 | chromatic++ | trunk/src/pmc_freeze.c:
[src] Fixed compilation warnings in src/pmc_freeze.c. No functional changes.
ash_ whiteknight: pong 14:39
dalek r: b04cf33 | bacek++ | t/01-parse/01-subs.t:
Add test for :call_sig parsing.
14:40
r: e2f20dc | bacek++ | t/ (2 files):
Add tests for POSTint param modifiers
r: bbaab60 | bacek++ | src/PIR/Actions.pm:
Fix POSTing :named modifiers.
r: 060a45d | bacek++ | (3 files):
Add first tests for PCC calls
whiteknight ash_: by chance, will the new NCI system be able to handle calls to shared libs written in FORTRAN? 14:42
ash_ i don't know.... are those callable from C? 14:43
(i can check)
is there a specific reason you'd like to call fortran? (because if its for fortran for loops, you can do the same optimizations with the restrict keyword in C) but if its for an already existing library then it would need to be callable from C 14:44
moritz fortran and C share the same calling conventions, usually 14:45
the fortran compilers just apply some name mangling
which is of course non-standard and non-portable among compilers
ash_ so i guess you'd need to know how it name mangles 14:46
whiteknight what I really want to do is tap into the LAPACK and BLAS libraries, both written in fortran 14:47
in Fortran, all parameters are passed by reference, and an underscore is appended to the end of the name
dalek rrot-linear-algebra: d8c383b | Whiteknight++ | README:
update README. Current master still targets 2.3.0, not 2.2.0
14:48
ash_ whiteknight: i can do some tests, but i see no reason currently why that wont work 14:49
whiteknight ash_: so in "fortran mode", all INTVAL and FLOATVAL would need to be passed by reference. All other pointers can stay unmangled
ash_ as long as there is a way to mangel the names properly according to the compiler
whiteknight okay
NotFound: the parrot-head branch of PLA includes that lib. I haven't tested it yet to see if it works 14:50
ash_ whiteknight: also, i got most of my system working now, i need to do some cleanup on memory stuff, but i now build all of the core_thunks.c thunks dynamically 14:51
a cacheing mechanism would also be useful, since some thunks are repeated 14:52
whiteknight ash_: yes, caching would be very nice. If you cached to a hash by signature string I think that would be the best and most useful 14:57
NotFound whiteknight: I'm not gitted enough to know how to switch branches 14:58
moritz if it's a remote branch: git checkout -b branchname origin/branchname # the first time only 14:59
then just git checkout branchname
NotFound moritz: I'm not gitted enough to know what's a remore branch X-) 15:00
remote
moritz NotFound: it's a branch that's somewhere on a server (like github, gitorious)
ash_ gfortran seems to mangle fortran90 names by doing ___modulename_MOD_[subname|variablename]
moritz as opposed to a local branch, which is one that's not shared
ash_ thats pretty easy
NotFound Then what's a non-remote one X-)
moritz then just 'git checkout branchname'.
whiteknight ash_: it's not a huge deal. Don't worry about it if it's going to distract you from other important work 15:01
NotFound What is 'origin' ? 15:02
moritz it's the name of a remote 15:03
ash_ whiteknight: it might be a good test to add to the test suite though, i'll keep it in mind
whiteknight okay, thanks
ash_ origin is the default remote that git looks to if you do pushes and fetchs
whiteknight NotFound: if you are getting it from gitub, "origin" is just another name for github
NotFound Sigh... As usual people teach things in a language that only understand whose that already knoes X-)
whiteknight "origin" is the place where you got the repo from. 15:04
ash_ all external repositories are "remotes" in git, if you cat your .git/config file it should list some in there (its pretty easy to read)
moritz (or git remove -v, if you can't have a cat handy :-)
dalek rrot: r47756 | chromatic++ | trunk/src/call/context.c:
[PCC] Avoid register allocation for functions which have no regs.
15:05
rrot: r47757 | chromatic++ | trunk/src/call/context.c:
[PCC] Reordered context initialization to remove duplicated work.
rrot: r47758 | chromatic++ | trunk/src/call/context.c:
[PCC] Removed (apparent) duplicate register clearing in init_context(). The

three commits. This commit is the riskiest; if anything has problems, it's likely this one.
NotFound fatal: git checkout: updating paths is incompatible with switching branches/forcing
purl i already had it that way, NotFound.
rrot-linear-algebra: ad6f7af | Whiteknight++ | src/pmc/nummatrix2d.pmc:
add a DECLATTRS macro, for great win
15:06
ash_ NotFound: what command did you run?
NotFound If you are trying to convert me to a git enthusiast, you aren't doing well X-) 15:07
ash_: git checkout -b parrot-head github.com/Whiteknight/parrot-linea...arrot-head
ash_ ah, i see, thats something you might do with svn, but that wont work with git 15:08
NotFound What????
ash_ you can't target a specific branch with git, you have to pull the whole repository 15:09
NotFound I don't do such things in svn even with too much beers X-)
moritz git remote add whiteknight github.com/Whiteknight/parrot-linear-algebra.git
git remote update
git checkout -b parrot-head whiteknight/parrot-head
NotFound ash_: I was just doing what I was told so.
ash_ moritz++ is a faster typer than me
arnsholt NotFound: If you want to work with git, a useful place to start is this: "git is almost, but not quite, entirely unlike subversion" =) 15:10
NotFound arnsholt: I'm tired of sites suggesting that people doesn't like git because they are too used to subversion. I'm not too used to subversion, I learnt subversion just because I needed it to work with parrot. 15:12
arnsholt Sorry, but that's not actually what I tried to say 15:13
I'm still climbing git's learning curve myself, and found that to be a helpful revelation
ash_ www.gitready.com/ and book.git-scm.com/ are good references for things, for anyone that uses git, i still check them all the time to make sure i am doing things 'right'
arnsholt This article by Joel Spolsky is quite good as well: www.joelonsoftware.com/items/2010/03/17.html
It talks about Mercurial and not git, but the points are still pretty valid 15:14
NotFound arnsholt: thanks, sorry if I was rude.
whiteknight I'm still climbing the git learning curve myself, I still not any good at it but practice makes perfect
arnsholt NotFound: No problem. I can work up a good mad about git too =) 15:15
NotFound Switched to a new branch "parrot-head" :) 15:16
whiteknight NotFound: yay! 15:17
NotFound "parrot setup.pir install" doesn't print anything and I don't see nothing installed. 15:21
arnsholt But I think the one thing that really has sold me on git is the fact that you can version your whole development process 15:22
Not only from "this I can share with others" to "this I can share with others"
whiteknight NotFound: weird. Did setup.pir build do anything? 15:25
ash_ whiteknight: my nci branch also builds rakudo, which is a pretty good sign i think, it seems slow though.... 15:26
whiteknight setup.pir is just a thin wrapper around fperrad's distutils, so I don't know what it does or how it works,
NotFound Looks like it just print a ldd result from a check and doesn't build anything.
whiteknight ash_: that is a very good sign. You'll definitely want to do some benchmarking, of course. A cache would be a huge help in any case 15:27
ash_ yeah, it sucks though that i have to make 2 calls to libffi for 1 NCI dispatch
whiteknight really? why?
ash_ Parrot_pcc_fill_params_from_c_args needs to be called to fill out the arguments, and since i don't know it at compile time, i build the call dynamically 15:29
whiteknight NotFound: can you check in the install directory and see if the .so file is there? I've never seen the installer not work
ash_ github.com/ashgti/parrot/blob/gsoc_...i.pmc#L880 (really more like lines 862 - 880)
NotFound whiteknight: looks like it doesn't even generate the .c files from the pmc 15:30
whiteknight NotFound: weird
ash_ brb gotta head to campus & 15:31
15:34 ash__ joined
atrodo Okay, I need some help again. I've got a pbc I've compiled inside of parrot, and want to pass it off to my program through the embedded interface so i can write it to file 15:35
I was passing it back as a string, and thought I was cool since parrot strings arn't null terminated, and since I'm not in C, my strings arn't null terminated 15:36
But, they pass out of parrot as char*'s which makes it null terminated. Any ideas?
15:37 tcurtis joined
dalek rrot: r47759 | NotFound++ | trunk/t/pmc/exceptionhandler.t:
test ExceptionHandler handle_types_except method
15:38
NotFound atrodo: just don't pass it as char* 15:39
atrodo other way around. I need to get it out of parrot into my application as a pointer and a length 15:40
NotFound atrodo: if it has an 8-bit based encoding you can just pass the char * and the length. 15:41
Uh.... maybe not, let me check... 15:42
Yes, it should be enough, Parrot_str_to_cstring doesn't check for null terminator, it just add one. 15:43
atrodo But how do I know how long the string that Parrot_str_to_cstring returns is? 15:44
NotFound Use the parrot string bytelength
atrodo hmmm, also, not in the embed interface 15:45
NotFound atrodo: tickets welcome
atrodo hmm, is it a function or part of the structure? 15:46
NotFound A function.
purl a function is declared in debug.h and defined in debug.c but is only used in imcc/pbc.c , and the const_table is used in a lot of places unrelated to pdb.
atrodo there it is, found it, Parrot_str_byte_length
NotFound atrodo: but it doesn't matter, if you need something just ask for it. If there isn't a function it should be created.
(or the rigth way documented) 15:48
cotto_work ~~ 15:56
15:57 lucian joined 16:04 ash_ joined
atrodo hmmm, could be wrong. Giving me wacky answers 16:05
NotFound Wrong? Me? Impossible! ;) 16:07
16:07 kid51 joined
kid51 #parrotsketch 16:07
purl it has been said that #parrotsketch is the channel where the core parrot committers report weekly status, moderated by our project manager, coke, every Tuesday at 18:30 UTC
ash_ is there a tool out there that can easily convert time zones right? 16:09
that would be nice 16:10
kthakore kid51: 18:30 UTC is 4:30 for us in NA right
kid51: ?
moritz ash_: I think 'date' can do it
kthakore date 18:30 UTC
??
moritz ash_: at least I call date --utc, and see how many hours I have left
kthakore moritz: what chu talkin about
oh not in this irc
moritz man 1 date 16:11
kthakore dohs!
moritz purl: clock?
purl moritz: LAX: Tue 9:11am PDT / CHI: Tue 11:11am CDT / NYC: Tue 12:11pm EDT / LON: Tue 5:11pm BST / BER: Tue 6:11pm CEST / IND: Tue 9:41pm IST / TOK: Wed 1:11am JST / SYD: Wed 2:11am EST /
ash_ moritz: yeah, date -u (--utc is linux specfic)
kthakore ah
wth date --utc gives me 16:11 Tue 2010
so parrotskecth is over? 16:12
moritz purl: #parrotsketch?
purl #parrotsketch is probably the channel where the core parrot committers report weekly status, moderated by our project manager, coke, every Tuesday at 18:30 UTC
moritz kthakore: 16 < 18
so you still have 2h 17m to ps 16:13
kthakore ah lol I am stupid 16:14
16:14 theory joined
kthakore moritz: thanks leet hax0r 16:14
trac?
purl hmmm... 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
kthakore /win/win 2 16:15
16:17 sjn_ joined
NotFound 18:30? 16:18
purl: #ps?
purl i heard #ps was a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
NotFound purl: parrotsketch? 16:19
purl parrotsketch is a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch
kthakore bacek: that ticket is alread done
NotFound ETOOMUCHUNMAINTAINEDREDUNDANCE
kthakore NotFound: can I close this ticket 1627? The done_testing ticket is done in t/library/test_builder_done_testing.t 16:20
NotFound: it has bad test and failing tests
NotFound kthakore: if you close it, you need to open other. Pointless IMO. 16:22
kthakore NotFound: ok
NotFound: what do I need to do to close it?
NotFound: what is various error conditions and proper/improper use?
NotFound kthakore: as the ticket says: "just to fix the Key VTABLEs." 16:23
The "just" may be considered irony ;)
kthakore NotFound: what where does it say that?
NotFound: 1627
right
NotFound: tests for Test::More::done_testing 16:24
cotto_work bacek, imcc currently knows how to avoid generating some ops (e.g. ge_i_ic_ic) that PIRATE generates. Would it be easier to temporarily drop ops.num or to make PIRATE smarter?
NotFound Oh, sorry, I looked at the wrong windows.... one moment.
kthakore NotFound: there is in VTABLEs in there
NotFound: oh ok
cotto_work s/ops.num/ops.skip/
NotFound kthakore: tests for Test::More::done_testing? 16:25
kthakore yeah
NotFound: see the t/library/test_builder_done_testing.t
NotFound No idea about that.
kthakore NotFound: it seems to be done
bacek: PING!
NotFound: no worries I will ask the guy who told me to do this ticket
NotFound: any easy peasy tickets for newbies? 16:26
dalek kudo: ad2afb5 | moritz++ | src/core/Cool-str.pm:
stringify self in Cool.trim-{leading,trailing}
ash_ do PMC's have a vtable entry called when they are destroyed? 16:28
tcurtis ash_: void "destroy(INTERP, PMC *self)" docs.parrot.org/parrot/latest/html/...c.pod.html 16:29
ash_: "Called when the PMC is destroyed. This method is called by the GC when it determines that a PMC is dead and that the PMC has marked itself as having a destroy method (an active finalizer).When this method finishes, the PMC will be marked as dead. As such you should make sure that you don't leave any references to it in any Parrot structure by the end of the method.This method may not throw an exception. It will be ignored if it does."
NotFound kthakore: When I started I spent lots of time looking for that, the ones marked as easy usually weren't. And I don't think we improved that since then.
kthakore NotFound: :P
you guys make everything super hard man
*sigh* 16:30
it is beyond me how people break into parrot
ash_ thanks tcurtis
tcurtis++
NotFound kthakore: slowly ;)
tcurtis kthakore: trac.parrot.org/parrot/ticket/812 is easy, although perhaps a little too trivial.
kthakore NotFound: bah ....
tcurtis: sure you say that now 16:31
kthakore looks at the beast
NotFound kthakore: I started by looking for unused code and deleting it.
kthakore NotFound: haha that is this ticket to a T 812
NotFound kthakore: No kidding, you can ask chromatic about that. 16:32
kthakore NotFound: aww .. he is not on
NotFound: that means I AM FREE
lunch times
ash_ are there ack types for parrot stuff? 16:33
cotto_work some are built in
NotFound kthakore: no idea about 812, PCT is out of my skills.
ash_ ah, yse i see that now
s/yse/yes/ 16:34
cotto_work andy sometimes hacks on Parrot
msg bacek imcc currently knows how to avoid generating some ops (e.g. ge_i_ic_ic) that PIRATE generates. Would it be easier to temporarily drop ops.skip or to make PIRATE smart enough to avoid generating those instructions? 16:36
purl Message for bacek stored.
16:43 davidfetter joined 16:50 ambs joined
mikehh opbots, names 16:53
kthakore tcurtis: I did that ticket and made a patch
tcurtis: maybe chromatic will accept 16:54
tcurtis kthakore: that's not exactly correct. The POD for PAST::Op.lvalue needs to stay even though PAST::Op.lvalue isn't actually necessary. PAST::Op's lvalue attribute has a different meaning from PAST::Node's. 16:56
kthakore tcurtis: ah ok 16:57
tcurtis: just comment it there. I am running tests to ensure nothing broke
tcurtis: I will do the pod in a sec
cotto_work msg cotto pir_instruction:sym<if_op> and pir_instruction:sym<unless_op> need more tests. Some of the cmp ops don't have _i_i_ic variants.
purl Message for cotto stored.
kthakore ok lunch to wait for tests 16:58
ash_ so, is the current plan to have nqp compile pir? 16:59
and eventually remove imcc?
NotFound About UTC, this command should give #ps time in your locale: date --date='2010/06/22 20:30 UTC'
dalek rrot: r47760 | NotFound++ | trunk/t/pmc/orderedhashiterator.t:
clean OrderedHashIterator tests and add some more
17:00
cotto_work ash_, we'd like to do that. I'm not sure how it'll work with PIRATE's speed issues though.
davidfetter is there a specific channel for rakudo? 17:02
davidfetter tried #rakudo and was the only person there
bubaflub davidfetter: i usually try #perl6 on freenode 17:03
ash_ davidfetter: #perl6 on freenode is about rakudo a lot (although they talk about more than just rakudo)
davidfetter ah, freenode. ok :)
17:05 whiteknight joined
cotto_work hi whiteknight 17:11
whiteknight hello cotto_work
17:14 patspam joined 17:17 kthakore joined 17:26 Chandon joined 17:28 shockwave joined
shockwave purl paste 17:28
purl paste is probably (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
nopaste "shockwave" at 192.168.1.3 pasted "Parrot internal assert failure." (126 lines) at nopaste.snit.ch/21478 17:29
shockwave Hello people.
purl Greetings, program!
kthakore tcurtis: ok I did your thing and I am retesting
tcurtis: can I just skip to the pct tests some how? 17:30
shockwave I'm getting an assertion in Parrot that I don't know how to fix.
cotto_work Does anyone know why we have _i_i_ic op variants for lt, le, eq and ne but not for gt and ge?
shockwave Oops, forgot to mention the exception: src/runcore/cores.c:635: failed assertion 'pc'
Referring to the code I pasted, which is generated by my compiler, the exception happens at line 56 (Enable lines at the paste site). 17:31
That non-method function is called at line 82.
If that line is commented out, the exception doesn't happen, since the sub isn't called. 17:32
For convenience, I pasted the %CreateInstance sub at the bottom.
Again, I'm not sure why that assertion failure is happening.
Any help is appreciated.
Thanks
dalek rrot: r47761 | coke++ | branches/html_cleanup/docs/index/index.json:
Correct link to other page.
17:33
rrot: r47762 | coke++ | branches/html_cleanup/docs/index/pdds.json:
use *.pod explicitly so we can keep simple glob syntax.
17:34 eternaleye joined
shockwave To clarify: The %CreateInstance sub should be working fine, since I've been successfully using it for months, just the way it is, to construct all my instances. The problem seems somehow related to calling 'static%s' sub from the anon sub at the bottom. The call to %CreateInstance is probably just the trigger. 17:35
I'm using Parrot 1.5.0 17:36
tcurtis kthakore: "make library_tests" includes the PCT tests.
kthakore: I think they're the first set of tests it runs, in fact. 17:37
bubaflub shockwave: that's a pretty old version of Parrot... any reason for using that one?
kthakore well it passes
shockwave bubaflub, sorry. I mean 2.5.0 -- I just updated like 10 minutes ago.
(This was happening before I updated... I updated to see if the problem would go away) 17:38
I know I pasted a whole bunch of code. If anyone needs me to disect it, just let me know. 17:39
kthakore tcurtis: crap what was the ticket number again? 182? 17:42
nopaste "shockwave" at 192.168.1.3 pasted "High level language code that's converted to PIR" (10 lines) at nopaste.snit.ch/21479
NotFound shockwave: pc assertion failure sometimes is caused by exception handling problems. 17:43
nopaste "kthakore" at 192.168.1.3 pasted "patch for ticket 812" (19 lines) at nopaste.snit.ch/21480
shockwave Just for kicks, I pasted the HLL code that gets translated into the PIR I originall posted ^^^^^
kthakore tcurtis: how about that ^^
shockwave NotFound: Exception handling problems on whose end? 17:44
kthakore tcurtis: done
NotFound shockwave: don't understand the question. 17:46
shockwave NotFound: Assertion failures are sometimes caused by exception handling problems thrown from PIR or by internal Parrot issues?
tcurtis kthakore: looks good. 17:47
NotFound shockwave: the well known Parrot issue with inner runloops.
whiteknight shockwave: your code looks cool, despite the error. You have it online anywhere? 17:48
ambs hmms.. shockware... transformers.. how I miss the original series :)
shockwave whiteknight: The generated code? whatcha talkin bout?
whiteknight shockwave: the compiler source
I think I had seen it at one point, but I don't have it anymore 17:49
dalek rrot: r47763 | coke++ | branches/html_cleanup/tools/docs/make_html_docs.pl:
Remove debug output, verify links point to other pages,
shockwave shockwave: Oh, no. Since there is still lots to do, it's still within the confounds of my secret volcano layer.
cotto_work shockwave, there's still lots to do in Parrot too. 17:50
and PIRATE
shockwave cotto_work: Don't tell me that. I'm hoping to use Parrot on some production software that I will hopefully be starting within 2 months (A videogame) 17:51
I was hoping that after 9 years, things were solid enough to use.
:(
cotto_work time guarantees nothing
shockwave and so it seems. 17:52
NotFound shockwave: testing the exception handling hypotesis is easy: just add 'finalize' to *any* exception handler in rakudo X-)
shockwave NotFound: I don't use rakudo
The compiler is C++.
cotto_work so the same deal as winxed 17:53
NotFound winxed already uses finalize
shockwave Does the generated code looks sane?
NotFound shockwave: try adding explicit return to the sub that doesn't have one, and exit at the end of the main one. 17:54
That usually avoids the failure on exception handling problems. 17:55
17:55 eternaleye joined
shockwave NotFound: Ok, I'll try adding an explict return to all subs that don't include one. Just .return(), correct? 17:55
NotFound shockwave: yeah 17:56
shockwave: mmm... you have a sub both :immediate and :load, so you may be creating the same class twice 17:58
shockwave NotFound: It's been working fine so far. But I just removed it, to check, and still. 17:59
17:59 ash_ joined
shockwave I've also been adding the empty return() to the generated code and the library subs, but still. 17:59
I added .return() to just about everything, but nothing. 18:04
NotFound Odd
shockwave: Do you have exception handlers in your library? 18:06
shockwave NotFound: No, not yet. I'm not throwing any exceptions myself.
But, my compiler knows know to generated them. Let me place that code within a try statement.
18:07 dmalcolm joined
shockwave Nothing 18:07
atrodo NotFound> ::shrug:: I'm not sure why the byte_length doesn't work, but it's me since it works in my C example 18:08
NotFound atrodo: Can you nopaste the code?
shockwave Something is definetly fucked up somewhere. I'll try to create as small a testcase as possible out of the code I have, and I'll create a ticket. 18:10
atrodo I can, but not enough that it encompesses everything. Hold on
gist.github.com/448838 18:11
NotFound atrodo: What's the problem, the content written is not the full string? 18:13
atrodo Too much data is being written
NotFound atrodo: what's outStream and what is your platform? 18:14
atrodo The result of len is massivly large, 24M for basic empty pbc
outStream is a TFileStream. I'm in pascal, using kylix on linux
18:15 eternaleye joined
atrodo haha, i figured it out 18:15
NotFound If len is too long, the problem is not in writing the string. 18:16
atrodo Nope, it was certainly my problem. I was refrencing the wrong c function 18:17
dalek rrot: r47764 | Chandon++ | branches/gsoc_threads (10 files):
Add alarm mechanism; not yet hooked into anything.
18:22
18:27 bubaflub joined
atrodo hurray! it's all happy. 18:29
NotFound Good
atrodo time to commit it
kthakore tcurtis: so ... who will accept that patch?
nopaste "shockwave" at 192.168.1.3 pasted "Sort snippet which creates an internal assertion failure." (17 lines) at nopaste.snit.ch/21481 18:34
shockwave I was able to cut down the code to the bare minimum that creates the same assertion as above. 18:35
The problem seems pervasive.
I'll create a ticket.
Coke you don't need the foobar sub to generate the snippet... 18:36
shockwave Coke: Calling foobar is what causes the error. 18:37
The return value isn't needed. I left it in by mistake. 18:38
cotto_work shockwave: that's not quite minimal
nopaste "cotto" at 192.168.1.3 pasted "more minimal version" (7 lines) at nopaste.snit.ch/21482
Coke shockwave: yes, but you don't need the declaration of the foobar sub. 18:39
it's just the invocation you need. =-=)
shockwave cotto_work: I'll paste your example, with the foobar ontop, just to make the point clearer.
Coke though, given that you're calling an immediate sub when other things are not yet in place could be teh root cause. 18:40
NotFound Looks like is trying to invoke a ParrotInterpreter
shockwave What 'component' is this? core? 18:41
For your convenience: trac.parrot.org/parrot/ticket/1688 18:42
NotFound shockwave: Why do you want to use :immediate? 18:43
shockwave NotFound: That's how I'm defining the class properties.
NotFound: Also, that's where a class's static constructor is called from. 18:46
I have to go to the laundry to pick up a shirt. I'll be back later. 18:47
Thanks for the help, guys.
tcurtis kthakore: if no one else has applied it in a few days, remind me, and I will(I'm still a little hesitant to do much to trunk). 18:50
dalek TT #1688 created by shockwave++: Internal assertion triggered when writing trivial code. 18:51
TT #1688: trac.parrot.org/parrot/ticket/1688
cotto_work shocwkave_away: that's not a very good ticket title. Nobody can look at that and think "Hey, I think I know how to fix that." or "That looks like something I could hack on." 18:54
dalek rrot: r47765 | chromatic++ | trunk (2 files):
[ops2c] Improved generated code by adding a space in lines of the form:

Arguably the *grammar* is the best place to make the change, but this is better now, and someone else can fix that.
18:55
cotto_work (I intend that as constructive criticism.) 18:56
kthakore tcurtis: we will get chromatic to do it then 18:59
19:02 LoganLK joined 19:05 atrodo joined 19:09 Andy joined
whiteknight japhb: ping 19:19
19:23 eternaleye joined
dalek rrot-plumage: 3ba9a44 | whiteknight++ | Configure.nqp:
Something is weird with contextuals. Add a quick 'n ugly fix to get Configure.nqp to run again
19:25
darbelo whiteknight: ping 19:27
whiteknight purl msg japhb: I committed an ugly fix for plumage. Configure.nqp runs again and make works.
purl Message for japhb stored.
whiteknight darbelo: pong
dalek rrot: r47766 | coke++ | branches/html_cleanup/tools/docs/make_html_docs.pl:
coding stds
19:28
darbelo Did tha commit fix plumage?
dalek rrot: r47767 | coke++ | branches/html_cleanup (2 files):
Remove function that was only ever used in the test suite.
whiteknight darbelo: appears so, yes
19:28 allison joined
kthakore whiteknight: hi I have a patch (a trvial one again_ pending at 812 19:29
whiteknight: ticket 812 I meant
ash_ does anyone have any good tools for removing whitespace from files? 19:30
darbelo Not for me. I tried to fix some issues with plumage a while back but failed.
whiteknight darbelo: you mean that commit doesn't make plumage work for you? 19:31
darbelo Yes.
whiteknight hmmm
oh, my installed Parrot is 2.3.0, not 2.5.0-devel
maybe more things are broken in parrot HEAD
darbelo Tere are. 19:32
whiteknight great
purl msg japhb nevermind, that last commit only fixed plumage for parrot 2.3.0, not Parrot HEAD.
purl Message for japhb stored.
cotto_work That is indeed an odd fix. 19:34
darbelo Agh nopaste is down.
cotto_work no it's not
darbelo I can't access it from here.
nopaste "cotto" at 192.168.1.3 pasted "it doesn't appear to be down" (1 line) at nopaste.snit.ch/21486 19:35
19:36 patspam joined
darbelo whiteknight: gist.github.com/448948 19:36
That was my last attempt at fixing. You have to regenerate NQPUtils.pir after those modifications. 19:37
whiteknight darbelo: does that fix it?
darbelo Not completely. But it failed farther along last time I tried it. 19:38
19:39 ambs joined
darbelo The opcode 'shr_p_p_ic' (shr<3>) was not found. Check the type and number of the arguments 19:41
What should I replace that with.
19:44 patspam joined
kthakore 0/win 2 19:46
cotto_work darbelo, _i_i_ic exists. You could use that.
19:51 eternaleye joined 19:56 khairul joined
darbelo cotto_work: What the right way to pass an NQP array into a Q:PIR{} block? 20:02
Nevermind. I'm stupid today. 20:04
20:05 Psyche^ joined
cotto_work I'm always glad to not help. ;) 20:05
#ps in 25
20:15 sjn joined
dalek nxed: r517 | julian.notfound++ | trunk/winxedst1.winxed:
fix a stupid, stupid mistake
20:21
shockwave ping NotFound 20:27
NotFound shockwave: pong
shockwave NotFound: I've been grabbing the sub to execute like so: $P1 = get_hll_global ['TestCaseX';'X'], 'static%s' 20:28
I'm just confirming, because it doesn't seem to be the case: It's not possible to do this, is it?: $P1 = find_sub_not_null ['TestCaseX';'X'], 'static%s' 20:29
cotto_work find_sub_not_null doesn't have variants to support that kind of usage 20:30
NotFound shockwave: if you want workaround, I think the better is to stop using :immediate 20:31
shockwave Ok. I'll just have to wait until ticket #1688 is taken care of.
NotFound: How can I replicate that functionality? 20:32
NotFound shockwave: define "that".
shockwave that == The ability to call a sub upon loading of a .pir file representing that class for: 1) defining the class details 2) Calling a 'static' constructor for a HLL class. 20:33
cotto_work It seems to be #ps time. 20:34
tcurtis shockwave: :load :init
NotFound shockwave: :load isn't enough?
tcurtis shockwave: if I correctly understand what you're trying to do.
shockwave err, let me try that.
NotFound Yeah, :init and :load if you want it to be both a main program and a loadable lib 20:35
shockwave It seems :init is all I need. 20:36
Yay!
So what's the difference between init and load, again?
This is how I'm including the file: .include 'TestCaseX.pir' 20:37
NotFound shockwave: :load is run during load_bytecode and :init before calling :main in a program loaded from command line.
shockwave NotFound: Sweet. My problem is solved. 20:38
tcurtis :load is for when it's loaded. :init is for when it's ran directly(or compiled from memory(not sure when this is done..., maybe when you load a PBC but only the corresponding pir file is found?)).
shockwave Well, at least we found a bug out of this whole ordeal.
20:39 ash_ joined
shockwave Thanks again, guys. I'm glad this is working again. 20:39
tcurtis shockwave: :immediate doesn't do the thing you want at all, by the way. :immediate runs at compile time. Not at load time. 20:40
shockwave Wow! at compile time? That's insane. I definetly had the wrong assumptions about that.
20:41 Coke joined
cotto_work You can't get much more immediate than that. 20:41
shockwave I've been using it because I've seen examples like.
cotto_work: True that.
tcurtis shockwave: it's purpose is for stuff like Perl's "BEGIN", and also just for any sort of compile time creation of constants. "In addition, if the sub returns a PMC value, that value replaces the sub in the constant table of the bytecode file." 20:44
s/it's/its/
NotFound I think its main purpose is to expose subtle bugs X-) 20:45
shockwave tcurtis: I see. 20:46
tcurtis: Would you mind expanding a bit on: "and also just for any sort of compile time creation of constants." 20:47
tcurtis: As a compiler writer, I'm interested in this kinda info.
tcurtis shockwave: Declaring constants with the ".const" directive is pretty limited. I'm not sure if it's possible to declare any kind of PMC constant other than Subs. But, if you declare a sub as :immediate, and it returns a PMC, then that PMC gets stored in the constant table with the name of the sub(with the requirement that the PMC can be frozen and thawed, I think). 20:52
NotFound Now that you say it, some immediate problems may be caused by untested freeze/thaw in PMCs 20:53
I've found at least one while adding tests.
shockwave tcurtis: Sounds pretty esoteric. I'm gonna stay away from that.
NotFound One bug in a PMC. I mean 20:54
shockwave NotFound: You're the creator of Winxed, right?
NotFound shockwave: Do you want a signed t-shirt? ;)
shockwave NotFound: That was actually going to be my 1st question. My second was going to be if I can have it for free, since I'm broke. 20:55
NotFound shockwave: sure, as soon as I can start production ;) 20:56
ash_ how are #define's supposed to be formatted? codetest really doesn't like my defines
shockwave NotFound: Ok, but don't go changing your mind in the future. 20:57
NotFound shockwave: the channel is logged, I can't 20:58
shockwave Then it's settled.
NotFound ash_: you neeed to indent, but I'm not sure about the rules. Check some file with #if'ed includes 20:59
I mean, defines 21:00
dalek website: Chandon++ | Cleaning up the Scheduler 21:02
website: www.parrot.org/content/cleaning-scheduler
21:06 patspam joined
shockwave Thanks everyone. See ya. 21:06
21:06 shockwave left
dalek rrot: r47768 | chromatic++ | trunk/compilers/imcc/pbc.c:
[IMCC] Tidied code; no functional changes.
21:06
kudo: 7b089e5 | moritz++ | src/core/operators.pm:
infix:<eqv> for numeric types (did not work with rats)
21:09
21:15 plobsing_work joined
ash_ plobsing_work: i have the nci system working and building now, i also updated the config system so it should work with --without-libffi properly 21:18
plobsing_work ash_: so I can start integrating it in an svn branch for a larger audience now? 21:22
bubaflub purl msg whiteknight i'd be willing to contribute a bit to PLA if you don't mind hand-holding a bit.
purl Message for whiteknight stored.
ash_ sure, let me finish up my codetest changes though, i have it passing almost all of the codetest's now
(just have a bunch of whitespace for whatever reason)
are there any good tools for removing the whitespace on blank lines and at the end of lines? 21:23
plobsing_work vim
tcurtis ash_: if you use emacs, M-\\ strips trailing whitespace from a line, iirc.
ash_ which part of vim? i am already using vim 21:24
plobsing_work :s/\\s+$//
cotto_work :%s/[ ]*$//g
moderator Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets. 21:26
ash_ plobsing_work: i also merged with leto/master today, so it should be pretty darn close to trunk 21:26
(in terms of compatability)
yay, i pass all of codetest now, thanks for the vim tip 21:27
plobsing_work: it builds rakudo fine btw 21:28
tcurtis cotto_work: I don't think I've remembered to write down the thoughts I had about the balance between simplicity and security in Lorito, but if you aren't busy, I can talk a little about them now.
cotto_work sure 21:30
21:30 whiteknight joined
cotto_work tcurtis: what are your thoughts? 21:32
tcurtis From a security perspective, it's desirable to be able to allow or disable specific Lorito-level ops. E.g., if Lorito has pointer arithmetic, PL/Parrot(for example) definitely will not want to allow that.
dalek tracwiki: v25 | cotto++ | CottoTasklist 21:34
tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff
tcurtis But on the other hand, given that Lorito is intended to have fewer, more low-level and simple ops, with more high-level features implemented on top of them, many desirable and necessary and safe high-level features might internally rely on unsafe things like pointer arithmetic.
That's the problem linked in the stub article on the wiki, of course. 21:35
21:35 bluescreen joined
tcurtis In general, I think that the kind of higher-level code that needs direct access to dangerous Lorito-level features is going to be rare, and that most of it will probably be included as part of Parrot's core(not in "make corevm" terms, but in terms of something that's in trunk and built with parrot). 21:38
And most user and HLL code will probably be built on top on that. 21:39
NotFound "most"?
purl somebody said "most" was something that rarely applies to anything related to stocks.
tcurtis IF this assumption turns out to be true,...
cotto_work I think I see where this is going. 21:40
Are you suggesting that the best policy may be to allow the HLL to decide what's secure? 21:41
NotFound I think that if you allow policy control of low level ops they aren't low level anymore. 21:42
tcurtis Then, one viable model for security would include the option to disable a Lorito-level op when used directly, but white-list specific higher-level ops/pmcs/etc. that are allowed to use it. Of course, then, you have to keep track somehow of what higher-level op is causing a lower-level op to be ran(which would prevent simply compiling higher-level ops to their constituent Lorito ops, unfortunately). 21:43
ash_ do any other vm's have policy mechanism like that? 21:44
tcurtis And that requirement could potentially be a pretty significant cost. 21:45
ash_ you could think of a vm also as a processor and give it 2 run modes, root and user, while your in user mode you have no access to certain things, but you could have to use some sort of system to ask for root mode permissions, so in the case of like PL/Parrot you'd just have to deny access to the root commands 21:46
NotFound ash_: the only problem is that a processor does it with hardware. 21:47
ash_ yeah, i guess simulating that is expensive
cotto_work It could be instructive to look into how CLI and the JVM do it. 21:49
bacek good morning, humans
cotto_work hello T1000^H^H^H^H^Hbacek 21:50
bacek cotto_work, (ops.skip) Nope. Better solution is wire tcurtis's optimizer and implement constant folding and DCE. 21:51
cotto_work dce?
purl dce is Emmett's spam-eliminator
cotto_work dead code elimination
purl i think dead code elimination is a good goal.
bacek purl, no dce is dead code elimination
purl OK, bacek.
NotFound ByteBuffer uses pointer arithmetic. If you can find an unsafe usage ot it, let me know.
darbelo Hmm. What is the NQP equivalent to '.loadlib' 21:52
bacek cotto_work, e.g. lt_ic_ic_i can be replaced with branch_i (or removed)
darbelo, there is no such thing afaik.
darbelo ... okay. Plumage's hgosed then. 21:53
cotto_work My only problem is that that'd require the optimizer in order for PIRATE to generate correct code.
i.e. make it even slower
darbelo Now I remember why I couldn't fix it the last time.
NotFound darbelo: What do you need to load?
darbelo dynops.
NotFound All?
purl All is, like, mainly for introspection, but you can use Foo :ALL
bacek cotto_work, slowest part is parsing. simple constant folding and dce should be fast. 21:54
ash_ are you trying to fix plumage?
cotto_work and it'd introduce an extra external depenency
bacek cotto_work, nope. optimizer is part of parrot.
japhb <rez>
japhb is just bak, but not yet backlogged
darbelo NotFound: A few I can get around. But sysinfo, to name one, is needed.
cotto_work Oh, right. Can it be made to work in its current state?
davidfetter wonders when tron's coming out again
bacek tcurtis, ping. 21:55
tcurtis, pirate need you! :)
NotFound darbelo: What sysinfo? Maybe the information is accesible via interpreter
tcurtis darbelo, I think you can use pir::loadlib, but that would be done at runtime. So, probably wouldn't work for dynops.
bacek: pong
darbelo tcurtis: pir::loadlib is the opcode. I want the directive. 21:56
bacek tcurtis, if you are looking for "real-life" optimisations - pirate need you.
darbelo NotFound: That and stat are the ones I've had trouble with.
tcurtis bacek: How can I help? 21:57
cotto_work If we could get those usable, that'd be awesome.
NotFound darbelo: for stat you can use OS
bacek tcurtis, clone pirate from github.com/bacek/pir; implement constant folding for it.
darbelo The PMC?
purl The PMC is bad.
NotFound darbelo: dynpmc now 21:58
cotto_work forget the pmc
purl cotto_work: I forgot pmc
cotto_work the pmc?
purl i guess the pmc is bad.
bacek tcurtis, basically pirate generate POST directly from parse.
cotto_work stupid bot
purl Bad programmer, no cookie!
bacek tcurtis, do you have github id?
japhb darbelo: What is the current status of the Plumage fixing effort? 22:00
tcurtis bacek: yes, it's ekiru. It generates POST directly from the parse? That may complicate things a bit.
darbelo japhb: I've cotten it to configure by hand-hacking the generated PIR. But I'm running into issues with getting NQP to generate the code I need. 22:01
bacek tcurtis, POST nodes are PCT::Node children.
japhb darbelo, *sigh*. OK, thank you for the update.
darbelo Mostly, dynops are unloadable from NQP. In some cases I can get by with other stuff.
In other places... I stare a lot and scratch my head. 22:02
bacek tcurtis, I added you to pirate collaborators. Start hacking! :)
japhb Um, this is going to come of more negative than I intend -- but how was it not noticed that dynops are not loadable from NQP before moving lots of stuff out to dynops?
er "come off" 22:03
I'm honestly mystified how this was not already a problem ....
... for some other project, I mean.
tcurtis bacek, I don't think it will take a great deal of effort to add support for POST to PAST, but it will take some effort.
darbelo Nobody really uses dynops from NQP, really. Other than plumage, yeah. 22:04
I think it's a known NQP issue.
japhb Well then how does everyone make use of all the stuff that got moved out?
I mean, how does Rakudo do it, for instance? 22:05
NotFound darbelo: What sysinfo values do you need?
bacek tcurtis, how hard is to generalize PAST::Pattern to be PCT::Pattern?
darbelo It got moved out because it wasn't very used. Or available through other means, which might not be obvious but are there. 22:06
NotFound: Let me check.
4, and 5. Which are os name and os version, I think. 22:08
NotFound winxed -e 'var p = getinterp(); var config= p[8]; string s=config["osname"]; say(s);'
linux
tcurtis bacek: Not hard. 22:09
purl not hard is relative
darbelo Okay, what's that in NQP? :)
bacek tcurtis, good.
NotFound Version is trickier, is taken from the system at runtime 22:11
But that sysinfo depends on PARROT_HAS_HEADER_SYSUTSNAME, so I don't think you should depend on it. 22:12
darbelo SYSINFO_PARROT_VERSION
That's the one. I was wrong earlier.
NotFound $ winxed -e 'var p = getinterp(); var config= p[8]; string s=config["VERSION"]; say(s);' 22:13
2.5.0
22:13 bubaflub joined
tcurtis bacek: I think I'll have to implement a more convenient way of adding new subtypes for PIRATE to benefit much given how many POST::Node classes it adds, though. Which will also benefit other compilers. 22:13
NotFound I just need to hardcode '8' because winxed can't use .include 22:14
bacek tcurtis, excellent. pirate is still in early stages, but most of POST generating is done.
darbelo NotFound: Neither can NQP. 22:15
NotFound darbelo: just hardcode it for a now.
japhb That, btw, has always frustrated me -- no easy way to use PIR constants from any HLL 22:16
cotto_work bacek, how different are the POST that's used by nqp-rx and one used by PIRATE?
darbelo It think pmichaud was woring on that one recently.
bacek cotto_work, very. 22:17
cotto_work why is there a divergence?
bacek cotto_work, updating PCT for PAST->newPOST in todo list. Basically oldPOST is very stringish. 22:18
darbelo NotFound++ #That's the last one I needed. 22:19
japhb: Plumage now configures again!
japhb Yay!
NotFound Note how useful is winxed as a sort of one-lined pir ;) 22:20
darbelo There's a few glitches. But it configures.
japhb NotFound, I did indeed note that
darbelo: pushed?
darbelo NotFound: I'm close liking it better than NQP already.
japhb: Not yet. Gimmie a sec. 22:21
japhb darbelo, np, take your time 22:22
cotto_work bacek, you're right. That's very stringy.
darbelo japhb: pushed. I think I got the osname wrong. since it doesn't show up on the final Configure message. 22:23
japhb k
darbelo And plumage itself is still broken. I'll get to that in a bit. 22:24
japhb Roger that
cotto_work I can definitely see how it's not well-suited to direct pbc generation. 22:25
japhb Probably must of NQPUtil.{nqp,pir} should be replaced with nqp-setting.pbc ; that's where a lot of the code went anyway, and nqp-setting.pbc is now the official location for it. If we move enough over to not need NQPUtil.pir at all during configure, that pre-compiled version can just be removed. Which will doubtless result in much less pain.
bacek cotto_work, exactly. And I've got "green light" from pmichaud to hack it :) 22:26
cotto_work nice
bacek cotto_work, if you have time can you implement POST::Key to store keys? And update Actions.pm to use it? 22:28
inherit POST::Key from Value 22:29
cotto_work I can take a crack at it tonight. 22:30
bacek cotto_work, ok.
cotto_work how's PCC going?
bacek cotto_work, simple calls works. E.g. no args/params :) 22:31
darbelo japhb: That's probbaly beyond teh scope of my NQP skilz. 22:32
bacek I hope to implement most of it tonight/tomorrow
japhb darbelo, thank you, configures on this system too (minus, as you said, the name of the platform). Compiles seemingly OK too, but dies pretty early in the tests, sigh
darbelo I'll try to get it working with minimal changes. And leave the refactoring to someone skilled in the correct language. 22:33
japhb Nodnod. 22:34
Much thanks nonetheless.
dalek rrot-plumage: c9f1e8d | darbelo++ | src/lib/Plumage/NQPUtil. (2 files):
Update NQPUtils.nqp to cope with the latest parrot deprecations.
cotto_work Maybe the new POST should have a different name.
PIST, PEST and PUST are open
tcurtis Don't forget, PYST. 22:35
cotto_work then again, maybe we should stick with POST
sorear don't forget, darbelo is opening up an infinity of new vowels
(a countable infinity, but still)
darbelo P<LATIN CAPITAL LETTER O WITH FIVE UMLAUTS AND A HAT>ST 22:37
NotFound You can leave your hat on.... 22:38
cotto_work P☺ST 22:39
bacek cotto_work, it's still POST :) 22:43
NotFound But happier :)
dalek rrot: r47769 | NotFound++ | trunk/src/pmc_freeze.c:
PARROT_const_cast is stricter in C++ than in C, adding casts to make it work
22:45
darbelo Can anyone think of why would "pir::getinterp__P()[7][1]" be Undef in NQP ? 22:57
cotto_work what's 7? 23:00
purl rumour has it 7 is vaguely t-like or 2-times-plus-1 the number of digits in THE NUMBER OF THE BEAST or 666+7 minus the number of the beast or Venus/green/NTzCh or the eater of 9 because seven eight nine or 7 leads to 8, 8 leads to suffering
NotFound IGLOBALS_DYN_LIBS 7 23:02
darbelo I wonder if that was ever renumbered... 23:13
The code in plumage seems to think it's something else...
NotFound darbelo: take note and comment what that '8' means ;) 23:14
darbelo Yeah...
dalek r: 93d302d | bacek++ | pir.pir:
Add FIA.elements for simplify POST::Compiler testing.
23:16
r: 4ec7ff7 | bacek++ | t/03-pbc/00-compiler.t:
Stub for testing POST::Compiler functions.
r: 66bf085 | bacek++ | t/03-pbc/00-compiler.t:
Add first failing test for POST::Compiler.build_args_signature.
r: 67ec29d | bacek++ | src/POST/Compiler.pm:
Create signature with proper size.
r: 1421d91 | bacek++ | src/POST/Compiler.pm:
First cut of properly generating call signature.
NotFound darbelo: trac.parrot.org/parrot/changeset/45...erpreter.h 23:18
darbelo NotFound: Yeah, I found that. I have to bump a few numbers in a few places. 23:19
23:19 davidfetter joined
NotFound Isn't nice how our deprecation policy helps keep things working? X-) 23:21
darbelo We need to ban implicitly numbered enums. 23:22
NotFound And ban renumbering them for no reason.
darbelo And a chainsaw.
purl a chainsaw is quick, too... but you should probably learn how to use it first, right? or a sumo or mst's weapon of choice.
cotto_work I don't see the need for banning chainsaws. 23:23
They're a significantly underutilized motivation technique.
darbelo No, no. I was adding it to the list of things we need.
cotto_work +1 then
darbelo It's what we use to enforce the various bans. 23:24
NotFound We should have a chainsaw dealer sponsoring PAFO.
cotto_work Mmmm. +3 Chainsaw of Motivating
tcurtis Why don't Captures do "array" or "hash"? 23:25
darbelo 'cause it's too much effort, man.
cotto_work because nobody added "does array does hash" to the pmclass declaration 23:26
you'd kinda expect it given that its ATTRs are named "array" and "hash"
NotFound BTW 'pmclass' means Patrick Michaud class? 23:27
japhb looks at r45475, gets an instant headache
darbelo japhb: Fix pushed. plumage now displays usage info and all.
japhb shocking!
thx, darbelo
NotFound plumage++
darbelo++ 23:28
japhb darbelo: 'make test' next, since you're on a serious roll? 23:29
dalek rrot-plumage: 5475eab | darbelo++ | src/ (3 files):
Change some magic constants that got changed from the parrot side.
purl dalek: that doesn't look right
tcurtis So, no actual reason it doesn't? So, if I changed it to do so in my branch, it shouldn't be a problem if/when merge time arrives? It would greatly simplify generalizing PAST::Pattern(and since bacek wants PIRATE to be able to use it, I'm going to be generalizing it to all PCT::Nodes, at least, and making it easier to further generalize it to custom subclasses, so it wouldn't be too much extra effort to further generalize it). 23:30
darbelo japhb: The test harness was imported from dukeleto's tapir right?
japhb I believe so, yes. 23:31
Re-import in order?
darbelo Yeah.
Was there a documented prcedure?
japhb (The only reason it doesn't just *use* Tapir is of course the chicken-and-egg problem.)
Dukeleto did it himself, so sadly not.
darbelo Ha! Tapir itself needs an update. 23:33
cotto_work The description for the Capture PMC is lta.
japhb wheee
japhb had a snarky comment here, but decided it was not terribly nice. 23:34
darbelo Public logged channels are such pain some days :)
japhb truedat 23:35
cotto_work but useful more often than not
darbelo Yeah, but it's so bothersome having to fire up the time machine and interrupt yourself every time you forget you have to keep time trave a secret. 23:37
japhb Dangit darbelo, now you've let the cat out of the bag. No I have to retcon the universe again.
*Now 23:38
tcurtis msg darbelo Leaving off the last letter of a word is not always a very good way of concealing it's meaning. Especially when you've already essentially said it earlier in the sentence.
purl Message for darbelo stored.
cotto_work Fortunately parrot already has return continuations. You can just use those.
darbelo See, It's so bothersome my future self can't be arsed to do it now (later? I always get this part wrong.) 23:39
OK. Tapir updated 23:44
japhb Yak shaved. 23:45
dalek pir: c449b85 | darbelo++ | (2 files):
Update tapir to run with parrot HEAD
23:47
darbelo ... And the same fix was pushed to the plumage harness.
japhb w00t
darbelo Dammit. No, I did that wrong. 23:48
japhb Well, it did get a little further. :-)
Which is to say, it died on the same file, but later. :-)
darbelo japhb: pull and try again. 23:49
japhb roger
OK, that's weird. 3 test files are perfect, but one doesn't even run 23:50
darbelo Ha! I fixed plumage but not the test. Silly me.
japhb :-)
darbelo Okay. Pushed the last fix, I have a clean make test. 23:51
dalek rrot-plumage: 692ed52 | darbelo++ | t/harness.pir:
Pull in a harness fix from Tapir.
rrot-plumage: fdbdff6 | darbelo++ | ext/Tapir/Parser.pir:
Pull another fix from Tapir.
rrot-plumage: 1b59f9e | darbelo++ | t/02-load-all.t:
Update magic constants that were changed on parrot.
23:52
japhb The most frustrating thing is that if I could have used symbolic constants, I would have.
W00t! Passed all tests.
darbelo, you officially rock.
darbelo And, plumage can now do a full fetch-build-test cycle for decnum-dynpmcs. Which is all I evere cared about ;) 23:53
japhb heh
... and there's another yak shaved
darbelo I'm a selfish bastard. What can I say?
japhb Altruistic self-centeredness. WFM. 23:54