Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test exceptions_refactor branch | welcome our GSoC students
Set by moderator on 27 April 2010.
Coke mmm. 00:02
00:23 snarkyboojum joined 00:27 Mokurai1 joined
Coke cotto_work: pmc-> results in an invalid variable name. 00:28
Coke tries SELF 00:29
bacek_at_work Coke, stop touching you SELF 00:36
Coke :P 00:38
ugh. gdb and pmc .c files is a terrible combination.
kid51 I see from the YAPC Calendar that there is a Parrot/Perl 6 workshop scheduled for all day on the 3rd day: yapc2010.com/yn2010/event/674 00:45
I thought Allison had nixed the idea of a Parrot workshop at YAPC.
Coke I thought that was just a BOF room. 00:49
is RSA the one that's been failing recently?
ah, yup, there it is. 00:50
kid51 True, it's listed in a BOF room -- but BOFs typically take place at lunchtime or late afternoon/early evening
Coke they have a lot more rooms to fill this time.
i heard in #yapc that pmichaud had req'd the bof room.
woot. coretest passes with my codestring mods... 00:51
kid51 Actually, it's listed in that room for all 3 days of the conference!
pmichaud has two talks scheduled in the main rooms. This workshop is distinct from those.
And there's no detail as to what the workshop will consist of on any given day. 00:52
00:54 snarkyboojum joined
dalek kudo: f31d524 | jonathan++ | src/Perl6/Module/Loader.pm:
Apply patch from sorear++ to further fix up loading modules from other languages.
00:55
Coke I think it's just an ongoing hackathon. =-) 00:57
but I don't know. I'd ping the list and ping #yapcs.
dalek rrot: r46161 | darbelo++ | trunk/src/dynpmc/Rules.in:
[dynpmc] Move the .h along with the .c file to the dynpmc/ dir.
00:58
kid51 I just think that if we want to occupy a given space for all 3 days, we should have a more focused agenda at particular times. 00:59
Coke that's what the talks are for. 01:05
01:08 ash_ joined, snarkyboojum joined
dalek rrot: r46162 | coke++ | branches/codestring/src/pmc/string.pmc:
Make String more forgiving about child PMCs that don't use the String ATTR.
01:14
Coke I'd probably just start by figuring out who drove getting us the room.
rrot: r46163 | coke++ | branches/codestring/src/pmc/codestring.pmc:
Whoops, checked wrong variable.

  'make test' now at 100%
01:16 TiMBuS joined
kid51 Hmm, build failure 01:36
error:imcc:syntax error, unexpected $end
in file 'runtime/parrot/library/ProfTest/PIRProfile.pir' line 1
nopaste "kid51" at 192.168.1.3 pasted "'make' failure in trunk at r46163" (839 lines) at nopaste.snit.ch/20409 01:37
kid51 This is where things start looking amiss: 01:39
src/gc/api.c:169: failed assertion 'PObj_is_PMC_TEST(obj)'
Backtrace - Obtained 31 stack frames (max trace depth is 32).
... which was immediately preceded by: 01:40
./parrot-nqp --target=pir runtime/parrot/library/ProfTest/PIRProfile.nqp > runtime/parrot/library/ProfTest/PIRProfile.pir
Coke kid51: that's been failing sporadically in taptinder for 2 days. 01:45
kid51 I had successful builds on this box at r 46126 last night. 01:48
Coke yup. it's sporadic. 01:49
taptinder?
purl it has been said that taptinder is continues integration tool - taptinder.org . For Parrot project running on tt.taptinder.org/ and reporting build failures to #parrot channel as ttbot.
01:55 mikehh joined 01:58 Psyche^ joined 01:59 JimmyZ joined
kid51 This is indeed strange. I'm getting a build failure on a checkout of r46126 -- the same rev at which I got PASS in make test (and relevant parts of make fulltest) last night 01:59
ttbot Parrot trunk/ r46161 i386-freebsd-64int make error tt.taptinder.org/file/cmdout/288509.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 02:04
kid51 I take back what I said about 46126. I misspecified the test. 02:05
Hmm. Successful builds and make test at 46153 and 46154. 02:15
Coke can someone time a rakudo build for me? (with trunk and with branchs/codestring) 02:16
sorear rakudo build with trunk is 12m real 10m user
with codestring is "how do I switch branches?
Coke svn switch <path to branch> 02:17
not sure if that'll work with the --gen-parrot stuff. 02:20
kid51 Damn: an intermittent build failure: the worst kind. 02:22
I've gotten both successful and failed builds at r46163.
sorear ok, started rakudobuild on the branch 02:25
Coke hokay. lemme konw. 02:26
kid51 The first taptinder report at which this particular build failure was reported was this one by Allison at r46092: tt.taptinder.org/file/cmdout/285080.txt
Coke it's sporadic, though; could be any number of commits before that. 02:27
that's an excellent starting point, htough.
02:28 theory_ joined
kid51 Well, one clear possibility is r46054, where a change was made to the NQP file associated with the failing PIR: runtime/parrot/library/ProfTest/PIRProfile.nqp 02:36
02:38 bacek_mobile joined
bacek_mobile hi 02:38
problem with segfaults is in compact-pool-revamp merge 02:39
kid51 bacek_mobile: Which commit was that merge?
02:41 theory joined
kid51 r46077 02:41
okay, if that commit was problematic, that would be chronologically consistent with failures observed; none were before that 02:42
sorear what is the logic behind responding to out of memory by abort() ? 02:45
dropping a 1.5 GB core file is very disruptive to system operation
02:45 Mokurai joined
Coke debug purposes? 02:48
Iunno. 02:49
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33563), fulltest) at r46163 - Ubuntu 10.04 i386 (g++) 02:51
t/pmc/packfile.t - TODO passed: 34 - in coretest, smoke and all cores in fulltest
in testf - t/op/exit.t - TODO passed: 6
dalek rrot: r46164 | jimmy++ | trunk/src/oo.c:
random consting
02:52
02:54 theory joined
sorear Did something change in parrot_config recently? I'm getting cg_flag not found errors with blizkost 02:55
ttbot Parrot trunk/ r46164 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/288556.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 02:56
02:59 Mokurai joined 03:00 janus joined
mikehh ha - it's after 4am for me - needs sleep - bbl 03:02
JimmyZ sleeping well 03:06
Coke sorear: you mean "cc_flag" ? 03:13
its "ccflags" 03:14
03:16 snarkyboojum joined
sorear Coke: no, @cg_flag@ 03:20
it worked fine until I updated parrot from 2.3.0 to trunk
unfortunately there are no comments to explain what it /does/
purl Hmm. No matches for that, sorear.
Coke ah, yes. probably removed with the runcore.
sorear "the runcore"?
Coke the computed goto runcore. 03:21
sorear ohhh
I was trying to expand it as cc -g flag
Coke why are you looking for it?
... no.
that might be @optimize@
sorear because blizkost FTBFS with a missing config entry error
Coke it shouldn't need it unless it was generating dynamic opcodes. 03:22
sorear blizkost uses a cargo cult build system
there are no comments and lots of platform ifs
I have no idea what half of it is for
Coke blizkost? 03:24
purl i think blizkost is github.com/jnthn/blizkost/tree/master or the last Jonathan's project, an embedding of Perl 5 in Perl 6
Coke is that the main url?
03:28 Andy joined
sorear Coke: yes 03:28
Coke k. checking.
looks like you can just remove it. 03:29
s/@cg_flag@ // 03:30
I do that, I get a warning about my Perl not allowing interpreters, and then build fails on exactly that.
rip it out, give it a shot. =-)
dalek izkost: 02c45ba | sorear++ | build/Makefile.in:
Remove obsolete references to the cgoto core
03:34
rrot: r46165 | jimmy++ | trunk/src/pmc/class.pmc:
changed interp to INTERP for unification
03:42
Coke Jimmy++ 03:45
sorear: hey, would you be willing to try that build again with a slightly different patch? 03:46
(which I have not yet committed)
sorear Coke: yes
ttbot Parrot trunk/ r46168 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/288647.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 03:50
Coke tewk: to save me the trouble, can you add experimental notes for your new pmcs? 03:51
(also, why is one named parrot* and one not? (I always thought naming anything parrot* was redundant. =-))) 03:52
(also (lisping))
ttbot Parrot trunk/ r46169 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/288684.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 03:54
03:54 kurahaupo joined
dalek TT #1395 closed by jimmy++: [patch]various minor change to parrot 03:57
TT #1395: trac.parrot.org/parrot/ticket/1395
TT #92 closed by jimmy++: Should all header files under src/ be moved to include/ dir?
TT #92: trac.parrot.org/parrot/ticket/92
Coke sorear: ok. branch updated with a WAG. 03:58
dalek rrot: r46166 | tewk++ | trunk (4 files):
Remove old thread pmcs
rrot: r46167 | tewk++ | trunk (5 files):
Remove thread types PARROT_THR_TYPE_1 ...
rrot: r46168 | tewk++ | trunk (2 files):
Remove pt_thread_run
sorear WAG?
purl WAG is Wild Ass Guess
dalek rrot: r46169 | tewk++ | trunk (2 files):
new thread creation functions
rrot: r46170 | tewk++ | trunk (7 files):
Added new parrotthread pmcs
rrot: r46171 | coke++ | branches/codestring/src/pmc (2 files):
passing codetest
rrot: r46172 | coke++ | branches/codestring/src/pmc/codestring.pmc:
Instead of re-using the existing FSA, see if making a new one is more

  (Was the old one hanging onto the old elements?)
