Camelia, the Perl 6 bug

IRC log for #parrot, 2010-06-22

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:07 kthakore oh well I guess you guys are busy ... I will have the guy try later
00:07 kthakore thanks any ways
00:07 whiteknight who's busy? What do you need?
00:07 kthakore whiteknight: http://trac.parrot.org/parrot/ticket/1687
00:08 kthakore whiteknight: I have apatch there Coke said it was ok
00:08 kthakore whiteknight: I messed up the patch
00:08 kthakore whiteknight: let me fix that
00:08 kthakore whiteknight: I fixed tha patch
00:09 kthakore whiteknight: http://sdlperl.ath.cx/patch
00:09 whiteknight patch failed
00:10 whiteknight how to apply it?
00:10 kthakore oh right you guys use svn not git
00:10 kthakore *sigh*
00:11 whiteknight I got the important part. We can get you added to credits later
00:11 whiteknight typically, adding yourself to credits is the first commit you make when you get a commit bit
00:11 mikehh joined #parrot
00:11 kthakore whiteknight: try now?
00:12 kthakore whiteknight: hah! read the back log. cotto_work made me do it
00:12 kthakore whiteknight: you guys are mean. :(
00:12 whiteknight :)
00:12 kthakore I was like it is a one line fix.
00:13 whiteknight I applied the action part of the patch
00:13 kthakore and he is like NO you n00b. a contribution is a contribution
00:13 kthakore and I am like fine ...
00:13 kthakore and you are like NOOB who said you can be in my repo
00:13 kthakore and I was like :*(
00:13 kthakore STOP TOYING WITH MY FEELINGS !
00:13 cotto_work There are other first commits that can be made upon the receipt of a commit bit.
00:14 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.
00:14 kthakore you guys can't faze me
00:14 kthakore I have seen it all!
00:15 whiteknight I think the lesson is that we need to get kthakore a damn commit bit :)
00:15 kthakore NOOOOooOoOOooooooo,.........
00:15 dalek parrot: r47748 | bacek++ | trunk/src/pmc/sub.pmc:
00:15 dalek parrot: Initialize Sub.vtable_index with -1 as required by Namespace PMC to properly store Sub.
00:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47748/
00:15 dalek parrot: r47749 | whiteknight++ | trunk/editor/mk_skeleton.pir:
00:15 kthakore whiteknight: but that willl mean I will have to commit
00:15 dalek parrot: [editor] Fix TT#1687. Patch courtesy kthakore++
00:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47749/
00:15 cotto_work not really
00:16 cotto_work but it will be easier
00:16 whiteknight kthakore: there are worse things
00:16 cotto_work and the commit button will be so shiny ...
00:16 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
00:16 kthakore FUUUUU
00:17 kthakore 11 months ago I wasn't in a single project
00:17 kthakore I just used stuff and did bug reports
00:18 kthakore now ... I know things ... my cherry has broken.
00:18 * kthakore curls up into a ball
00:21 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.
00:21 dalek TT #1684: http://trac.parrot.org/parrot/ticket/1684
00:21 dalek TT #1685 closed by bacek++: Fix for #389 broke examples/pir/make_hello_pbc.pir
00:22 dalek TT #1685: http://trac.parrot.org/parrot/ticket/1685
00:22 dalek TT #1687 closed by whiteknight++: make vim-install broken
00:22 dalek TT #1687: http://trac.parrot.org/parrot/ticket/1687
00:22 kthakore cotto_work: hehe
00:22 * kthakore scheme worked
00:22 kthakore :)
00:23 kthakore whiteknight: can you also close this ticket http://trac.parrot.org/parrot/ticket/1478
00:23 kthakore whiteknight: that test doesn't exist any more
00:27 whiteknight ok, let me look
00:28 whiteknight cotto_work: We definitely shouldn't give him the super-secret extra-responsibility commit bit
00:28 whiteknight kthakore: I can't get to 1478 tonight. Have too much to do still and bedtime is fast approaching
00:30 Coke kthakore: ticket closed.
00:32 kthakore Coke: thanks
00:32 kthakore whiteknight: yeah thanks
00:33 Coke Feel free to comment on tickets, if folks aren't about.
00:36 dalek rakudo: 1277e18 | pmichaud++ | docs/ROADMAP:
00:36 dalek rakudo: Add closures to ROADMAP (so we don't forget about them :-).
00:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​277e1806c257fe0404c20788187c32fd53cb308
00:38 kthakore Coke: I can't comment on them. NO access
00:38 dalek TT #1478 closed by coke++: t/pmc/iterator.t:  split test
00:38 dalek TT #1478: http://trac.parrot.org/parrot/ticket/1478
00:47 cotto_work I'm not really a fan of that skeleton.
01:01 abqar joined #parrot
01:17 dalek partcl-nqp: 32a24fc | mdiep++ |  (3 files):
01:17 dalek partcl-nqp: Implement [array size]
01:17 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/32a24fcecaaf02aab55ba1ccc2bd3d815bb8dcde
01:30 cotto hi
01:33 TiMBuS joined #parrot
01:42 cotto time to review some khairul code
01:43 cotto and that blog thing he seems to write in from time to time
01:44 Coke kthakore: you have to create an account on trac.
01:44 plobsing joined #parrot
01:45 Coke I am in the non-yapc reserved portion of the lobby in morrison.
01:45 cotto How'd the Lorito BOF go?
01:46 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!
01:46 dalek parrot-linear-algebra: 471954c | Whiteknight++ |  (3 files):
01:46 dalek parrot-linear-algebra: add a row_swap method, and test. Add an example file showing the use of row
01:46 dalek parrot-linear-algebra: primitive methods to perform gaussian and gauss-jordan elimination on matrices
01:46 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/471954c9223f57cdedc4aa48cab5b68a908ef58c
01:46 cotto mwho? ;)
01:46 Coke it wasn't really a lorito bof.
01:47 Coke we ended up talking more about remaining (but not urgent) big pain points for rakudo.
01:50 cotto do kid51's notes cover everything?
01:51 cotto http://thenceforward.net/pa​rrot/yapc_bof_20100621.txt
01:51 whiteknight Coke: ...and what are those pain points, pray tell?
01:53 Coke Task::Parrot is http://github.com/coke/Task-Parrot/
01:54 Coke ah, yah, I don't have to transcribe my snapshot of the whiteboard.
01:55 * whiteknight is going to bed, will hear details tomorrow
01:55 whiteknight goodnight
01:55 Coke ~~
01:55 * Coke is going to try to release Task::Parrot tonight.
02:10 dalek parrot: r47750 | coke++ | trunk/README:
02:10 dalek parrot: use a less confusing sample install dir.
02:10 dalek parrot: (since we already create subdirs with versions)
02:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47750/
02:12 kthakore Coke: I have one. But I can't edit tickets
02:30 khairul joined #parrot
02:35 JimmyZ joined #parrot
02:52 cotto hi khairul
02:53 khairul hi cotto
02:53 khairul meeting?
02:53 purl rumour has it meeting is at 3:30pm eastern
02:55 cotto sure
02:59 Coke kthakore: what's your ID?
02:59 cotto forget meeting
02:59 purl cotto: I forgot meeting
02:59 cotto purl, PLEASE ABSTAIN FROM BEING STUPID
02:59 purl cotto: what?
02:59 cotto I guess INTERCAL would be a little much to expect from purl.
02:59 Coke purl, choke on a botsnack.
02:59 purl thanks Coke :)
03:00 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
03:02 cotto plobsing, ping
03:02 Coke kthakore: gave you TICKET_APPEND
03:03 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]
03:06 plobsing cotto: pong
03:06 cotto plobsing, do you have an eta for dynop_mapping being ready to merge?
03:07 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:08 plobsing so tomorrow if you want it now, two weeks from now if you want it right.
03:09 cotto we have enough broken stuff already
03:09 cotto Is there something I could help parallelize?
03:11 plobsing hmmm... planning is not my strong suit.
03:12 plobsing the quick hack won't break anything.
03:12 cotto will it be reasonably easy to implement the proper fix though?
03:12 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
03:13 plobsing cotto: yes. but it involves moving around some management of dynoplibs. That, I'm not terribly familiar with
03:14 plobsing 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:15 cotto wfm
03:15 cotto khairul will eventually need it, but he's got other things to work on in the meantime
03:39 cotto bacek, ping
03:39 bacek_at_work cotto, pong
03:40 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...
03:40 bacek_at_work cotto, I'm slightly out of ideas how it should be implemented
03:42 cotto That sounds like an interesting problem.
03:42 LoganLK joined #parrot
03:44 janus joined #parrot
03:47 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?
03:47 cotto nope
03:47 sorear is it the most recent commit?
03:47 bacek_at_work Ok. What do you want to edit?
03:48 bacek_at_work 1. git commit --amend to edit message in last commit.
03:48 cotto the changes made by the previous three commits
03:48 bacek_at_work 2. git rebase --inter HEAD~10 to rebase (squash/drop) last 10 commits.
03:49 cotto that one sounds promising
03:49 bacek_at_work 3. git reset HEAD~3 to "remove" 3 last commit and commit them again.
03:49 bacek_at_work 3a. git commit --inter to commit parts of file instead of whole.
03:50 bacek_at_work http://www-cs-students.stanford​.edu/~blynn/gitmagic/book.html really good git tutorial
03:50 cotto with 3, will the changes still be in the fs?
03:50 sorear yes
03:51 sorear git reset (no options) undoes a commit -a; leaving the changes in working
03:51 sorear git reset --soft undoes a commit; leaving the changes in working and marked to be committed
03:51 sorear git reset --hard undoes a commit and removes it from fs
03:51 sorear 4. git config author.name xxx; git commit --amend to shift the blame to someone else
03:53 cotto sorear, bacek_at_work, thanks
03:55 cotto bacek_at_work, were there only two more ops that needed desugaring?
03:55 bacek_at_work about 4 I think
03:55 cotto unary, binary_math and binary_logic too?
03:56 bacek_at_work yes
03:57 * cotto gets to work
03:57 atrodo I love YAPC.  For some reason, I'm getting some good hacking going
03:57 bacek_at_work cotto, why don't use hash for mapping op? Instead of lot of if/elsif
03:58 dalek pir: d13e8c3 | cotto++ |  (2 files):
03:58 dalek pir: desugar if_op and unless_op
03:58 dalek pir: review: http://github.com/bacek/pir/commit/d13​e8c3747022daa60b678c120e6decc5109a6f5
03:58 bacek_at_work (and leftover comment for desugarizing sym<unless_op>)
03:59 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.
03:59 bacek_at_work line 299, 332 in Actions.pm. Are you sure that there is space after <=?
04:00 bacek_at_work And definitely more tests are welcome :)
04:00 bacek_at_work afk # meetings...
04:01 cotto nope, definitely a goof
04:01 cotto bacek++
04:08 arnsholt_ joined #parrot
04:16 bacek_at_work cotto, (here briefly) ... else { $/.CURSOR.panic("Unhandled op $<relop>"); } in if_op/unless_op will help to catch (future) errors.
04:20 cotto good idea
04:22 cotto It appears that imcc will still happily convert $I0 = ~ 1234 into bnot, even though the bit ops are now dynops.
04:51 cotto apparently ** is also quite untested
05:11 dalek parrot: r47751 | plobsing++ | branches/dynop_mapping/src/packfile.c:
05:11 dalek parrot: off by one error
05:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47751/
05:11 theory_ joined #parrot
05:22 contingencyplan joined #parrot
05:32 contingencyplan joined #parrot
05:41 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.?
05:42 cotto all of them, since they're dynops now
05:42 plobsing sugared bitwise as in $I0 & $I1 ?
05:42 cotto yes
05:42 bacek_at_work "$I0 &= $I1"?
05:43 bacek_at_work or "$I2 = $I0 & $I1"?
05:43 cotto both, but I'm thinking of the $I0 & $I1 form now
05:44 bacek_at_work cotto, hmm. Why don't support it? It's just matter of creating POST::Op node with proper pirop.
05:45 cotto for one, it'll break if there's not an explicit loading of the bitwise dynops somewhere
05:49 s1n joined #parrot
05:49 plobsing is it possible to define mutually-recursive static const values in C?
06:01 cotto nm.  I guess the bitwise ops are back as core ops now.
06:02 contingencyplan joined #parrot
06:05 plobsing cotto: some of them are. Not many. Mostly integer bitwise ops.
06:05 plobsing I couldn't eliminate them because NQP made use of them, so they are needed for bootstrap.
06:08 cotto ok
06:17 dalek parrot: r47752 | plobsing++ | branches/dynop_mapping (4 files):
06:17 dalek parrot: add back-reference to library in op_info_t
06:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47752/
06:37 dalek winxed: r514 | julian.notfound++ | trunk/examples/pirado.winxed:
06:37 dalek winxed: update example pirado to change in PBC fixups types
06:37 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=514
06:39 dalek pir: 79412c6 | cotto++ | src/PIR/Actions.pm:
06:39 dalek pir: various cleanups
06:39 dalek pir: review: http://github.com/bacek/pir/commit/794​12c67ddbbd6dfb6f8e3439c5526935181a21d
06:39 dalek pir: afa09fc | cotto++ |  (2 files):
06:39 dalek pir: implement and test unary ops
06:39 dalek pir: review: http://github.com/bacek/pir/commit/afa​09fcb772515b329a55409081ac0a7ac919e53
06:39 dalek pir: 0cce82d | cotto++ | src/PIR/Actions.pm:
06:39 dalek pir: add error checking to if_op and unless_op
06:39 dalek pir: review: http://github.com/bacek/pir/commit/0cc​e82dd7caa9b27303534810fe619266edf7160
06:39 dalek pir: 67adc35 | cotto++ |  (2 files):
06:39 dalek pir: add actions and tests for binary math desugaring
06:39 dalek pir: review: http://github.com/bacek/pir/commit/67a​dc3533fb7828e8db227289ee5f2caa46b0bb5
06:39 dalek pir: 12d9ae5 | cotto++ | src/PIR/Actions.pm:
06:39 dalek pir: better error messages
06:39 kjeldahl joined #parrot
06:39 dalek pir: review: http://github.com/bacek/pir/commit/12d​9ae503c42364c51da909b1be55a81eea5f59a
06:39 dalek pir: 126f2ce | cotto++ |  (2 files):
06:39 dalek pir: add desugaring and tests for pir_instruction:sym<binary_logic>
06:39 dalek pir: review: http://github.com/bacek/pir/commit/126​f2ce0b9854c54a47f0247e16896e23274ab1b
06:39 bacek_at_work yay!
06:39 sorear is "pir" the new name of "PIRATE"?
06:40 bacek_at_work "pir" is language, "pirate" is compiler
06:41 cotto git is fun
06:42 dalek winxed: r515 | julian.notfound++ | trunk/examples/pirado.winxed:
06:42 dalek winxed: use magic value to store subs in namespace in example pirado, bacek++
06:42 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=515
06:43 bacek_at_work NotFound, winxed r515 is unnecessary. I've changed Sub PMC to set it to -1 if not passed.
06:45 NotFound bacek_at_work: better to be in the safer way for a now.
06:45 NotFound bacek_at_work: great work, BTW.
06:46 bacek_at_work NotFound, half-an-hour in gdb...
06:48 cotto bacek++
06:49 cotto 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 #parrot
06:50 cotto arg pragmas?
06:50 cotto like :slurpy?
06:51 fperrad_ joined #parrot
06:52 cotto I can take a shot at that tomorrow evening.
06:53 bacek_at_work cotto,  yes, :slurpy, :flat, etc.
06:54 sorear and the ones nobody has ever heard of, like :call_context
06:55 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
06:55 sorear rakudo doesn't really use getargs
06:56 sorear 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
06:56 cotto Our measly calling conventions aren't quite awesome enough. ;)
06:57 cotto you mean call_sig?
07:00 cotto I'm a little tempted to patch pirate's grammar, but at this point I can barely type.
07:00 cotto definitely time for bed
07:00 cotto night
07:07 NotFound bacek_at_work: modifiers is the name used in several places.
07:13 bacek_at_work NotFound, you mean "pragma" == "modifier"?
08:55 clinton joined #parrot
09:36 lucian joined #parrot
09:58 muixirt joined #parrot
09:58 muixirt hi folks
10:03 JimmyZ joined #parrot
10:36 contingencyplan joined #parrot
10:55 bacek aloha, humans
11:10 muixirt hi bacek
11:10 bacek aloha, muixirt
11:11 muixirt bacek, can you descibe in simple terms what parrot does when executing a sub/invokecc_p?
11:11 bacek muixirt, how simple?
11:11 bacek very simple - some dark magic
11:11 muixirt for a non-C-programmer
11:12 bacek Ooookey.
11:12 bacek 1. Create Continuation.
11:12 bacek 2. Create CallContext.
11:12 bacek 3. Populate CallContext with parameters
11:13 bacek 4. Jump to first op in Sub.
11:13 muixirt which are expensive operations?
11:13 bacek 3a. Call Sub.invoke which will switch interpreter CallContext to one from step 2
11:14 bacek all except 4...
11:14 bacek and "3a"
11:16 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.
11:19 muixirt even if there's only one candidate?
11:19 dalek pir: 6c941a0 | bacek++ | t/ (17 files):
11:19 dalek pir: Rename t/data into t/parse for consistency reason with other tests.
11:19 dalek pir: review: http://github.com/bacek/pir/commit/6c9​41a05c6ccd536f71a63e61211e29a3b7a8439
11:19 dalek pir: 7f3da9f | bacek++ | src/PIR/Grammar.pm:
11:19 dalek pir: Refactor <param_flag> to have only one flag per param
11:19 dalek pir: review: http://github.com/bacek/pir/commit/7f3​da9fe08821bccfa2bf846ec2eb34ead7aa744
11:19 bacek muixirt, it's cached afaik.
11:22 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:23 bacek muixirt, something like this. You can check current performance on examples/benchmarks/fib.{pir,pl}
11:25 muixirt bacek, yes these examples show the same as my test programs do
11:27 bacek muixirt, yeah. parrot is about 2 times slower than perl5.
11:42 whiteknight joined #parrot
11:47 lucian_ joined #parrot
11:47 dalek pir: 5b529bc | bacek++ | src/POST/Register.pm:
11:47 dalek pir: Add POST::Register.modifier attribute to use with PCC calls.
11:47 dalek pir: review: http://github.com/bacek/pir/commit/5b5​29bc128581e74e5f96aab711453d09af6bcb3
11:47 dalek pir: a56687b | bacek++ | src/PIR/Actions.pm:
11:47 dalek pir: Store param modifier in POST.
11:48 dalek pir: review: http://github.com/bacek/pir/commit/a56​687bb2aec2cc51f247d25114249a9b93440c0
11:49 muixirt hi whiteknight
11:49 whiteknight good morning muixirt
11:51 muixirt whiteknight: sorry for being "incredibly unfair"
11:51 whiteknight muixirt: that's okay. I tend to take the long view on Parrot
11:51 whiteknight we've obviously not done much optimizing so far
11:53 muixirt whiteknight: well that would be difficult for a fast moving target like parrot
11:54 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:55 whiteknight 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:56 moritz that's not quite true
11:56 whiteknight not quite?
11:56 moritz there was an optimization phase after The Big PCC Merge
11:56 whiteknight not much of one, and not on the top-level algorithmic scale that I am envisioning
11:57 whiteknight I estimate we could cut PCC overhead by 50% in coming months
11:58 moritz is anybody working on that
11:58 moritz ?
11:58 whiteknight moritz: not working, no. "planning"
11:59 whiteknight 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
12:00 * moritz wonders on what time scales Lorito will be implemented
12:01 whiteknight that's a good question. They were supposed to talk about it at YAPC either yesterday or sometime this week
12:01 whiteknight I wish I could be there for that conversation
12:21 nopaste "muixirt" at 192.168.1.3 pasted "test programs" (27 lines) at http://nopaste.snit.ch/21470
12:24 whiteknight yeah, I suspect the vast majority of runtime cost there is all in creating the call object and sub context
12:24 whiteknight plus, the GC pressure
12:29 muixirt I might be incredible unfair again but I think Parrot is to dynamic languages like complicated shaped building blocks is to tetris
12:30 whiteknight muixirt: I don't argue that Parrot isn't great *now*, but we've hardly stopped development
12:30 whiteknight if anything, development velocity has been increasing in recent years
12:31 whiteknight and a majority of work that we've done in the past two years has been focused on cleanup, improvements, and bugfixes.
12:31 whiteknight We're at the point now where people can really begin optimizing and optimizing some things very aggressively
12:33 whiteknight ash_: ping
12:37 dmalcolm joined #parrot
12:37 nopaste "bacek" at 192.168.1.3 pasted "little bit faster version of sub invoke test." (20 lines) at http://nopaste.snit.ch/21471
12:37 bacek muixirt, check nopaste. It's about 30% faster.
12:42 muixirt bacek, great!
12:42 bacek muixirt, our current PIR compiler isn't smart enough to do such optimisations...
12:43 muixirt I'm not smart enough either to parse that :-)
12:45 nopaste "muixirt" at 192.168.1.3 pasted "even faster" (12 lines) at http://nopaste.snit.ch/21472
12:49 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:50 whiteknight 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
12:50 whiteknight ...and an optimization pass to inline simple functions
12:50 muixirt bacek, it's more Knuthian MIX style subroutine :-)
12:50 dalek parrot: r47753 | khairul++ | branches/gsoc_instrument (2 files):
12:50 dalek parrot: Combined 4 methods into 1 method returning a hash of the current context information + updated test.
12:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47753/
12:51 whiteknight though inlining we probably want to do at the PAST optimization level
12:51 bacek whiteknight, we still need CallContext for arg-less subs. For local registers
12:52 bacek whiteknight, with PIRATE it doesn't really matter. We can do optimisations on all levels :)
12:53 whiteknight bacek: true. We can't get rid of CallContext entirely
12:53 whiteknight bacek: yes, PIRATE is quite awesome. The problem is that we use IMCC instead of PIRATE
12:54 bacek whiteknight, it's temporary :)
12:54 whiteknight what is temporary?
12:55 bacek IMCC
12:56 cognominal joined #parrot
12:56 whiteknight we really should come up with a roadmap to deprecate and remove IMCC eventually
12:57 whiteknight We can't replace it with PIRATE if PIRATE is going to be much slower
12:57 whiteknight and we can't replace it with PIRC if PIRC is not functional
12:58 bacek pirate is slow because parrot (and nqp) is slow.
12:58 whiteknight True.
12:59 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
12:59 whiteknight that would be the best speed boost
13:00 bacek But. With tcurstis's optimizer we can optimize POST generated by pirate
13:00 whiteknight yes
13:00 bacek and than use it for optimizing pirate it self
13:01 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
13:01 bacek stage2
13:01 whiteknight link that to Parrot, and we have a new frontend
13:01 bacek yes
13:02 kid51 joined #parrot
13:02 bacek looks like good bootstrapping plan :)
13:09 kthakore hola!
13:09 kthakore trac?
13:09 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.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/ or slow or REALLY slow
13:10 kthakore Can we (noobies) have some more tickets here? http://trac.parrot.org/parrot/report/19
13:14 bluescreen joined #parrot
13:16 spinclad joined #parrot
13:20 bluescreen joined #parrot
13:27 gbacon joined #parrot
13:41 bacek kthakore, take any "todo" ticket. They are usually not-so-complex.
13:42 bacek kthakore, e.g. TT#1627
13:43 bacek or "deprecation" tickets with milestone in past.
13:46 NotFound whiteknight: even better: don't link it, dynload it when needed.
13:48 kid51 joined #parrot
13:51 dalek winxed: r516 | julian.notfound++ | trunk/winxedst1.winxed:
13:51 dalek winxed: fix again multi const
13:51 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=516
13:52 NotFound bacek: Not-so-complex lke, for example, moving ops to dynops? ;)
13:53 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
13:53 whiteknight at that point, all the hard problems have been solved
13:54 NotFound Let's hope so, and keep fixing problems in the meantime.
13:55 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:56 * 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.
13:56 whiteknight NotFound: okay, do you have releases, or should I just track master?
13:57 kthakore bacek: thanks
13:57 whiteknight er, I guess it is HEAD on google code
13:57 NotFound whiteknight: current releases is 0.Work-in-progress, which means trunk
13:57 whiteknight gotcha
13:58 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
13:59 NotFound Is plumage fixed?
13:59 whiteknight I have no idea
13:59 bubaflub joined #parrot
14:00 NotFound How can I install PLA, then?
14:00 * Coke cries. it /was/ too late for more coffee.
14:00 whiteknight it has a README file. git clone, "parrot setup.pir build; sudo parrot setup.pir install"
14:00 Coke Ok. Task:Parrot is on its way to CPAN. Another useless module for your enjoyment.
14:00 NotFound Nice
14:01 whiteknight We should probably get plumage fixed soon
14:01 patspam joined #parrot
14:02 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.
14:02 whiteknight NotFound: no, probably isn't
14:03 whiteknight 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:04 NotFound I'll tell you in a minute...
14:06 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:08 NotFound Some more than a minute, I must install libatlas first.
14:10 Coke (task parrot is underspecified. will add the rest of the deps this week.
14:10 NotFound whiteknight: Uh.... setup.pir doesn't compile.
14:10 NotFound $S0 = sysinfo 4
14:10 plobsing joined #parrot
14:10 NotFound I think syssinfo is a dynop now.
14:11 japhb <rez>
14:12 japhb 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:13 japhb 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:14 japhb Also, if there are any dynops needed, well clearly that will have to be fixed as well.
14:15 whiteknight NotFound: weird, I thought I had fixed that problem
14:15 NotFound whiteknight: I just git cloned it
14:15 whiteknight NotFound: oh, nevermind. PLA is only targetted to run against Parrot 2.3.0, not Parrot HEAD
14:15 whiteknight this was back before the dynops were separated out
14:15 japhb I'm soon to disappear for yet another meeting.  Anyone have any other Plumage questions for me before I have to leave?
14:16 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!
14:16 NotFound Adding: .loadlib 'sys_ops.so' it works,.
14:17 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?
14:17 whiteknight japhb: whiteknight
14:17 purl whiteknight is probably mailto:wknight8111@gmail.com or the grand master funk or http://wknight8111.blogspot.com/
14:17 japhb OK, hold on
14:17 NotFound whiteknight: then we may be in trouble, I just test winxed with almost-trunk parrot.
14:18 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:19 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
14:19 whiteknight everybody wins
14:19 NotFound Good
14:20 NotFound wins-winxed ;)
14:20 whiteknight NotFound: by the deprecation policy, winxed should target stable releases too :)
14:21 NotFound whiteknight: yeah, but I'm the only developer and life is short.
14:22 whiteknight life is short
14:22 NotFound It may work, I just don't test it.
14:23 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 :)
14:23 japhb You've got it.
14:24 japhb *imagine sudo warning here*
14:24 japhb :-)
14:25 whiteknight of course :)
14:26 NotFound With a great power...
14:27 atrodo comes great parties
14:28 NotFound And great bill from the electric company.
14:28 japhb And mysterious holes in the wall
14:30 dalek rakudo: 7b5b9d5 | moritz++ | docs/announce/2010.06:
14:30 dalek rakudo: un-split cognominal's personality
14:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​b5b9d5a66d7742be99dac9c0bff87f6bd7aca08
14:32 dalek parrot: r47754 | NotFound++ | trunk/t/pmc/arrayiterator.t:
14:32 dalek parrot: test ArrayIterator defined_keyed
14:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47754/
14:32 dalek parrot: r47755 | chromatic++ | trunk/src/pmc_freeze.c:
14:32 dalek parrot: [src] Fixed compilation warnings in src/pmc_freeze.c.  No functional changes.
14:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47755/
14:39 ash_ whiteknight: pong
14:40 dalek pir: b04cf33 | bacek++ | t/01-parse/01-subs.t:
14:40 dalek pir: Add test for :call_sig parsing.
14:40 dalek pir: review: http://github.com/bacek/pir/commit/b04​cf3300d3770e2af0be85d8165953c95b59f43
14:40 dalek pir: e2f20dc | bacek++ | t/ (2 files):
14:40 dalek pir: Add tests for POSTint param modifiers
14:40 dalek pir: review: http://github.com/bacek/pir/commit/e2f​20dc81dbbed554b2b01edb99ab076c09dd13e
14:40 dalek pir: bbaab60 | bacek++ | src/PIR/Actions.pm:
14:40 dalek pir: Fix POSTing :named modifiers.
14:40 dalek pir: review: http://github.com/bacek/pir/commit/bba​ab60e8de592ee08d1525e10cc38d97656e9b3
14:40 dalek pir: 060a45d | bacek++ |  (3 files):
14:40 dalek pir: Add first tests for PCC calls
14:40 dalek pir: review: http://github.com/bacek/pir/commit/060​a45d5154ded98ab2d9880c55d1da74f13efdc
14:42 whiteknight ash_: by chance, will the new NCI system be able to handle calls to shared libs written in FORTRAN?
14:43 ash_ i don't know.... are those callable from C?
14:43 ash_ (i can check)
14:44 ash_ 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:45 moritz fortran and C share the same calling conventions, usually
14:45 moritz the fortran compilers just apply some name mangling
14:45 moritz which is of course non-standard and non-portable among compilers
14:46 ash_ so i guess you'd need to know how it name mangles
14:47 whiteknight what I really want to do is tap into the LAPACK and BLAS libraries, both written in fortran
14:47 whiteknight in Fortran, all parameters are passed by reference, and an underscore is appended to the end of the name
14:48 dalek parrot-linear-algebra: d8c383b | Whiteknight++ | README:
14:48 dalek parrot-linear-algebra: update README. Current master still targets 2.3.0, not 2.2.0
14:48 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/d8c383bac006aac6332f0c0700006998496700ce
14:49 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
14:49 ash_ as long as there is a way to mangel the names properly according to the compiler
14:49 whiteknight okay
14:50 whiteknight NotFound: the parrot-head branch of PLA includes that lib. I haven't tested it yet to see if it works
14:51 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:52 ash_ a cacheing mechanism would also be useful, since some thunks are repeated
14:57 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:58 NotFound whiteknight: I'm not gitted enough to know how to switch branches
14:59 moritz if it's a remote branch: git checkout -b branchname origin/branchname # the first time only
14:59 moritz then just  git checkout branchname
15:00 NotFound moritz:  I'm not gitted enough to know what's a remore branch X-)
15:00 NotFound remote
15:00 moritz NotFound: it's a branch that's somewhere on a server (like github, gitorious)
15:00 ash_ gfortran seems to mangle fortran90 names by doing ___modulename_MOD_[subname|variablename]
15:00 moritz as opposed to a local branch, which is one that's not shared
15:00 ash_ thats pretty easy
15:00 NotFound Then what's a non-remote one X-)
15:00 moritz then just 'git checkout branchname'.
15:01 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:02 NotFound What is 'origin' ?
15:03 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
15:03 whiteknight okay, thanks
15:03 ash_ origin is the default remote that git looks to if you do pushes and fetchs
15:03 whiteknight NotFound: if you are getting it from gitub, "origin" is just another name for github
15:03 NotFound Sigh... As usual people teach things in a language that only understand whose that already knoes X-)
15:04 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)
15:04 moritz (or git remove -v, if you can't have a cat handy :-)
15:05 dalek parrot: r47756 | chromatic++ | trunk/src/call/context.c:
15:05 dalek parrot: [PCC] Avoid register allocation for functions which have no regs.
15:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47756/
15:05 dalek parrot: r47757 | chromatic++ | trunk/src/call/context.c:
15:05 dalek parrot: [PCC] Reordered context initialization to remove duplicated work.
15:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47757/
15:05 dalek parrot: r47758 | chromatic++ | trunk/src/call/context.c:
15:05 NotFound fatal: git checkout: updating paths is incompatible with switching branches/forcing
15:05 purl i already had it that way, NotFound.
15:05 dalek parrot: [PCC] Removed (apparent) duplicate register clearing in init_context().  The
15:05 dalek parrot: result is that invoking the null function is about 1.6% faster after these
15:05 dalek parrot: three commits.  This commit is the riskiest; if anything has problems, it's
15:05 dalek parrot: likely this one.
15:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47758/
15:06 dalek parrot-linear-algebra: ad6f7af | Whiteknight++ | src/pmc/nummatrix2d.pmc:
15:06 dalek parrot-linear-algebra: add a DECLATTRS macro, for great win
15:06 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/ad6f7afbdc409f592364c737429fa0a759337ec9
15:06 ash_ NotFound: what command did you run?
15:07 NotFound If you are trying to convert me to a git enthusiast, you aren't doing well X-)
15:07 NotFound ash_: git checkout -b parrot-head http://github.com/Whiteknight/parr​ot-linear-algebra.git/parrot-head
15:08 ash_ ah, i see, thats something you might do with svn, but that wont work with git
15:08 NotFound What????
15:09 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-)
15:09 moritz git remote add whiteknight http://github.com/Whiteknigh​t/parrot-linear-algebra.git
15:09 moritz git remote update
15:09 moritz git checkout -b parrot-head whiteknight/parrot-head
15:09 NotFound ash_: I was just doing what I was told so.
15:09 ash_ moritz++ is a faster typer than me
15:10 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:12 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:13 arnsholt Sorry, but that's not actually what I tried to say
15:13 arnsholt I'm still climbing git's learning curve myself, and found that to be a helpful revelation
15:13 ash_ http://www.gitready.com/ and http://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'
15:13 arnsholt This article by Joel Spolsky is quite good as well: http://www.joelonsoftware.​com/items/2010/03/17.html
15:14 arnsholt It talks about Mercurial and not git, but the points are still pretty valid
15:14 NotFound arnsholt: thanks, sorry if I was rude.
15:14 whiteknight I'm still climbing the git learning curve myself, I still not any good at it but practice makes perfect
15:15 arnsholt NotFound: No problem. I can work up a good mad about git too =)
15:16 NotFound Switched to a new branch "parrot-head" :)
15:17 whiteknight NotFound: yay!
15:21 NotFound "parrot setup.pir install" doesn't print anything and I don't see nothing installed.
15:22 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 arnsholt Not only from "this I can share with others" to "this I can share with others"
15:25 whiteknight NotFound: weird. Did setup.pir build do anything?
15:26 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,
15:26 NotFound Looks like it just print a ldd result from a check and doesn't build anything.
15:27 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
15:27 whiteknight really? why?
15:29 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
15:29 ash_ http://github.com/ashgti/parrot/b​lob/gsoc_nci/src/pmc/nci.pmc#L880 (really more  like lines 862 - 880)
15:30 NotFound whiteknight: looks like it doesn't even generate the .c files from the pmc
15:30 whiteknight NotFound: weird
15:31 ash_ brb gotta head to campus &
15:34 ash__ joined #parrot
15:35 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:36 atrodo 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 atrodo But, they pass out of parrot as char*'s which makes it null terminated.  Any ideas?
15:37 tcurtis joined #parrot
15:38 dalek parrot: r47759 | NotFound++ | trunk/t/pmc/exceptionhandler.t:
15:38 dalek parrot: test ExceptionHandler handle_types_except method
15:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47759/
15:39 NotFound atrodo: just don't pass it as char*
15:40 atrodo other way around.  I need to get it out of parrot into my application as a pointer and a length
15:41 NotFound atrodo: if it has an 8-bit based encoding you can just pass the char * and the length.
15:42 NotFound Uh.... maybe not, let me check...
15:43 NotFound Yes, it should be enough, Parrot_str_to_cstring doesn't check for null terminator, it just add one.
15:44 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
15:45 atrodo hmmm, also, not in the embed interface
15:45 NotFound atrodo: tickets welcome
15:46 atrodo hmm, is it a function or part of the structure?
15:46 NotFound A function.
15:46 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.
15:46 atrodo there it is, found it, Parrot_str_byte_length
15:46 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.
15:48 NotFound (or the rigth way documented)
15:56 cotto_work ~~
15:57 lucian joined #parrot
16:04 ash_ joined #parrot
16:05 atrodo hmmm, could be wrong.  Giving me wacky answers
16:07 NotFound Wrong? Me? Impossible! ;)
16:07 kid51 joined #parrot
16:07 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
16:09 ash_ is there a tool out there that can easily convert time zones right?
16:10 ash_ that would be nice
16:10 kthakore kid51: 18:30 UTC is 4:30 for us in NA right
16:10 kthakore kid51: ?
16:10 moritz ash_: I think 'date' can do it
16:10 kthakore date 18:30 UTC
16:10 kthakore ??
16:10 moritz ash_: at least I call date --utc, and see how many hours I have left
16:10 kthakore moritz: what chu talkin about
16:10 kthakore oh not in this irc
16:11 moritz man 1 date
16:11 * kthakore dohs!
16:11 moritz purl: clock?
16:11 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 /
16:11 ash_ moritz: yeah, date -u (--utc is linux specfic)
16:11 kthakore ah
16:11 kthakore wth date --utc gives me 16:11 Tue 2010
16:12 kthakore so parrotskecth is over?
16:12 moritz purl: #parrotsketch?
16:12 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
16:12 moritz kthakore: 16 < 18
16:13 moritz so you still have 2h 17m to ps
16:14 kthakore ah lol I am stupid
16:14 theory joined #parrot
16:14 kthakore moritz: thanks leet hax0r
16:14 kthakore trac?
16:14 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.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/ or slow or REALLY slow
16:15 kthakore /win/win 2
16:17 sjn_ joined #parrot
16:18 NotFound 18:30?
16:18 NotFound purl: #ps?
16:18 purl i heard #ps was a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
16:19 NotFound purl: parrotsketch?
16:19 purl parrotsketch is a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch
16:19 kthakore bacek: that ticket is alread done
16:19 NotFound ETOOMUCHUNMAINTAINEDREDUNDANCE
16:20 kthakore NotFound: can I close this ticket 1627? The done_testing ticket is done in t/library/test_builder_done_testing.t
16:20 kthakore NotFound: it has bad test and failing tests
16:22 NotFound kthakore: if you close it, you need to open other. Pointless IMO.
16:22 kthakore NotFound: ok
16:22 kthakore NotFound: what do I need to do to close it?
16:22 kthakore NotFound: what is various error conditions and proper/improper use?
16:23 NotFound kthakore: as the ticket says: "just to fix the Key VTABLEs."
16:23 NotFound The "just" may be considered irony ;)
16:23 kthakore NotFound: what where does it say that?
16:23 kthakore NotFound: 1627
16:23 kthakore right
16:24 kthakore 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?
16:24 NotFound Oh, sorry, I looked at the wrong windows.... one moment.
16:24 kthakore NotFound: there is in VTABLEs in there
16:24 kthakore NotFound: oh ok
16:24 cotto_work s/ops.num/ops.skip/
16:25 NotFound kthakore: tests for Test::More::done_testing?
16:25 kthakore yeah
16:25 kthakore NotFound: see the t/library/test_builder_done_testing.t
16:25 NotFound No idea about that.
16:25 kthakore NotFound: it seems to be done
16:25 kthakore bacek: PING!
16:25 kthakore NotFound: no worries I will ask the guy who told me to do this ticket
16:26 kthakore NotFound: any easy peasy tickets for newbies?
16:26 dalek rakudo: ad2afb5 | moritz++ | src/core/Cool-str.pm:
16:26 dalek rakudo: stringify self in Cool.trim-{leading,trailing}
16:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​d2afb5d57c8f4ef70175ced7ca61c5a559feef8
16:28 ash_ do PMC's have a vtable entry called when they are destroyed?
16:29 tcurtis ash_: void "destroy(INTERP, PMC *self)" http://docs.parrot.org/parrot/lates​t/html/docs/pdds/pdd17_pmc.pod.html
16:29 tcurtis 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."
16:29 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.
16:29 kthakore NotFound: :P
16:29 kthakore you guys make everything super hard man
16:30 kthakore *sigh*
16:30 kthakore it is beyond me how people break into parrot
16:30 ash_ thanks tcurtis
16:30 ash_ tcurtis++
16:30 NotFound kthakore: slowly ;)
16:30 tcurtis kthakore: http://trac.parrot.org/parrot/ticket/812 is easy, although perhaps a little too trivial.
16:30 kthakore NotFound: bah ....
16:31 kthakore tcurtis: sure you say that now
16:31 * kthakore looks at the beast
16:31 NotFound kthakore: I started by looking for unused code and deleting it.
16:31 kthakore NotFound: haha that is this ticket to a T 812
16:32 NotFound kthakore: No kidding, you can ask chromatic about that.
16:32 kthakore NotFound: aww .. he is not on
16:32 kthakore NotFound: that means I AM FREE
16:32 kthakore lunch times
16:33 ash_ are there ack types for parrot stuff?
16:33 cotto_work some are built in
16:33 NotFound kthakore: no idea about 812, PCT is out of my skills.
16:33 ash_ ah, yse i see that now
16:34 ash_ s/yse/yes/
16:34 cotto_work andy sometimes hacks on Parrot
16:36 cotto_work 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 #parrot
16:50 ambs joined #parrot
16:53 mikehh opbots, names
16:53 kthakore tcurtis: I did that ticket and made a patch
16:54 kthakore tcurtis: maybe chromatic will accept
16:56 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:57 kthakore tcurtis: ah ok
16:57 kthakore tcurtis: just comment it there. I am running tests to ensure nothing broke
16:57 kthakore tcurtis: I will do the pod in a sec
16:57 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.
16:57 purl Message for cotto stored.
16:58 kthakore ok lunch to wait for tests
16:59 ash_ so, is the current plan to have nqp compile pir?
16:59 ash_ and eventually remove imcc?
16:59 NotFound About UTC, this command should give #ps time in your locale: date --date='2010/06/22 20:30 UTC'
17:00 dalek parrot: r47760 | NotFound++ | trunk/t/pmc/orderedhashiterator.t:
17:00 dalek parrot: clean OrderedHashIterator tests and add some more
17:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47760/
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.
17:02 davidfetter is there a specific channel for rakudo?
17:02 * davidfetter tried #rakudo and was the only person there
17:03 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)
17:03 davidfetter ah, freenode. ok :)
17:05 whiteknight joined #parrot
17:11 cotto_work hi whiteknight
17:11 whiteknight hello cotto_work
17:14 patspam joined #parrot
17:17 kthakore joined #parrot
17:26 Chandon joined #parrot
17:28 shockwave joined #parrot
17:28 shockwave purl paste
17:28 purl paste is probably (see: nopaste) or like glue but a little safer to sniff. or http://nopaste.snit.ch:8001/ or http://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
17:29 nopaste "shockwave" at 192.168.1.3 pasted "Parrot internal assert failure." (126 lines) at http://nopaste.snit.ch/21478
17:29 shockwave Hello people.
17:29 purl Greetings, program!
17:29 kthakore tcurtis: ok I did your thing and I am retesting
17:30 kthakore 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.
17:30 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?
17:30 shockwave Oops, forgot to mention the exception: src/runcore/cores.c:635: failed assertion 'pc'
17:31 shockwave 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 shockwave That non-method function is called at line 82.
17:32 shockwave If that line is commented out, the exception doesn't happen, since the sub isn't called.
17:32 shockwave For convenience, I pasted the %CreateInstance sub at the bottom.
17:32 shockwave Again, I'm not sure why that assertion failure is happening.
17:32 shockwave Any help is appreciated.
17:32 shockwave Thanks
17:33 dalek parrot: r47761 | coke++ | branches/html_cleanup/docs/index/index.json:
17:33 dalek parrot: Correct link to other page.
17:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47761/
17:33 dalek parrot: r47762 | coke++ | branches/html_cleanup/docs/index/pdds.json:
17:33 dalek parrot: use *.pod explicitly so we can keep simple glob syntax.
17:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47762/
17:34 eternaleye joined #parrot
17:35 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:36 shockwave I'm using Parrot 1.5.0
17:36 tcurtis kthakore: "make library_tests" includes the PCT tests.
17:37 tcurtis 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?
17:37 kthakore well it passes
17:37 shockwave bubaflub, sorry. I mean 2.5.0 -- I just updated like 10 minutes ago.
17:38 shockwave (This was happening before I updated... I updated to see if the problem would go away)
17:39 shockwave I know I pasted a whole bunch of code. If anyone needs me to disect it, just let me know.
17:42 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 http://nopaste.snit.ch/21479
17:43 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 http://nopaste.snit.ch/21480
17:43 shockwave Just for kicks, I pasted the HLL code that gets translated into the PIR I originall posted ^^^^^
17:43 kthakore tcurtis: how about that ^^
17:44 shockwave NotFound: Exception handling problems on whose end?
17:44 kthakore tcurtis: done
17:46 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?
17:47 tcurtis kthakore: looks good.
17:47 NotFound shockwave: the well known Parrot issue with inner runloops.
17:48 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 :)
17:48 shockwave whiteknight: The generated code? whatcha talkin bout?
17:48 whiteknight shockwave: the compiler source
17:49 whiteknight I think I had seen it at one point, but I don't have it anymore
17:49 dalek parrot: r47763 | coke++ | branches/html_cleanup/tool​s/docs/make_html_docs.pl:
17:49 dalek parrot: Remove debug output, verify links point to other pages,
17:49 dalek parrot: placeholder for actual HTML gen.
17:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47763/
17:49 shockwave shockwave: Oh, no. Since there is still lots to do, it's still within the confounds of my secret volcano layer.
17:50 cotto_work shockwave, there's still lots to do in Parrot too.
17:50 cotto_work and PIRATE
17:51 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 shockwave I was hoping that after 9 years, things were solid enough to use.
17:51 shockwave :(
17:51 cotto_work time guarantees nothing
17:52 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-)
17:52 shockwave NotFound: I don't use rakudo
17:52 shockwave The compiler is C++.
17:53 cotto_work so the same deal as winxed
17:53 NotFound winxed already uses finalize
17:53 shockwave Does the generated code looks sane?
17:54 NotFound shockwave: try adding explicit return to the sub that doesn't have one, and exit at the end of the main one.
17:55 NotFound That usually avoids the failure on exception handling problems.
17:55 eternaleye joined #parrot
17:55 shockwave NotFound: Ok, I'll try adding an explict return to all subs that don't include one. Just .return(), correct?
17:56 NotFound shockwave: yeah
17:58 NotFound shockwave: mmm... you have a sub both :immediate and :load, so you may be creating the same class twice
17:59 shockwave NotFound: It's been working fine so far. But I just removed it, to check, and still.
17:59 ash_ joined #parrot
17:59 shockwave I've also been adding the empty return() to the generated code and the library subs, but still.
18:04 shockwave I added .return() to just about everything, but nothing.
18:04 NotFound Odd
18:06 NotFound shockwave: Do you have exception handlers in your library?
18:06 shockwave NotFound: No, not yet. I'm not throwing any exceptions myself.
18:06 shockwave But, my compiler knows know to generated them. Let me place that code within a try statement.
18:07 dmalcolm joined #parrot
18:07 shockwave Nothing
18:08 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?
18:10 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
18:11 atrodo http://gist.github.com/448838
18:13 NotFound atrodo: What's the problem, the content written is not the full string?
18:13 atrodo Too much data is being written
18:14 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
18:14 atrodo outStream is a TFileStream.  I'm in pascal, using kylix on linux
18:15 eternaleye joined #parrot
18:15 atrodo haha, i figured it out
18:16 NotFound If len is too long, the problem is not in writing the string.
18:17 atrodo Nope, it was certainly my problem.  I was refrencing the wrong c function
18:22 dalek parrot: r47764 | Chandon++ | branches/gsoc_threads (10 files):
18:22 dalek parrot: Add alarm mechanism; not yet hooked into anything.
18:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47764/
18:27 bubaflub joined #parrot
18:29 atrodo hurray!  it's all happy.
18:29 NotFound Good
18:29 atrodo time to commit it
18:29 kthakore tcurtis: so ... who will accept that patch?
18:34 nopaste "shockwave" at 192.168.1.3 pasted "Sort snippet which creates an internal assertion failure." (17 lines) at http://nopaste.snit.ch/21481
18:35 shockwave I was able to cut down the code to the bare minimum that creates the same assertion as above.
18:35 shockwave The problem seems pervasive.
18:35 shockwave I'll create a ticket.
18:36 Coke you don't need the foobar sub to generate the snippet...
18:37 shockwave Coke: Calling foobar is what causes the error.
18:38 shockwave The return value isn't needed. I left it in by mistake.
18:38 cotto_work shockwave: that's not quite minimal
18:38 nopaste "cotto" at 192.168.1.3 pasted "more minimal version" (7 lines) at http://nopaste.snit.ch/21482
18:39 Coke shockwave: yes, but you don't need the declaration of the foobar sub.
18:39 Coke it's just the invocation you need. =-=)
18:39 shockwave cotto_work: I'll paste your example, with the foobar ontop, just to make the point clearer.
18:40 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
18:41 shockwave What 'component' is this? core?
18:42 shockwave For your convenience: http://trac.parrot.org/parrot/ticket/1688
18:43 NotFound shockwave: Why do you want to use :immediate?
18:43 shockwave NotFound: That's how I'm defining the class properties.
18:46 shockwave NotFound: Also, that's where a class's static constructor is called from.
18:47 shockwave I have to go to the laundry to pick up a shirt. I'll be back later.
18:47 shockwave Thanks for the help, guys.
18:50 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:51 dalek TT #1688 created by shockwave++: Internal assertion triggered when writing trivial code.
18:51 dalek TT #1688: http://trac.parrot.org/parrot/ticket/1688
18:54 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:55 dalek parrot: r47765 | chromatic++ | trunk (2 files):
18:55 dalek parrot: [ops2c] Improved generated code by adding a space in lines of the form:
18:55 dalek parrot:     opcode_t   *dest            = cur_opcode + 2;
18:55 dalek parrot: Arguably the *grammar* is the best place to make the change, but this is better
18:55 dalek parrot: now, and someone else can fix that.
18:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47765/
18:56 cotto_work (I intend that as constructive criticism.)
18:59 kthakore tcurtis: we will get chromatic to do it then
19:02 LoganLK joined #parrot
19:05 atrodo joined #parrot
19:09 Andy joined #parrot
19:19 whiteknight japhb: ping
19:23 eternaleye joined #parrot
19:25 dalek parrot-plumage: 3ba9a44 | whiteknight++ | Configure.nqp:
19:25 dalek parrot-plumage: Something is weird with contextuals. Add a quick 'n ugly fix to get Configure.nqp to run again
19:25 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/3ba9a44cddf0af9220219b794e770b540165d6d4
19:27 darbelo whiteknight: ping
19:27 whiteknight purl msg japhb: I committed an ugly fix for plumage. Configure.nqp runs again and make works.
19:27 purl Message for japhb stored.
19:27 whiteknight darbelo: pong
19:28 dalek parrot: r47766 | coke++ | branches/html_cleanup/tool​s/docs/make_html_docs.pl:
19:28 dalek parrot: coding stds
19:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47766/
19:28 darbelo Did tha commit fix plumage?
19:28 dalek parrot: r47767 | coke++ | branches/html_cleanup (2 files):
19:28 dalek parrot: Remove function that was only ever used in the test suite.
19:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47767/
19:28 whiteknight darbelo: appears so, yes
19:28 allison joined #parrot
19:29 kthakore whiteknight: hi I have a patch (a trvial one again_ pending at 812
19:29 kthakore whiteknight: ticket 812 I meant
19:30 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.
19:31 whiteknight darbelo: you mean that commit doesn't make plumage work for you?
19:31 darbelo Yes.
19:31 whiteknight hmmm
19:31 whiteknight oh, my installed Parrot is 2.3.0, not 2.5.0-devel
19:31 whiteknight maybe more things are broken in parrot HEAD
19:32 darbelo Tere are.
19:32 whiteknight great
19:32 whiteknight purl msg japhb nevermind, that last commit only fixed plumage for parrot 2.3.0, not Parrot HEAD.
19:32 purl Message for japhb stored.
19:34 cotto_work That is indeed an odd fix.
19:34 darbelo Agh nopaste is down.
19:34 cotto_work no it's not
19:34 darbelo I can't access it from here.
19:35 nopaste "cotto" at 192.168.1.3 pasted "it doesn't appear to be down" (1 line) at http://nopaste.snit.ch/21486
19:36 patspam joined #parrot
19:36 darbelo whiteknight: http://gist.github.com/448948
19:37 darbelo That was my last attempt at fixing. You have to regenerate NQPUtils.pir after those modifications.
19:37 whiteknight darbelo: does that fix it?
19:38 darbelo Not completely. But it failed farther along last time I tried it.
19:39 ambs joined #parrot
19:41 darbelo The opcode 'shr_p_p_ic' (shr<3>) was not found. Check the type and number of the arguments
19:41 darbelo What should I replace that with.
19:44 patspam joined #parrot
19:46 kthakore 0/win 2
19:46 cotto_work darbelo, _i_i_ic exists.  You could use that.
19:51 eternaleye joined #parrot
19:56 khairul joined #parrot
20:02 darbelo cotto_work: What the right way to pass an NQP array into a Q:PIR{} block?
20:04 darbelo Nevermind. I'm stupid today.
20:05 Psyche^ joined #parrot
20:05 cotto_work I'm always glad to not help. ;)
20:05 cotto_work #ps in 25
20:15 sjn joined #parrot
20:21 dalek winxed: r517 | julian.notfound++ | trunk/winxedst1.winxed:
20:21 dalek winxed: fix a stupid, stupid mistake
20:21 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=517
20:27 shockwave ping NotFound
20:27 NotFound shockwave: pong
20:28 shockwave NotFound: I've been grabbing the sub to execute like so: $P1 = get_hll_global ['TestCaseX';'X'], 'static%s'
20:29 shockwave 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:30 cotto_work find_sub_not_null doesn't have variants to support that kind of usage
20:31 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.
20:32 shockwave NotFound: How can I replicate that functionality?
20:32 NotFound shockwave: define "that".
20:33 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:34 cotto_work It seems to be #ps time.
20:34 tcurtis shockwave: :load :init
20:34 NotFound shockwave: :load isn't enough?
20:34 tcurtis shockwave: if I correctly understand what you're trying to do.
20:34 shockwave err, let me try that.
20:35 NotFound Yeah, :init and :load if you want it to be both a main program and a loadable lib
20:36 shockwave It seems :init is all I need.
20:36 shockwave Yay!
20:36 shockwave So what's the difference between init and load, again?
20:37 shockwave 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.
20:38 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?)).
20:38 shockwave Well, at least we found a bug out of this whole ordeal.
20:39 ash_ joined #parrot
20:39 shockwave Thanks again, guys. I'm glad this is working again.
20:40 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 #parrot
20:41 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.
20:41 shockwave cotto_work: True that.
20:44 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 tcurtis s/it's/its/
20:45 NotFound I think its main purpose is to expose subtle bugs X-)
20:46 shockwave tcurtis: I see.
20:47 shockwave tcurtis: Would you mind expanding a bit on: "and also just for any sort of compile time creation of constants."
20:47 shockwave tcurtis: As a compiler writer, I'm interested in this kinda info.
20:52 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:53 NotFound Now that you say it, some immediate problems may be caused by untested freeze/thaw in PMCs
20:53 NotFound I've found at least one while adding tests.
20:53 shockwave tcurtis: Sounds pretty esoteric. I'm gonna stay away from that.
20:54 NotFound One bug in a PMC. I mean
20:54 shockwave NotFound: You're the creator of Winxed, right?
20:54 NotFound shockwave: Do you want a signed t-shirt? ;)
20:55 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:56 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
20:57 shockwave NotFound: Ok, but don't go changing your mind in the future.
20:58 NotFound shockwave: the channel is logged, I can't
20:58 shockwave Then it's settled.
20:59 NotFound ash_: you neeed to indent, but I'm not sure about the rules. Check some file with #if'ed includes
21:00 NotFound I mean, defines
21:02 dalek website: Chandon++ | Cleaning up the Scheduler
21:02 dalek website: http://www.parrot.org/content/cleaning-scheduler
21:06 patspam joined #parrot
21:06 shockwave Thanks everyone. See ya.
21:06 shockwave left #parrot
21:06 dalek parrot: r47768 | chromatic++ | trunk/compilers/imcc/pbc.c:
21:06 dalek parrot: [IMCC] Tidied code; no functional changes.
21:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47768/
21:09 dalek rakudo: 7b089e5 | moritz++ | src/core/operators.pm:
21:09 dalek rakudo: infix:<eqv> for numeric types (did not work with rats)
21:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​b089e5addb6766267eb9a0d4aa707b043408470
21:15 plobsing_work joined #parrot
21:18 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:22 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.
21:22 purl Message for whiteknight stored.
21:22 ash_ sure, let me finish up my codetest changes though, i have it passing almost all of the codetest's now
21:22 ash_ (just have a bunch of whitespace for whatever reason)
21:23 ash_ are there any good tools for removing the whitespace on blank lines and at the end of lines?
21:23 plobsing_work vim
21:23 tcurtis ash_: if you use emacs, M-\ strips trailing whitespace from a line, iirc.
21:24 ash_ which part of vim? i am already using vim
21:24 plobsing_work :s/\s+$//
21:24 cotto_work :%s/[ ]*$//g
21:26 Topic for #parrotis now 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 ash_ (in terms of compatability)
21:27 ash_ yay, i pass all of codetest now, thanks for the vim tip
21:28 ash_ 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.
21:30 cotto_work sure
21:30 whiteknight joined #parrot
21:32 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.
21:34 dalek tracwiki: v25 | cotto++ | CottoTasklist
21:34 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Cot​toTasklist?version=25&amp;action=diff
21:34 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.
21:35 tcurtis That's the problem linked in the stub article on the wiki, of course.
21:35 bluescreen joined #parrot
21:38 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:39 tcurtis And most user and HLL code will probably be built on top on that.
21:39 NotFound "most"?
21:39 purl somebody said "most" was something that rarely applies to anything related to stocks.
21:39 tcurtis IF this assumption turns out to be true,...
21:40 cotto_work I think I see where this is going.
21:41 cotto_work Are you suggesting that the best policy may be to allow the HLL to decide what's secure?
21:42 NotFound I think that if you allow policy control of low level ops they aren't low level anymore.
21:43 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:44 ash_ do any other vm's have policy mechanism like that?
21:45 tcurtis And that requirement could potentially be a pretty significant cost.
21:46 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:47 NotFound ash_: the only problem is that a processor does it with hardware.
21:47 ash_ yeah, i guess simulating that is expensive
21:49 cotto_work It could be instructive to look into how CLI and the JVM do it.
21:49 bacek good morning, humans
21:50 cotto_work hello T1000^H^H^H^H^Hbacek
21:51 bacek cotto_work, (ops.skip) Nope. Better solution is wire tcurtis's optimizer and implement constant folding and DCE.
21:51 cotto_work dce?
21:51 purl dce is Emmett's spam-eliminator
21:51 cotto_work dead code elimination
21:51 purl i think dead code elimination is a good goal.
21:51 bacek purl, no dce is dead code elimination
21:51 purl OK, bacek.
21:51 NotFound ByteBuffer uses pointer arithmetic. If you can find an unsafe usage ot it, let me know.
21:52 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)
21:52 bacek darbelo, there is no such thing afaik.
21:53 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.
21:53 cotto_work i.e. make it even slower
21:53 darbelo Now I remember why I couldn't fix it the last time.
21:53 NotFound darbelo: What do you need to load?
21:53 darbelo dynops.
21:53 NotFound All?
21:53 purl All is, like, mainly for introspection, but you can use Foo :ALL
21:54 bacek cotto_work, slowest part is parsing. simple constant folding and dce should be fast.
21:54 ash_ are you trying to fix plumage?
21:54 cotto_work and it'd introduce an extra external depenency
21:54 bacek cotto_work, nope. optimizer is part of parrot.
21:54 japhb <rez>
21:54 * japhb is just bak, but not yet backlogged
21:54 darbelo NotFound: A few I can get around. But sysinfo, to name one, is needed.
21:54 cotto_work Oh, right.  Can it be made to work in its current state?
21:54 * davidfetter wonders when tron's coming out again
21:55 bacek tcurtis, ping.
21:55 bacek tcurtis, pirate need you! :)
21:55 NotFound darbelo: What sysinfo? Maybe the information is accesible via interpreter
21:55 tcurtis darbelo, I think you can use pir::loadlib, but that would be done at runtime. So, probably wouldn't work for dynops.
21:55 tcurtis bacek: pong
21:56 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.
21:56 darbelo NotFound: That and stat are the ones I've had trouble with.
21:57 tcurtis bacek: How can I help?
21:57 cotto_work If we could get those usable, that'd be awesome.
21:57 NotFound darbelo: for stat you can use OS
21:57 bacek tcurtis, clone pirate from github.com/bacek/pir; implement constant folding for it.
21:57 darbelo The PMC?
21:57 purl The PMC is bad.
21:58 NotFound darbelo: dynpmc now
21:58 cotto_work forget the pmc
21:58 purl cotto_work: I forgot pmc
21:58 cotto_work the pmc?
21:58 purl i guess the pmc is bad.
21:58 bacek tcurtis, basically pirate generate POST directly from parse.
21:58 cotto_work stupid bot
21:58 purl Bad programmer, no cookie!
21:58 bacek tcurtis, do you have github id?
22:00 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.
22:01 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.
22:01 japhb darbelo, *sigh*.  OK, thank you for the update.
22:01 darbelo Mostly, dynops are unloadable from NQP. In some cases I can get by with other stuff.
22:02 darbelo In other places... I stare a lot and scratch my head.
22:02 bacek tcurtis, I added you to pirate collaborators. Start hacking! :)
22:02 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?
22:03 japhb er "come off"
22:03 japhb I'm honestly mystified how this was not already a problem ....
22:03 japhb ... for some other project, I mean.
22:03 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.
22:04 darbelo Nobody really uses dynops from NQP, really. Other than plumage, yeah.
22:04 darbelo I think it's a known NQP issue.
22:04 japhb Well then how does everyone make use of all the stuff that got moved out?
22:05 japhb I mean, how does Rakudo do it, for instance?
22:05 NotFound darbelo: What sysinfo values do you need?
22:05 bacek tcurtis, how hard is to generalize PAST::Pattern to be PCT::Pattern?
22:06 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 darbelo NotFound: Let me check.
22:08 darbelo 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);'
22:08 NotFound linux
22:09 tcurtis bacek: Not hard.
22:09 purl not hard is relative
22:09 darbelo Okay, what's that in NQP? :)
22:09 bacek tcurtis, good.
22:11 NotFound Version is trickier, is taken from the system at runtime
22:12 NotFound 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
22:12 darbelo That's the one. I was wrong earlier.
22:13 NotFound $ winxed -e 'var p = getinterp(); var config= p[8]; string s=config["VERSION"]; say(s);'
22:13 NotFound 2.5.0
22:13 bubaflub joined #parrot
22:13 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:14 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.
22:15 darbelo NotFound: Neither can NQP.
22:15 NotFound darbelo: just hardcode it for a now.
22:16 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?
22:16 darbelo It think pmichaud was woring on that one recently.
22:17 bacek cotto_work, very.
22:17 cotto_work why is there a divergence?
22:18 bacek cotto_work, updating PCT for PAST->newPOST in todo list. Basically oldPOST is very stringish.
22:19 darbelo NotFound++ #That's the last one I needed.
22:19 darbelo japhb: Plumage now configures again!
22:19 japhb Yay!
22:20 NotFound Note how useful is winxed as a sort of one-lined pir ;)
22:20 darbelo There's a few glitches. But it configures.
22:20 japhb NotFound, I did indeed note that
22:20 japhb darbelo: pushed?
22:20 darbelo NotFound: I'm close liking it better than NQP already.
22:21 darbelo japhb: Not yet. Gimmie a sec.
22:22 japhb darbelo, np, take your time
22:22 cotto_work bacek, you're right.  That's very stringy.
22:23 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
22:24 darbelo And plumage itself is still broken. I'll get to that in a bit.
22:24 japhb Roger that
22:25 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.
22:26 bacek cotto_work, exactly. And I've got "green light" from pmichaud to hack it :)
22:26 cotto_work nice
22:28 bacek cotto_work, if you have time can you implement POST::Key to store keys? And update Actions.pm to use it?
22:29 bacek inherit POST::Key from Value
22:30 cotto_work I can take a crack at it tonight.
22:30 bacek cotto_work, ok.
22:30 cotto_work how's PCC going?
22:31 bacek cotto_work, simple calls works. E.g. no args/params :)
22:32 darbelo japhb: That's probbaly beyond teh scope of my NQP skilz.
22:32 bacek I hope to implement most of it tonight/tomorrow
22:32 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
22:33 darbelo I'll try to get it working with minimal changes. And leave the refactoring to someone skilled in the correct language.
22:34 japhb Nodnod.
22:34 japhb Much thanks nonetheless.
22:34 dalek parrot-plumage: c9f1e8d | darbelo++ | src/lib/Plumage/NQPUtil. (2 files):
22:34 dalek parrot-plumage: Update NQPUtils.nqp to cope with the latest parrot deprecations.
22:34 dalek parrot-plumage: This allows configuration to succeed again.
22:34 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/c9f1e8d49a87b53271e137461e5afec5e021a5e5
22:34 cotto_work Maybe the new POST should have a different name.
22:34 cotto_work PIST, PEST and PUST are open
22:35 tcurtis Don't forget, PYST.
22:35 cotto_work then again, maybe we should stick with POST
22:35 sorear don't forget, darbelo is opening up an infinity of new vowels
22:35 sorear (a countable infinity, but still)
22:37 darbelo P<LATIN CAPITAL LETTER O WITH FIVE UMLAUTS AND A HAT>ST
22:38 NotFound You can leave your hat on....
22:39 cotto_work P☺ST
22:43 bacek cotto_work, it's still POST :)
22:43 NotFound But happier :)
22:45 dalek parrot: r47769 | NotFound++ | trunk/src/pmc_freeze.c:
22:45 dalek parrot: PARROT_const_cast is stricter in C++ than in C, adding casts to make it work
22:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47769/
22:57 darbelo Can anyone think of why would "pir::getinterp__P()[7][1]" be Undef in NQP ?
23:00 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
23:02 NotFound IGLOBALS_DYN_LIBS        7
23:13 darbelo I wonder if that was ever renumbered...
23:13 darbelo The code in plumage seems to think it's something else...
23:14 NotFound darbelo: take note and comment what that '8' means ;)
23:14 darbelo Yeah...
23:16 dalek pir: 93d302d | bacek++ | pir.pir:
23:16 dalek pir: Add FIA.elements for simplify POST::Compiler testing.
23:16 dalek pir: review: http://github.com/bacek/pir/commit/93d​302d3febd7d4df092e68bf29abdb8a84d6d9a
23:16 dalek pir: 4ec7ff7 | bacek++ | t/03-pbc/00-compiler.t:
23:16 dalek pir: Stub for testing POST::Compiler functions.
23:16 dalek pir: review: http://github.com/bacek/pir/commit/4ec​7ff7ca85838106d36a5a543a6e929b5efb66b
23:16 dalek pir: 66bf085 | bacek++ | t/03-pbc/00-compiler.t:
23:16 dalek pir: Add first failing test for POST::Compiler.build_args_signature.
23:16 dalek pir: review: http://github.com/bacek/pir/commit/66b​f085e6db40a1537302f0ef64178b67230977c
23:16 dalek pir: 67ec29d | bacek++ | src/POST/Compiler.pm:
23:16 dalek pir: Create signature with proper size.
23:16 dalek pir: review: http://github.com/bacek/pir/commit/67e​c29d41928c6880cc64d7c644f4bb94ffd2e8b
23:16 dalek pir: 1421d91 | bacek++ | src/POST/Compiler.pm:
23:16 dalek pir: First cut of properly generating call signature.
23:16 dalek pir: review: http://github.com/bacek/pir/commit/142​1d91351574f77832ea3432549aee626ac7b29
23:18 NotFound darbelo: http://trac.parrot.org/parrot/changeset/​45475/trunk/include/parrot/interpreter.h
23:19 darbelo NotFound: Yeah, I found that. I have to bump a few numbers in a few places.
23:19 davidfetter joined #parrot
23:21 NotFound Isn't nice how our deprecation policy helps keep things working? X-)
23:22 darbelo We need to ban implicitly numbered enums.
23:22 NotFound And ban renumbering them for no reason.
23:22 darbelo And a chainsaw.
23:22 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.
23:23 cotto_work I don't see the need for banning chainsaws.
23:23 cotto_work They're a significantly underutilized motivation technique.
23:23 darbelo No, no. I was adding it to the list of things we need.
23:23 cotto_work +1 then
23:24 darbelo It's what we use to enforce the various bans.
23:24 NotFound We should have a chainsaw dealer sponsoring PAFO.
23:24 cotto_work Mmmm.  +3 Chainsaw of Motivating
23:25 tcurtis Why don't Captures do "array" or "hash"?
23:25 darbelo 'cause it's too much effort, man.
23:26 cotto_work because nobody added "does array does hash" to the pmclass declaration
23:26 cotto_work you'd kinda expect it given that its ATTRs are named "array" and "hash"
23:27 NotFound BTW 'pmclass' means Patrick Michaud class?
23:27 * japhb looks at r45475, gets an instant headache
23:27 darbelo japhb: Fix pushed. plumage now displays usage info and all.
23:27 japhb shocking!
23:27 japhb thx, darbelo
23:27 NotFound plumage++
23:28 NotFound darbelo++
23:29 japhb darbelo: 'make test' next, since you're on a serious roll?
23:29 dalek parrot-plumage: 5475eab | darbelo++ | src/ (3 files):
23:29 dalek parrot-plumage: Change some magic constants that got changed from the parrot side.
23:29 purl dalek: that doesn't look right
23:29 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/5475eab6c8a846af83266954018947444f51448f
23:30 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?
23:31 japhb I believe so, yes.
23:31 japhb Re-import in order?
23:31 darbelo Yeah.
23:31 darbelo Was there a documented prcedure?
23:31 japhb (The only reason it doesn't just *use* Tapir is of course the chicken-and-egg problem.)
23:31 japhb Dukeleto did it himself, so sadly not.
23:33 darbelo Ha! Tapir itself needs an update.
23:33 cotto_work The description for the Capture PMC is lta.
23:33 japhb wheee
23:34 * japhb had a snarky comment here, but decided it was not terribly nice.
23:34 darbelo Public logged channels are such pain some days :)
23:35 japhb truedat
23:35 cotto_work but useful more often than not
23:37 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.
23:38 japhb *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.
23:38 purl Message for darbelo stored.
23:38 cotto_work Fortunately parrot already has return continuations.  You can just use those.
23:39 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:44 darbelo OK. Tapir updated
23:45 japhb Yak shaved.
23:47 dalek tapir: c449b85 | darbelo++ |  (2 files):
23:47 dalek tapir: Update tapir to run with parrot HEAD
23:47 dalek tapir: review: http://github.com/leto/tapir/commit/c4​49b856f15695e3206d632930af6aff4247bc92
23:47 darbelo ... And the same fix was pushed to the plumage harness.
23:47 japhb w00t
23:48 darbelo Dammit. No, I did that wrong.
23:48 japhb Well, it did get a little further.  :-)
23:48 japhb Which is to say, it died on the same file, but later.  :-)
23:49 darbelo japhb: pull and try again.
23:49 japhb roger
23:50 japhb 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.
23:50 japhb :-)
23:51 darbelo Okay. Pushed the last fix, I have a clean make test.
23:51 dalek parrot-plumage: 692ed52 | darbelo++ | t/harness.pir:
23:51 dalek parrot-plumage: Pull in a harness fix from Tapir.
23:51 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/692ed5233e258f3c44d00facf98420b66483bcf1
23:51 dalek parrot-plumage: fdbdff6 | darbelo++ | ext/Tapir/Parser.pir:
23:51 dalek parrot-plumage: Pull another fix from Tapir.
23:51 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/fdbdff63cb207df25d7fd68459deed857005a6e9
23:52 dalek parrot-plumage: 1b59f9e | darbelo++ | t/02-load-all.t:
23:52 dalek parrot-plumage: Update magic constants that were changed on parrot.
23:52 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/1b59f9e875c0dc27533deddb352afd67df998eb8
23:52 japhb The most frustrating thing is that if I could have used symbolic constants, I would have.
23:52 japhb W00t!  Passed all tests.
23:52 japhb darbelo, you officially rock.
23:53 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
23:53 japhb ... and there's another yak shaved
23:53 darbelo I'm a selfish bastard. What can I say?
23:54 japhb Altruistic self-centeredness.  WFM.

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced