|
Parrot 4.2.0 "Ornithopter" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 21 March 2012. |
|||
| nbrown_ | whiteknight: thanks, I'll be sure to ask them next time I see them | 00:00 | |
| I just read it after I'd used signed integer types and was wondering if I should got change them to unsigned types | 00:01 | ||
| *go | |||
| whiteknight | allison: ping | 00:07 | |
| allison | whiteknight: pong | 00:08 | |
| whiteknight | allison: We've got a GSOC student interested in security sandboxing. Do you have any particular ideas for such a thing? | ||
| allison | whiteknight: yes, there's a few different pieces | 00:09 | |
| subclassing NameSpace is one simple one | |||
| whiteknight | allison: I knew you were a good person to ask :) | ||
| allison | and protected execution contexts is another | ||
| (where code can only modify variables from the current context) | 00:10 | ||
| whiteknight | Do we want to do that at the Context level, or do we want it at the interp level and spawn child interps? | 00:11 | |
| eventually I'd love to delete the NameSpace PMC, so projects involving subclassing it don't excite me too much :( | 00:12 | ||
| allison | The interp level is good for a sandbox that uses no external libraries. | 00:14 | |
| So, would be interesting to work on exactly what the sandboxed interp has access to outside of its own environment. | 00:15 | ||
| Another aspect is restricting what libraries can be loaded. | 00:16 | ||
| And restricting what ops can be run. | |||
| (Like, no file I/O or network access may be desirable.) | |||
| I wouldn't suggest tackling the whole array of sandboxing in one GSOC project. | 00:17 | ||
| whiteknight | no, we're going to try for something modular. I suspect we'll get some fundamentals done but not much else | ||
| allison | Aye. Like pick one aspect or feature with a clear set of implementation tasks and deliver that. | 00:18 | |
| whiteknight | I'm thinking we make a SecurityContext structure and attach it to the interp, then we can check certain flags and fields to determine if certain operations are acceptable | ||
| allison | That could work. | ||
| whiteknight | unless you have a better idea | 00:19 | |
| allison | There'd have to be no way to edit the Security Context from within the sandboxed interp. | ||
| Any data structure for marking the current execution as "secured", and for attributes on what kind of restrictions are in place, would be fine. | 00:20 | ||
| The biggest headache will be catching all the places where code might slip out of the sandbox. | 00:21 | ||
| whiteknight | There are so many ways we could go about doing this | ||
| allison | At this point, Parrot is largely about an implicit contract about how things are done. | 00:22 | |
| It doesn't prevent you from doing things outside the norm, it just provides no guarantees about what might happen. | |||
| With a security sandbox, it's a complete reversal. It permits a tiny set of allowed activities, and makes anything outside that set impossible. | 00:23 | ||
| I suggest taking a look at apparmor for inspiration. | 00:24 | ||
| whiteknight | so if we have a security context that can be set from Parrot_interp_new, but can't be modified by that interp at all, that would be a decent start? | ||
| I mean, the student is going to have to put together a proposal in 5 days, so I want something that is straight-forward and uncontroversial because we won't have lots of time to think it through before we get sort of set on a particular path | 00:25 | ||
| Even if it's unnecessarily simple at first | |||
| if we share that same structure on the context, and the context by default inherits from the parent interp but can be made more restrictive would that be good? | 00:26 | ||
| allison | yes, that seems like a good start | 00:27 | |
| whiteknight | then we can do bit flags for certain classes of operations, and lists for things like path white and black lists for loading and FileHandle operations, etc? | 00:28 | |
| (I haven't spent nearly so much time thinking about security as I have about other roadmap items) | 00:30 | ||
|
00:30
dalek joined
|
|||
| benabik | Hopefully even if I don't work on 6model, my proposal is good food for thought for someone else to implement. | 00:33 | |
| Puffin was the Python on Parrot project from last summer, right? | 00:40 | ||
| whiteknight | yes | 00:44 | |
|
00:46
plobsing joined
|
|||
| benabik | This proposal is much harder to write. Not surprising given that I haven't spent the last 8 months thinking about it. | 00:55 | |
| aloha | (parrot/parrot) Issues closed : 453 ([RFC] Deprecate Eval PMC) by allisonrandal : github.com/parrot/parrot/issues/453 | 00:58 | |
| whiteknight | hmm... it doesn't say who closed the ticket | 01:03 | |
| it's about time for me to get too bed. I need some rest after the productive weekend | 01:16 | ||
|
01:18
Justin joined
|
|||
| Justin | hello | 01:19 | |
|
01:20
d4l3k_ joined
01:30
mdupont joined
|
|||
| aloha | (parrot/parrot) Issues opened : 753 (M0 c new ops) by nbrown : github.com/parrot/parrot/issues/753 | 01:38 | |
| benabik | Alright. 6model proposal submitted. | 01:54 | |
| As mentioned, that proposal is not as well thought out as the PACT one. Not entirely sure how well that plan will survive contact with the enemy. | 01:56 | ||
| Justin | fast | 02:01 | |
| benabik | I have the advantage of understanding the projects already. | 02:02 | |
|
02:11
dalek joined
|
|||
| dalek | rrot/m0: 23c7154 | nbrown++ | src/m0/c/ (2 files): Add a simplistic way to pass most of the *_n tests |
02:26 | |
| rrot/m0: c51c2c9 | nbrown++ | src/m0/c/m0_ops.c: add the set op |
|||
| rrot/m0: 86b55be | nbrown++ | src/m0/c/m0_ops.c: use int64_t pointers so that the convert functions handle negative numbers correctly |
|||
| rrot/m0: e21d417 | dukeleto++ | src/m0/c/ (2 files): Merge pull request #753 from nbrown/m0-c-new-ops M0 c new ops |
|||
| aloha | (parrot/parrot) Issues closed : 753 (M0 c new ops) by nbrown : github.com/parrot/parrot/issues/753 | 02:29 | |
|
03:01
dalek joined
03:39
nopaste joined
03:51
d4l3k_ joined
03:54
Justin left
04:17
kurahaupo joined
04:42
d4l3k_ joined
|
|||
| dalek | rrot/m0: 2a1224a | jimmy++ | src/m0/c/m0_ops.c: remove typecheck, it should be done by complie time(i.e: M1/PIR => M0), not in runtime. also removed duplicate function. |
04:55 | |
|
05:33
d4l3k_ joined
06:25
d4l3k_ joined
06:34
Timbus joined
07:15
d4l3k_ joined
07:23
fperrad joined
07:46
cosimo joined
07:47
cosimo joined
07:54
cosimo joined
08:06
d4l3k_ joined
08:16
bacek joined
|
|||
| bacek | ~~ | 08:16 | |
| tadzik | hello bacek | 08:17 | |
| moritz | \\o | ||
| bacek | aloha tadzik, moritz | ||
|
08:27
lucian joined
|
|||
| dalek | kudo/nom: d344e96 | moritz++ | src/core/Rat.pm: fix thinko in Int <=> Rat |
08:31 | |
| kudo/nom: 68e7f8f | moritz++ | src/Perl6/ (2 files): rename $=POD to $=pod |
|||
|
08:57
d4l3k_ joined
09:36
schm00ster joined
09:50
d4l3k_ joined
09:56
schm00ster joined
10:10
JimmyZ joined
|
|||
| JimmyZ | hello, #parrot | 10:11 | |
|
10:12
JimmyZ joined
10:15
benabik joined
10:21
__mayank joined
10:22
__mayank left
10:43
d4l3k_ joined
11:07
nbrown joined
11:10
nbrown_ joined
|
|||
| nbrown_ | good morning parrot, is jimmy from github around? | 11:16 | |
| I see that my commit last night wasn't current with respect to the m0 branch (oops) but I think the last commit is a mistake | 11:17 | ||
| It seems to revert some of the progress we were making on getting the m0 c implementation to pass the tests | |||
| I'm going to try to merge the two histories and get m0 passing tests again, but if someone else wants to take a look at the last couple of m0 commits and let me know if I'm totally off base, I'd really appreciate it | 11:19 | ||
|
11:28
nbrown joined
11:35
d4l3k_ joined
|
|||
| nbrown | upon a closer look at the recent commits by jimmy, I'm a little confused. There are 4 register types: INSP and I thought S & P were supposed to be treated like pointers while I & N were supposed to be treated like values. | 11:37 | |
| jimmy seems to have treated all of them like pointers. Which is the correct interpretation of the spec? | 11:39 | ||
|
11:39
benabik joined
11:40
dalek joined
|
|||
| nbrown | msg: dukeleto can you look at my questions about the recent commits made by me and jimmy and tell me how to proceed? | 11:40 | |
| msg dukeleto can you look at my questions about the recent commits made by me and jimmy and tell me how to proceed? | |||
| aloha | OK. I'll deliver the message. | ||
| nbrown | msg dukeleto the backlog begins at irclog.perlgeek.de/parrot/2012-04-02#i_5383487 | 11:42 | |
| aloha | OK. I'll deliver the message. | ||
| JimmyZ | hello nbrown | 11:44 | |
|
11:44
contingencyplan joined
|
|||
| JimmyZ | nbrown: I'm here | 11:45 | |
| nbrown | JimmyZ: hello | ||
| JimmyZ: oh, I wasn't sure if you were jimmy from github | |||
| JimmyZ | nbrown: yes, jimmy is me too | 11:46 | |
| nbrown | JimmyZ: awesome | ||
| JimmyZ: I was trying to make m0 work and was getting a little confused about your recent commits and my approach | |||
| JimmyZ | nbrown: yes, m0 is controversial | 11:48 | |
| nbrown | JimmyZ: I thought that the integer and numeric register types were supposed to be treated as values and you seem to be treating them as pointers | ||
| JimmyZ | nbrown: I want to treat them as values | ||
| nbrown: and I want to split them, instead of all in registers[256] | 11:49 | ||
| nbrown | JimmyZ: so you're trying to do something more than just implement the spec as written? | 11:50 | |
| JimmyZ | nbrown: spec is not always right | ||
| nbrown: the consts doesn't have type flag | 11:51 | ||
| nbrown | JimmyZ: I know it's not always right, but I was trying to implement it as close to the spec as possible to identify where it was wrong | ||
| JimmyZ: I'm not sure that consts need one | |||
| JimmyZ | and so does deref | ||
| nbrown: but deref needs to know | 11:52 | ||
| nbrown | JimmyZ: my code handled that assuming that user only used floating point consts with floating point registers, integer with integer, etc | ||
| moritz | which is very reasonable for something as low-level as m0 | 11:53 | |
| nbrown | exactly | ||
|
11:54
d4l3k_ joined
|
|||
| JimmyZ | nbrown: my code something likes '*(double *)' is wrong too, and I'm working hard to change it | 11:54 | |
| nbrown | JimmyZ: that's actually going to be required to treat the uint64_t register correctly when doing numeric math | 11:55 | |
| JimmyZ: well, something like it | 11:56 | ||
| JimmyZ: the problem is you're treating the uint64_t regester like it's a uint64_t* | |||
| JimmyZ | nbrown: yes, it's wrong, and I'm working hard to change it | 11:57 | |
| nbrown | yes, but I'm not sure how it applies to this conversation | ||
| JimmyZ: from my perspective, your email wants to change some of the m0 design fundamentals laid out in the spec. I just want to implement them | 11:58 | ||
| JimmyZ: is that a fair assessment? | 11:59 | ||
| JimmyZ | nbrown: currently, M0 is more like stack based, we can't do 'add_i I3, 1234, 3566', we must use set_imm, and I want to change it. | 12:00 | |
| nbrown: parrot is register based , and I want to borrow things like regs which handles INSP from parrot. | 12:01 | ||
| nbrown | JimmyZ: that's fine, but it will still need to support 'add_i I3, I1, I3', right? | ||
| JimmyZ: How will you borrow that from parrot? | 12:02 | ||
| JimmyZ | nbrown: yes, and M0 doesn't do any type check at runtime, that should be done by compile time. | 12:03 | |
| nbrown: But I hope M0 don't lose type info, that is, strong typeć | 12:04 | ||
| nbrown | JimmyZ: and that's a fine argument, but if you look at the 'bug' you fixed in add_i, I think you set the result register to the address of the result and not the result itself | 12:05 | |
| JimmyZ | nbrown: github.com/parrot/parrot/blob/mast...text.h#L15 | ||
| nbrown | that's my issue with your commits | ||
| JimmyZ | nbrown: that's what I want to borrow | ||
| nbrown: yes, because M0 lose type info at the beginning, and I want to add it. | 12:07 | ||
| nbrown | JimmyZ: but you're still storing an address and not the result. Isn't that the definition of storing a pointer and not a value? | 12:08 | |
| JimmyZ | nbrown: so add_i and add_n will use value directly eventuallyć | ||
| nbrown | My commits did that now | ||
| JimmyZ: I don't understand why you want to borrow that union | |||
| JimmyZ: I thought m0 strings were a simpler thing | |||
| JimmyZ | nbrown: for example: | 12:09 | |
| m0_op_mod_iII { frame->registers.i[ops[1]] = frame->registers.i[ops[2]] % frame->registers.i[ops[3]]; } | 12:14 | ||
| m0_op_mod_iiI { frame->registers.i[ops[1]] = frame->registers.i[ops[2]] % [ops[3]; } | |||
| m0_op_mod_iii { frame->registers.i[ops[1]] = ops[2] % [ops[3]; } | |||
| m0_op_mod_nNN { frame->registers.n[ops[1]] = frame->registers.n[ops[2]] % frame->registers.n[ops[3]]; } | |||
| m0_op_mod_nNi { frame->registers.n[ops[1]] = frame->registers.n[ops[2]] % ops[3]; } | |||
| nbrown | JimmyZ: ok, that would remove the pointer stuff I was doing | 12:15 | |
| JimmyZ: but that deviates a bunch from the m0 spec | |||
| JimmyZ: you're changing the definition of the registers | |||
| JimmyZ | nbrown: and frame->registers.n[ops[2]] = 233.55 | ||
| nbrown: the spec tries to make M0 being stack based. | 12:16 | ||
| nbrown | JimmyZ: I'd love to see your spec updates to show how you want to do all of this and get consensus | ||
| JimmyZ: so? | |||
|
12:16
betterworld joined
|
|||
| JimmyZ | nbrown: parrot is register based :) | 12:16 | |
| nbrown | JimmyZ: actually, i don't see it as stack based | 12:17 | |
| JimmyZ: the spec is register based in my mind | |||
| JimmyZ: the only stacks you see in the spec are the call frame stacks | |||
| JimmyZ: your proposed changes don't change that | 12:18 | ||
| JimmyZ: unless there's another piece that I'm missing | |||
| JimmyZ | nbrown: parrot allows something like 'add_i I3, 222, 666 ' | ||
| nbrown: M0 must use set_imm every time now | |||
| nbrown | JimmyZ: yes, but that doesn't make m0 stack based | 12:19 | |
| JimmyZ: I'd love to continue this chat, but my oil change is done and I need to get to work | |||
| JimmyZ | nbrown: but use 3 times op :) | ||
| nbrown | JimmyZ: thanks for the chat. feel free to leave more messages, I will backlog | 12:20 | |
| JimmyZ: ahhhh, you're true issue is that you want to be able to use immediate modes. That doesn't imply stack versus register in my mind | |||
| JimmyZ: have a great day and talk to you later | |||
|
12:20
whiteknight joined
|
|||
| JimmyZ | nbrown: thanks you too | 12:21 | |
| whiteknight | good morning, #parrot | 12:22 | |
| JimmyZ | good morning whiteknight, I just talked to nbrown, tell me if I was in the wrong way. | 12:23 | |
| whiteknight | JimmyZ: I'm not the M0 expert, you can say anything you want :) | ||
|
12:26
PacoAir joined
12:27
jjore joined
|
|||
| dalek | rrot/bacek/unmerge_context: c15e96a | bacek++ | / (44 files): Readd CallSignature pmc and fix few build errors |
12:27 | |
| rrot/bacek/unmerge_context: 8e9dff3 | bacek++ | compilers/imcc/imc (3 files): Rebuild imcc |
|||
| rrot/bacek/unmerge_context: 5709296 | bacek++ | src/call/pcc.c: Hack invoke_from_sig_object. It should be killed anyway imho |
12:28 | ||
| rrot/bacek/unmerge_context: 7bb3ef5 | bacek++ | src/ops/core_ops.c: Ugly hack to enable build |
|||
| JimmyZ | whiteknight: :) | 12:33 | |
| whiteknight | bacek++ | 12:36 | |
|
12:43
d4l3k_ joined
13:14
JimmyZ joined
|
|||
| JimmyZ | nbrown: yes, I want to use immediate modes, and remove type convention in most ops(i.e: add_i, add_n) | 13:16 | |
| atrodo | JimmyZ> From my understanding, that convention is of needing to use set_imm is also very prevalent in RISC | 13:24 | |
| JimmyZ | atrodo: I can't follow you. Do you mean that convertion in set_imm is very prevalent | 13:27 | |
| atrodo: sorry, I don't know english well enough | 13:28 | ||
| atrodo | JimmyZ> Well, my use of English isn't that well either... Yes, from my understanding, the use of memory pointers inside instructions is more CISC like then RISC | 13:29 | |
| JimmyZ | atrodo: I think I agree with you. I would like to reduce using pointers | 13:33 | |
| bbl | |||
|
13:33
d4l3k_ joined
|
|||
| lucian | whiteknight: about GSoC, i don't know if i qualify, but i'd be willing to be a backup mentor | 13:34 | |
| whiteknight: for python/js projects | |||
| whiteknight | lucian: You're not eligible to be a student anymore? | 13:35 | |
| lucian | whiteknight: i graduated last year, i'm working now | ||
| whiteknight | lucian: Oh that's a shame. I'd have loved to see what you could accomplish given another summer | ||
| lucian: But yes, you definitely qualify | 13:36 | ||
| lucian | well if i get a better job, i might have some more free time | ||
| and now i'm more jaded, so more willing to let others do work for me :) | |||
| i'll add myself to some tasks at github.com/parrot/parrot/wiki/Summ...Task-Ideas | 13:37 | ||
| or rather, one i think | |||
| whiteknight: i added myself just to jaesop, hope that isn't intruding on your pet project | 13:39 | ||
| whiteknight | oh no, that's perfectly fine! | ||
| moritz | having a backup mentor increases the chances for that project | 13:40 | |
| so not an intrusion at all | |||
| whiteknight | I don't want it to be just my project, I would love for other people to get involved eventually | ||
| lucian | ok, i've requested to be a mentor on melange as well | ||
| whiteknight | awesome, thanks | 13:46 | |
| lucian | |||
| lucian++ | |||
| moritz would love to see the 6model-in-core proposal by benabik++ getting sponsored | 13:47 | ||
| though his other proposal is good too | |||
| ETOOMANYGOODCHOICES | |||
| lucian | i'd like to see that happen, but don't have the skills to help | 13:48 | |
| i don't know perl or nqp at all, and i don't know C very well either | |||
| whiteknight | I haven't heard any python-related projects this year, unfortunately | 13:56 | |
| Without 6model, I worry that any python work is a non-starter | |||
| Ruby is the same way | 13:57 | ||
| If benabik doesn't do 6model over the summer, I will | |||
| JimmyZ | it gives me an impression that 6model will make parrot more simple, and M0 will be dead. | 14:00 | |
| moritz | I'd rather hope that 6model will make M0 easier to do | ||
| whiteknight | no, 6model and M0 are not enemies | 14:02 | |
| they will help each other | 14:03 | ||
| moritz imagines several parrot subystems being at war with each other, and then realizes that this might be surprisingly close to reality | 14:06 | ||
| Coke | PARROT ROYALE | 14:07 | |
| whiteknight | it's mostly GC versus all the other systems which allocate too much memory | 14:11 | |
| moritz | and namespaces and IMCC vs. sanity | 14:12 | |
| subs vs. Priniciple of Least Surprise | 14:13 | ||
| whiteknight | When Parrot has 6model, killing namespaces is one of the next highest priorities on my list | ||
| nine | Kill it! Kill it dead! | 14:15 | |
| whiteknight | srsly | ||
| dalek | rrot/m0: 3c62ec9 | jimmy++ | / (3 files): borrow Regs struct from parrot, break M0 test now |
14:17 | |
| rrot/m0: 405d94d | jimmy++ | / (9 files): Merge branch 'm0' of github.com:parrot/parrot into m0 Conflicts: \tsrc/m0/c/m0_ops.c |
|||
| rrot/m0: 9e8ddd7 | jimmy++ | src/m0/c/ (2 files): remove unused code |
14:20 | ||
|
14:25
d4l3k_ joined
14:37
dalek joined
15:04
dmalcolm joined
15:28
dalek joined
15:45
particle joined
|
|||
| benabik | ... My ears are burning. | 16:02 | |
| tadzik | what did you listen to? | 16:03 | |
| whiteknight | METAL | ||
| tadzik | that would've been good I guess | ||
|
16:06
Justin joined
|
|||
| benabik | Have we really only had three proposals submitted? I know I did two... :-/ Although I guess there'll be a rush at the end of the week. College students like submitting at the deadline. | 16:07 | |
| whiteknight | Yeah, the end of the week is when we get the most | 16:08 | |
| Justin | im working on mines now. good afternoon everyone | ||
| whiteknight | that's certainly not all the students I've talked to or drafts that I've seen in personal email | ||
| Good morning Justin | |||
| Justin | i apologize about yesterday I tried to move to a different building before they closed early | ||
| whiteknight | Justin: It's okay, people are in and out of here all day | 16:09 | |
|
16:20
dalek joined
|
|||
| benabik | re: my proposals. I'm happy working on either. If people really want me working on 6model, I'll dig into it. I personally think I'd be more productive on PACT, but wanted to have a second option in in case someone else wanted to pick that up. | 16:26 | |
| whiteknight | benabik: whichever you don't work on, I will work on. So it doesn't really matter :) | 16:27 | |
| benabik: so long as I can get your occasional feedback on the road not traveled, of course | |||
| benabik | Off course. I'd hoped that both could be taken as a roadmap for someone else to move along. Feel free to crib notes off either to advice yourself or other students. :-) | 16:28 | |
| Or to lambast me for not thinking something through. That's always an option. | |||
| moritz | then we should set benabik on PACT | ||
| seems like the most productive road to me in that case | 16:29 | ||
| whiteknight | moritz: that's my thinking. He's uniquely qualified for that | ||
| I'm equally unqualified for both :) | |||
| benabik | There are others interested in that project, so I didn't want to force anyone off of it. | ||
| whiteknight | benabik: no, nobody else has expressed a serious interest in it yet | ||
|
16:30
_mayank joined
|
|||
| benabik | Well, in case there is. :-) While I'm tempted to declare PACT my precious and boot everyone off so that I can peruse my vision, if any other people are interested in it, I'm happy to let them and just try to back seat drive. :-) | 16:33 | |
|
16:44
jjore_ joined
17:11
dalek joined
17:18
lucian_ joined
17:30
Justin joined
18:02
d4l3k_ joined
18:03
Justin joined
18:43
dalek joined
18:44
tadzik joined
18:48
Coke joined,
PerlJam joined,
pmichaud joined,
masak joined
18:53
dalek joined,
Util joined
18:58
mtk joined
19:11
dalek joined
19:15
tadzik joined
19:16
masak joined,
pmichaud joined,
PerlJam joined,
Coke joined
19:18
mtk joined
19:22
Util joined
19:25
mtk joined
|
|||
| dalek | kudo/nom: 8ead1e8 | jonathan++ | src/Perl6/Metamodel/BaseType.pm: Enable parents to handle :excl and :all options for things that compose BaseType. Fixes .^methods on enums bustage. |
19:41 | |
|
19:50
Justin joined
19:51
Justin left,
Justin joined
19:55
lucian_ joined
|
|||
| cotto | ~~ | 21:50 | |
|
22:35
kid51 joined
23:17
Justin joined
23:26
kurahaupo joined
|
|||
| benabik | ~~ | 23:43 | |
|
23:44
nbrown joined
|
|||
| nbrown | cotto: are you around? I'd like to chat about m0 | 23:48 | |
|
23:49
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:55 | |
| nbrown | good evening | 23:56 | |
| benabik | o/ whiteknight | ||