Vision for 2.0: Production Users | Don't forget to post closed tickets in your report. | Note: This channel is only for our Tuesday status meetings; you probably want #parrot instead. | irclog: irc.pugscode.org/
Set by moderator on 2 February 2010.
00:02 particle joined 12:17 mikehh joined 13:57 Coke_ joined 14:44 bluescreen joined 15:24 allison joined
allison (Land about 10 minutes before #parrotsketch today, hope for wifi in the airport.) 15:24
Last week:
- Working on reports of incorrect line numbers in error messages.
Next week:
- Travel done, settling in to work.
16:17 bluescreen joined 18:23 bubaflub joined 19:27 NotFound joined
mikehh What I did since my last report: 19:28
* building and testing parrot on amd64/i386, with gcc/g++
* got Ubuntu 10.04 amd64 beta up and running - some tests there
* at the moment all tests up to fulltest pass (r45408)
* some fixes
* unfortunately had some serious $work problems over Easter which I had intended to devote to parrot
What I intend to do in the next week:
* testing and fixing 19:29
* continue looking at integrating nqp into codetests
.eor
moritz What I did last week: tried to act as a bridge between #parrot and #perl6 when necessary. Will try to do that next week too. EOR.
NotFound What I did: 19:42
-parrot
* Moved initializtion of paths from main to interpreter initialization.
* Fix init_int in FPA, added Parrot_pmc_new_constant_init_int, and change
* init usages to init_int in a lot of places.
* Several minot fixes.
-winxed
* Use init_int for fixed size arrays.
* Minor refactors.
What I will do;
No plan
EOR
19:43 bluescreen joined
Coke partcl - 19:44
- eliminated most of the PIR in the NQP version: Austin++
- update [foreach]
rakudo -
- very minor ticket wrangling. Claimed a ticket that requires some parrot
work...
.
(I will probably miss the meeting today)
19:50 cotto_work joined 19:53 chromatic joined
chromatic bacek and I fixed the GC performance regression. 19:54
I poked at a few things.
I'll work on improving line numbers in annotations and helping bacek get the constant string cache performance back to SUPERFAST. 19:55
19:59 bluescreen joined 20:23 darbelo joined
cotto_work #did: * reviewed and rated some gsoc proposals * not much else #will do: * whatever looks shiny and/or helpful #closed TTs: #eor 20:24
#did:
* reviewed and rated some gsoc proposals
* not much else
#will do:
* whatever looks shiny and/or helpful 20:25
#closed TTs:
#eor
darbelo DONE:
* GSoC proposal sent.
* Knee-deep in string internals.
* Learned a whole lot about Unicode. 20:26
TODO:
* Brib people to get int GSoC
* Do some work on strings.
EOR.
20:27 allison joined
NotFound hola 20:30
mikehh hello
darbelo hi
bubaflub hello
chromatic Hello everyone. 20:31
Do we have any last minute reports?
allison hi
bubaflub whoops, one sec 20:32
DONE:
* closed some old TTs
TODO:
* close some more old TTs
* submit proposal to GSoC to port parrot to RTEMS
EOR.
chromatic Anyone else?
Okay. Let's review last week's big tasks. 20:33
Rakudo performance: fixed.
HLL bugs? TT #389 and #1040? Whiteknight?
Anyone know any status on those? 20:34
No status. Okay. How are we doing on prioritizing Rakudo needs? 20:36
Coke? allison? particle?
allison looking at the tickets, but looks like no progress
particle i can say the rakudo folks are happy with the reduced memory footprint
allison (that was an answer to the previous question)
particle there is still work remaining on other tasks, i think allison is on the next-most-important, line numbering 20:37
chromatic Should we make line numbering our big priority for the week then?
allison I need more examples from the Rakudo folks there
particle chromatic++ 20:38
line-numbering test infra would be particularly helpful going forward
this problem seems to bite us frequently 20:39
moritz allison: every perl 6 program that calls die() is an example...
chromatic I think we can demonstrate the program even at the PIR level.
NotFound What's the problem? HLL line number annotations?
allison moritz: thanks, that's useful
cotto_work The profiling runcore tests could be easily adapted to check for line numbers too.
chromatic If we had a harness with which we could run arbitrary PIR programs and dump them with line numbers as recorded by the annotations, we'd find a lot of bugs easily. 20:40
cotto_work The profiling runcore tests almost do that.
chromatic Can we start there, then see where things go weird for Rakudo and HLLs? 20:41
cotto_work Fine by me. I'll add some documentation to runtime/parrot/library/ProfTest/*.nqp this week. 20:42
chromatic Any takers on making the harness and a list of failing files?
NotFound We have a imcc problem: there is no way to set an annotation at the .sub start other than put it at the end of the previous sub 20:43
chromatic I'm pretty sure how to fix most of the annotation problems in IMCC once I know what they are.
cotto_work Great.
Coke returns. 20:44
NotFound That problem is: the first annotation of the sub body is set after get params
chromatic Do we have volunteers for the rest? Allison? cotto? NotFound?
cotto_work That'll make the profiling runcore much more useful.
allison sounds like it's covered, what's left? 20:45
NotFound chromatic: I can look at it, but don't have much avalable time
cotto_work What exactly needs to happen? Do we just need a stub test that demonstrates how to test PIR-level annotations?
to which more tests can be added as needed? 20:46
chromatic The problem is that specific PIR constructs are off by one line one way or the other.
That means that we have to identify which PIR constructs have that problem.
Without knowing what they are, I can't trace their paths through the IMCC grammar and figure out where to fix up their numbers. 20:47
What really would help me is a test framework that can run every PIR/PASM file under t/ (for example) through some output mechanism in Parrot that dumps lines with their line numbers and compares those to actual line numbers.
cotto_work indeed 20:48
chromatic Stage two is doing something similar with HLL annotations.
NotFound chromatic: an improved -t1 ?
chromatic Yes, a better -t1 would work.
cotto_work I'll look at using the profiling tests for something like that. 20:49
chromatic Anything else on this subject? 20:50
allison what's the progress on the string segfaults?
NotFound I can add an option to packfile.winxed that emits a disassemble with the pir line numbers, maybe that will be easier.
chromatic The easier it is to find places where the annotations are incorrect (and to demonstrate that nothing else has changed), the easier to fix them. 20:51
darbelo allison: TT#???
chromatic In particular, any code that uses macros goes... way weird.
allison darbelo: reported by chromatic over the phone last week on a bad connection, I don't know if there is a TT 20:52
20:52 cotto_work2 joined
chromatic There's something weird in Parrot_str_append, I believe, but fixing COW problems seemed to help. 20:53
Let's move on. 20:54
allison that's good
chromatic Other priorities for the next week?
darbelo Urge SoC students to get their proposals in.
bubaflub heh.
chromatic Noted. Anything else? 20:55
particle don't just urge. help.
chromatic Let's move on to questions. Anyone? 20:56
In the absence of anyone else, I have one. 20:57
allison, there's lots of discussion of immutable strings. What do you think now?
allison ah, I have a lengthy reply to your last email that I haven't sent yet 20:58
it essentially boils down to: COW is supposed to be immutable, that's the whole point of it
chromatic We can keep shared buffers and immutable strings.
The question is whether a string can mutate its buffer in place.
allison we have a fundamental architecture problem in that COW requires creating multiple string headers before we actually write anything 20:59
just in case we might possibly write something at some point
20:59 cotto_work2 left
chromatic We'd have that problem without shared buffers too. 21:00
allison if we had real COW working, no string would ever need to modify the buffer in place
cotto_work afk
allison my concern with the current proposal for immutable strings is that it will actually increase the cost 21:01
chromatic Sure we would.
allison that is, instead of creating unnecessary string headers, we'd create unnecessary copies of string buffers
chromatic No, we wouldn't.
allison which isn't a big deal when the strings are small (function names, etc)
chromatic We can still use shared buffers with immutable strings.
allison but when the strings are entire files being parsed by NQP, it's a big deal
or, worse, entire files being generated by NQP 21:02
(a few characters at a time)
chromatic There is only one architectural change necessary to make immutable strings work. 21:03
It's still very compatible with shared buffers. 21:04
NotFound The obvious suggestion is: Don't do that.
chromatic It's likely to *decrease* the number of string headers we need, at least if we perform more reads of strings than writes (which is a good assumption).
allison NotFound: don't append to strings to build up strings?
changing append to return a string header I'm fine with
NotFound allison: don't write entire long files as strings char by char. 21:05
Coke (if you're creating a string, a join of an RPA might work better, especially if you can make that join smart.)
er, RSA
chromatic We should consider making a StringBuffer for that sort of thing, yes.
NotFound Write to a file, use lists of lines... whatever.
allison chromatic: I'm even fine with (later) eliminating "append" for only "concat" if we prove the performance is good enough 21:06
chromatic I don't think we have to remove Parrot_str_append. 21:07
The only philosophical change (and it doesn't affect much in the code) is removing the assumption in the C API that string modification functions modify their arguments in place.
allison if append returns a value, and the first argument isn't modified, then there's no difference between append and concat
chromatic First we have to break the unholy internal spaghetti alliance between those two functions, but yes. 21:08
allison if the difference is "the first argument *might* be modified", then it's a relevant distinction
chromatic The big question then is "What would make this worth experimenting with?" 21:09
allison down the road, we need to get real COW working
chromatic and the followup is "What would everyone like to see from the experiment to consider merging it?"
(also I don't understand what you mean by "real COW", because we have real COW, as real as C will let us get)
allison but, that requires the same extra level of indirection as copying GC, so is likely to happen anyway
no, we have COW that requires action early 21:10
(creating a duplicate string header)
real COW is lazy
*nothing* happens until the write
chromatic Unless you have [upvar] in C, that's not going to happen in C.
mikehh indirection 21:11
chromatic ... or else effective you have immutable strings anyway.
allison it's the extra level of indirection
and real COW is immutable strings
basically, I'm fine with experimenting with it
chromatic An extra level of indirection, in that we have a new parrot_cowable_string_t data structure which holds a pointer to parrot_string_t?
allison but I really want to see extensive profiling 21:12
what you need to make it work is the ability to reference the storage location of the string
so you can store a different string header in that storage location 21:13
chromatic The stack variable or register holding the string pointer?
*CPU* register?
allison (without changing any other locations that point to that string header)
neither
the container
chromatic This is C. Those are the containers you get.
allison i.e. the variable or register location
right, but if you have variable->stringheader->buffer, you can change the variable to point to a different string header 21:14
that's how COW works
we're wandering far afield here
chromatic If you're called from PIR yes, but not from C.
allison I'll send my longer email reply
chromatic Okay.
Anyone else have criteria or thoughts on this? 21:15
NotFound We have STRING * pointers, both in C functions and in parrot registers,
allison on your current question: yes, it's worth experimenting with immutable strings
chromatic Let's move design specifics to #parrot. 21:17
Any other thoughts on the viability of experimenting with this? Any +1, -1 from anyone else?
NotFound +1 21:18
darbelo bacek mentioned he was going to start some work on it soon.
+1 from me.
chromatic Right, I wanted to bring up the question to see whether it should be a fait accompli or an experiment first.
Let's move on to roadmap review. allison?
allison looking quickly over the 2.2 milestones, few are likely to make it to 2.3 21:19
so, we can work through a couple of them, then 2.3 milestones
(there's only so much we can do in one sitting)
21:19 bacek joined
allison first up is: Add Configure probes for LLVM 21:20
is this a roadmap task?
darbelo We have that in a branch.
allison I suggest dropping it from roadmap
NotFound +1 21:21
allison (I'm not saying it shouldn't be done, just that it's not a task for a specific release)
NotFound Agree
allison okay, changed
next: t/steps/auto/frames-01.t: Failures following pcc_reapply merge 21:22
This is about frame building 21:23
move it out?
is there a larger ticket for frame building we can attach it to and remove from the roadmap?
chromatic +1 to the larger ticket idea 21:24
None of those tests should be roadmap items.
allison okay, removed from roadmap 21:25
made a note to self to find/create a ticket for the framebuilder this week
that's enough of 2.2, on to 2.3, to make sure we're on top of things for the release 21:26
HLL export conventions, what's the status/progress there?
darbelo ENOTENE 21:27
allison is it a priority for 2.3?
darbelo Sounds like it should be. 21:28
allison if our priority is Rakudo, then cross-HLL is lower
mikehh I don't think we are going to get it for a while
chromatic We need at least one other person working on it with Tene.
allison suggest dropping it from "critical" to "normal" and bumping to 2.6 21:29
21:29 Whiteknight joined
NotFound +1 21:30
darbelo wfm
spinclad Rakudo would like cross-HLL module 'use'; at least for Perl 5 and parrot
allison yes, but getting Rakudo working well is a higher priority 21:31
it looks like we already did the bump to 2.6 for the other HLL-interop tickets
chromatic Do we have a volunteer to get a list of prioritized use cases for "use" from Rakudo? 21:32
spinclad i hesitate to volunteer, but will if noone else 21:33
chromatic It's just a list, that much is useful on its own. 21:34
spinclad will talk on #perl6 to collect needs
allison thanks, spinclad
next, are there any more deprecations for ops/pmcs to go in before 2.3? 21:35
(TT #449 and #448)
sounds like a mailing list question, I'll post it there
next, sweep-free gc 21:36
is it a priority for 2.3?
is any work going into it?
should we move it out, and to when? or should we drop from roadmap?
it was originally offered up because GC was a goal for 2.3, and it seemed small 21:37
chromatic That should probably be a bigger priority than immutable strings, but it's also probably a larger task.
allison but, we've gotten a large amount of other good work in GC
I'd call the task of "work on GC for 2.3" complete, and sweep-free gc as an extra for later work 21:38
Propose dropping it from the roadmap: for/against? 21:39
chromatic Upper bound of GC improvement for sweep-free GC: 10% performance improvement.
NotFound allison: for
allison (again, that's not a proposal to drop the task, just that it's not tied to a particular release)
chromatic Let's bump it to after 2.3. 21:40
allison okay, 2.6 (we'll redistribute the 2.6 tasks to dev releases after 2.3)
next: subroutine leave semantics/exit handlers
chromatic ENOTENE 21:41
allison this is a Rakudo need
will leave at 2.3 for now, look for a status update next week 21:42
next: improved NCI/FFI
is this a roadmap task?
is this likely to happen in 2.3?
chromatic Unlikely; possibly a GSoC project.
allison okay, I propose to drop from roadmap 21:43
for/against?
(this is the last one)
NotFound for 21:44
chromatic for
NotFound do
darbelo while
allison :) 21:45
okay, dropped from roadmap
that's all, back to chromatic
chromatic Any final questions? Other than "Why are we so awesome?"
spinclad that's a good one
but better in #mirror, perhaps 21:46
chromatic Let's call this meeting over. Thanks, everyone. 21:48
spinclad c++ a++ all++
22:02 darbelo left 22:13 NotFound left 23:11 chromatic left 23:39 bacek joined