|
Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 29 September 2011. |
|||
| benabik | whiteknight: Saw you talking with nine about the exception problems on his branch. Did you two figure out anything? | 00:00 | |
| whiteknight | I haven't really been able to look at it | ||
|
00:13
eternaleye joined,
arnsholt joined,
AzureStone joined,
perlite joined
00:14
particle1 joined,
TiMBuS joined,
dod joined
00:18
AzureStone joined
00:19
particle joined,
nopaste joined
|
|||
| cotto | zackarymorris.tumblr.com/post/10973...s-terrible | 00:40 | |
| ~~ | 02:14 | ||
| crickets | chirp | 02:20 | |
|
02:29
nbrown_ joined
|
|||
| cotto | the dis spec reminds me of M0. I'm sure it'd be the other way around if I'd seen it first. | 02:32 | |
| www.vitanuova.com/inferno/papers/dis.html | |||
| plobsing remembers chromatic posting that a year or so ago. everything old is new again. | 02:34 | ||
| cotto | I'm pretty sure I originally heard about it from him. | 02:35 | |
| plobsing | it may be worth noting that, IIRC, there was a gsoc task this year (not sure if they got a student) to *replace* dis. | 02:40 | |
| if I can find where I read that, I'll link it so we can learn from their mistakes | 02:41 | ||
| code.google.com/p/inferno-os/wiki/I...LimboPlans has hints | 02:47 | ||
| I'm not finding a lot of information about the current inferno community. I'm starting to turn up completely unrelated information. | 03:10 | ||
| www.hpi.uni-potsdam.de/hirschfeld/p..._AcmDL.pdf | |||
| unrelated, but interesting | |||
|
04:29
nbrown joined
05:37
SHODAN joined
|
|||
| cotto | plobsing, Hmm. I'm not sure what to do with that. | 06:00 | |
|
06:23
Coke joined
07:06
baest joined
07:11
rfw joined
07:41
schmooster joined
07:57
mj41 joined
08:25
lucian joined
08:39
jkitazawa joined
08:50
lateau joined
09:12
baest joined
10:03
schmooster joined
11:22
lateau joined
11:36
benabik joined
11:42
Psyche^ joined
12:02
bluescreen joined
12:13
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:14 | |
| benabik | o/ whiteknight | 12:15 | |
| whiteknight | good morning benabik. How are you doing today? | 12:16 | |
| benabik | whiteknight: tired and don't wanna study | 12:17 | |
| whiteknight | so don't! Procrastination is a wonderful, magical time machine to awesome adventures | ||
| except, you don't feel like going right now | |||
|
12:46
Themeruta joined
|
|||
| dukeleto | ~~ | 13:15 | |
| whiteknight | good morning, dukeleto | 13:18 | |
| dukeleto | whiteknight: how goes it? | 13:33 | |
| dukeleto has been on vacation and out of the loop | |||
| whiteknight | dukeleto: it's going very well. Where was the vacation? | ||
| I started adding pcre support and RegExp to Jaesop over the weekend, along with basic IO, so that has me very happy | 13:36 | ||
| dalek | kudo/nom: 299e5af | moritz++ | src/core/Mu.pm: Mu.not |
13:38 | |
| kudo/nom: 545638a | moritz++ | src/Perl6/Actions.pm: deal with "require ::" |
|||
| dukeleto | whiteknight: visiting family in Florida | 13:39 | |
| whiteknight: i am very happy to see Jaesop happily hopping along | |||
| benabik | nine's been busy on getting tasks in place, but has been hampered by strange behavior involving longjmp + data corruption. | 13:40 | |
| whiteknight | the pcre bindings are one of the last big things before the stage0 compiler is usable to bootstrap. I have to add a few more runtime details, but we should be able to get started on stage1 soon if we are so inclined | 13:41 | |
| I would like to have 6model in place beforehand, and I would love to be able to use a new PACT instead of PCT for the backend if possible | |||
| dalek | esop: 6187388 | Whiteknight++ | t/stage0/regexp.t: Add in a quick test for RegExp.compile |
13:42 | |
| benabik | Maybe post-midterms I'll try to get the low-level of PACT stubbed out... | 13:43 | |
| dukeleto | whiteknight: i have heard rumors of PACT, but haven't seen a spec for it yet | 13:44 | |
| whiteknight | dukeleto: no spec. We're shooting from the hip | ||
| dukeleto | A good reason to never write ASM for performance reasons: zombe.es/post/4059999783/openssl-outmoded-asm | ||
| benabik | I've been collecting my thoughts in a gist: gist.github.com/05267b2b46beca86b8da | 13:45 | |
| dukeleto | I found that link from DJB's twitter account ( twitter.com/#!/hashbreaker ) which means we live in the future now. | 13:46 | |
| whiteknight: i like shooting from the hip, as long as I have a flamethrower | 13:47 | ||
| whiteknight | I think we've learned quite a good deal over the years from PCT and tree-optimization and the like | 13:53 | |
| and if we start small, PACT can benefit from trial and error | 13:54 | ||
| dalek | esop: a868012 | Whiteknight++ | t/stage0/regexp.t: add in another quick test for /regexp/ syntax, which should be the same as the explicit constructor |
||
|
13:54
mtk joined
|
|||
| dukeleto | benabik: i would like to see that gist go into a doc in a branch | 13:59 | |
| benabik | dukeleto: If I get it into some kind of organization, sure. If someone else wants to do the same, sure. But at the moment it's more a "pile of benabik's brainstorming" than anything else. | 14:22 | |
|
14:23
alester joined
|
|||
| benabik | Some thoughts added, including how I was thinking about building PACT (under bottom up) | 14:30 | |
| whiteknight | I had been meaning to take a stab at organizing it | 14:40 | |
| I'll look at it today | |||
| benabik | Although I was although thinking PACT wouldn't be developed in parrot.git. A small separate repository might be easier to work on. Wouldn't have to integrate with parrot build system, could use outside dependencies like Rosella for tests. | 14:47 | |
| But since I don't have the time to build it myself, I can't really complain about what someone who does does with it. | |||
| whiteknight | I'm not against all that, in theory. I would even be perfectly happy to have it as a part of Rosella, if you like that idea | 15:14 | |
| or separate too | 15:15 | ||
| benabik | I'm a fan of the UNIX philosophy⦠Separate small things each doing their job. :-D | 15:17 | |
| whiteknight | that's fine too. | 15:18 | |
| benabik | But, as I said, I don't have time to work on it enough, so feel free to do it however's convenient for you. | 15:19 | |
| whiteknight | :) | ||
| dalek | sella: c2edf5e | Whiteknight++ | src/unstable/container2/ (3 files): Throw in a few quick notes about rewriting the Container lib |
15:25 | |
| dukeleto | benabik: i don't care if PACT code is in parrot.git, but a more permanent document that parrot devs can edit is better for a spec | ||
| benabik: i love gists, but as soon as multiple people want to edit it, it should become a document in a repo somewhere | 15:26 | ||
| benabik: do you want a pact repo in the parrot github org? | |||
| whiteknight | I can create one there | ||
| dukeleto | whiteknight++ | ||
| benabik | dukeleto: Once someone else wants to edit it, they're welcome to stick it somewhere. :-D But as long as it's just my notes, I'll leave it in the gist. | ||
| dukeleto: Unless/until I sort it out into coherent thoughts instead of random notes. | 15:27 | ||
| It's getting closer each time I poke at it. | |||
| dukeleto | benabik: sounds good to me | 15:28 | |
| whiteknight | github.com/parrot/PACT | 15:30 | |
| benabik | Huh. Github added an "edit this file" button to the web interface. I can keep just opening it and mucking with it whenever I feel like. :-D | 15:32 | |
| whiteknight | the more mucking, the better | 15:36 | |
| benabik | The less mucking you do, the worse things get. :-D | 15:37 | |
| dukeleto | benabik: yes, they added that just after the merge button. It is like an quick "fork, commit, merge" wearing an Edit button costume | 15:38 | |
| dalek | sella: cac0dec | Whiteknight++ | src/query/Query.winxed: Add an exploratory routine to Query to install some basic methods on built-in types. |
15:53 | |
|
16:30
lateau left
|
|||
| cotto | good morning | 16:34 | |
| benabik | o/ cotto | ||
| cotto | dukeleto: nice to see you alive | ||
| dukeleto | cotto: just been charging my batteries | 16:47 | |
| cotto: the next release is sneaking up on us. What are we trying to deliver for m0 ? | |||
|
16:49
dmalcolm joined
|
|||
| cotto | dukeleto: I'm getting back in the M0 boat after what turns out to have been a break, but I'm not sure if it makes sense to try to predict what'll be in the release wrt M0. | 16:52 | |
| dukeleto | cotto: i don't care much about timelines, but knowing the next logical steps are useful | 16:54 | |
| cotto | dukeleto: ok | ||
| I pushed a couple commits yesterday that'll make it a little easier to add and remove ops. I expect a lot of that to happen in the near future. | 16:55 | ||
| dukeleto | cotto: we seem to be at an impasse where we don't know how many m0 ops we want anymore | ||
| cotto | dukeleto: I wouldn't say that. It's just a change in philosophy | 16:56 | |
| dukeleto | cotto: i like the philosophy of making it easy to add+remove ops and then forging ahead | ||
| cotto | that's good | ||
| dukeleto | cotto: ok. so our philosophy about ops has change to "as few as possible" to "the right number to optimize the speed of a jit" ? | ||
| s/change/changed/ | |||
| cotto | not necessarily a jit | 16:57 | |
| M0 should map pretty closely to the operations a CPU can perform so that an optimizer isn't required to generate good code. | |||
| dukeleto | cotto: isn't that another way of saying the same thing? | 16:58 | |
| cotto rereads | 16:59 | ||
| dukeleto: pretty similar | |||
| dukeleto | cotto: i agree with that statement, but it is much to vague too discern exactly which m0 ops should exist. We need specifics | ||
| cotto | dukeleto: yes. | 17:00 | |
| dukeleto | cotto: and your statement is a bit more generic then my statement about jitting, but they are very similar | ||
| cotto | dukeleto: my current plan is to plow ahead and look at how CIL and possibly one other VM deal with types (in addition to jvm, nanojit and gnu lightning) and use that as a basis for what'll be in M0. | 17:01 | |
| The first part of that should be done tonight. | 17:03 | ||
| I'm a bit uneasy about M0 registers, especially since very few processors have 256 general purpose registers. | 17:05 | ||
| ;) | |||
| dukeleto | cotto: i would like to see a table of different vms and how many registers they have, and of what type | 17:06 | |
| benabik | cotto: 256 registers is more "explicit cache page" than register set | ||
| cotto | I don't fully understand not_gerd's M0+/- proposal, but I like that he's put a lot of effort into making them match x86. | ||
| dukeleto: that's close to what I've been producing | |||
| it's more of "here's what types VM X knows about and what operations it can perform on them" | 17:07 | ||
| register count doesn't really apply to stack VMs, which is a lot of them | |||
| benabik | May want to include non-virt in there⦠i386, x86-64, ARM | 17:08 | |
| cotto | sigh. There you go being all sensible. | ||
| benabik | sorry | ||
| cotto | well don't let it happen again | 17:09 | |
| ;] | |||
| that'll take longer, but it's a very good idea that I really should have thought of | 17:10 | ||
| dukeleto | cotto: yes, the register sets of hardware is actually more useful than software vm register sets | ||
| cotto | benabik++ | ||
| dukeleto | cotto: because we want parrot to be fast on real hardware, not other vms | ||
| benabik | Shouldn't take too long... | ||
| cotto | benabik: no. just another day or so depending on tuits | ||
| benabik | Depends on how much data you're collating, I guess. | ||
| dukeleto | cotto: is m0 trying to be risc or cisc ? | 17:12 | |
| cotto | dukeleto: running efficiently on x86/x64 is a high priority, so I'd say cisc-y | 17:13 | |
| dukeleto | cotto: look at that, we have more specifics :) | 17:14 | |
| cotto | whee | ||
| dukeleto: nice to have you bach | 17:15 | ||
| *back | |||
| or Bach | |||
| lulz: arstechnica.com/ | 17:18 | ||
| benabik | cotto: engadget.com too | 17:19 | |
| whiteknight | what's going on with those sites? | 17:20 | |
| benabik | DDoSed by people wanting to know what's up with the iPhone 4s | ||
| cotto | ah. That makes sense. | ||
|
17:28
contingencyplan joined
17:32
fperrad joined
|
|||
| cotto | merbist.com/2011/10/03/about-concur...d-the-gil/ | 17:35 | |
|
17:50
not_gerd joined
|
|||
| not_gerd | hello, #parrot | 17:50 | |
| dukeleto | not_gerd: welcome | ||
| nine | cotto: very interesting read | 17:51 | |
| cotto | hio not_gerd, nine | 17:55 | |
| not_gerd | hello, cotto | 18:02 | |
| m0- is shaping up to look pretty much like the current m0 spec | 18:03 | ||
| (aside from the register number, that is...) | |||
| cotto | not_gerd: we were just talking about M0 a bit earlier | ||
| interesting | |||
| alester | so what's up with tt.taptinder.org/buildstatus/parrot/master ? | 18:12 | |
| It is sad and lonely, it seems. | |||
| cotto | not_gerd: what's changing about M0-? | 18:13 | |
| alester: quite | 18:14 | ||
| alester | Anything I can do to help things? | 18:16 | |
| bubaflub | i thought Coke was working on a replacement for that | ||
| alester | What's wrong with the existing one? | 18:20 | |
| not_gerd | cotto: m0- ops are now variable length (ie the number of immediate arguments depends on the op) | 18:21 | |
| cotto: also, tehre's no longer a single word size (64 bit) because that lead to too much spilling on x86 | |||
| pointers and memory offsets are now 32 bit | |||
| whiteknight | can't we have fixed-length ops? That makes traversal and analysis so much easier | 18:27 | |
| not_gerd | whiteknight: you're not supposed to analyse m0- - that's what m0+ is for | 18:29 | |
| whiteknight | oh, okay. | ||
| not_gerd | whiteknight: you could think of it as the jit target for architectures without dedicated jit | ||
| whiteknight | okay, that makes more sense then | ||
| So long as there is a nice, pretty, friendly, uncompressed instruction format | 18:30 | ||
| cotto | #ps in 45 | 18:45 | |
| nine | Damn....sometimes reading the docs would be a really great idea: "The stack context will be invalidated if the function which called setjmp() returns." | 18:46 | |
| whiteknight | yes, setjmp is a tricky bastard | 18:49 | |
| We use it in the embedding API for callin/callout semantics, and we have to jump through some serious hoops there | 18:51 | ||
| nine | nice pun ;) | 18:52 | |
|
18:56
fperrad joined
|
|||
| nine | So I see two possible ways: try to fix the jump point issue, or try to work around continuations referencing their runloop so I can use runops | 18:56 | |
| whiteknight | what's wrong with the jump points? | 19:02 | |
| nine | The problem is that currently preempting a task means that runops returns. On return the jump point is invalidated according to setjmp(3). So there's no way I can resume that runloop, since it's most central feature is gone. So either runops does not return or I use a new runloop for the resumed task. | 19:05 | |
| whiteknight | why does runops have to return? | 19:06 | |
| nine | The scheduler just Parrot_ext_calls a task. On return it picks the next. I probably could use longjmp instead to return to the scheduler, which would leave the runloop intact. Or I make it work with a new runloop for every part of a task's execution. | 19:11 | |
| whiteknight | okay, that's where my confusion came from. The gsoc_threads branch used a preemptive task switch, so runops never exited | 19:12 | |
| or, it could exit, but for most cases it didn't need to | |||
| in that case, the jump points are preserved | |||
| when runops returns, we can call into it again. that's not an issue | 19:13 | ||
| nine | I think gsoc_threads never actually really worked. | ||
| whiteknight | no, it didn't really. It worked for some trivial things, but it didn't work for a lot of it | ||
| nine | I changed almost nothing. Especially the preemption. So it has to have the same problems. | 19:14 | |
| whiteknight | okay | ||
| nine | I'll just try the longjmp to the scheduler. Sounds like the least intrusive way. | 19:15 | |
| whiteknight | okay | ||
| cotto | #ps in 5m | 19:25 | |
| my how time flies | 19:31 | ||
| dukeleto: care to take a ride on the M0 train? | 19:35 | ||
| er, #ps | |||
| train | |||
|
19:58
mj41 joined
20:01
benabik joined
20:24
dmalcolm joined
20:34
Coke joined
|
|||
| benabik | I think the biggest change we'd need to make for parrot to be relocatable is our runtime directories. Linker will be able to find libparrot, but we'd need to do a real search path for includes, dynpmcs, dynops, etc. | 20:41 | |
| Could have a PARROTLIB environment variable (think PERL5LIB or VIMRUNTIME) or a path given to the interp on creation. | 20:45 | ||
| cotto | benabik: that sounds like a good starting point | 20:56 | |
|
21:37
benabik joined
21:48
eqhmcow joined
22:36
dmalcolm_ joined
22:41
dmalcolm__ joined
22:50
whiteknight joined
22:56
bubaflub joined
|
|||
| whiteknight | good evening, #parrot | 23:02 | |
| cotto | howdy | 23:13 | |
|
23:22
benabik joined
|
|||
| dalek | sella: ebac3aa | Whiteknight++ | src/ (4 files): Merge branch 'master' of github.com:Whiteknight/Rosella |
23:36 | |