sorear Coke: fwiw I'm *not* doing distcleans between branch switches 03:59
tewk is the gsok thread guy?
Coke msg tewk: regarding removal of the old PMCs in trunk - was ther ea ticket for that? (I don't see it in deprecated.pod) 04:01
purl Message for tewk stored.
sorear Coke: within 3 seconds, 800MB and climbing fast 04:03
this could just be a transient though - hold on 04:04
tewk Coke: threads are just plain broken, this is an attempt to slowly fix them. 04:05
sorear: I'm not the gsok guy. 04:06
sorear huh 04:07
top says 12% SY
I didn't know swapping was that CPU intensive
tewk I have a very preliminary draft pdds that gives some ideas on how to implement parallelism on a language virtual machine. 04:09
Coke tewk: by completely changing the interface?
I'm not complaining about fixes, just wish we had a ticket before 2.3.0 went out the door.
c'est le vie.
JimmyZ tewk++ for parallelism 04:10
sorear Coke: with your fix, rakudo build ran out of memory 25% faster. 04:11
only took 9 minutes this time.
JimmyZ sorear: how about trunk? 04:12
tewk tewk.com/pdd32_parallelism
sorear JimmyZ: Finishes without error in 12 minutes.
JimmyZ how about memory? 04:13
purl DOCTOR MEMORY!!!
sorear I don't know
tewk What I just checked in is broken too, (no GC support), but succesfully I've implemented futures on top of what I just checked in.
sorear I dozed off when I was supposed to be staring at top and all I have is the time output :(
tewk Coke: where do you want experimental notes.
dalek TT #896 closed by jimmy++: [patch]consting socket_win32.c
TT #896: trac.parrot.org/parrot/ticket/896
rrot: r46173 | jimmy++ | trunk/src/io/socket_win32.c:
random consting
04:14
ttbot Parrot trunk/ r46173 i386-freebsd-64int make error tt.taptinder.org/file/cmdout/288788.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 04:15
04:19 kurahaupo joined
sorear tewk! you broke my build 04:19
make: *** No rule to make target `src/pmc/parrotrunningthread.pmc', needed by `src/pmc/parrotrunningthread.dump'. Stop.
svn status shows no '!'
tewk sorear: make realclean 04:20
Coke sorear: jezu. Ok, I'll leave it for chromatic to figure out. =-) 04:22
tewk: open a ticket, add a ref to it in the DEP.pod (mark the ticket as an 'experimental' - feel free to use one ticket to cover everything.) 04:23
04:39 wagle joined 04:41 kurahaupo joined
dalek TT #1601 created by tewk++: Parallelism aka ParrotThreads 04:46
TT #1601: trac.parrot.org/parrot/ticket/1601
rrot: r46174 | tewk++ | trunk/DEPRECATED.pod:
Add thread and parallelism to experimental
04:47
Coke tewk: if you're reusing an existing name, that's fine. the commit said "added". 04:49
so I assumed it was new.
tewk Well I removed it then added it again, so I think you may have a good point. 04:50
04:53 Andy joined 05:03 rurban_ joined 05:12 Andy joined
ttbot Parrot trunk/ r46174 cygwin-thread-multi-64int make error tt.taptinder.org/file/cmdout/288907.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 05:13
Coke if anyone can track down the memory usage issues with building rakudo master with the parrot branch "codestring", I'd appreciate it. 05:21
I pinged chromatic, but he is not swooping in to save the day.
(I assume Real Life is involved.)
ah. it wasn't pmichaud that requested the parrot room, it was particle. 05:22
(per pmichaud++)
only changes in the branch are to codestring (make it has-a-RSA and use that for all 'emit'() usage), and String (make it be nicer to new codestring subclass) 05:23
sorear IIRC subclassing PMCs is extremely expensive
JimmyZ Yeah
sorear I've looked at the implementation 05:24
it's... like watching a trainwreck
JimmyZ I'd very appreciate if you can fix it. 05:25
sorear I can't move.
Too... enthralling...
Coke expensive how? 05:28
a lot of that complexity is at build time, not run time.
if I'm just using ATTRs, does the default destroy cleaning that up from a GC perspective? 05:32
05:32 szabgab joined
tewk With a gc the problem is usually premature collection due to failing to mark correctly 05:34
Coke tewk: branches/codestring is consuming a ton of memory; I'm assuming I'm not freeing something. 05:36
or perhaps I'm overmarking. 05:37
if I allocate 1000 codestring pmcs, I end up with 2000 more ACTIVE_PMCS. 05:38
(that's if I allocate them in a tight loop and throw them out, and do a collect before I check again.
ugh, and it get worse and worse if I /use/ the codestrings. 05:39
tewk well a codestring has a linepos and a strings pmc thus 2x
sorear If your goal here is performance why not start in C 05:40
?
Coke ... PMCs are in c. 05:41
tewk Coke: set string native creates a new RSA, just set its size to 0 and then push the string. 05:45
Coke tewk: that was a test - current version just resets it instead. that saves me 2 pmcs that weren't getting freed. 05:47
still leaking 7 PMCs when doing a new Codestring, .emit('foo') $S0 = $P0.
think I need a custom destroy. 05:48
and I think codestring might have been leaking linepos all this time.
tewk no, I think you need to define concatenate, I think you are getting the impl from scalar.
sorear Coke: I was under the impression CodeString was in PIR. 05:49
Coke sorear: no. 05:50
not for some ... what, 2 years now?
hurm. destroy looks like it's only needed if you're managing your own memory, which I'm not. what the hell is holding onto these PMCS?
ttbot Parrot trunk/ r46175 i386-freebsd-64int make error tt.taptinder.org/file/cmdout/288976.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 05:51
Coke I wish there was a way to say "dump all the PMCs you know about" so I could see what was keeping the reference.
sorear walking the heap in gdb isn't too hard 05:52
Coke blarghle. my demo wasn't running a gc.
dalek rrot: r46175 | jimmy++ | trunk/src/pmc/callcontext.pmc:
removed outdated comment
rrot: r46176 | coke++ | branches/codestring/src/pmc/codestring.pmc:
Avoid creating a new pmc that we were just leaking anyway.
Coke collect != sweep.
dalek rrot: r46177 | coke++ | branches/codestring/src/pmc/codestring.pmc:
don't call SUPER in init/mark - we're not built that way anymore.
Coke ok. pmc usage isn't increasing now. buffer usage is, though. 05:53
sorear: src/pmc/codestring.pmc 05:56
05:57 alexn_org joined
sorear Coke: mm? 06:01
Coke is the pmc definition for CodeString.
which is transformed to C and then compiled. 06:02
cotto Coke, how does it work that you use STRING *strings; in CodeString's set_string_native without initializing it? 06:08
dalek rrot: r46178 | coke++ | branches/codestring/src/pmc/codestring.pmc:
remove unused variable.
06:09
Coke cotto: there's a GET_ATTR there.
ah, think I found my leak.
cotto the leak appears to be in my brain 06:10
too much garbage, not enough collection
nopaste "coke" at 192.168.1.3 pasted "this look right? Doesn't seem to help, sadly." (23 lines) at nopaste.snit.ch/20412 06:12
dalek rrot: r46179 | coke++ | branches/codestring/src/pmc/resizablestringarray.pmc:
When trying to shrink an array, forget about our previous contents.

it does seem correct.)
06:25
tewk Coke: I don't think you need to null things out, mark only marks the size slots, it doesn't mark all allocated slots. 06:28
Coke tewk: crud. you're right. 06:29
reverted. 06:32
tewk++
tewk wait, I'm not so sure.
no I'm right, the NULL loop that was already there is needed, your new one isn't 06:33
Time to go to bed. 06:34
Coke amen.
tewk I think emit should use a local temporary RSA to do the % formating, and them join to a string and push that string on the codestring RSA. 06:40
nopaste "coke" at 192.168.1.3 pasted "this is causing the leak" (4 lines) at nopaste.snit.ch/20414
dalek rrot: r46180 | coke++ | branches/codestring/src/pmc/resizablestringarray.pmc:
fix typo. (no, still doesn't help with burning ACTIVE_BUFFERS when using
06:41
rrot: r46181 | coke++ | branches/codestring/src/pmc/resizablestringarray.pmc:
Revert changes to this file;

the array anyway, so these should be GC'd.
Coke tewk: Why have N RSAs? 06:43
sorear Parrot has an extremely wrong notion of what "Unicode" means.
Coke tewk: instead of a single oen?
sorear: you're not helping.
If you have specific complaints, those are nice to hear and we can fix them. 06:44
If you have rants with no details, those are just frustrating.
tewk Coke: if (pos == 0 && percentPos < 0) just push the string, don't do substr.
thats effectively just a concat, no special formating
Coke tewk: isn't that just going to end up with /more/ temporary RSAs?
tewk: how dumb is substr? 06:45
that is a simple enough check, though, sure.
06:46 theory joined
sorear They're just confusing terminology. All of our charsets are Unicode; why is one of them called Unicode? 06:46
Coke tewk: sunova. that also fixes the leak in my simple program.
sorear: no, all of our charsets are not unicode. 06:47
moritz sorear: the latin1 charset is not Unicode
sorear: it is *in* Unicode, but it is not the same
Coke (they is us, btw. =-) 06:48
tewk: looks like anything that's doing a substr is leaking BUFFERs. 06:49
(at least in emit())
sorear What's the difference between an encoding and a charset? 06:50
moritz charset = character set = character repertoir
encoding = mapping from bytes into a character repertoir
sorear Why have charsets that are supersets of each other? 06:51
tewk Coke: your right my tempoarary RSA is a bad idea for our current collector, but with a generation collector it might be better
moritz sorear: because some applications what small charsets for faster operations
Coke tewk: why?
oh. YOUR RSA, not mine. =-) 06:52
sorear Coke: you know about the substr optimization, right? could be relevant here
Coke I still think a single join at the end is more efficient.
I was just about to ping bacek, since he mucked with strings.
tewk Coke: your probably right.
sorear moritz: Hah. I'm amazed you gain more than you lose with the extra layer of indirection and word of data on strings, but I'm not the one with the data
Coke: Parrot_str_substr doesn't necessarily copy any data; it shares a reference to the old buffer 06:53
if you have a big string and substr out a few small pieces, you'll leak 06:54
is this what you're seeing?
Coke I thought chromatic & bacek fixed that issue. 06:55
bacek_at_work It will not leak.
(And single join is much more efficient)
sorear (for very conservative definitions of leak)
the big string will last as long as the pieces 06:56
bacek_at_work yes
sorear chromatic & bacek created this "issue"
it's a win in a lot of cases
bacek_at_work no
it's about same as old COW strings
sorear oh right, COW
I blissfully forgot about that 06:57
bacek_at_work actually, it's _exactly_ same as COWed strings
Coke bacek_at_work: if you have any ideas why branches/codestring/src/pmc/codestring.pmc:emit( seems to be leaking BUFFERS, I'd be glad to hear it. =)
bacek_at_work Coke, any "symptoms"?
dalek rrot: r46182 | mikehh++ | trunk/MANIFEST:
re-generate MANIFEST
06:58
rrot: r46183 | mikehh++ | trunk/src/pmc (2 files):
add svn properties
rrot: r46184 | coke++ | branches/codestring/src/pmc/codestring.pmc:
Small optimization - if the whole string is %-free, avoid a substr call.

  tewk++ as this seems to fix the buffer leak in the simple case.
rrot: r46185 | mikehh++ | trunk/src/pmc/parrotthread.pmc:
fix codetest failure - line length and trailing spaces
rrot: r46186 | coke++ | branches/codestring/src/pmc/codestring.pmc:
fix comment oddity and bizarre in-situ assignment that must have been a cNpasto
rrot: r46187 | mikehh++ | trunk/src/thread.c:
fix codetest failure - line length
Coke memory usage compared to trunk is big, per sorear. if I run code to check # of active buffers before and after a few thousand emits, it grows, even though I destroy all the evidence in PIR.
tewk bacek_at_work: does Parrot_str_substr do the right optimization if you ask for a substr that is the whole string?
bacek_at_work tewk, str_substr just create new string header and reuse old buffer. 06:59
So, it doesn't really matter how big substring is
tewk right, but it doesn't need to create a new string header if the substr is the entire string right? 07:00
bacek_at_work no. We always create new string header.
nopaste "coke" at 192.168.1.3 pasted "sample script" (98 lines) at nopaste.snit.ch/20415
bacek_at_work Coke, try put VTABLE_set_integer_native(INTERP, strings, 0) on line 120 07:01
Coke bacek_at_work: that's wrong.
purl Coke is channeling thoth!
Coke (the value of strings needs to persist over multiple calls to emit()"
if you call .emit("a"), .emit("b"), the output will be "a\\nb\\n" when you later do a get_string. 07:02
bacek_at_work ah...
tewk "We always create new string header." is why coke had to do "Small optimization - if the whole string is %-free, avoid a substr call."
if you detected a substr that was the same as the original string you could save a string header allocation. 07:03
Coke bacek_at_work: so, anyway; remaining cases all suspiciously use Parrot_str_substr, and buffer use grows. 07:05
nopaste "coke" at 192.168.1.3 pasted "output of that script." (20 lines) at nopaste.snit.ch/20416 07:06
tewk Coke does rakudo do codstring += string
Coke i've created 1K codestrings, only gained 4 active PMCs. active buffers goes from 203 to 3151. 07:07
moritz the POST compiler does codestring.emit excessively
sorear excessivelt?
Coke you can do emit a lot. it's ok. =-)
tewk if so you should implement concate in codestring, the one in scalar isn't
Coke tewk: possibly.
... though I doubt it, since the build completed for me. 07:08
(of rakudo using this branch.)
tewk the one in scalar is inefficient.
They probably generally use emit for concat.
Coke concat is just the simple emit() path with this new setup. 07:09
tewk right, but if someone does += instead of .emit they won't get the benefit of codstrings internal RSA 07:10
bacek_at_work Coke, you can use temporal RSA and push single joined string into C<strings>
Coke bacek_at_work: why does every suggest that? =-)
tewk temporal RSA doesn't exist.
Coke then you end up calling join() and creating a lot of temp RSAs. 07:11
tewk Every RSA becomes junk the GC has to collect.
Coke (which is a more PMCs.)
and more strings, too.
tewk Coke: with a very long lived codestring and genrational GC, there might be a small pay off, because in the long run you reduce the total number of objects. and young garbage for a generational collector doesn't have a collection cost. 07:14
Coke part of the goal of this was to call _concat as infrequently as possible. (like, never.)
tewk but that is really stretching it, and we don't have a generational GC.
Coke tewk: the objects go away as soon as some calls get_string()
s/go away/are collectable/
dalek rrot: r46188 | coke++ | branches/codestring/src/pmc/codestring.pmc:
fix the comment
07:15
rrot: r46189 | mikehh++ | trunk/src/thread.c:
fix codetest failure - add c function docs
Coke ok. I'm supposed to be asleep 4 hours ago.
tewk So your comment " why does every suggest that? =-)" is justified,
moritz btw it seems that there is a Codestring .= String operation in POST 07:16
mikehh tewk: you might want to check the documentation in r46189 or add to it
moritz compilers/pct/src/POST/Compiler.pir +289
tewk I was just suggesting that you implement concat in codestring so that it appends to the RSA instead of using scalars concat which is a real string concat
sorear rakudo just uses PCTR 07:17
PCT
it doesn't do += or anything
tewk <@moritz> btw it seems that there is a Codestring .= String operation in POST
moritz I have no idea how often it is called, though 07:18
tewk moritz justifies my suggestion.
good point.
Coke ok. if someone adds a (failing) test to t/pmc/codestring.t in the branch, that would be awesome.
(that does a .= String) 07:19
(no need to todo it even.)
ok. sleep now.
tewk Coke it wont fail, it will just be less efficient.
it will force a premature join 07:20
I'm realy going to bed now, nite.
dalek parrot: 1ae4402 | dukeleto++ | (4 files):
Attemp to use Parrot_load_bytecode to load P6object.pbc

call Parrot_load_bytecode(interp, "P6object.pbc") before we load our PIR that intercepts file I/O. This currently coredumps in parrot_split_path_ext, which is called by Parrot_load_bytecode.
07:21
parrot: e39408d | dukeleto++ | plparrot.c:
The docs for Parrot_load_bytecode were wrong (the horror!), it takes a Parrot_String
parrot: 26766ad | dukeleto++ | plparrot.c:
Create a dummy packfile

  "load_bytecode" couldn't find file 'P6object.pbc'
parrot: 2a0d28c | dukeleto++ | plparrot (3 files):
Go back to load_bytecode in PIR and add an :immediate flag
parrot: fc4809c | dukeleto++ | (5 files):
First prototype of a working security system

around, such as not being able to load_bytecode in PIR which is called from the embedding interface, so P6object.pbc is loaded from C.
parrot: 17e2a82 | dukeleto++ | Makefile:
Remove some junk from Makefile
parrot: 54339f4 | dukeleto++ | HISTORY:
Add a trifle to HISTORY
parrot: 8b0266b | dukeleto++ | TODO:
Update TODO
parrot: 63472ee | dukeleto++ | (6 files):
Merge branch 'security'

  \tHISTORY
07:28 fperrad joined
dalek rrot: r46190 | fperrad++ | trunk (2 files):
[TAR] add full_path() & rename()
07:31
cotto tosses dalek some ketchup 07:44
dalek izkost: 64df29f | sorear++ | src/pmc/ (8 files):
Reify nexuses as objects outside P5Interpreter

provides a platform to avoid destruction order dependencies, and gives me an excuse to use the word nexus more.
07:47
ttbot Parrot trunk/ r46190 cygwin-thread-multi-64int make error tt.taptinder.org/file/cmdout/289272.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ )
dalek rrot: r46191 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] make tarball without copy in filesystem
07:48
07:52 aukjan joined
cotto mai plan. let me show you it 07:55
dalek tracwiki: v1 | cotto++ | UsingGitAndSvnInTrac
tracwiki: trac.parrot.org/parrot/wiki/UsingGi...ction=diff
tracwiki: v2 | cotto++ | UsingGitAndSvnInTrac
tracwiki: fix wiki formattening
tracwiki: trac.parrot.org/parrot/wiki/UsingGi...ction=diff
tracwiki: v3 | cotto++ | UsingGitAndSvnInTrac
tracwiki: trac.parrot.org/parrot/wiki/UsingGi...ction=diff
cotto . o O (Couldn't have timed that better.)
dalek izkost: cca07ac | sorear++ | src/pmc/ (4 files):
Sever nexuses at the start of global destruction

interpreter created).
07:58
cotto definitely time for sleep 07:59
night, humans
08:36 aukjan joined
dalek rrot: r46192 | jimmy++ | trunk/src (72 files):
manual optimization for old compiler
08:38
08:53 allison joined
dalek rrot: r46193 | jimmy++ | trunk/src (19 files):
manual optimization for old compilers
08:54
ttbot Parrot trunk/ r46193 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/289409.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 08:57
Infinoid wow, dalek is getting a workout these days 09:13
dalek rrot: r46194 | jimmy++ | trunk/src/sub.c:
localize vars
09:43
09:51 iblechbot joined 10:07 aukjan joined 10:22 riffraff joined 10:43 aukjan joined 10:46 Andy joined
dalek rrot: r46195 | NotFound++ | trunk/src/pmc/parrotthread.pmc:
set_integer_native is void
10:48
NotFound The Parrot_pmc_free_temporary in hashiterator.pmc shift_string looks suspicious. 11:09
Is a good candidate for the random segfaults. 11:10
11:49 JimmyZ joined 12:26 ruoso joined 12:29 whiteknight joined
dalek p-rx: 8712c4a | moritz++ | src/Regex/Cursor.pir:
create new match objects and arrays in separate methods that can easily be overridden from HLLs
12:31
p-rx: 5c23708 | moritz++ | src/Regex/Cursor.pir:
Merge remote branch 'origin/mob2'

simplify generation of HLL-specific match objects. There's a proof-of concept Rakudo branch 'mob3' which uses this new facility.
p-rx: 3f00ce8 | moritz++ | (5 files):
update stage0 files
12:37
12:38 bluescreen joined 12:45 khairul joined 12:48 khairul left, khairul joined
dalek rrot: r46196 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files):
[nqp] update to get latest match object creation hooks
12:59
rrot: r46197 | NotFound++ | trunk/src/pmc/fixedintegerarray.pmc:
avoid a temporary PMC in FPA set_string_keyed_int
13:03 mikehh joined, rurban_ joined 13:08 JimmyZ joined
Coke mentor jimmy? 13:13
rurban: hey, reini. 13:14
particle coke: what's this business with "the parrot room"? 13:25
mikehh tewk: ping 13:27
13:30 bkuhn joined
JimmyZ Coke: what? 13:31
mikehh getting a bunch of packfile test failures 13:33
13:34 atrodo joined
Coke JimmyZ: did you see chromatic's question about your --i vs. i-- patch? 13:39
you may be optimizing for compilers that we're not supporting.
particle: yapc2010.com/yn2010/event/674, yapc2010.com/yn2010/event/673, and yapc2010.com/yn2010/event/671 13:41
I understand that's your doing.
er, and yapc2010.com/yn2010/event/675 and yapc2010.com/yn2010/event/676 13:42
particle aye, i suppose it is
Coke SO, that's, what, 40 HOURS of ``content'' ? 13:43
I look forward to your gymnastic routine. =-)
particle i never got confirmation from patrick that it was workable, so my tentative 'yes' became definite without further input
Coke I think if it's just "a room for us to hack in and answer questions", that's fine; having it on the schedule with the talks is probably wrong.
particle it will be a room to hack in and answer questions, most of the time, i imagine 13:44
either during BoF hours, tutorial days, or some conference sessions, there may be tutorial-style content. 13:45
it'd be nice to have a little something each day
msg pmichaud ping me when available for yapc-perl6workshop discussion 13:46
purl Message for pmichaud stored.
Coke if you're imagining something that needs manpower, we need to make sure there's staffing, etc.
particle i guess i'd better book flight/hotel... i'm in denver now, nyc later, urbana/champaign end of may
Coke I imagine there are going to be times when no one is in the room because, e.g., chromatic is giving a talk and we're all fanboys. 13:47
particle coke: aye, there are many details to work out, booking the room was most important
Coke wish I could take the train. *sigh*
particle why not?
dalek rrot: r46198 | NotFound++ | trunk/src/pmc/codestring.pmc:
avoid pmc_new_temporary in codestring emit method, maybe slower but less crashy. Also use fixed instead of resizable string array
13:48
Coke particle: might want to throw out a little note on the -dev list; swill help stop people saying "HUUUUUWAH?" and get them thinking of what can or should be done. (I for one am just looking forward to having a few days to hack.)
(hell, none of us may be there thur or fri.)
particle right... damian teaching perl 6 is compelling, but i expect the workshop room to be pretty empty then :) 13:49
JimmyZ Coke: Does that patch was wrong? 13:50
Coke JimmyZ: I don't see that it does anything.
JimmyZ Coke: Do we support VC 6 ++ ? 13:51
Coke which was chromatic's question too, I think - specifically, what are you optimizing there, and who is benefitting?
particle, answer the man's question.
=-)
NotFound If is just the changes from postifx to infix increment, I don't think is bad. It doesn't hurt anyone and can be faster in some compilers.
s/infix/prefix 13:52
Coke NotFound: maintenance cost to eke out a fractional speedup on 10 year old compilers is probably not a win. 13:53
particle msvc 6 is still widely used for folks cross-compiling on windows
NotFound Coke: What's the maintenance cost of having ++i instead of i++?
Coke purl, 2010 - 1998?
particle we're just on the cusp of cross-compiling parrot
purl coke: no idea
Coke 2010 - 1998
purl 12
JimmyZ msvc 6 doesn't suprrot postfix optimization
Coke NotFound: because every time I look at that, I have to say "why is that prefix?"; I am extrapolating that it will have the same effect on others. =-) 13:54
JimmyZ Coke: since parrot was targeting C89
Coke I'm /win 2 13:55
JimmyZ Coke: I think it is necessary for old compilers, and I don't think it hurt any morden compilers
Coke hey, win 2, there you are. =-)
/necessary/ ? 13:56
i++ doesn't work in msvc 6?
NotFound Coke: well, people used to c++ like me usually think "why is that postfix"? ;)
darbelo 'cause ++c sucks as a name?
Coke NotFound: fair enough.
darbelo: [incr tcl] disagrees with you 13:57
NotFound Overloaded postfix can't be optimized to the prefix variant unless your compiler is very very smart.
So yoy use the prefix by default and tends to do right thing. 13:58
Coke even if your c++ compiler is compiling C? =-)
NotFound Coke: when is compiling C, can't be overlodaded ;) 13:59
dukeleto 'ello
Coke eh. ok. I rank this about with some of the overzealous testing we're doing. I won't commit cycles, but knock yourself out. =-) 14:00
particle wait... overloaded postfix... in C?
C89 is not C99
postfix optimization is for OBJECTS in C++, because postfix ++ needs to copy the object 14:01
prefix ++ doesn't
NotFound particle: no, in C++, but is the reason to get used to use prefix by default.
particle but parrot is written in C, not C++ 14:02
Coke particle: yes, but we have C++ people who work on prrot.
JimmyZ I can revert it if someone doesn't like it. but I think it's an optimization for some compilers and for Embedding 14:03
Coke JimmyZ: I imagine chromatic would actually like some documentation that it's an optimization.
NotFound particle: yes, but if we talk about what looks strange, the strangeness is in the eye of the beholder.
Coke parrot has a long history of prematurely optimizing things that turned out not to help so much.
particle benchmarking on a specific compiler, with results in the commit message or a related ticket, is the proper way to put that patch in 14:04
saying "this big ugly patch is possibly faster on a compiler somewhere" is too vague for a syntax like that to take root 14:05
JimmyZ So do I revert it or keep it?
particle benchmark it before and after patch, post results to parrot-dev, and let the hoardes decide 14:06
14:06 zostay joined
particle i don't mind changing the mindset of developers to prefer prefix increment over postfix, if it makes sense 14:06
Coke or we could just let it go, as it can't hurt. =-) 14:07
NotFound Talking about premature optimization, someone took a look at r46198
particle but it will get reverted over time
NotFound ?
Coke NotFound: check out branches/codestring
which does that slightly differently.
NotFound Coke: but we have random crasehs in trunk right now. 14:08
Coke those random crashes predate codestring.
er, chromatic's codestring.
NotFound Coke: some of them might have been fixed by r46197 14:09
Coke in any case, more eyes on codestring branch appreciated. =-) 14:10
NotFound I think pmc_new_temporary need lots of test... or alternatively, kill it. 14:12
Anyway, after those last fixes I'm no longer having crasehs on x86-64 14:16
Checking out branch 14:18
14:23 lucian joined 14:25 hercynium joined
NotFound Coke: no random crashes for a now with the codestring branch, amd64 both with and without --optimize 14:27
Coke danke. 14:28
any idea why it seems to be using more memory? =-)
14:29 bubaflub joined
particle JimmyZ: can you do the benchmarking? 14:30
JimmyZ particle: I don't have old compilers 14:31
particle: but from me, it's 0.01% faster, though it's not exact 14:34
particle: I guess I got wrong benchmarking
14:34 jan joined
JimmyZ is confused, why it get controversy 14:37
Coke I think if you sold it as a "code cleanup" instead of an "optimization", you'd have gotten little (or less) feedback. 14:38
darbelo Big patches with 'optimization' on the commit message get a lot of attention.
JimmyZ then sorry for the wrong message ;)
darbelo Big patches with 'code cleanup' on the commit message get very little attention. 14:39
You're also a new committer, so people pay more attention to your contributions. 14:40
NotFound JimmyZ: chromatic is highly sensitive to the word 'optimization' ;)
Coke see my previous send about historical ``optimizations'' 14:41
JimmyZ is feeling he was doing the wrong things.
NotFound JimmyZ: don't worry too much about that. 14:42
darbelo Not really, it's just a matter of timing. My first patch removing a few hundred lines of code got a lot of attention, now I can rip out whole subsystems without people thinking twice about it.
They've gotten used to me. 14:43
particle actually, the patch isn't that big, now that i look at it again 14:44
it's a micro-optimization, and perhaps premature, but it's harmless.
NotFound Coke: no idea about the memory usage. I suppose that codestring keeps refered somewhere long after used. 14:45
Looks big, but the changes are pretty little.
Coke NotFound: yup, see nothing obvious that would get kept.
particle is there some way for me to see a diff of trunk and branches/codestring online? 14:46
i have a little time to look for scoping problems or other memory-related changes
perhaps i should update my local svn repo for the first time in months 14:47
darbelo particle: remember to realclean before updating. There's been a lot of Makfile hackery going on.
particle thanks 14:48
Coke particle: trac.parrot.org/parrot/log/branches/codestring - click on "view changes" 14:49
it's not vs. trunk, but vs. the branch point. close enough.
(but branch point was just after chromatic's change to CS)
particle ah, yes, trac.parrot, not svn.parrot... thanks
and that's where you see the memory changes, vs the branch point?
14:52 JimmyZ joined 14:54 ash_ joined
JimmyZ good night,all 14:55
Coke night
particle: sorear reports that it tear through memory much faster building rakudo.
I can verify that Codestring's ' 14:56
particle hrmm, well, i can try that and see
Coke emit seems to be generating BUFFERS that are not let go.
see my nopastes from about 8 hours ago for sample code. 14:57
particle ok, bbi5m after i dial into a concall 14:59
NotFound Coke: I've found where the CodeString gets marked: in the context 15:45
Just insert a call to any function before sweep, and buufers gets cleaned.
In the CallContext PMC 15:46
15:48 theory joined
NotFound So looks like the poblem in other cases must also be that the CodeString keeps refered long before after his usage. 15:50
s/before/after
Coke NotFound: good find. can we fix this from inside codestring? 15:57
`/win 2 15:58
NotFound Coke: I don't think so, looks like a hole in PCC
moritz please remember to ticket it
NotFound A workaround for codestring can be to provide a method to release his content.
Coke NotFound: but then someone outside of CS would have to invoke it, yes? 15:59
NotFound Coke: yeah
Coke so, meh.
NotFound++ for finding the leak 16:00
NotFound You can test it just by adding other call to sweep and parrot_debug at the end of your example.
Coke ... that is f'd up. 16:01
(verified, all the buffers go away then.)
NotFound I think the current object is set for the method call and doesn't get cleaned until other method or sub call is done. 16:02
Coke seems like we could clear it as soon as we checked the results. 16:03
(near get_results)
NotFound Mm... but get_results is omitted if no return is expected, isn't it? 16:04
BTW I found it just by inserting abort(); in CodeString mark 16:05
Coke ... which shows you when it got freed? 16:06
``freed''
NotFound The backtrace shows the call chain.
Coke neat trick.
purl pulls a rabbi out of her ass.
Coke shalom, purl.
purl shalom is probably at www.neurotrash.com/original/filmpla...tem_ID=101
NotFound Shows where a poiter to is retained.
Coke I imagine this will be a huge fix. you should totally beat chromatic to it. =-) 16:07
cotto forget shalom 16:09
purl cotto: I forgot shalom
16:12 brrant joined
cotto Coke, is parrot.org running apache? 16:13
Coke cotto: I believe so, eys. 16:15
seen chromatic? 16:24
purl chromatic was last seen on #parrot 2 days, 12 hours, 54 minutes and 40 seconds ago, saying: I fixed that in Rakudo's immutable_strings branch. [Apr 28 03:29:31 2010]
NotFound Uh... I was wrong, in the example parrot_debug isn't a sub, is a macro. 16:38
Coke still, if you do sweep 1 (.parrot_debug) sweep 1 (.parrot_debug), the last debug shows the BUFFERS were collected 16:40
NotFound: hey, you wanna see segfault? =-) 16:42
NotFound I already see a lot X-) 16:45
Coke trac.parrot.org/parrot/ticket/1602 16:46
so I can't check to see if the CURRENT_OBJECT is the issue or not. =-) 16:49
the same problem is occuring in trunk, btw. 16:51
dalek TT #1602 created by coke++: .INTERPINFO_CURRENT_OBJECT causes segfault: 16:52
TT #1602: trac.parrot.org/parrot/ticket/1602
NotFound Coke: nice catch 16:55
17:00 ruoso joined
Coke NotFound: opened 1603 to track the ACTIVE_BUFFERS issue; feel free to add your notes. 17:01
17:04 ash_ joined 17:09 ruoso joined 17:13 davidfetter joined
NotFound Setting object and signature to null in current context during get_results seems to avoid the CodeString get marked, but the buffers keep active. 17:14
Ah, no, I was misreading. 17:15
Looks like the context signature is the problem. Somewhere the current_object is copied to it. 17:17
I mean, the context.... the callee context, maybe. 17:18
17:24 confound_ joined, particle joined
NotFound can't find HEADERIZER HFILE directive in "src/pmc/threadinterpreter.pmc" 17:25
dalek rrot: r46199 | NotFound++ | trunk (2 files):
Don't return NULL in interpinfo_p, TT #1602, Coke++
17:38
cotto_work good morning 17:41
purl For you maybe.
dalek TT #1602 closed by NotFound++: .INTERPINFO_CURRENT_OBJECT causes segfault:
TT #1602: trac.parrot.org/parrot/ticket/1602
NotFound I see now. The context signature is used to pass the results. But I don't know why the current object is stored in it. 17:43
NotFound looking pdd03 17:44
17:45 joeri joined
Coke NotFound: I don't think it's the current object - the PMCs are around, the strings area. 17:47
er, BUFFERs.
could it be that the containers are getting recycled, but it's child strings are not, until the second sweep?
NotFound Coke: it was the current object during the method call.
Coke NotFound: I'm just looking at my interpinfo output - the PMC's aren't stacking up. 17:48
NotFound Coke: is hidden in the signature object of the current context, until some call overwrites it. 17:49
Coke freaky.
NotFound Now looking if the fix breaks some unrelated part. 17:50
dukeleto 'ello 18:09
Coke NotFound: you got it? 18:13
bubaflub afternoon dukeleto 18:14
Coke cotto: enjoy the present in your email. 18:15
NotFound Coke: I think I have a fix right now for the problem a hand, but persists the problem of leaving arguments of last call in the context, and some tests seem to depend on that feature. That may need further discussion.
nopaste "NotFound" at 192.168.1.3 pasted "Fix for TT #1603" (14 lines) at nopaste.snit.ch/20417 18:16
NotFound Coke: here is. 18:17
cotto_work woohoo 18:20
NotFound I still don't understand well enough PCC details, allison must take some look.
Coke NotFound: no effect on the sample code.
NotFound Coke: Uh? For me ACTIVE_BUFFERS: 218 18:21
Coke hurm. did my rebuild not take?
double checking.
ACTIVE_BUFFERS.............: 4151 18:22
(it's the second print of ACTIVE_BUFFERS that's the bad one.)
18:22 kjeldahl joined
NotFound Let me rebuild, maybe there is some remaining of the previous attempts. 18:22
Stupid of me... was using a modified version of the example with two sweeps. 18:29
Let me found again what was the appropiate change. 18:30
Coke going to yapc? 18:38
purl See : going to yapc::na or yapc::whatever or cwest, uri, DrForr, dha, ology
Coke going to yapc::na?
purl See "going to YAPC::NA $year"
Coke going to yapc::na 12010?
going to yapc::na 2010?
purl going to yapc::na 2010 is jhannah, rbuels, cfedde or apeiron or dha or nacmac or dhoss or mst or chargrill or me or kyriel or a. or triddle or DrForr
Coke going to yapc::na 2010 is also coke or packy
purl okay, Coke.
rbuels purl: going to yapc::na 2010 is also dukeleto
purl okay, rbuels.
Coke going to yapc::na 2010 is also kolibrie 19:00
purl okay, Coke.
NotFound Even if I manage to avoid the codestring being marked, the buffers are not freed until the second sweep. 19:07
Coke I wonder if the container is getting zorched, but its elements are not. 19:08
NotFound And part of the problem is the emit method returning SELF, so it goes into the positional returns.
Coke is our gc too lazy?
NotFound: I'm not sure that behavior is actually required anywhere.
going to yapc::na 2010 is also colomon 19:09
purl okay, Coke.
NotFound I think this problem wants an architect's eye.
The args and the return must be freed at some point, but I don't know what point. 19:10
And the second sweep frees them even without any fix, so they get freed at some other point %-) 19:12
Coke msg allison & chromatic - if you could check out TT #1603, that'd be spiffy. 19:13
purl Message for allison stored.
Coke msg chromatic & allison - if you could check out TT #1603, that'd be spiffy.
purl Message for chromatic stored.
allison Coke: ok 19:18
Coke allison: sneaky!
trying to speed up codestring in a branch, but even in trunk, it seems to be hanging on to things longer than needed. 19:19
NotFound I've added some comments right now. 19:21
allison my first guess is that it's not sweeping because it doesn't need to reclaim that memory yet for something else, but it could be more wrong than that
NotFound The interesting part is that the codestring is marked in the first sweep, but not in the second. 19:22
Coke er, 2nd and 3rd? 19:24
(the first one was a baseline.)
NotFound Ah, yes.
Coke allison: (not sweeping) - but we're forcing the sweep in the example. 19:28
allison Coke: aye, I'm not sure which gc core it's using, but one optimization technique for gc is to skip even "requested" sweeps 19:35
Coke: seems unlikely here, since the 3rd is catching i
Coke allison: that doesn't seem very optimal. =-) 19:36
allison Coke: it is if sweeping is expensive :) 19:37
NotFound Looks to me that on the contrary, usually parrot is doing too much sweeps. 19:40
allison NotFound: aye, highly likely 19:41
NotFound: I wish we had a better way of tracing exactly what's happening here 19:42
cotto_work Tell khairul to get to work. ;)
It might be helpful to put up a wishlist on the wiki. 19:43
NotFound allison: in my test I found that a pointer or several to the codestring are kept in the context, inside the signatures. There is also a positional return, becaause the 'emit' method return self. 19:44
And I fail to locate a point where safely clear the positional returns.
allison NotFound: returns only exist during the life of the call 19:46
NotFound: that is, they live in the call context, so as soon as that's gone, they disappear 19:47
NotFound: but they won't be swept while the call context is still active
NotFound allison: not if a pointer to the callee context is retained somewhere on the caller. 19:48
allison NotFound: aye
NotFound: so, try this...
NotFound: put a call to some other subroutine before that 2nd sweep 19:49
NotFound allison: that was the first thing I do.
allison NotFound: the call context is stored in the caller
NotFound: and?
NotFound The buffers were disposed. But let me try again, I've do a lot of experiments and maybe I'm confusing myself. 19:50
19:50 hicx174 joined
NotFound No, the buffers aren't disposed, but the codestring mark vtable is not hit. 19:54
Without that call, the vtable mark is hit on mark_positionals(INTERP, SELF); at CallContext mark. 20:07
Which itself gets called as current_sig on the interpreter current context. 20:08
20:14 jsut_ joined
dalek kudo: d12eed6 | moritz++ | t/spectest.data:
run S06-operator-overloading/sub.t
20:16
rrot: r46200 | fperrad++ | trunk (4 files):
[osutils] add catfile() & splitpath()
20:22
20:33 eternaleye joined
Coke allison: when you do a sweep, is there a guarantee that all the memory that can be freed will be, or is the promise merely "ok, I'll see what I can do." 20:38
s/freed/put in the free pool/
20:54 eternaleye joined
dalek rrot: r46201 | fperrad++ | trunk (5 files):
rename Archive/TAR to Archive/Tar
20:55
21:01 eternaleye_ joined 21:03 rurban_ joined
sorear Coke: Where is this "feedback"? Is there a secret parrot-commits-replies@ list that's not mentioned on mailman? 21:15
moritz huh? people usually reply to commit messages on parrot-dev 21:16
sorear huh. I missed it. 21:21
moritz because it's secret :-) 21:22
21:25 fperrad joined
dalek tracwiki: v4 | cotto++ | UsingGitAndSvnInTrac 21:43
tracwiki: expand and organize
tracwiki: trac.parrot.org/parrot/wiki/UsingGi...ction=diff
cotto_work I'd appreciate feedback on that plan (as much as is planned, at least). 21:44
bacek ~~ 21:48
cotto, good plan
sorear as an outsider, nothing leaps out at me as revoltig 21:51
cotto_work high praise 21:53
allison: ping 22:04
22:04 donaldh joined
allison Coke: no guarantees in a sweep, the only guarantee is to make memory available when it's needed. The GC can play fast and loose otherwise. 22:04
Coke: that is, garbage will be cleaned up eventually, but if the space isn't needed, it might not be cleaned up until program termination 22:05
cotto: pong
cotto_work allison: if I can make Trac work with git while still preserving svn access, what are your thoughts on moving forward with the transition to git? 22:07
allison I question it!
donaldh irc://irc.freenode.net/#perl6
allison I still hate it, and every time someone tries to demo how great git is, it breaks.
donaldh sorry 22:08
allison It ain't robust, stable, reliable, easy for newbies...
I'm really, really, trying to be open minded about it, and give the devs who like git space to work in their own flow. 22:09
sorear allison: btw I managed to fix the destruction segfaults in blizkost
allison But, moving the whole project to it is... big
cotto_work I feel the same way about svn right now.
allison and, as far as I can tell, the move is entirely unnecessary 22:10
so, work in git
just use svn as the store
cotto_work you mean git-svn?
allison git-svn gives you a connection point, but from there you can just use the standard git workflow 22:11
I'm totally fine with people using git branches instead of svn branches
(instead of trying to manage svn branches through git, which is nutty) 22:12
cotto_work and applying them as a single big diff?
sorear every branch merge in svn is a single big diff 22:13
allison sure, why not
sorear svn merge is just a thin layer over "svn diff" and "patch"
with a smidge of logic to stop you from applying the same rev's diff twice
allison if we ever rolled it back, we'd want to roll it back as a unit
sorear: yup, that's one of the things I like about svn
it's clean 22:14
allison hears minds reeling in the background 22:15
cotto_work yes, you do
Coke ... clean is not a word I would use to describe svn's branching and merging. =-)
allison: have you seen github's "use this git repo via svn" interface? 22:16
it's like svn-git.
(as opposed to git-svn) 22:17
bacek (merging with git) You can rollout git merge as single unit. Just always merge with --no-ff. 22:20
22:20 chromatic joined
cotto_work just in time 22:21
chromatic -1 to svn, solely for its difficulty of branching and merging
allison cotto: I'm not quite clear on why the devs who like git are still bothering with svn branches
cotto: can you explain?
or chromatic or Coke 22:22
bacek because it's only one official way to share work
cotto_work yeah
allison no, we changed that
we officially blessed git branches
cotto_work de jure, yes. De facto, meh
allison cotto: explain? 22:23
as in, why isn't it being used?
(this is important, as git branches were the "toe in the water" for testing git)
Coke allison - I'm using svn branches because I wish to share my work with others.
allison: ... what? 22:24
purl Yada yada yada hasn't been implemented yet! (unless you run bleadperl)
chromatic Out of repository is out of mind.
cotto_work It might just be a bootstrapping issue (nobody's using them because nobody's using them), but ... what he said.
allison but, that's how git branches work
chromatic No it isn't.
purl oh yes it is!
allison everybody has their own, and share patches back and forth
Coke I love you, purl.
purl Coke: what?
allison that's what it was designed for
bacek no
it is not
chromatic A profile of building Rakudo's core.pm with trunk wgz.org/chromatic/tmp/rakudo_gen_core.cg.bz2 22:25
allison "Distributed Version Control"
distributed
purl distributed is definitely the way to go, it's what sets IRC apart from other chat things
Coke so, chromatic, you clobbered my working changes with your codestring updates. I like mine better. Any feedback?
bacek not "Local Patches Sharing Thingy"
Coke no, purl, distributed is <reply>
purl okay, Coke.
chromatic Coke, you're trading long-lived GCables for avoiding short-lived string header and buffer allocations. 22:26
sorear chromatic: 403
bacek Coke, I told ya! Use RSA local to CodeString.emit! 22:27
chromatic All of our processes and procedures and habits (smolder, sharing code, collaborating) rely on a centralized repository.
Take away the centralized repository without changing all of those dependents and they break.
perms fixed on the file, by the way
allison chromatic: I agree on smolder 22:29
chromatic: sharing code and collaborating can go either way
chromatic Certainly they can change, but I'm only describing how things work now.
allison at the moment, I certainly find it easier to pull a clean diff of a branch in svn than git
for code review
chromatic That's because you don't know how to use git. 22:30
bacek git checkout <branch>; git diff master
allison no, I got a git expert to pull it for me, remember?
and got some 12k lines of diff
chromatic I'm not a git expert by any means. I learned how to use it is all.
22:30 davidfetter joined
allison if I saw a compelling advantage to git, I'd be there in a heartbeat 22:31
chromatic Branches and merges work.
allison but at the moment, it looks to me like some strange cult drinking the same cool aid and not making any sense to the rest of the world
(sorry, just trying to find an apt metaphor) 22:32
chromatic Is there anyone in this channel who's done both successfully in both SVN and Git who thinks that SVN is anything other than painful?
allison I get that a handful of people love git
I understand, I accept
well
I don't understand *why*
but I understand that it is important to them 22:33
you
sorear probably these people don't have commit bits
allison whatever
purl whatever is easiest to type
bacek Because git is fast. And it just work
allison git is slow
I mean, it's doing a lot more work with a git pull than an svn update is doing
so, it's not a fair comparison 22:34
chromatic I don't even know how to respond to that.
allison I'm just saying that it's fair that it's slower 22:35
not a dis
chromatic Not true, either.
But even if it were true, it's irrelevant to my point, and likely irrelevent to bacek's point. 22:36
Right now, if you want to merge SVN branches in Parrot with SVN, you have to resolve merge conflicts of SVN metadata in unrelated files for reasons no one has been able to discern.
allison well, he offered speed as an advantage
chromatic Speed *is* an advantage.
allison not really 22:37
chromatic You don't know how to use Git. How can you say this?
allison I don't understand why people are having so much trouble with svn branches
mine always merge cleanly
chromatic None of the rest of us can get them to merge cleanly.
allison maybe I have some deep mystical svn foo, but somehow I doubt it
it's just too dead simple 22:38
bacek Just because sometime you have to recreate new branch.
chromatic Maybe because none of the rest of us squash our branches into patches, create empty new branches from trunk, then apply and massage the patches manually.
cotto_work I'm happy that they work for you, but I've been doing absolutely nothing special and had no end of trouble witht them.
allison chromatic: the only time I've had to do that was recovering someone else's mangled branch 22:39
chromatic I thought you recommended that approach in general.
allison will you at least look at Mercurial or Bazaar?
they're so much nicer than git
chromatic I've used hg.
Meh. 22:40
allison elaborate?
chromatic It's slower than git, and it didn't do anything substantially better than git for me to want to switch to it.
allison what I'd really like, is to move to bazaar running on parrot
really, really 22:41
bacek what for???
purl for fun.
allison eat our own dogfood 22:42
have a real practical project on parrot, that we're motivated to support
bacek It's not _our_ dogfood.
allison it would be if it was running on parrot
bacek Oookey.
Let's port Ruby and migrate to redmine. 22:43
chromatic If we ported Bourne shell, we could migrate to tla.
bacek Then we will have " real practical project on parrot, that we're motivated to support"
cotto_work I see charm in dogfooding but that sounds a lot like making a technical decision for a non-technical reason.
chromatic Does Trac have bzr plugins, out of curiosity?
cotto_work I think I saw some. 22:44
allison that's not the reason for the decision, it just a by-the-way
bacek it should have
cotto_work I didn't bother testing them.
chromatic Any chance the bzr plugins have the support or maturity of the git plugins?
cotto_work possibly. The git plugin is labeled as alpha.
chromatic If migrating to a different repo means migrating Trac to something else, I'd vote for sticking with SVN and telling anyone interested in working on a branch to use git-svn instead. 22:46
allison the main reason for the decision is it's just too early
git may be great in a year or two
(it has potential)
bacek Look at those numbers closely: Bazaar is taking around a second to make a commit on a tree with 38k files and just over 3 seconds to log a branch with 20k revisions! Git is faster but Bazaar is clearly fast enough for 99.9% of users. If Bazaar 2.x is genuinely too slow for you on your project, please tell us where and we’ll do what we can to fix the problem for you.
Ultimately, raw speed matters but the real challenge is overall user productivity. As more and more users begin using GUI applications instead of the command line tools, the time required to achieve tasks will be more dependent on how well the UI is designed, an area where Bazaar arguably excels.
cotto_work It's not a huge change for Trac afaict.
Coke allison: and svn might be usable in another decade.
bacek Mua-ha-ha *cough*, GUI, *cough* 22:47
sorear I wonder if allison used github
bacek Linux, Perl5, Rakudo, 90% of languages on parrot uses Git.
allison sorear: yes
bacek Git is definitively *immature* for all this projects. 22:48
22:48 Whiteknight joined
allison what I would like to see is more developer workflow in git 22:48
cotto_work hio Whiteknight.
Whiteknight hello cotto_work
chromatic What do you mean by "developer workflow"?
cotto_work like the ones on the wiki?
allison chromatic: basically, git branches rather than svn branches
chromatic Goodbye testers! 22:49
allison aside from the final commit back to the shared repository, work as if this were a git-based project
chromatic: I don't understand that
chromatic: if testers aren't willing to use git now, why would they be any more willing if we switched?
chromatic It's not a matter of willingness. It's discoverability. 22:50
allison we have to send around the name of the branch
chromatic and the location
purl You are in a maze of twisty passages, all alike.
allison a link isn't really more trouble
chromatic and its existence
And I know how this song ends.
22:51 plobsing joined
allison I'm dubious that we get people randomly trolling the branches/ directory to test things 22:51
chromatic "Gee, it looks like you git-cultists are spending a lot of time on infrastructure. That can't be as convenient as bzr! Let's switch to bzr!"
sorear github is constantly overloaded and has miserable uptime. don't use it in VCS speed comparisons (ideally, a git-daemon would be set up on the same server as the svn-daemon for the duration of the test)
allison I'm a skeptic, what can I say
I like cold, hard proof
cotto_work I'd argue that testing branches will be more common if we swithc to git. 22:52
allison and so far, I don't see proof of git's superiority
bacek www.parrot.org/content/straw-poll-w...parrot-use
allison a little better in some things, a little worse in others
chromatic I can imagine, if you still think that SVN is faster than Git.
allison it just doesn't seem worth the pain of a transition
bacek Erm... What other reasons do we need?
cotto_work it's a longer process to check out a svn branch thana git branch
allison cotto: that I believe
cotto_work svn is causing enough pain right now that it's worth the transition 22:53
allison (copying individual file)
what pain?
purl hmmm... pain is spelt "pain"
allison I feel no pain
bacek usually works on 3-4 branches
allison and maybe that's the problem
chromatic I usually work on a handful of branches.
bacek And switch between them in seconds.
allison (I mean, maybe that's the reason for my skepticism)
chromatic Less than seconds.
allison bacek: I do too, and do a build on one while I'm working on the other 22:54
bacek In same checkout???
allison bacek: I don't *want* them in the same directory
bacek heh...
nice...
No more questions.
One size fit all solution ftw.
allison that'd be nice 22:55
chromatic He's being sarcastic.
allison maybe our next project will be a revision control system
allison groans at the thought
chromatic I'll say this. I'm never going to merge another branch with SVN again. 22:57
allison so, do it with git
chromatic I'm going to warn other committers against merging branches with SVN.
allison I'd warn them against using whatever merging strategy it is that's causing the problem 22:58
chromatic svn merge
purl svn merge is probably really losing :/
allison svn merge just makes a diff
chromatic ... and conflicts on metadata in the book directories, for example. 22:59
allison I've seen those commits running by and wondered about it
it makes no sense
chromatic That's what I'm saying.
cotto_work and fails to account for files added to the parent since the last merge
chromatic Oh yeah, I forgot about that.
allison but presumably, people review their merges before they commit? 23:00
and can revert unintended changes?
I would expect them to do that with git too
chromatic Don't forget renamed files, those are awful! 23:01
allison those I agree on
I didn't ever see the demo I asked for on git with that feature
sorear yeah and git has no rename handling at all 23:02
chromatic Because git doesn't need rename handling.
cotto_work I don't think to try to filter through the huge log of changes for something that svn should be expected to do.
sorear git is about points, it doesn't handle edges at all
allison cotto: branch review isn't just about that, it's about code quality
someone should be reading through a diff of every branch before it goes into trunk 23:03
someone other than the main developer of the branch
chromatic That's what commit mail is for. 23:04
... except that's another piece of infrastructure we lose with git-only branches.
sorear Is chromatic arguing for or against git?
allison except for the merge back into trunk
sorear: he's arguing against a partial move 23:05
sorear: against git process on top of svn
I suspect git has some way of doing commit mail
chromatic against "You guys should try doing git-only branches, and we'll see how that process works, and then we'll stick with SVN or move to bzr."
cotto_work Getting the message only after the branch is merged negates some of the benefits of working in a branch. 23:06
allison git branches can be set up to email the parrot-commits list 23:07
(if they can't, then we have a deeper problem)
cotto_work ok, but that's more impedance matching between git and our existing svn infrastructure 23:09
chromatic Git branches look like more work in that scenario.
allison looks to me like Github provides default post-commit hooks including email 23:10
chromatic Okay. So for a committer to demonstrate that working with Git is easier, faster, simpler, more correct than working with SVN, you must check out Parrot with git-svn, sign up on Github, fork an existing GH repo of Parrot, create your own branch, edit that branch to provide commit messages to parrot-commits, then link the two upstreams in your checkout. 23:12
I notice two things. 23:13
First, that's a bit of ceremony.
allison that's pretty much git in a nutshell, as far as I can tell
chromatic Second, Git makes all of that possible -- reasonably easy, actually.
23:14 jan joined
allison I'm with sorear on this one, I can't tell what position you're arguing for anymore 23:14
chromatic You can't do anything like that with SVN. 23:15
allison why would you want to?
Coke ... allison, I call bullshit on "not worth the pain of transition". if we cared about that, we'd still be back at perl.org.
sorear there are really two questions here
1. is git a better tool for us than svn? 23:16
allison Coke: that pain is exactly why we said there would be no infrastructure changes for at least two years
chromatic Why would I want to go through that ceremony? Because you're arguing that it's the only way to demonstrate that git is worthwhile. So let's play that game.
sorear 2. is decentral web a better workflow for us than single hub?
23:16 atrodo joined
allison sorear: that's a good clear way of putting it 23:16
I hear a lot of debate on 1, but so far no one seems to be pitching in for 2 23:17
Coke s/we/you/ =-)
allison Coke: there was general agreement at the time, probably because the memory was still fresh
(sometimes being the only one with a photograpic memory is frustrating) 23:18
sorear allison: I suspect that's because nobody supports 2. I've never seen a svn->git transition result in a web process
chromatic Hey, that sounds like something I wrote quite a while earlier this afternoon. 23:19
allison sorear: it seems strange to me, since that's the one thing about git that I really consider to be an advantage
sorear: (an advantage shared by other DVCS) 23:20
cotto_work The it doesn't need to be argued.
*then
Coke let me rephrase this debate: is there anyone other than allison who doesn't want to move to git?
sorear the web processes I see in the wild are on tiny projects with three contributors, where the logistics aren't an issue, and on huge critical projects (Linux itself) where you need five signoffs on everything and a web is a good way to arrange that
chromatic Why does that surprise you? That's not a painful thing for committers, and this is a discussion for committers.
allison Coke: there's a lot of people who are concerned about the change
Coke allison: All I hear is you.
chromatic Coke, kid51 doesn't want to move to Git either.
allison but, as far as I can tell they're willing to put up with whatever the "higher ups" put on them 23:21
Coke ok. Thank you. I feel better about having the discussion knowing that it is not just a single developer who is concerned.
allison I'm just vocal
I'm generally inclined toward defending those who don't defend themselves 23:22
chromatic I don't want to speak for Jim, but I get the sense it's not a philosophical disagreement with Git or a distrust of the tool more than it is discomfort and unfamiliarity with it.
allison yes, I think you're right
Coke allison: you could be projecting.
certainly there's a lot of developers who don't want to argue with you about this because you're the architect.
allison chromatic: probably even true for most people who are averse to the idea 23:23
but remember that we're dealing with volunteers here, and discomfort drives people away
Coke allison: Yes. That's a good thing for all of us to remember.
chromatic So does a repository which says "Your patches aren't first-class citizens."
allison I will say this, I may be the only person who has really used git, really understands it, and still hates it 23:24
chromatic Do you really understand it?
bacek 2/3 of our developers _want_ to switch to git.
allison Coke: I haven't seen much hesitation in arguing ;)
Coke speaking of discomfort - see you guys later. 23:25
23:25 Coke left
bacek I use git at $work for last two years. 23:25
allison you notice I haven't put my foot down and said never?
I'm still open to the idea
bacek Our front-end devs use Git without any problems.
chromatic We're talking about replacing a system which many developers acknowledge have problems which have bitten them and which many developers actively work around. 23:26
s/have/has/
allison yes, but replacing it with a system that's still biting people
and has the potential to do more damage
I wish I could see it 23:27
chromatic Are you volunteering to merge svn branches now?
bacek Can you prove that "git has the potential to do more damage"???
allison bacek: it allows you to edit prior commits
bacek yes, so what?
chromatic I use that all the time. It's a useful feature.
allison which means a mistake can trash the entire repository 23:28
bacek Until it's pushed you can do whatever you want.
allison all the way back in time
bacek no
it can trash _your_ copy of repo
chromatic and only if you let it
allison and push it up
chromatic no
bacek and git-deamon will reject it
sorear every copy of the repo contains the entire history, and a cryptographic hash of the entire history 23:29
not only will other contributors have a backup, but they will know *immediately* that something is wrong
because the non- --force'd push will fail
allison so, as long as you don't run the *really* bad version of the command, you're safe? 23:30
sorear plays with svnadmin
allison yah, I can do it, and so can 3 other admins on the svn server 23:31
chromatic svn rm *; svn ci -m 'HAHAHAHA'
allison are there different permission levels for git 23:32
sorear that doesn't affect history
bacek are there different permission levels for svn?
sorear, ssh sv.parrot.org; rm -rf /var/lib/svn; 23:33
chromatic Sure, but you can disable forced fastforwards too.
sorear I think allison is talking about git reset --hard e927c24 # that's r1 in our git-svn ; git push --force --mirror
allison I'll tell you one thing that I *do* like about moving to git
hosting at github instead of Coke and I adminning the svn box 23:34
chromatic You can use a server-side receive hook to enable/disable features for certain users.
allison (there are others with access, but we do the admin work)
cotto_work that's a legitimate option. We can also keep a clone on parrot.org for trac integration. 23:35
bacek wander why my work git central repo doesn't require any administration in last 2 years. With about 20 different projects in it.
allison (of course, that'd be the same on hg too)
sorear I'd like to argue against github
It has an abysmal uptime record
allison bacek: you don't do any admin on that server? 23:36
cotto_work That's not as important for a dvcs
bacek no one do.
allison bacek: never think about updime, upgrades, etc
uptime
cotto_work It'll be a minor annoyance. that's all.
bacek Apart from adding more repos.
allison installing the latest version of git?
cotto_work (not saying anything for/against github)
allison making sure all the repos are compatible with the latest version?
bacek allison, it's still running 1.5.something.
And I'm running 1.6.something 23:37
And they all compatible.
Welcome to modern world of non-braking changes.
allison bacek: probably time for an upgrade
bacek It's not bloody svn when update on central server require syncronous update of clients.
allison, no. We don't need it.
chromatic sidebar! 23:38
purl i heard sidebar was too big.
bacek It's just central storage.
chromatic allison, if we disabled the possibility of rewriting history on the central Git server, would you feel more comfortable?
bacek Clients can be updated. "Server" can stay
allison chromatic: yes
chromatic I believe that's a trivial configuration option.
allison (which is not to say "entirely comfortable", but a significant improvement) 23:39
chromatic I also believe it even disables the --force behavior.
allison what would make me a whole lot more comfortable is if you could get ordinary testers/etc using git, and showing no signs of distress 23:40
I can learn anything, I've got an Einstein-level IQ
but, I'm very conscious of the fact that I'm strange
cotto_work That's a relatively simple issue of giving testers a couple of commands to run. 23:41
allison there's a difference between being told the commands and using the system on a regular basis
a *huge* difference
this is why I keep pushing for the trial run 23:42
chromatic The appreciable difference between working with branches in SVN versus working with branches in Git is... well, basically the presence of the Git index.
allison I want to know our devs can make the transition painlessly
and I don't mean the early adopter types
(I understand you all eat, drink, and breathe bleeding edge) 23:43
Whiteknight many of the new contributors we get, in my experience, are newbies to SVN as well
chromatic Hardly! I didn't want Rakudo to move to Git.
allison Whiteknight: aye, but svn seems easier to pick up than git 23:44
sorear My biggest suspicion is that the biggest advantage of Git (eliminating the barrier to entry of new contributors) is rendered moot by the PCA
allison git has so many exceptions to the rule
Whiteknight and svn has so many known problems that need to be avoided
allison Whiteknight: but it's usually only advanced developers that run into them
Whiteknight: by which point, they can handle a little variation 23:45
cotto_work doing advanced things like merging branches?
chromatic renaming files
checking out branches
Whiteknight I've been bitten by file-renaming commits without branches before
allison sorear: the idea of DVCS is that everyone works on their own local repo, so it's no disadvantage not to have commit access to the central repo
Whiteknight I will no longer make a commit where I rename files and do anything else 23:46
chromatic Plain vanilla merges while renaming files!
allison sorear: our disadvantage there is not using distributed techniques
branch merging on git is *not* for the newbie
bacek allison, it is.
cotto_work Will a newbie be doing something that necessitates a branch then?
allison there are far more things that can go wrong, and in far worse ways 23:47
bacek When you do "git pull" you merge branches.
allison a recursive revert is sufficient to handle any mis-merge in svn
chromatic Ha.
allison with git, I've had to blow away my entire local copy
bacek never blowed away local git repo. 23:48
chromatic Ditto.
allison it can't even handle an update if I have local changes
just barfs
chromatic Shenanigans.
purl Come on in to Shenanigans, Indiana's Premier "Couples Only" Club!
bacek git stash; git pull; git stash apply;
_done_ 23:49
allison and that's more friendly to newbies than 'svn update'?
chromatic Though why you'd update with local uncommitted changes is odd.
allison so I can test them on the latest version before committing
chromatic That's what local branches are for. 23:50
allison (really, the thought of committing something before testing it hurts my stomachh)
bacek That's why you don't use git.
In git you always commit changes.
allison so you can commit a pile of stuff that might not actually work?
sorear the git-standard way to test is between 'commit' and 'push'
Whiteknight you're only "committing" it to where it is already on your machine 23:51
bacek You have power to review/revert this commit before push.
sorear if the tests fail, commit --amend
allison hears fingernails on a chalkboard
chromatic Hang on, you're all confusing the issue.
Git doesn't force you to do that, allison.
allison I welcome all beliefs
sorear (this bugs me too)
allison it's fine
chromatic You can still use your own workflow.
I don't commit before testing, myself.
But what everyone is (implicitly) saying is that you don't *push* to a remote repo before testing. 23:52
allison before pulling and testing, hopefully
chromatic Sure.
If you hack, hack, hack then test and commit (or commit and test), you end up with some local commits you want to push. 23:53
Then you pull.
That implicitly rebases your changes to the remote HEAD.
Then you can test.
If you're happy, you can push.
bacek (rebase) it will not do it implicitely.
chromatic I know, I'm sort of lying to explain things. 23:54
bacek :) 23:55
chromatic If you're in the SVN worldview, there's little effective difference. If you know how Git stores commits and files, you know why I'm lying.
allison see, it's when really smart people like you all get into debates about things like how to do a simple commit that I get worried
chromatic No one is saying "Push your commits before testing."
allison I have a chess-player brain, and I'm always thinking 7 steps ahead 23:56
one possibility is that we make the transition, it all goes smoothly, no trouble
everyone keeps on developing without a hitch
another possibility is that we lose 6 months to a year trying to work out the kinks in the infrastructure (like we did last time), development comes to a standstill, and the wonderful influx of new developers we're getting now drops off to a trickle, then a drip 23:58
another possibility is just low-grade annoyance
chromatic We already have the latter.
allison no outright revolt, but sullen disgust, motivating early departures from the project 23:59
chromatic: I don't see it, commits are high, branches are progressing and being merged