|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, close tickets. Set by moderator on 15 June 2010. |
|||
| kthakore | oh well I guess you guys are busy ... I will have the guy try later | 00:07 | |
| thanks any ways | |||
| whiteknight | who's busy? What do you need? | ||
| kthakore | whiteknight: trac.parrot.org/parrot/ticket/1687 | ||
| whiteknight: I have apatch there Coke said it was ok | 00:08 | ||
| whiteknight: I messed up the patch | |||
| whiteknight: let me fix that | |||
| whiteknight: I fixed tha patch | |||
| whiteknight: sdlperl.ath.cx/patch | 00:09 | ||
| whiteknight | patch failed | ||
| how to apply it? | 00:10 | ||
| kthakore | oh right you guys use svn not git | ||
| *sigh* | |||
| whiteknight | I got the important part. We can get you added to credits later | 00:11 | |
| typically, adding yourself to credits is the first commit you make when you get a commit bit | |||
|
00:11
mikehh joined
|
|||
| kthakore | whiteknight: try now? | 00:11 | |
| whiteknight: hah! read the back log. cotto_work made me do it | 00:12 | ||
| whiteknight: you guys are mean. :( | |||
| whiteknight | :) | ||
| kthakore | I was like it is a one line fix. | ||
| whiteknight | I applied the action part of the patch | 00:13 | |
| kthakore | and he is like NO you n00b. a contribution is a contribution | ||
| and I am like fine ... | |||
| and you are like NOOB who said you can be in my repo | |||
| and I was like :*( | |||
| STOP TOYING WITH MY FEELINGS ! | |||
| cotto_work | There are other first commits that can be made upon the receipt of a commit bit. | ||
| kthakore | w/e .... I am jaded to the underbelly of the open source world now | 00:14 | |
| cotto_work | I guess that's one of those policies that changes depending on who you ask. | ||
| kthakore | you guys can't faze me | ||
| I have seen it all! | |||
| whiteknight | I think the lesson is that we need to get kthakore a damn commit bit :) | 00:15 | |
| kthakore | NOOOOooOoOOooooooo,......... | ||
| dalek | rrot: r47748 | bacek++ | trunk/src/pmc/sub.pmc: Initialize Sub.vtable_index with -1 as required by Namespace PMC to properly store Sub. |
||
| rrot: r47749 | whiteknight++ | trunk/editor/mk_skeleton.pir: [editor] Fix TT#1687. Patch courtesy kthakore++ |
|||
| kthakore | whiteknight: but that willl mean I will have to commit | ||
| cotto_work | not really | ||
| but it will be easier | 00:16 | ||
| whiteknight | kthakore: there are worse things | ||
| cotto_work | and the commit button will be so shiny ... | ||
| kthakore | cotto_work: yeah and that is why I am in 10 project when all I wanted was to make games in perl and perl6 | ||
| FUUUUU | |||
| 11 months ago I wasn't in a single project | 00:17 | ||
| I just used stuff and did bug reports | |||
| now ... I know things ... my cherry has broken. | 00:18 | ||
| kthakore curls up into a ball | |||
| cotto_work | I suppose we definitely shouldn't give him two commit bits. | 00:21 | |
| dalek | TT #1684 closed by bacek++: examples/pir/*.pir aren't executed during make fulltest. | ||
| TT #1684: trac.parrot.org/parrot/ticket/1684 | |||
| TT #1685 closed by bacek++: Fix for #389 broke examples/pir/make_hello_pbc.pir | |||
| TT #1685: trac.parrot.org/parrot/ticket/1685 | 00:22 | ||
| TT #1687 closed by whiteknight++: make vim-install broken | |||
| TT #1687: trac.parrot.org/parrot/ticket/1687 | |||
| kthakore | cotto_work: hehe | ||
| kthakore scheme worked | |||
| :) | |||
| whiteknight: can you also close this ticket trac.parrot.org/parrot/ticket/1478 | 00:23 | ||
| whiteknight: that test doesn't exist any more | |||
| whiteknight | ok, let me look | 00:27 | |
| cotto_work: We definitely shouldn't give him the super-secret extra-responsibility commit bit | 00:28 | ||
| kthakore: I can't get to 1478 tonight. Have too much to do still and bedtime is fast approaching | |||
| Coke | kthakore: ticket closed. | 00:30 | |
| kthakore | Coke: thanks | 00:32 | |
| whiteknight: yeah thanks | |||
| Coke | Feel free to comment on tickets, if folks aren't about. | 00:33 | |
| dalek | kudo: 1277e18 | pmichaud++ | docs/ROADMAP: Add closures to ROADMAP (so we don't forget about them :-). |
00:36 | |
| kthakore | Coke: I can't comment on them. NO access | 00:38 | |
| dalek | TT #1478 closed by coke++: t/pmc/iterator.t: split test | ||
| TT #1478: trac.parrot.org/parrot/ticket/1478 | |||
| cotto_work | I'm not really a fan of that skeleton. | 00:47 | |
|
01:01
abqar joined
|
|||
| dalek | rtcl-nqp: 32a24fc | mdiep++ | (3 files): Implement [array size] |
01:17 | |
| cotto | hi | 01:30 | |
|
01:33
TiMBuS joined
|
|||
| cotto | time to review some khairul code | 01:42 | |
| and that blog thing he seems to write in from time to time | 01:43 | ||
| Coke | kthakore: you have to create an account on trac. | 01:44 | |
|
01:44
plobsing joined
|
|||
| Coke | I am in the non-yapc reserved portion of the lobby in morrison. | 01:45 | |
| cotto | How'd the Lorito BOF go? | ||
| whiteknight | ah yes, I'm definitely looking forward to a recap about that | 01:46 | |
| Coke chuckles. mdiep has made 2 commits in 2 days! | |||
| dalek | rrot-linear-algebra: 471954c | Whiteknight++ | (3 files): add a row_swap method, and test. Add an example file showing the use of row |
||
| cotto | mwho? ;) | ||
| Coke | it wasn't really a lorito bof. | ||
| we ended up talking more about remaining (but not urgent) big pain points for rakudo. | 01:47 | ||
| cotto | do kid51's notes cover everything? | 01:50 | |
| thenceforward.net/parrot/yapc_bof_20100621.txt | 01:51 | ||
| whiteknight | Coke: ...and what are those pain points, pray tell? | ||
| Coke | Task::Parrot is github.com/coke/Task-Parrot/ | 01:53 | |
| ah, yah, I don't have to transcribe my snapshot of the whiteboard. | 01:54 | ||
| whiteknight is going to bed, will hear details tomorrow | 01:55 | ||
| goodnight | |||
| Coke | ~~ | ||
| Coke is going to try to release Task::Parrot tonight. | |||
| dalek | rrot: r47750 | coke++ | trunk/README: use a less confusing sample install dir. |
02:10 | |
| kthakore | Coke: I have one. But I can't edit tickets | 02:12 | |
|
02:30
khairul joined
02:35
JimmyZ joined
|
|||
| cotto | hi khairul | 02:52 | |
| khairul | hi cotto | 02:53 | |
| meeting? | |||
| purl | rumour has it meeting is at 3:30pm eastern | ||
| cotto | sure | 02:55 | |
| Coke | kthakore: what's your ID? | 02:59 | |
| cotto | forget meeting | ||
| purl | cotto: I forgot meeting | ||
| cotto | purl, PLEASE ABSTAIN FROM BEING STUPID | ||
| purl | cotto: what? | ||
| cotto | I guess INTERCAL would be a little much to expect from purl. | ||
| Coke | purl, choke on a botsnack. | ||
| purl | thanks Coke :) | ||
| kthakore | Coke: kthakore | 03:00 | |
| purl | you are working on rehashing SDL_perl or making a Tetris clone in Modern Perl which shows an Example of MVC and the mediator design pattern in SDL Perl | ||
| cotto | plobsing, ping | 03:02 | |
| Coke | kthakore: gave you TICKET_APPEND | ||
| cotto | seen plobsing | 03:03 | |
| purl | plobsing was last seen on #parrot 3 days, 22 hours, 37 minutes and 39 seconds ago, saying: I'll try the 2 word/op variant. Hopefully it will go better. [Jun 18 04:25:29 2010] | ||
| plobsing | cotto: pong | 03:06 | |
| cotto | plobsing, do you have an eta for dynop_mapping being ready to merge? | ||
| plobsing | I'm fairly stuck trying to do things in any way that is remotely close to right. I can probably bang out a quick hack tonight because it is a pain point. | 03:07 | |
| so tomorrow if you want it now, two weeks from now if you want it right. | 03:08 | ||
| cotto | we have enough broken stuff already | 03:09 | |
| Is there something I could help parallelize? | |||
| plobsing | hmmm... planning is not my strong suit. | 03:11 | |
| the quick hack won't break anything. | 03:12 | ||
| cotto | will it be reasonably easy to implement the proper fix though? | ||
| plobsing | it just isn't clean and uses more memory than it should and doesn't get some of the goals I want to acheive | ||
| cotto: yes. but it involves moving around some management of dynoplibs. That, I'm not terribly familiar with | 03:13 | ||
| I've been stuck for a week or two now, so I'll just the the quick 'n dirty now, so people aren't in pain while I think about this. | 03:14 | ||
| cotto | wfm | 03:15 | |
| khairul will eventually need it, but he's got other things to work on in the meantime | |||
| bacek, ping | 03:39 | ||
| bacek_at_work | cotto, pong | ||
| cotto | bacek_at_work, do you know when gc_massacre will be ready for trunk? | 03:40 | |
| bacek_at_work | cotto, after someone will tune GC triggering policy... | ||
| cotto, I'm slightly out of ideas how it should be implemented | |||
| cotto | That sounds like an interesting problem. | 03:42 | |
|
03:42
LoganLK joined
03:44
janus joined
|
|||
| cotto | bacek_at_work, how do I edit my commit history to make myself look less stupid? | 03:47 | |
| bacek_at_work | cotto, did you push it already? | ||
| cotto | nope | ||
| sorear | is it the most recent commit? | ||
| bacek_at_work | Ok. What do you want to edit? | ||
| 1. git commit --amend to edit message in last commit. | 03:48 | ||
| cotto | the changes made by the previous three commits | ||
| bacek_at_work | 2. git rebase --inter HEAD~10 to rebase (squash/drop) last 10 commits. | ||
| cotto | that one sounds promising | 03:49 | |
| bacek_at_work | 3. git reset HEAD~3 to "remove" 3 last commit and commit them again. | ||
| 3a. git commit --inter to commit parts of file instead of whole. | |||
| www-cs-students.stanford.edu/~blynn.../book.html really good git tutorial | 03:50 | ||
| cotto | with 3, will the changes still be in the fs? | ||
| sorear | yes | ||
| git reset (no options) undoes a commit -a; leaving the changes in working | 03:51 | ||
| git reset --soft undoes a commit; leaving the changes in working and marked to be committed | |||
| git reset --hard undoes a commit and removes it from fs | |||
| 4. git config author.name xxx; git commit --amend to shift the blame to someone else | |||
| cotto | sorear, bacek_at_work, thanks | 03:53 | |
| bacek_at_work, were there only two more ops that needed desugaring? | 03:55 | ||
| bacek_at_work | about 4 I think | ||
| cotto | unary, binary_math and binary_logic too? | ||
| bacek_at_work | yes | 03:56 | |
| cotto gets to work | 03:57 | ||
| atrodo | I love YAPC. For some reason, I'm getting some good hacking going | ||
| bacek_at_work | cotto, why don't use hash for mapping op? Instead of lot of if/elsif | ||
| dalek | r: d13e8c3 | cotto++ | (2 files): desugar if_op and unless_op |
03:58 | |
| bacek_at_work | (and leftover comment for desugarizing sym<unless_op>) | ||
| cotto | The if/else chunks only appear in one place. If there's somewhere else they'll be useful, a hash will be much prettier. | 03:59 | |
| bacek_at_work | ok. | ||
| line 299, 332 in Actions.pm. Are you sure that there is space after <=? | |||
| And definitely more tests are welcome :) | 04:00 | ||
| afk # meetings... | |||
| cotto | nope, definitely a goof | 04:01 | |
| bacek++ | |||
|
04:08
arnsholt_ joined
|
|||
| bacek_at_work | cotto, (here briefly) ... else { $/.CURSOR.panic("Unhandled op $<relop>"); } in if_op/unless_op will help to catch (future) errors. | 04:16 | |
| cotto | good idea | 04:20 | |
| It appears that imcc will still happily convert $I0 = ~ 1234 into bnot, even though the bit ops are now dynops. | 04:22 | ||
| apparently ** is also quite untested | 04:51 | ||
| dalek | rrot: r47751 | plobsing++ | branches/dynop_mapping/src/packfile.c: off by one error |
05:11 | |
|
05:11
theory_ joined
05:22
contingencyplan joined
05:32
contingencyplan joined
|
|||
| cotto | bacek_at_work, do you see any value in dealing with the sugared forms of the bitwise ops? | 05:41 | |
| bacek_at_work | cotto, e.g.? | ||
| cotto | all of them, since they're dynops now | 05:42 | |
| plobsing | sugared bitwise as in $I0 & $I1 ? | ||
| cotto | yes | ||
| bacek_at_work | "$I0 &= $I1"? | ||
| or "$I2 = $I0 & $I1"? | 05:43 | ||
| cotto | both, but I'm thinking of the $I0 & $I1 form now | ||
| bacek_at_work | cotto, hmm. Why don't support it? It's just matter of creating POST::Op node with proper pirop. | 05:44 | |
| cotto | for one, it'll break if there's not an explicit loading of the bitwise dynops somewhere | 05:45 | |
|
05:49
s1n joined
|
|||
| plobsing | is it possible to define mutually-recursive static const values in C? | 05:49 | |
| cotto | nm. I guess the bitwise ops are back as core ops now. | 06:01 | |
|
06:02
contingencyplan joined
|
|||
| plobsing | cotto: some of them are. Not many. Mostly integer bitwise ops. | 06:05 | |
| I couldn't eliminate them because NQP made use of them, so they are needed for bootstrap. | |||
| cotto | ok | 06:08 | |
| dalek | rrot: r47752 | plobsing++ | branches/dynop_mapping (4 files): add back-reference to library in op_info_t |
06:17 | |
| nxed: r514 | julian.notfound++ | trunk/examples/pirado.winxed: update example pirado to change in PBC fixups types |
06:37 | ||
| r: 79412c6 | cotto++ | src/PIR/Actions.pm: various cleanups |
06:39 | ||
| r: afa09fc | cotto++ | (2 files): implement and test unary ops |
|||
| r: 0cce82d | cotto++ | src/PIR/Actions.pm: add error checking to if_op and unless_op |
|||
| r: 67adc35 | cotto++ | (2 files): add actions and tests for binary math desugaring |
|||
| r: 12d9ae5 | cotto++ | src/PIR/Actions.pm: better error messages |
|||
|
06:39
kjeldahl joined
|
|||
| r: 126f2ce | cotto++ | (2 files): add desugaring and tests for pir_instruction:sym<binary_logic> |
|||
| bacek_at_work | yay! | ||
| sorear | is "pir" the new name of "PIRATE"? | ||
| bacek_at_work | "pir" is language, "pirate" is compiler | 06:40 | |
| cotto | git is fun | 06:41 | |
| dalek | nxed: r515 | julian.notfound++ | trunk/examples/pirado.winxed: use magic value to store subs in namespace in example pirado, bacek++ |
06:42 | |
| bacek_at_work | NotFound, winxed r515 is unnecessary. I've changed Sub PMC to set it to -1 if not passed. | 06:43 | |
| NotFound | bacek_at_work: better to be in the safer way for a now. | 06:45 | |
| bacek_at_work: great work, BTW. | |||
| bacek_at_work | NotFound, half-an-hour in gdb... | 06:46 | |
| cotto | bacek++ | 06:48 | |
| bacek_at_work, is there something else I could hack on in pirate? | 06:49 | ||
| bacek_at_work | cotto, POSTing args pragmas? | ||
|
06:50
fperrad joined
|
|||
| cotto | arg pragmas? | 06:50 | |
| like :slurpy? | |||
|
06:51
fperrad_ joined
|
|||
| cotto | I can take a shot at that tomorrow evening. | 06:52 | |
| bacek_at_work | cotto, yes, :slurpy, :flat, etc. | 06:53 | |
| sorear | and the ones nobody has ever heard of, like :call_context | 06:54 | |
| cotto | You find all kinds of funny things when you troll through the grammar. | 06:55 | |
| sorear | I found out about call_context because apparently rakudo uses it | ||
| rakudo doesn't really use getargs | |||
| it binds a single arg to the CallContext, then calls a dynop to do binding | 06:56 | ||
| bacek_at_work | yak... I definitely missed :call_context | ||
| cotto | Our measly calling conventions aren't quite awesome enough. ;) | ||
| you mean call_sig? | 06:57 | ||
| I'm a little tempted to patch pirate's grammar, but at this point I can barely type. | 07:00 | ||
| definitely time for bed | |||
| night | |||
| NotFound | bacek_at_work: modifiers is the name used in several places. | 07:07 | |
| bacek_at_work | NotFound, you mean "pragma" == "modifier"? | 07:13 | |
|
08:55
clinton joined
09:36
lucian joined
09:58
muixirt joined
|
|||
| muixirt | hi folks | 09:58 | |
|
10:03
JimmyZ joined
10:36
contingencyplan joined
|
|||
| bacek | aloha, humans | 10:55 | |
| muixirt | hi bacek | 11:10 | |
| bacek | aloha, muixirt | ||
| muixirt | bacek, can you descibe in simple terms what parrot does when executing a sub/invokecc_p? | 11:11 | |
| bacek | muixirt, how simple? | ||
| very simple - some dark magic | |||
| muixirt | for a non-C-programmer | ||
| bacek | Ooookey. | 11:12 | |
| 1. Create Continuation. | |||
| 2. Create CallContext. | |||
| 3. Populate CallContext with parameters | |||
| 4. Jump to first op in Sub. | 11:13 | ||
| muixirt | which are expensive operations? | ||
| bacek | 3a. Call Sub.invoke which will switch interpreter CallContext to one from step 2 | ||
| all except 4... | 11:14 | ||
| and "3a" | |||
| muixirt | i ask because calling a sub with pir seems to be slower than in perl5 | 11:16 | |
| bacek | muixirt, it is. But it's more expensive at least due multi-methods lookups. | ||
| muixirt | even if there's only one candidate? | 11:19 | |
| dalek | r: 6c941a0 | bacek++ | t/ (17 files): Rename t/data into t/parse for consistency reason with other tests. |
||
| r: 7f3da9f | bacek++ | src/PIR/Grammar.pm: Refactor <param_flag> to have only one flag per param |
|||
| bacek | muixirt, it's cached afaik. | ||
| muixirt | my little test prog calls an empty sub a million times, so if it's cached then there shouldn't be a time penalty. Right? | 11:22 | |
| bacek | muixirt, something like this. You can check current performance on examples/benchmarks/fib.{pir,pl} | 11:23 | |
| muixirt | bacek, yes these examples show the same as my test programs do | 11:25 | |
| bacek | muixirt, yeah. parrot is about 2 times slower than perl5. | 11:27 | |
|
11:42
whiteknight joined
11:47
lucian_ joined
|
|||
| dalek | r: 5b529bc | bacek++ | src/POST/Register.pm: Add POST::Register.modifier attribute to use with PCC calls. |
11:47 | |
| r: a56687b | bacek++ | src/PIR/Actions.pm: Store param modifier in POST. |
|||
| muixirt | hi whiteknight | 11:49 | |
| whiteknight | good morning muixirt | ||
| muixirt | whiteknight: sorry for being "incredibly unfair" | 11:51 | |
| whiteknight | muixirt: that's okay. I tend to take the long view on Parrot | ||
| we've obviously not done much optimizing so far | |||
| muixirt | whiteknight: well that would be difficult for a fast moving target like parrot | 11:53 | |
| whiteknight | muixirt: Yeah, it's a two-edged sword. There is a lot of fixing in some places before we can start optimizing things | 11:54 | |
| PCC system is a good example of a system where we've done all the fixing, but none of the optimizing. Hence the performance disparity you are seeing | 11:55 | ||
| moritz | that's not quite true | 11:56 | |
| whiteknight | not quite? | ||
| moritz | there was an optimization phase after The Big PCC Merge | ||
| whiteknight | not much of one, and not on the top-level algorithmic scale that I am envisioning | ||
| I estimate we could cut PCC overhead by 50% in coming months | 11:57 | ||
| moritz | is anybody working on that | 11:58 | |
| ? | |||
| whiteknight | moritz: not working, no. "planning" | ||
| we need to come up with a good strategy to actually squeeze that performance out, and it may require fixes to other systems (like packfiles) first | 11:59 | ||
| moritz wonders on what time scales Lorito will be implemented | 12:00 | ||
| whiteknight | that's a good question. They were supposed to talk about it at YAPC either yesterday or sometime this week | 12:01 | |
| I wish I could be there for that conversation | |||
| nopaste | "muixirt" at 192.168.1.3 pasted "test programs" (27 lines) at nopaste.snit.ch/21470 | 12:21 | |
| whiteknight | yeah, I suspect the vast majority of runtime cost there is all in creating the call object and sub context | 12:24 | |
| plus, the GC pressure | |||
| muixirt | I might be incredible unfair again but I think Parrot is to dynamic languages like complicated shaped building blocks is to tetris | 12:29 | |
| whiteknight | muixirt: I don't argue that Parrot isn't great *now*, but we've hardly stopped development | 12:30 | |
| if anything, development velocity has been increasing in recent years | |||
| and a majority of work that we've done in the past two years has been focused on cleanup, improvements, and bugfixes. | 12:31 | ||
| We're at the point now where people can really begin optimizing and optimizing some things very aggressively | |||
| ash_: ping | 12:33 | ||
|
12:37
dmalcolm joined
|
|||
| nopaste | "bacek" at 192.168.1.3 pasted "little bit faster version of sub invoke test." (20 lines) at nopaste.snit.ch/21471 | 12:37 | |
| bacek | muixirt, check nopaste. It's about 30% faster. | ||
| muixirt | bacek, great! | 12:42 | |
| bacek | muixirt, our current PIR compiler isn't smart enough to do such optimisations... | ||
| muixirt | I'm not smart enough either to parse that :-) | 12:43 | |
| nopaste | "muixirt" at 192.168.1.3 pasted "even faster" (12 lines) at nopaste.snit.ch/21472 | 12:45 | |
| whiteknight | if we could add the optimization that a function with no arguments doesn't create a call object, that would be very good | 12:49 | |
| combine that with optimizations to cache constant call objects to bytecode, a "fast path" for calls which only have a fixed number of positional arguments, and polymorphic call-side caching, we could end up with huge performance gains | 12:50 | ||
| bacek | muixirt, it's not subroutine call | ||
| whiteknight | ...and an optimization pass to inline simple functions | ||
| muixirt | bacek, it's more Knuthian MIX style subroutine :-) | ||
| dalek | rrot: r47753 | khairul++ | branches/gsoc_instrument (2 files): Combined 4 methods into 1 method returning a hash of the current context information + updated test. |
||
| whiteknight | though inlining we probably want to do at the PAST optimization level | ||
| bacek | whiteknight, we still need CallContext for arg-less subs. For local registers | ||
| whiteknight, with PIRATE it doesn't really matter. We can do optimisations on all levels :) | 12:52 | ||
| whiteknight | bacek: true. We can't get rid of CallContext entirely | 12:53 | |
| bacek: yes, PIRATE is quite awesome. The problem is that we use IMCC instead of PIRATE | |||
| bacek | whiteknight, it's temporary :) | 12:54 | |
| whiteknight | what is temporary? | ||
| bacek | IMCC | 12:55 | |
|
12:56
cognominal joined
|
|||
| whiteknight | we really should come up with a roadmap to deprecate and remove IMCC eventually | 12:56 | |
| We can't replace it with PIRATE if PIRATE is going to be much slower | 12:57 | ||
| and we can't replace it with PIRC if PIRC is not functional | |||
| bacek | pirate is slow because parrot (and nqp) is slow. | 12:58 | |
| whiteknight | True. | ||
| bacek | Eat your own dog food in action... | 12:59 | |
| whiteknight | if we have an AOT compiler, we can compile PIRATE down to a proper native executable and use it that way | ||
| that would be the best speed boost | |||
| bacek | But. With tcurstis's optimizer we can optimize POST generated by pirate | 13:00 | |
| whiteknight | yes | ||
| bacek | and than use it for optimizing pirate it self | ||
| whiteknight | right. So we build PIRATE with PIRATE, all optimizations turned on. Then we pass it to LLVM, turn on all optimizations there too, and create a .so. | 13:01 | |
| bacek | yes | ||
| stage2 | |||
| whiteknight | link that to Parrot, and we have a new frontend | ||
| bacek | yes | ||
|
13:02
kid51 joined
|
|||
| bacek | looks like good bootstrapping plan :) | 13:02 | |
| kthakore | hola! | 13:09 | |
| trac? | |||
| purl | trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow | ||
| kthakore | Can we (noobies) have some more tickets here? trac.parrot.org/parrot/report/19 | 13:10 | |
|
13:14
bluescreen joined
13:16
spinclad joined
13:20
bluescreen joined
13:27
gbacon joined
|
|||
| bacek | kthakore, take any "todo" ticket. They are usually not-so-complex. | 13:41 | |
| kthakore, e.g. TT#1627 | 13:42 | ||
| or "deprecation" tickets with milestone in past. | 13:43 | ||
| NotFound | whiteknight: even better: don't link it, dynload it when needed. | 13:46 | |
|
13:48
kid51 joined
|
|||
| dalek | nxed: r516 | julian.notfound++ | trunk/winxedst1.winxed: fix again multi const |
13:51 | |
| NotFound | bacek: Not-so-complex lke, for example, moving ops to dynops? ;) | 13:52 | |
| bacek | NotFound, yeah, something like this :) | 13:53 | |
| whiteknight | NotFound: if we get to the point where we can compile PIRATE to a heavily-optimized .so file, we're in a good shape whether we statically or dynamically load it | ||
| at that point, all the hard problems have been solved | |||
| NotFound | Let's hope so, and keep fixing problems in the meantime. | 13:54 | |
| whiteknight | NotFound: how is Winxed doing now? I would like to write up some examples for PLA in Winxed sometime soon, so I'm looking to see if you have a stable version or a release or anything I can play with | 13:55 | |
| whiteknight also wants to write up some basic bindings for Rakudo, will probably wait till after Rakudo STar | 13:56 | ||
| NotFound | whiteknight: after that last commit is doing well. | ||
| whiteknight | NotFound: okay, do you have releases, or should I just track master? | ||
| kthakore | bacek: thanks | 13:57 | |
| whiteknight | er, I guess it is HEAD on google code | ||
| NotFound | whiteknight: current releases is 0.Work-in-progress, which means trunk | ||
| whiteknight | gotcha | ||
| NotFound | I'll be glad to help you, and learn something PLA while doing it. | 13:58 | |
| whiteknight | NotFound: it's really easy. Basically just new 2D matrix PMC types, instead of arrays | ||
| NotFound | Is plumage fixed? | 13:59 | |
| whiteknight | I have no idea | ||
|
13:59
bubaflub joined
|
|||
| NotFound | How can I install PLA, then? | 14:00 | |
| Coke cries. it /was/ too late for more coffee. | |||
| whiteknight | it has a README file. git clone, "parrot setup.pir build; sudo parrot setup.pir install" | ||
| Coke | Ok. Task:Parrot is on its way to CPAN. Another useless module for your enjoyment. | ||
| NotFound | Nice | ||
| whiteknight | We should probably get plumage fixed soon | 14:01 | |
|
14:01
patspam joined
|
|||
| whiteknight | maybe I can take a look at that nowish | 14:02 | |
| NotFound | whiteknight: I hope sudo isn't required if installing to a user dir. | ||
| whiteknight | NotFound: no, probably isn't | ||
| I've never installed to a user dir, so I can't say for sure. But I can't imagine why it would need to be | 14:03 | ||
| NotFound | I'll tell you in a minute... | 14:04 | |
| atrodo | Apparently, my netbook, if I'm moving the mouse while holding down the key for 2 minutes (say, checking back IRC logs), it dims the lights as though the mouse hasn't moved in the past 2 minutes | 14:06 | |
| NotFound | Some more than a minute, I must install libatlas first. | 14:08 | |
| Coke | (task parrot is underspecified. will add the rest of the deps this week. | 14:10 | |
| NotFound | whiteknight: Uh.... setup.pir doesn't compile. | ||
| $S0 = sysinfo 4 | |||
|
14:10
plobsing joined
|
|||
| NotFound | I think syssinfo is a dynop now. | 14:10 | |
| japhb | <rez> | 14:11 | |
| Plumage is still broken. I took a look last night, but didn't get very far. I think that Plumage needs to switch over to using nqp-setting.pbc in the Configure stage, and that should bring it back to life. | 14:12 | ||
| If someone wants to do that, I'd be most appreciative. Otherwise I'll try to find another small break today and see if I can get it done. | 14:13 | ||
| Also, if there are any dynops needed, well clearly that will have to be fixed as well. | 14:14 | ||
| whiteknight | NotFound: weird, I thought I had fixed that problem | 14:15 | |
| NotFound | whiteknight: I just git cloned it | ||
| whiteknight | NotFound: oh, nevermind. PLA is only targetted to run against Parrot 2.3.0, not Parrot HEAD | ||
| this was back before the dynops were separated out | |||
| japhb | I'm soon to disappear for yet another meeting. Anyone have any other Plumage questions for me before I have to leave? | ||
| whiteknight | japhb: no questions. I'm looking at the code now to see what (if anything) I can do | 14:16 | |
| japhb | whiteknight, thank you! | ||
| NotFound | Adding: .loadlib 'sys_ops.so' it works,. | ||
| whiteknight | japhb: if I can get a commit bit later, I may actually be able to do some actual helping | 14:17 | |
| japhb | Do you have a gitorious account? | ||
| whiteknight | japhb: whiteknight | ||
| purl | whiteknight is probably mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/ | ||
| japhb | OK, hold on | ||
| NotFound | whiteknight: then we may be in trouble, I just test winxed with almost-trunk parrot. | ||
| whiteknight | NotFound: okay, I may need to create a bleed branch in the repo to track Parrot head, and keep the integration branch targetted towards the last stable release | 14:18 | |
| NotFound | whiteknight: you need to target something recent if you want it to be usable with Rakudo* | 14:19 | |
| whiteknight | NotFound: stable versions. Rakudo Star will be after 2.6, which will also be stable | ||
| everybody wins | |||
| NotFound | Good | ||
| wins-winxed ;) | 14:20 | ||
| whiteknight | NotFound: by the deprecation policy, winxed should target stable releases too :) | ||
| NotFound | whiteknight: yeah, but I'm the only developer and life is short. | 14:21 | |
| whiteknight | life is short | 14:22 | |
| NotFound | It may work, I just don't test it. | ||
| japhb | whiteknight: want to be an admin for Plumage as well? | 14:23 | |
| whiteknight | japhb: sure, whatever I can sucker you in to giving me :) | ||
| japhb | You've got it. | ||
| *imagine sudo warning here* | 14:24 | ||
| :-) | |||
| whiteknight | of course :) | 14:25 | |
| NotFound | With a great power... | 14:26 | |
| atrodo | comes great parties | 14:27 | |
| NotFound | And great bill from the electric company. | 14:28 | |
| japhb | And mysterious holes in the wall | ||
| dalek | kudo: 7b5b9d5 | moritz++ | docs/announce/2010.06: un-split cognominal's personality |
14:30 | |
| rrot: r47754 | NotFound++ | trunk/t/pmc/arrayiterator.t: test ArrayIterator defined_keyed |
14:32 | ||
| rrot: r47755 | chromatic++ | trunk/src/pmc_freeze.c: [src] Fixed compilation warnings in src/pmc_freeze.c. No functional changes. |
|||
| ash_ | whiteknight: pong | 14:39 | |
| dalek | r: b04cf33 | bacek++ | t/01-parse/01-subs.t: Add test for :call_sig parsing. |
14:40 | |
| r: e2f20dc | bacek++ | t/ (2 files): Add tests for POSTint param modifiers |
|||
| r: bbaab60 | bacek++ | src/PIR/Actions.pm: Fix POSTing :named modifiers. |
|||
| r: 060a45d | bacek++ | (3 files): Add first tests for PCC calls |
|||
| whiteknight | ash_: by chance, will the new NCI system be able to handle calls to shared libs written in FORTRAN? | 14:42 | |
| ash_ | i don't know.... are those callable from C? | 14:43 | |
| (i can check) | |||
| is there a specific reason you'd like to call fortran? (because if its for fortran for loops, you can do the same optimizations with the restrict keyword in C) but if its for an already existing library then it would need to be callable from C | 14:44 | ||
| moritz | fortran and C share the same calling conventions, usually | 14:45 | |
| the fortran compilers just apply some name mangling | |||
| which is of course non-standard and non-portable among compilers | |||
| ash_ | so i guess you'd need to know how it name mangles | 14:46 | |
| whiteknight | what I really want to do is tap into the LAPACK and BLAS libraries, both written in fortran | 14:47 | |
| in Fortran, all parameters are passed by reference, and an underscore is appended to the end of the name | |||
| dalek | rrot-linear-algebra: d8c383b | Whiteknight++ | README: update README. Current master still targets 2.3.0, not 2.2.0 |
14:48 | |
| ash_ | whiteknight: i can do some tests, but i see no reason currently why that wont work | 14:49 | |
| whiteknight | ash_: so in "fortran mode", all INTVAL and FLOATVAL would need to be passed by reference. All other pointers can stay unmangled | ||
| ash_ | as long as there is a way to mangel the names properly according to the compiler | ||
| whiteknight | okay | ||
| NotFound: the parrot-head branch of PLA includes that lib. I haven't tested it yet to see if it works | 14:50 | ||
| ash_ | whiteknight: also, i got most of my system working now, i need to do some cleanup on memory stuff, but i now build all of the core_thunks.c thunks dynamically | 14:51 | |
| a cacheing mechanism would also be useful, since some thunks are repeated | 14:52 | ||
| whiteknight | ash_: yes, caching would be very nice. If you cached to a hash by signature string I think that would be the best and most useful | 14:57 | |
| NotFound | whiteknight: I'm not gitted enough to know how to switch branches | 14:58 | |
| moritz | if it's a remote branch: git checkout -b branchname origin/branchname # the first time only | 14:59 | |
| then just git checkout branchname | |||
| NotFound | moritz: I'm not gitted enough to know what's a remore branch X-) | 15:00 | |
| remote | |||
| moritz | NotFound: it's a branch that's somewhere on a server (like github, gitorious) | ||
| ash_ | gfortran seems to mangle fortran90 names by doing ___modulename_MOD_[subname|variablename] | ||
| moritz | as opposed to a local branch, which is one that's not shared | ||
| ash_ | thats pretty easy | ||
| NotFound | Then what's a non-remote one X-) | ||
| moritz | then just 'git checkout branchname'. | ||
| whiteknight | ash_: it's not a huge deal. Don't worry about it if it's going to distract you from other important work | 15:01 | |
| NotFound | What is 'origin' ? | 15:02 | |
| moritz | it's the name of a remote | 15:03 | |
| ash_ | whiteknight: it might be a good test to add to the test suite though, i'll keep it in mind | ||
| whiteknight | okay, thanks | ||
| ash_ | origin is the default remote that git looks to if you do pushes and fetchs | ||
| whiteknight | NotFound: if you are getting it from gitub, "origin" is just another name for github | ||
| NotFound | Sigh... As usual people teach things in a language that only understand whose that already knoes X-) | ||
| whiteknight | "origin" is the place where you got the repo from. | 15:04 | |
| ash_ | all external repositories are "remotes" in git, if you cat your .git/config file it should list some in there (its pretty easy to read) | ||
| moritz | (or git remove -v, if you can't have a cat handy :-) | ||
| dalek | rrot: r47756 | chromatic++ | trunk/src/call/context.c: [PCC] Avoid register allocation for functions which have no regs. |
15:05 | |
| rrot: r47757 | chromatic++ | trunk/src/call/context.c: [PCC] Reordered context initialization to remove duplicated work. |
|||
| rrot: r47758 | chromatic++ | trunk/src/call/context.c: [PCC] Removed (apparent) duplicate register clearing in init_context(). The three commits. This commit is the riskiest; if anything has problems, it's likely this one. |
|||
| NotFound | fatal: git checkout: updating paths is incompatible with switching branches/forcing | ||
| purl | i already had it that way, NotFound. | ||
| rrot-linear-algebra: ad6f7af | Whiteknight++ | src/pmc/nummatrix2d.pmc: add a DECLATTRS macro, for great win |
15:06 | ||
| ash_ | NotFound: what command did you run? | ||
| NotFound | If you are trying to convert me to a git enthusiast, you aren't doing well X-) | 15:07 | |
| ash_: git checkout -b parrot-head github.com/Whiteknight/parrot-linea...arrot-head | |||
| ash_ | ah, i see, thats something you might do with svn, but that wont work with git | 15:08 | |
| NotFound | What???? | ||
| ash_ | you can't target a specific branch with git, you have to pull the whole repository | 15:09 | |
| NotFound | I don't do such things in svn even with too much beers X-) | ||
| moritz | git remote add whiteknight github.com/Whiteknight/parrot-linear-algebra.git | ||
| git remote update | |||
| git checkout -b parrot-head whiteknight/parrot-head | |||
| NotFound | ash_: I was just doing what I was told so. | ||
| ash_ | moritz++ is a faster typer than me | ||
| arnsholt | NotFound: If you want to work with git, a useful place to start is this: "git is almost, but not quite, entirely unlike subversion" =) | 15:10 | |
| NotFound | arnsholt: I'm tired of sites suggesting that people doesn't like git because they are too used to subversion. I'm not too used to subversion, I learnt subversion just because I needed it to work with parrot. | 15:12 | |
| arnsholt | Sorry, but that's not actually what I tried to say | 15:13 | |
| I'm still climbing git's learning curve myself, and found that to be a helpful revelation | |||
| ash_ | www.gitready.com/ and book.git-scm.com/ are good references for things, for anyone that uses git, i still check them all the time to make sure i am doing things 'right' | ||
| arnsholt | This article by Joel Spolsky is quite good as well: www.joelonsoftware.com/items/2010/03/17.html | ||
| It talks about Mercurial and not git, but the points are still pretty valid | 15:14 | ||
| NotFound | arnsholt: thanks, sorry if I was rude. | ||
| whiteknight | I'm still climbing the git learning curve myself, I still not any good at it but practice makes perfect | ||
| arnsholt | NotFound: No problem. I can work up a good mad about git too =) | 15:15 | |
| NotFound | Switched to a new branch "parrot-head" :) | 15:16 | |
| whiteknight | NotFound: yay! | 15:17 | |
| NotFound | "parrot setup.pir install" doesn't print anything and I don't see nothing installed. | 15:21 | |
| arnsholt | But I think the one thing that really has sold me on git is the fact that you can version your whole development process | 15:22 | |
| Not only from "this I can share with others" to "this I can share with others" | |||
| whiteknight | NotFound: weird. Did setup.pir build do anything? | 15:25 | |
| ash_ | whiteknight: my nci branch also builds rakudo, which is a pretty good sign i think, it seems slow though.... | 15:26 | |
| whiteknight | setup.pir is just a thin wrapper around fperrad's distutils, so I don't know what it does or how it works, | ||
| NotFound | Looks like it just print a ldd result from a check and doesn't build anything. | ||
| whiteknight | ash_: that is a very good sign. You'll definitely want to do some benchmarking, of course. A cache would be a huge help in any case | 15:27 | |
| ash_ | yeah, it sucks though that i have to make 2 calls to libffi for 1 NCI dispatch | ||
| whiteknight | really? why? | ||
| ash_ | Parrot_pcc_fill_params_from_c_args needs to be called to fill out the arguments, and since i don't know it at compile time, i build the call dynamically | 15:29 | |
| whiteknight | NotFound: can you check in the install directory and see if the .so file is there? I've never seen the installer not work | ||
| ash_ | github.com/ashgti/parrot/blob/gsoc_...i.pmc#L880 (really more like lines 862 - 880) | ||
| NotFound | whiteknight: looks like it doesn't even generate the .c files from the pmc | 15:30 | |
| whiteknight | NotFound: weird | ||
| ash_ | brb gotta head to campus & | 15:31 | |
|
15:34
ash__ joined
|
|||
| atrodo | Okay, I need some help again. I've got a pbc I've compiled inside of parrot, and want to pass it off to my program through the embedded interface so i can write it to file | 15:35 | |
| I was passing it back as a string, and thought I was cool since parrot strings arn't null terminated, and since I'm not in C, my strings arn't null terminated | 15:36 | ||
| But, they pass out of parrot as char*'s which makes it null terminated. Any ideas? | |||
|
15:37
tcurtis joined
|
|||
| dalek | rrot: r47759 | NotFound++ | trunk/t/pmc/exceptionhandler.t: test ExceptionHandler handle_types_except method |
15:38 | |
| NotFound | atrodo: just don't pass it as char* | 15:39 | |
| atrodo | other way around. I need to get it out of parrot into my application as a pointer and a length | 15:40 | |
| NotFound | atrodo: if it has an 8-bit based encoding you can just pass the char * and the length. | 15:41 | |
| Uh.... maybe not, let me check... | 15:42 | ||
| Yes, it should be enough, Parrot_str_to_cstring doesn't check for null terminator, it just add one. | 15:43 | ||
| atrodo | But how do I know how long the string that Parrot_str_to_cstring returns is? | 15:44 | |
| NotFound | Use the parrot string bytelength | ||
| atrodo | hmmm, also, not in the embed interface | 15:45 | |
| NotFound | atrodo: tickets welcome | ||
| atrodo | hmm, is it a function or part of the structure? | 15:46 | |
| NotFound | A function. | ||
| purl | a function is declared in debug.h and defined in debug.c but is only used in imcc/pbc.c , and the const_table is used in a lot of places unrelated to pdb. | ||
| atrodo | there it is, found it, Parrot_str_byte_length | ||
| NotFound | atrodo: but it doesn't matter, if you need something just ask for it. If there isn't a function it should be created. | ||
| (or the rigth way documented) | 15:48 | ||
| cotto_work | ~~ | 15:56 | |
|
15:57
lucian joined
16:04
ash_ joined
|
|||
| atrodo | hmmm, could be wrong. Giving me wacky answers | 16:05 | |
| NotFound | Wrong? Me? Impossible! ;) | 16:07 | |
|
16:07
kid51 joined
|
|||
| kid51 | #parrotsketch | 16:07 | |
| purl | it has been said that #parrotsketch is the channel where the core parrot committers report weekly status, moderated by our project manager, coke, every Tuesday at 18:30 UTC | ||
| ash_ | is there a tool out there that can easily convert time zones right? | 16:09 | |
| that would be nice | 16:10 | ||
| kthakore | kid51: 18:30 UTC is 4:30 for us in NA right | ||
| kid51: ? | |||
| moritz | ash_: I think 'date' can do it | ||
| kthakore | date 18:30 UTC | ||
| ?? | |||
| moritz | ash_: at least I call date --utc, and see how many hours I have left | ||
| kthakore | moritz: what chu talkin about | ||
| oh not in this irc | |||
| moritz | man 1 date | 16:11 | |
| kthakore dohs! | |||
| moritz | purl: clock? | ||
| purl | moritz: LAX: Tue 9:11am PDT / CHI: Tue 11:11am CDT / NYC: Tue 12:11pm EDT / LON: Tue 5:11pm BST / BER: Tue 6:11pm CEST / IND: Tue 9:41pm IST / TOK: Wed 1:11am JST / SYD: Wed 2:11am EST / | ||
| ash_ | moritz: yeah, date -u (--utc is linux specfic) | ||
| kthakore | ah | ||
| wth date --utc gives me 16:11 Tue 2010 | |||
| so parrotskecth is over? | 16:12 | ||
| moritz | purl: #parrotsketch? | ||
| purl | #parrotsketch is probably the channel where the core parrot committers report weekly status, moderated by our project manager, coke, every Tuesday at 18:30 UTC | ||
| moritz | kthakore: 16 < 18 | ||
| so you still have 2h 17m to ps | 16:13 | ||
| kthakore | ah lol I am stupid | 16:14 | |
|
16:14
theory joined
|
|||
| kthakore | moritz: thanks leet hax0r | 16:14 | |
| trac? | |||
| purl | hmmm... trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow | ||
| kthakore | /win/win 2 | 16:15 | |
|
16:17
sjn_ joined
|
|||
| NotFound | 18:30? | 16:18 | |
| purl: #ps? | |||
| purl | i heard #ps was a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch | ||
| NotFound | purl: parrotsketch? | 16:19 | |
| purl | parrotsketch is a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch | ||
| kthakore | bacek: that ticket is alread done | ||
| NotFound | ETOOMUCHUNMAINTAINEDREDUNDANCE | ||
| kthakore | NotFound: can I close this ticket 1627? The done_testing ticket is done in t/library/test_builder_done_testing.t | 16:20 | |
| NotFound: it has bad test and failing tests | |||
| NotFound | kthakore: if you close it, you need to open other. Pointless IMO. | 16:22 | |
| kthakore | NotFound: ok | ||
| NotFound: what do I need to do to close it? | |||
| NotFound: what is various error conditions and proper/improper use? | |||
| NotFound | kthakore: as the ticket says: "just to fix the Key VTABLEs." | 16:23 | |
| The "just" may be considered irony ;) | |||
| kthakore | NotFound: what where does it say that? | ||
| NotFound: 1627 | |||
| right | |||
| NotFound: tests for Test::More::done_testing | 16:24 | ||
| cotto_work | bacek, imcc currently knows how to avoid generating some ops (e.g. ge_i_ic_ic) that PIRATE generates. Would it be easier to temporarily drop ops.num or to make PIRATE smarter? | ||
| NotFound | Oh, sorry, I looked at the wrong windows.... one moment. | ||
| kthakore | NotFound: there is in VTABLEs in there | ||
| NotFound: oh ok | |||
| cotto_work | s/ops.num/ops.skip/ | ||
| NotFound | kthakore: tests for Test::More::done_testing? | 16:25 | |
| kthakore | yeah | ||
| NotFound: see the t/library/test_builder_done_testing.t | |||
| NotFound | No idea about that. | ||
| kthakore | NotFound: it seems to be done | ||
| bacek: PING! | |||
| NotFound: no worries I will ask the guy who told me to do this ticket | |||
| NotFound: any easy peasy tickets for newbies? | 16:26 | ||
| dalek | kudo: ad2afb5 | moritz++ | src/core/Cool-str.pm: stringify self in Cool.trim-{leading,trailing} |
||
| ash_ | do PMC's have a vtable entry called when they are destroyed? | 16:28 | |
| tcurtis | ash_: void "destroy(INTERP, PMC *self)" docs.parrot.org/parrot/latest/html/...c.pod.html | 16:29 | |
| ash_: "Called when the PMC is destroyed. This method is called by the GC when it determines that a PMC is dead and that the PMC has marked itself as having a destroy method (an active finalizer).When this method finishes, the PMC will be marked as dead. As such you should make sure that you don't leave any references to it in any Parrot structure by the end of the method.This method may not throw an exception. It will be ignored if it does." | |||
| NotFound | kthakore: When I started I spent lots of time looking for that, the ones marked as easy usually weren't. And I don't think we improved that since then. | ||
| kthakore | NotFound: :P | ||
| you guys make everything super hard man | |||
| *sigh* | 16:30 | ||
| it is beyond me how people break into parrot | |||
| ash_ | thanks tcurtis | ||
| tcurtis++ | |||
| NotFound | kthakore: slowly ;) | ||
| tcurtis | kthakore: trac.parrot.org/parrot/ticket/812 is easy, although perhaps a little too trivial. | ||
| kthakore | NotFound: bah .... | ||
| tcurtis: sure you say that now | 16:31 | ||
| kthakore looks at the beast | |||
| NotFound | kthakore: I started by looking for unused code and deleting it. | ||
| kthakore | NotFound: haha that is this ticket to a T 812 | ||
| NotFound | kthakore: No kidding, you can ask chromatic about that. | 16:32 | |
| kthakore | NotFound: aww .. he is not on | ||
| NotFound: that means I AM FREE | |||
| lunch times | |||
| ash_ | are there ack types for parrot stuff? | 16:33 | |
| cotto_work | some are built in | ||
| NotFound | kthakore: no idea about 812, PCT is out of my skills. | ||
| ash_ | ah, yse i see that now | ||
| s/yse/yes/ | 16:34 | ||
| cotto_work | andy sometimes hacks on Parrot | ||
| msg bacek imcc currently knows how to avoid generating some ops (e.g. ge_i_ic_ic) that PIRATE generates. Would it be easier to temporarily drop ops.skip or to make PIRATE smart enough to avoid generating those instructions? | 16:36 | ||
| purl | Message for bacek stored. | ||
|
16:43
davidfetter joined
16:50
ambs joined
|
|||
| mikehh | opbots, names | 16:53 | |
| kthakore | tcurtis: I did that ticket and made a patch | ||
| tcurtis: maybe chromatic will accept | 16:54 | ||
| tcurtis | kthakore: that's not exactly correct. The POD for PAST::Op.lvalue needs to stay even though PAST::Op.lvalue isn't actually necessary. PAST::Op's lvalue attribute has a different meaning from PAST::Node's. | 16:56 | |
| kthakore | tcurtis: ah ok | 16:57 | |
| tcurtis: just comment it there. I am running tests to ensure nothing broke | |||
| tcurtis: I will do the pod in a sec | |||
| cotto_work | msg cotto pir_instruction:sym<if_op> and pir_instruction:sym<unless_op> need more tests. Some of the cmp ops don't have _i_i_ic variants. | ||
| purl | Message for cotto stored. | ||
| kthakore | ok lunch to wait for tests | 16:58 | |
| ash_ | so, is the current plan to have nqp compile pir? | 16:59 | |
| and eventually remove imcc? | |||
| NotFound | About UTC, this command should give #ps time in your locale: date --date='2010/06/22 20:30 UTC' | ||
| dalek | rrot: r47760 | NotFound++ | trunk/t/pmc/orderedhashiterator.t: clean OrderedHashIterator tests and add some more |
17:00 | |
| cotto_work | ash_, we'd like to do that. I'm not sure how it'll work with PIRATE's speed issues though. | ||
| davidfetter | is there a specific channel for rakudo? | 17:02 | |
| davidfetter tried #rakudo and was the only person there | |||
| bubaflub | davidfetter: i usually try #perl6 on freenode | 17:03 | |
| ash_ | davidfetter: #perl6 on freenode is about rakudo a lot (although they talk about more than just rakudo) | ||
| davidfetter | ah, freenode. ok :) | ||
|
17:05
whiteknight joined
|
|||
| cotto_work | hi whiteknight | 17:11 | |
| whiteknight | hello cotto_work | ||
|
17:14
patspam joined
17:17
kthakore joined
17:26
Chandon joined
17:28
shockwave joined
|
|||
| shockwave | purl paste | 17:28 | |
| purl | paste is probably (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans | ||
| nopaste | "shockwave" at 192.168.1.3 pasted "Parrot internal assert failure." (126 lines) at nopaste.snit.ch/21478 | 17:29 | |
| shockwave | Hello people. | ||
| purl | Greetings, program! | ||
| kthakore | tcurtis: ok I did your thing and I am retesting | ||
| tcurtis: can I just skip to the pct tests some how? | 17:30 | ||
| shockwave | I'm getting an assertion in Parrot that I don't know how to fix. | ||
| cotto_work | Does anyone know why we have _i_i_ic op variants for lt, le, eq and ne but not for gt and ge? | ||
| shockwave | Oops, forgot to mention the exception: src/runcore/cores.c:635: failed assertion 'pc' | ||
| Referring to the code I pasted, which is generated by my compiler, the exception happens at line 56 (Enable lines at the paste site). | 17:31 | ||
| That non-method function is called at line 82. | |||
| If that line is commented out, the exception doesn't happen, since the sub isn't called. | 17:32 | ||
| For convenience, I pasted the %CreateInstance sub at the bottom. | |||
| Again, I'm not sure why that assertion failure is happening. | |||
| Any help is appreciated. | |||
| Thanks | |||
| dalek | rrot: r47761 | coke++ | branches/html_cleanup/docs/index/index.json: Correct link to other page. |
17:33 | |
| rrot: r47762 | coke++ | branches/html_cleanup/docs/index/pdds.json: use *.pod explicitly so we can keep simple glob syntax. |
|||
|
17:34
eternaleye joined
|
|||
| shockwave | To clarify: The %CreateInstance sub should be working fine, since I've been successfully using it for months, just the way it is, to construct all my instances. The problem seems somehow related to calling 'static%s' sub from the anon sub at the bottom. The call to %CreateInstance is probably just the trigger. | 17:35 | |
| I'm using Parrot 1.5.0 | 17:36 | ||
| tcurtis | kthakore: "make library_tests" includes the PCT tests. | ||
| kthakore: I think they're the first set of tests it runs, in fact. | 17:37 | ||
| bubaflub | shockwave: that's a pretty old version of Parrot... any reason for using that one? | ||
| kthakore | well it passes | ||
| shockwave | bubaflub, sorry. I mean 2.5.0 -- I just updated like 10 minutes ago. | ||
| (This was happening before I updated... I updated to see if the problem would go away) | 17:38 | ||
| I know I pasted a whole bunch of code. If anyone needs me to disect it, just let me know. | 17:39 | ||
| kthakore | tcurtis: crap what was the ticket number again? 182? | 17:42 | |
| nopaste | "shockwave" at 192.168.1.3 pasted "High level language code that's converted to PIR" (10 lines) at nopaste.snit.ch/21479 | ||
| NotFound | shockwave: pc assertion failure sometimes is caused by exception handling problems. | 17:43 | |
| nopaste | "kthakore" at 192.168.1.3 pasted "patch for ticket 812" (19 lines) at nopaste.snit.ch/21480 | ||
| shockwave | Just for kicks, I pasted the HLL code that gets translated into the PIR I originall posted ^^^^^ | ||
| kthakore | tcurtis: how about that ^^ | ||
| shockwave | NotFound: Exception handling problems on whose end? | 17:44 | |
| kthakore | tcurtis: done | ||
| NotFound | shockwave: don't understand the question. | 17:46 | |
| shockwave | NotFound: Assertion failures are sometimes caused by exception handling problems thrown from PIR or by internal Parrot issues? | ||
| tcurtis | kthakore: looks good. | 17:47 | |
| NotFound | shockwave: the well known Parrot issue with inner runloops. | ||
| whiteknight | shockwave: your code looks cool, despite the error. You have it online anywhere? | 17:48 | |
| ambs | hmms.. shockware... transformers.. how I miss the original series :) | ||
| shockwave | whiteknight: The generated code? whatcha talkin bout? | ||
| whiteknight | shockwave: the compiler source | ||
| I think I had seen it at one point, but I don't have it anymore | 17:49 | ||
| dalek | rrot: r47763 | coke++ | branches/html_cleanup/tools/docs/make_html_docs.pl: Remove debug output, verify links point to other pages, |
||
| shockwave | shockwave: Oh, no. Since there is still lots to do, it's still within the confounds of my secret volcano layer. | ||
| cotto_work | shockwave, there's still lots to do in Parrot too. | 17:50 | |
| and PIRATE | |||
| shockwave | cotto_work: Don't tell me that. I'm hoping to use Parrot on some production software that I will hopefully be starting within 2 months (A videogame) | 17:51 | |
| I was hoping that after 9 years, things were solid enough to use. | |||
| :( | |||
| cotto_work | time guarantees nothing | ||
| shockwave | and so it seems. | 17:52 | |
| NotFound | shockwave: testing the exception handling hypotesis is easy: just add 'finalize' to *any* exception handler in rakudo X-) | ||
| shockwave | NotFound: I don't use rakudo | ||
| The compiler is C++. | |||
| cotto_work | so the same deal as winxed | 17:53 | |
| NotFound | winxed already uses finalize | ||
| shockwave | Does the generated code looks sane? | ||
| NotFound | shockwave: try adding explicit return to the sub that doesn't have one, and exit at the end of the main one. | 17:54 | |
| That usually avoids the failure on exception handling problems. | 17:55 | ||
|
17:55
eternaleye joined
|
|||
| shockwave | NotFound: Ok, I'll try adding an explict return to all subs that don't include one. Just .return(), correct? | 17:55 | |
| NotFound | shockwave: yeah | 17:56 | |
| shockwave: mmm... you have a sub both :immediate and :load, so you may be creating the same class twice | 17:58 | ||
| shockwave | NotFound: It's been working fine so far. But I just removed it, to check, and still. | 17:59 | |
|
17:59
ash_ joined
|
|||
| shockwave | I've also been adding the empty return() to the generated code and the library subs, but still. | 17:59 | |
| I added .return() to just about everything, but nothing. | 18:04 | ||
| NotFound | Odd | ||
| shockwave: Do you have exception handlers in your library? | 18:06 | ||
| shockwave | NotFound: No, not yet. I'm not throwing any exceptions myself. | ||
| But, my compiler knows know to generated them. Let me place that code within a try statement. | |||
|
18:07
dmalcolm joined
|
|||
| shockwave | Nothing | 18:07 | |
| atrodo | NotFound> ::shrug:: I'm not sure why the byte_length doesn't work, but it's me since it works in my C example | 18:08 | |
| NotFound | atrodo: Can you nopaste the code? | ||
| shockwave | Something is definetly fucked up somewhere. I'll try to create as small a testcase as possible out of the code I have, and I'll create a ticket. | 18:10 | |
| atrodo | I can, but not enough that it encompesses everything. Hold on | ||
| gist.github.com/448838 | 18:11 | ||
| NotFound | atrodo: What's the problem, the content written is not the full string? | 18:13 | |
| atrodo | Too much data is being written | ||
| NotFound | atrodo: what's outStream and what is your platform? | 18:14 | |
| atrodo | The result of len is massivly large, 24M for basic empty pbc | ||
| outStream is a TFileStream. I'm in pascal, using kylix on linux | |||
|
18:15
eternaleye joined
|
|||
| atrodo | haha, i figured it out | 18:15 | |
| NotFound | If len is too long, the problem is not in writing the string. | 18:16 | |
| atrodo | Nope, it was certainly my problem. I was refrencing the wrong c function | 18:17 | |
| dalek | rrot: r47764 | Chandon++ | branches/gsoc_threads (10 files): Add alarm mechanism; not yet hooked into anything. |
18:22 | |
|
18:27
bubaflub joined
|
|||
| atrodo | hurray! it's all happy. | 18:29 | |
| NotFound | Good | ||
| atrodo | time to commit it | ||
| kthakore | tcurtis: so ... who will accept that patch? | ||
| nopaste | "shockwave" at 192.168.1.3 pasted "Sort snippet which creates an internal assertion failure." (17 lines) at nopaste.snit.ch/21481 | 18:34 | |
| shockwave | I was able to cut down the code to the bare minimum that creates the same assertion as above. | 18:35 | |
| The problem seems pervasive. | |||
| I'll create a ticket. | |||
| Coke | you don't need the foobar sub to generate the snippet... | 18:36 | |
| shockwave | Coke: Calling foobar is what causes the error. | 18:37 | |
| The return value isn't needed. I left it in by mistake. | 18:38 | ||
| cotto_work | shockwave: that's not quite minimal | ||
| nopaste | "cotto" at 192.168.1.3 pasted "more minimal version" (7 lines) at nopaste.snit.ch/21482 | ||
| Coke | shockwave: yes, but you don't need the declaration of the foobar sub. | 18:39 | |
| it's just the invocation you need. =-=) | |||
| shockwave | cotto_work: I'll paste your example, with the foobar ontop, just to make the point clearer. | ||
| Coke | though, given that you're calling an immediate sub when other things are not yet in place could be teh root cause. | 18:40 | |
| NotFound | Looks like is trying to invoke a ParrotInterpreter | ||
| shockwave | What 'component' is this? core? | 18:41 | |
| For your convenience: trac.parrot.org/parrot/ticket/1688 | 18:42 | ||
| NotFound | shockwave: Why do you want to use :immediate? | 18:43 | |
| shockwave | NotFound: That's how I'm defining the class properties. | ||
| NotFound: Also, that's where a class's static constructor is called from. | 18:46 | ||
| I have to go to the laundry to pick up a shirt. I'll be back later. | 18:47 | ||
| Thanks for the help, guys. | |||
| tcurtis | kthakore: if no one else has applied it in a few days, remind me, and I will(I'm still a little hesitant to do much to trunk). | 18:50 | |
| dalek | TT #1688 created by shockwave++: Internal assertion triggered when writing trivial code. | 18:51 | |
| TT #1688: trac.parrot.org/parrot/ticket/1688 | |||
| cotto_work | shocwkave_away: that's not a very good ticket title. Nobody can look at that and think "Hey, I think I know how to fix that." or "That looks like something I could hack on." | 18:54 | |
| dalek | rrot: r47765 | chromatic++ | trunk (2 files): [ops2c] Improved generated code by adding a space in lines of the form: Arguably the *grammar* is the best place to make the change, but this is better now, and someone else can fix that. |
18:55 | |
| cotto_work | (I intend that as constructive criticism.) | 18:56 | |
| kthakore | tcurtis: we will get chromatic to do it then | 18:59 | |
|
19:02
LoganLK joined
19:05
atrodo joined
19:09
Andy joined
|
|||
| whiteknight | japhb: ping | 19:19 | |
|
19:23
eternaleye joined
|
|||
| dalek | rrot-plumage: 3ba9a44 | whiteknight++ | Configure.nqp: Something is weird with contextuals. Add a quick 'n ugly fix to get Configure.nqp to run again |
19:25 | |
| darbelo | whiteknight: ping | 19:27 | |
| whiteknight | purl msg japhb: I committed an ugly fix for plumage. Configure.nqp runs again and make works. | ||
| purl | Message for japhb stored. | ||
| whiteknight | darbelo: pong | ||
| dalek | rrot: r47766 | coke++ | branches/html_cleanup/tools/docs/make_html_docs.pl: coding stds |
19:28 | |
| darbelo | Did tha commit fix plumage? | ||
| dalek | rrot: r47767 | coke++ | branches/html_cleanup (2 files): Remove function that was only ever used in the test suite. |
||
| whiteknight | darbelo: appears so, yes | ||
|
19:28
allison joined
|
|||
| kthakore | whiteknight: hi I have a patch (a trvial one again_ pending at 812 | 19:29 | |
| whiteknight: ticket 812 I meant | |||
| ash_ | does anyone have any good tools for removing whitespace from files? | 19:30 | |
| darbelo | Not for me. I tried to fix some issues with plumage a while back but failed. | ||
| whiteknight | darbelo: you mean that commit doesn't make plumage work for you? | 19:31 | |
| darbelo | Yes. | ||
| whiteknight | hmmm | ||
| oh, my installed Parrot is 2.3.0, not 2.5.0-devel | |||
| maybe more things are broken in parrot HEAD | |||
| darbelo | Tere are. | 19:32 | |
| whiteknight | great | ||
| purl msg japhb nevermind, that last commit only fixed plumage for parrot 2.3.0, not Parrot HEAD. | |||
| purl | Message for japhb stored. | ||
| cotto_work | That is indeed an odd fix. | 19:34 | |
| darbelo | Agh nopaste is down. | ||
| cotto_work | no it's not | ||
| darbelo | I can't access it from here. | ||
| nopaste | "cotto" at 192.168.1.3 pasted "it doesn't appear to be down" (1 line) at nopaste.snit.ch/21486 | 19:35 | |
|
19:36
patspam joined
|
|||
| darbelo | whiteknight: gist.github.com/448948 | 19:36 | |
| That was my last attempt at fixing. You have to regenerate NQPUtils.pir after those modifications. | 19:37 | ||
| whiteknight | darbelo: does that fix it? | ||
| darbelo | Not completely. But it failed farther along last time I tried it. | 19:38 | |
|
19:39
ambs joined
|
|||
| darbelo | The opcode 'shr_p_p_ic' (shr<3>) was not found. Check the type and number of the arguments | 19:41 | |
| What should I replace that with. | |||
|
19:44
patspam joined
|
|||
| kthakore | 0/win 2 | 19:46 | |
| cotto_work | darbelo, _i_i_ic exists. You could use that. | ||
|
19:51
eternaleye joined
19:56
khairul joined
|
|||
| darbelo | cotto_work: What the right way to pass an NQP array into a Q:PIR{} block? | 20:02 | |
| Nevermind. I'm stupid today. | 20:04 | ||
|
20:05
Psyche^ joined
|
|||
| cotto_work | I'm always glad to not help. ;) | 20:05 | |
| #ps in 25 | |||
|
20:15
sjn joined
|
|||
| dalek | nxed: r517 | julian.notfound++ | trunk/winxedst1.winxed: fix a stupid, stupid mistake |
20:21 | |
| shockwave | ping NotFound | 20:27 | |
| NotFound | shockwave: pong | ||
| shockwave | NotFound: I've been grabbing the sub to execute like so: $P1 = get_hll_global ['TestCaseX';'X'], 'static%s' | 20:28 | |
| I'm just confirming, because it doesn't seem to be the case: It's not possible to do this, is it?: $P1 = find_sub_not_null ['TestCaseX';'X'], 'static%s' | 20:29 | ||
| cotto_work | find_sub_not_null doesn't have variants to support that kind of usage | 20:30 | |
| NotFound | shockwave: if you want workaround, I think the better is to stop using :immediate | 20:31 | |
| shockwave | Ok. I'll just have to wait until ticket #1688 is taken care of. | ||
| NotFound: How can I replicate that functionality? | 20:32 | ||
| NotFound | shockwave: define "that". | ||
| shockwave | that == The ability to call a sub upon loading of a .pir file representing that class for: 1) defining the class details 2) Calling a 'static' constructor for a HLL class. | 20:33 | |
| cotto_work | It seems to be #ps time. | 20:34 | |
| tcurtis | shockwave: :load :init | ||
| NotFound | shockwave: :load isn't enough? | ||
| tcurtis | shockwave: if I correctly understand what you're trying to do. | ||
| shockwave | err, let me try that. | ||
| NotFound | Yeah, :init and :load if you want it to be both a main program and a loadable lib | 20:35 | |
| shockwave | It seems :init is all I need. | 20:36 | |
| Yay! | |||
| So what's the difference between init and load, again? | |||
| This is how I'm including the file: .include 'TestCaseX.pir' | 20:37 | ||
| NotFound | shockwave: :load is run during load_bytecode and :init before calling :main in a program loaded from command line. | ||
| shockwave | NotFound: Sweet. My problem is solved. | 20:38 | |
| tcurtis | :load is for when it's loaded. :init is for when it's ran directly(or compiled from memory(not sure when this is done..., maybe when you load a PBC but only the corresponding pir file is found?)). | ||
| shockwave | Well, at least we found a bug out of this whole ordeal. | ||
|
20:39
ash_ joined
|
|||
| shockwave | Thanks again, guys. I'm glad this is working again. | 20:39 | |
| tcurtis | shockwave: :immediate doesn't do the thing you want at all, by the way. :immediate runs at compile time. Not at load time. | 20:40 | |
| shockwave | Wow! at compile time? That's insane. I definetly had the wrong assumptions about that. | ||
|
20:41
Coke joined
|
|||
| cotto_work | You can't get much more immediate than that. | 20:41 | |
| shockwave | I've been using it because I've seen examples like. | ||
| cotto_work: True that. | |||
| tcurtis | shockwave: it's purpose is for stuff like Perl's "BEGIN", and also just for any sort of compile time creation of constants. "In addition, if the sub returns a PMC value, that value replaces the sub in the constant table of the bytecode file." | 20:44 | |
| s/it's/its/ | |||
| NotFound | I think its main purpose is to expose subtle bugs X-) | 20:45 | |
| shockwave | tcurtis: I see. | 20:46 | |
| tcurtis: Would you mind expanding a bit on: "and also just for any sort of compile time creation of constants." | 20:47 | ||
| tcurtis: As a compiler writer, I'm interested in this kinda info. | |||
| tcurtis | shockwave: Declaring constants with the ".const" directive is pretty limited. I'm not sure if it's possible to declare any kind of PMC constant other than Subs. But, if you declare a sub as :immediate, and it returns a PMC, then that PMC gets stored in the constant table with the name of the sub(with the requirement that the PMC can be frozen and thawed, I think). | 20:52 | |
| NotFound | Now that you say it, some immediate problems may be caused by untested freeze/thaw in PMCs | 20:53 | |
| I've found at least one while adding tests. | |||
| shockwave | tcurtis: Sounds pretty esoteric. I'm gonna stay away from that. | ||
| NotFound | One bug in a PMC. I mean | 20:54 | |
| shockwave | NotFound: You're the creator of Winxed, right? | ||
| NotFound | shockwave: Do you want a signed t-shirt? ;) | ||
| shockwave | NotFound: That was actually going to be my 1st question. My second was going to be if I can have it for free, since I'm broke. | 20:55 | |
| NotFound | shockwave: sure, as soon as I can start production ;) | 20:56 | |
| ash_ | how are #define's supposed to be formatted? codetest really doesn't like my defines | ||
| shockwave | NotFound: Ok, but don't go changing your mind in the future. | 20:57 | |
| NotFound | shockwave: the channel is logged, I can't | 20:58 | |
| shockwave | Then it's settled. | ||
| NotFound | ash_: you neeed to indent, but I'm not sure about the rules. Check some file with #if'ed includes | 20:59 | |
| I mean, defines | 21:00 | ||
| dalek | website: Chandon++ | Cleaning up the Scheduler | 21:02 | |
| website: www.parrot.org/content/cleaning-scheduler | |||
|
21:06
patspam joined
|
|||
| shockwave | Thanks everyone. See ya. | 21:06 | |
|
21:06
shockwave left
|
|||
| dalek | rrot: r47768 | chromatic++ | trunk/compilers/imcc/pbc.c: [IMCC] Tidied code; no functional changes. |
21:06 | |
| kudo: 7b089e5 | moritz++ | src/core/operators.pm: infix:<eqv> for numeric types (did not work with rats) |
21:09 | ||
|
21:15
plobsing_work joined
|
|||
| ash_ | plobsing_work: i have the nci system working and building now, i also updated the config system so it should work with --without-libffi properly | 21:18 | |
| plobsing_work | ash_: so I can start integrating it in an svn branch for a larger audience now? | 21:22 | |
| bubaflub | purl msg whiteknight i'd be willing to contribute a bit to PLA if you don't mind hand-holding a bit. | ||
| purl | Message for whiteknight stored. | ||
| ash_ | sure, let me finish up my codetest changes though, i have it passing almost all of the codetest's now | ||
| (just have a bunch of whitespace for whatever reason) | |||
| are there any good tools for removing the whitespace on blank lines and at the end of lines? | 21:23 | ||
| plobsing_work | vim | ||
| tcurtis | ash_: if you use emacs, M-\\ strips trailing whitespace from a line, iirc. | ||
| ash_ | which part of vim? i am already using vim | 21:24 | |
| plobsing_work | :s/\\s+$// | ||
| cotto_work | :%s/[ ]*$//g | ||
| moderator | Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets. | 21:26 | |
| ash_ | plobsing_work: i also merged with leto/master today, so it should be pretty darn close to trunk | 21:26 | |
| (in terms of compatability) | |||
| yay, i pass all of codetest now, thanks for the vim tip | 21:27 | ||
| plobsing_work: it builds rakudo fine btw | 21:28 | ||
| tcurtis | cotto_work: I don't think I've remembered to write down the thoughts I had about the balance between simplicity and security in Lorito, but if you aren't busy, I can talk a little about them now. | ||
| cotto_work | sure | 21:30 | |
|
21:30
whiteknight joined
|
|||
| cotto_work | tcurtis: what are your thoughts? | 21:32 | |
| tcurtis | From a security perspective, it's desirable to be able to allow or disable specific Lorito-level ops. E.g., if Lorito has pointer arithmetic, PL/Parrot(for example) definitely will not want to allow that. | ||
| dalek | tracwiki: v25 | cotto++ | CottoTasklist | 21:34 | |
| tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff | |||
| tcurtis | But on the other hand, given that Lorito is intended to have fewer, more low-level and simple ops, with more high-level features implemented on top of them, many desirable and necessary and safe high-level features might internally rely on unsafe things like pointer arithmetic. | ||
| That's the problem linked in the stub article on the wiki, of course. | 21:35 | ||
|
21:35
bluescreen joined
|
|||
| tcurtis | In general, I think that the kind of higher-level code that needs direct access to dangerous Lorito-level features is going to be rare, and that most of it will probably be included as part of Parrot's core(not in "make corevm" terms, but in terms of something that's in trunk and built with parrot). | 21:38 | |
| And most user and HLL code will probably be built on top on that. | 21:39 | ||
| NotFound | "most"? | ||
| purl | somebody said "most" was something that rarely applies to anything related to stocks. | ||
| tcurtis | IF this assumption turns out to be true,... | ||
| cotto_work | I think I see where this is going. | 21:40 | |
| Are you suggesting that the best policy may be to allow the HLL to decide what's secure? | 21:41 | ||
| NotFound | I think that if you allow policy control of low level ops they aren't low level anymore. | 21:42 | |
| tcurtis | Then, one viable model for security would include the option to disable a Lorito-level op when used directly, but white-list specific higher-level ops/pmcs/etc. that are allowed to use it. Of course, then, you have to keep track somehow of what higher-level op is causing a lower-level op to be ran(which would prevent simply compiling higher-level ops to their constituent Lorito ops, unfortunately). | 21:43 | |
| ash_ | do any other vm's have policy mechanism like that? | 21:44 | |
| tcurtis | And that requirement could potentially be a pretty significant cost. | 21:45 | |
| ash_ | you could think of a vm also as a processor and give it 2 run modes, root and user, while your in user mode you have no access to certain things, but you could have to use some sort of system to ask for root mode permissions, so in the case of like PL/Parrot you'd just have to deny access to the root commands | 21:46 | |
| NotFound | ash_: the only problem is that a processor does it with hardware. | 21:47 | |
| ash_ | yeah, i guess simulating that is expensive | ||
| cotto_work | It could be instructive to look into how CLI and the JVM do it. | 21:49 | |
| bacek | good morning, humans | ||
| cotto_work | hello T1000^H^H^H^H^Hbacek | 21:50 | |
| bacek | cotto_work, (ops.skip) Nope. Better solution is wire tcurtis's optimizer and implement constant folding and DCE. | 21:51 | |
| cotto_work | dce? | ||
| purl | dce is Emmett's spam-eliminator | ||
| cotto_work | dead code elimination | ||
| purl | i think dead code elimination is a good goal. | ||
| bacek | purl, no dce is dead code elimination | ||
| purl | OK, bacek. | ||
| NotFound | ByteBuffer uses pointer arithmetic. If you can find an unsafe usage ot it, let me know. | ||
| darbelo | Hmm. What is the NQP equivalent to '.loadlib' | 21:52 | |
| bacek | cotto_work, e.g. lt_ic_ic_i can be replaced with branch_i (or removed) | ||
| darbelo, there is no such thing afaik. | |||
| darbelo | ... okay. Plumage's hgosed then. | 21:53 | |
| cotto_work | My only problem is that that'd require the optimizer in order for PIRATE to generate correct code. | ||
| i.e. make it even slower | |||
| darbelo | Now I remember why I couldn't fix it the last time. | ||
| NotFound | darbelo: What do you need to load? | ||
| darbelo | dynops. | ||
| NotFound | All? | ||
| purl | All is, like, mainly for introspection, but you can use Foo :ALL | ||
| bacek | cotto_work, slowest part is parsing. simple constant folding and dce should be fast. | 21:54 | |
| ash_ | are you trying to fix plumage? | ||
| cotto_work | and it'd introduce an extra external depenency | ||
| bacek | cotto_work, nope. optimizer is part of parrot. | ||
| japhb | <rez> | ||
| japhb is just bak, but not yet backlogged | |||
| darbelo | NotFound: A few I can get around. But sysinfo, to name one, is needed. | ||
| cotto_work | Oh, right. Can it be made to work in its current state? | ||
| davidfetter wonders when tron's coming out again | |||
| bacek | tcurtis, ping. | 21:55 | |
| tcurtis, pirate need you! :) | |||
| NotFound | darbelo: What sysinfo? Maybe the information is accesible via interpreter | ||
| tcurtis | darbelo, I think you can use pir::loadlib, but that would be done at runtime. So, probably wouldn't work for dynops. | ||
| bacek: pong | |||
| darbelo | tcurtis: pir::loadlib is the opcode. I want the directive. | 21:56 | |
| bacek | tcurtis, if you are looking for "real-life" optimisations - pirate need you. | ||
| darbelo | NotFound: That and stat are the ones I've had trouble with. | ||
| tcurtis | bacek: How can I help? | 21:57 | |
| cotto_work | If we could get those usable, that'd be awesome. | ||
| NotFound | darbelo: for stat you can use OS | ||
| bacek | tcurtis, clone pirate from github.com/bacek/pir; implement constant folding for it. | ||
| darbelo | The PMC? | ||
| purl | The PMC is bad. | ||
| NotFound | darbelo: dynpmc now | 21:58 | |
| cotto_work | forget the pmc | ||
| purl | cotto_work: I forgot pmc | ||
| cotto_work | the pmc? | ||
| purl | i guess the pmc is bad. | ||
| bacek | tcurtis, basically pirate generate POST directly from parse. | ||
| cotto_work | stupid bot | ||
| purl | Bad programmer, no cookie! | ||
| bacek | tcurtis, do you have github id? | ||
| japhb | darbelo: What is the current status of the Plumage fixing effort? | 22:00 | |
| tcurtis | bacek: yes, it's ekiru. It generates POST directly from the parse? That may complicate things a bit. | ||
| darbelo | japhb: I've cotten it to configure by hand-hacking the generated PIR. But I'm running into issues with getting NQP to generate the code I need. | 22:01 | |
| bacek | tcurtis, POST nodes are PCT::Node children. | ||
| japhb | darbelo, *sigh*. OK, thank you for the update. | ||
| darbelo | Mostly, dynops are unloadable from NQP. In some cases I can get by with other stuff. | ||
| In other places... I stare a lot and scratch my head. | 22:02 | ||
| bacek | tcurtis, I added you to pirate collaborators. Start hacking! :) | ||
| japhb | Um, this is going to come of more negative than I intend -- but how was it not noticed that dynops are not loadable from NQP before moving lots of stuff out to dynops? | ||
| er "come off" | 22:03 | ||
| I'm honestly mystified how this was not already a problem .... | |||
| ... for some other project, I mean. | |||
| tcurtis | bacek, I don't think it will take a great deal of effort to add support for POST to PAST, but it will take some effort. | ||
| darbelo | Nobody really uses dynops from NQP, really. Other than plumage, yeah. | 22:04 | |
| I think it's a known NQP issue. | |||
| japhb | Well then how does everyone make use of all the stuff that got moved out? | ||
| I mean, how does Rakudo do it, for instance? | 22:05 | ||
| NotFound | darbelo: What sysinfo values do you need? | ||
| bacek | tcurtis, how hard is to generalize PAST::Pattern to be PCT::Pattern? | ||
| darbelo | It got moved out because it wasn't very used. Or available through other means, which might not be obvious but are there. | 22:06 | |
| NotFound: Let me check. | |||
| 4, and 5. Which are os name and os version, I think. | 22:08 | ||
| NotFound | winxed -e 'var p = getinterp(); var config= p[8]; string s=config["osname"]; say(s);' | ||
| linux | |||
| tcurtis | bacek: Not hard. | 22:09 | |
| purl | not hard is relative | ||
| darbelo | Okay, what's that in NQP? :) | ||
| bacek | tcurtis, good. | ||
| NotFound | Version is trickier, is taken from the system at runtime | 22:11 | |
| But that sysinfo depends on PARROT_HAS_HEADER_SYSUTSNAME, so I don't think you should depend on it. | 22:12 | ||
| darbelo | SYSINFO_PARROT_VERSION | ||
| That's the one. I was wrong earlier. | |||
| NotFound | $ winxed -e 'var p = getinterp(); var config= p[8]; string s=config["VERSION"]; say(s);' | 22:13 | |
| 2.5.0 | |||
|
22:13
bubaflub joined
|
|||
| tcurtis | bacek: I think I'll have to implement a more convenient way of adding new subtypes for PIRATE to benefit much given how many POST::Node classes it adds, though. Which will also benefit other compilers. | 22:13 | |
| NotFound | I just need to hardcode '8' because winxed can't use .include | 22:14 | |
| bacek | tcurtis, excellent. pirate is still in early stages, but most of POST generating is done. | ||
| darbelo | NotFound: Neither can NQP. | 22:15 | |
| NotFound | darbelo: just hardcode it for a now. | ||
| japhb | That, btw, has always frustrated me -- no easy way to use PIR constants from any HLL | 22:16 | |
| cotto_work | bacek, how different are the POST that's used by nqp-rx and one used by PIRATE? | ||
| darbelo | It think pmichaud was woring on that one recently. | ||
| bacek | cotto_work, very. | 22:17 | |
| cotto_work | why is there a divergence? | ||
| bacek | cotto_work, updating PCT for PAST->newPOST in todo list. Basically oldPOST is very stringish. | 22:18 | |
| darbelo | NotFound++ #That's the last one I needed. | 22:19 | |
| japhb: Plumage now configures again! | |||
| japhb | Yay! | ||
| NotFound | Note how useful is winxed as a sort of one-lined pir ;) | 22:20 | |
| darbelo | There's a few glitches. But it configures. | ||
| japhb | NotFound, I did indeed note that | ||
| darbelo: pushed? | |||
| darbelo | NotFound: I'm close liking it better than NQP already. | ||
| japhb: Not yet. Gimmie a sec. | 22:21 | ||
| japhb | darbelo, np, take your time | 22:22 | |
| cotto_work | bacek, you're right. That's very stringy. | ||
| darbelo | japhb: pushed. I think I got the osname wrong. since it doesn't show up on the final Configure message. | 22:23 | |
| japhb | k | ||
| darbelo | And plumage itself is still broken. I'll get to that in a bit. | 22:24 | |
| japhb | Roger that | ||
| cotto_work | I can definitely see how it's not well-suited to direct pbc generation. | 22:25 | |
| japhb | Probably must of NQPUtil.{nqp,pir} should be replaced with nqp-setting.pbc ; that's where a lot of the code went anyway, and nqp-setting.pbc is now the official location for it. If we move enough over to not need NQPUtil.pir at all during configure, that pre-compiled version can just be removed. Which will doubtless result in much less pain. | ||
| bacek | cotto_work, exactly. And I've got "green light" from pmichaud to hack it :) | 22:26 | |
| cotto_work | nice | ||
| bacek | cotto_work, if you have time can you implement POST::Key to store keys? And update Actions.pm to use it? | 22:28 | |
| inherit POST::Key from Value | 22:29 | ||
| cotto_work | I can take a crack at it tonight. | 22:30 | |
| bacek | cotto_work, ok. | ||
| cotto_work | how's PCC going? | ||
| bacek | cotto_work, simple calls works. E.g. no args/params :) | 22:31 | |
| darbelo | japhb: That's probbaly beyond teh scope of my NQP skilz. | 22:32 | |
| bacek | I hope to implement most of it tonight/tomorrow | ||
| japhb | darbelo, thank you, configures on this system too (minus, as you said, the name of the platform). Compiles seemingly OK too, but dies pretty early in the tests, sigh | ||
| darbelo | I'll try to get it working with minimal changes. And leave the refactoring to someone skilled in the correct language. | 22:33 | |
| japhb | Nodnod. | 22:34 | |
| Much thanks nonetheless. | |||
| dalek | rrot-plumage: c9f1e8d | darbelo++ | src/lib/Plumage/NQPUtil. (2 files): Update NQPUtils.nqp to cope with the latest parrot deprecations. |
||
| cotto_work | Maybe the new POST should have a different name. | ||
| PIST, PEST and PUST are open | |||
| tcurtis | Don't forget, PYST. | 22:35 | |
| cotto_work | then again, maybe we should stick with POST | ||
| sorear | don't forget, darbelo is opening up an infinity of new vowels | ||
| (a countable infinity, but still) | |||
| darbelo | P<LATIN CAPITAL LETTER O WITH FIVE UMLAUTS AND A HAT>ST | 22:37 | |
| NotFound | You can leave your hat on.... | 22:38 | |
| cotto_work | PāŗST | 22:39 | |
| bacek | cotto_work, it's still POST :) | 22:43 | |
| NotFound | But happier :) | ||
| dalek | rrot: r47769 | NotFound++ | trunk/src/pmc_freeze.c: PARROT_const_cast is stricter in C++ than in C, adding casts to make it work |
22:45 | |
| darbelo | Can anyone think of why would "pir::getinterp__P()[7][1]" be Undef in NQP ? | 22:57 | |
| cotto_work | what's 7? | 23:00 | |
| purl | rumour has it 7 is vaguely t-like or 2-times-plus-1 the number of digits in THE NUMBER OF THE BEAST or 666+7 minus the number of the beast or Venus/green/NTzCh or the eater of 9 because seven eight nine or 7 leads to 8, 8 leads to suffering | ||
| NotFound | IGLOBALS_DYN_LIBS 7 | 23:02 | |
| darbelo | I wonder if that was ever renumbered... | 23:13 | |
| The code in plumage seems to think it's something else... | |||
| NotFound | darbelo: take note and comment what that '8' means ;) | 23:14 | |
| darbelo | Yeah... | ||
| dalek | r: 93d302d | bacek++ | pir.pir: Add FIA.elements for simplify POST::Compiler testing. |
23:16 | |
| r: 4ec7ff7 | bacek++ | t/03-pbc/00-compiler.t: Stub for testing POST::Compiler functions. |
|||
| r: 66bf085 | bacek++ | t/03-pbc/00-compiler.t: Add first failing test for POST::Compiler.build_args_signature. |
|||
| r: 67ec29d | bacek++ | src/POST/Compiler.pm: Create signature with proper size. |
|||
| r: 1421d91 | bacek++ | src/POST/Compiler.pm: First cut of properly generating call signature. |
|||
| NotFound | darbelo: trac.parrot.org/parrot/changeset/45...erpreter.h | 23:18 | |
| darbelo | NotFound: Yeah, I found that. I have to bump a few numbers in a few places. | 23:19 | |
|
23:19
davidfetter joined
|
|||
| NotFound | Isn't nice how our deprecation policy helps keep things working? X-) | 23:21 | |
| darbelo | We need to ban implicitly numbered enums. | 23:22 | |
| NotFound | And ban renumbering them for no reason. | ||
| darbelo | And a chainsaw. | ||
| purl | a chainsaw is quick, too... but you should probably learn how to use it first, right? or a sumo or mst's weapon of choice. | ||
| cotto_work | I don't see the need for banning chainsaws. | 23:23 | |
| They're a significantly underutilized motivation technique. | |||
| darbelo | No, no. I was adding it to the list of things we need. | ||
| cotto_work | +1 then | ||
| darbelo | It's what we use to enforce the various bans. | 23:24 | |
| NotFound | We should have a chainsaw dealer sponsoring PAFO. | ||
| cotto_work | Mmmm. +3 Chainsaw of Motivating | ||
| tcurtis | Why don't Captures do "array" or "hash"? | 23:25 | |
| darbelo | 'cause it's too much effort, man. | ||
| cotto_work | because nobody added "does array does hash" to the pmclass declaration | 23:26 | |
| you'd kinda expect it given that its ATTRs are named "array" and "hash" | |||
| NotFound | BTW 'pmclass' means Patrick Michaud class? | 23:27 | |
| japhb looks at r45475, gets an instant headache | |||
| darbelo | japhb: Fix pushed. plumage now displays usage info and all. | ||
| japhb | shocking! | ||
| thx, darbelo | |||
| NotFound | plumage++ | ||
| darbelo++ | 23:28 | ||
| japhb | darbelo: 'make test' next, since you're on a serious roll? | 23:29 | |
| dalek | rrot-plumage: 5475eab | darbelo++ | src/ (3 files): Change some magic constants that got changed from the parrot side. |
||
| purl | dalek: that doesn't look right | ||
| tcurtis | So, no actual reason it doesn't? So, if I changed it to do so in my branch, it shouldn't be a problem if/when merge time arrives? It would greatly simplify generalizing PAST::Pattern(and since bacek wants PIRATE to be able to use it, I'm going to be generalizing it to all PCT::Nodes, at least, and making it easier to further generalize it to custom subclasses, so it wouldn't be too much extra effort to further generalize it). | 23:30 | |
| darbelo | japhb: The test harness was imported from dukeleto's tapir right? | ||
| japhb | I believe so, yes. | 23:31 | |
| Re-import in order? | |||
| darbelo | Yeah. | ||
| Was there a documented prcedure? | |||
| japhb | (The only reason it doesn't just *use* Tapir is of course the chicken-and-egg problem.) | ||
| Dukeleto did it himself, so sadly not. | |||
| darbelo | Ha! Tapir itself needs an update. | 23:33 | |
| cotto_work | The description for the Capture PMC is lta. | ||
| japhb | wheee | ||
| japhb had a snarky comment here, but decided it was not terribly nice. | 23:34 | ||
| darbelo | Public logged channels are such pain some days :) | ||
| japhb | truedat | 23:35 | |
| cotto_work | but useful more often than not | ||
| darbelo | Yeah, but it's so bothersome having to fire up the time machine and interrupt yourself every time you forget you have to keep time trave a secret. | 23:37 | |
| japhb | Dangit darbelo, now you've let the cat out of the bag. No I have to retcon the universe again. | ||
| *Now | 23:38 | ||
| tcurtis | msg darbelo Leaving off the last letter of a word is not always a very good way of concealing it's meaning. Especially when you've already essentially said it earlier in the sentence. | ||
| purl | Message for darbelo stored. | ||
| cotto_work | Fortunately parrot already has return continuations. You can just use those. | ||
| darbelo | See, It's so bothersome my future self can't be arsed to do it now (later? I always get this part wrong.) | 23:39 | |
| OK. Tapir updated | 23:44 | ||
| japhb | Yak shaved. | 23:45 | |
| dalek | pir: c449b85 | darbelo++ | (2 files): Update tapir to run with parrot HEAD |
23:47 | |
| darbelo | ... And the same fix was pushed to the plumage harness. | ||
| japhb | w00t | ||
| darbelo | Dammit. No, I did that wrong. | 23:48 | |
| japhb | Well, it did get a little further. :-) | ||
| Which is to say, it died on the same file, but later. :-) | |||
| darbelo | japhb: pull and try again. | 23:49 | |
| japhb | roger | ||
| OK, that's weird. 3 test files are perfect, but one doesn't even run | 23:50 | ||
| darbelo | Ha! I fixed plumage but not the test. Silly me. | ||
| japhb | :-) | ||
| darbelo | Okay. Pushed the last fix, I have a clean make test. | 23:51 | |
| dalek | rrot-plumage: 692ed52 | darbelo++ | t/harness.pir: Pull in a harness fix from Tapir. |
||
| rrot-plumage: fdbdff6 | darbelo++ | ext/Tapir/Parser.pir: Pull another fix from Tapir. |
|||
| rrot-plumage: 1b59f9e | darbelo++ | t/02-load-all.t: Update magic constants that were changed on parrot. |
23:52 | ||
| japhb | The most frustrating thing is that if I could have used symbolic constants, I would have. | ||
| W00t! Passed all tests. | |||
| darbelo, you officially rock. | |||
| darbelo | And, plumage can now do a full fetch-build-test cycle for decnum-dynpmcs. Which is all I evere cared about ;) | 23:53 | |
| japhb | heh | ||
| ... and there's another yak shaved | |||
| darbelo | I'm a selfish bastard. What can I say? | ||
| japhb | Altruistic self-centeredness. WFM. | 23:54 | |