Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), update tutorial (talk to tcurtis)
Set by moderator on 21 July 2010.
cotto_work Coke, it looks like the problem that causes profiling partcl to report TclConst;class_init as being in tcllist.pir occurs because the PackFile debug segment is wrong. 00:17
in my tcllib.pbc, TclConst::class_init lives at offset 407 to 417, which the debug segment reports as being part of tcllist.pir 00:18
cotto_work would really like a humane trac login procudure 00:26
00:28 ruoso joined 00:30 bubaflub joined 00:33 p6eval joined 00:50 jsut_ joined
cotto ~~ 00:59
01:18 rurban_ joined 01:31 snarkyboojum joined 01:39 mattp joined 01:56 ruoso joined
bubaflub dukeleto: great success! Configure.pl is somewhat running out of directory... now to fix each individual configure step 02:09
cotto bubaflub++ 02:13
cotto hands bubaflub the yak shaver
bubaflub hoo boy i'll need it
every step we have assumes that source directory == build directory 02:14
cotto you've got your work cut out for you, but at least it's relatively straightforward 02:16
where's your code live? 02:17
bubaflub ah, it's all local right now 02:20
i can push to a remote github if you'd like to peruse some of the diffs
well, actually, my parrot+rtems makefile stuff is already on github
the patches to make Configure.pl out of directory build aren't pushed anywhere yet
cotto just curious. My brain's falling asleep and I've got a bunch of khairul's code to review still. 02:26
bubaflub ok, tomorrow i have a review with dukeleto and my RTEMS mentor so it'll be up before then. 02:27
02:53 simcop2387 joined
dukeleto bubaflub: yes, push that code to github so I can take a look 02:56
bubaflub++ # good work
bubaflub dukeleto: thanks. almost all of the configure step tests are working now... i'll throw my diffs up on a gist for you to look at. i'm sure a lot of these changes can be refactored / made beautiful 02:57
dukeleto bubaflub: better if they are in your repo for your gsoc code 03:09
bubaflub dukeleto: roger that. i'm working out one last Configure.pl module (auto::revision) and then i'll throw it in there
03:12 khairul joined
dalek rrot: r48181 | khairul++ | branches/gsoc_instrument (6 files):
Added test for InstrumentClass.pmc
03:14
khairul cotto: ping
cotto khairul, pong 03:15
bubaflub dukeleto: i just realized that the dates listed for my file modifications on my GitHub project are wrong. I suspend my VM and don't update my clock so that system clock is more than a month behind. 03:22
dukeleto: anywho, the diff so far is uploaded - github.com/bubaflub/gsoc-rtems-parr...build.diff
03:36 kraai joined 03:37 kraai left 03:38 LoganLK joined
bubaflub dukeleto: last commit of the night. i removed hardcoded directory slashes and used File::Spec instead. 03:56
dukeleto: i'll catch ya tomorrow, have a good night.
03:58 darbelo left 04:14 s1n left
dalek tracwiki: v8 | cotto++ | KhairulGSOC2010Schedule 04:19
tracwiki: trac.parrot.org/parrot/wiki/Khairul...ction=diff
04:26 NOTevil joined 05:11 plobsing joined 05:18 davidfetter joined
cxreg i think the makefile patch last night introduced some weird circular behavior 05:31
and i have no idea how to fix it 05:32
cotto cxreg, what patch? 05:36
cxreg r48180 05:41
06:07 uniejo joined
cotto khairul, it looks like you need to add t/dynpmc/instrumentobject.t to svn 06:20
and regenerate MANIFEST 06:21
cotto looks at r48180 06:23
cxreg, are you sure that commit is correct? It's overwriting the same file twice. 06:28
cxreg i'm pretty sure it's wrong
but if you mean the two executions of that same program, look again 06:29
nopaste "cotto" at 192.168.1.3 pasted "better?" (13 lines) at nopaste.snit.ch/22324
cxreg ?? 06:30
no, that doesnt exist
the file on the right-most is input, not output 06:31
cotto just a guess
cxreg the point is that there's one file (src/nci/extra_thunks.nci) which needs to produce 2 different .c files 06:32
however, the place in the makefile where it's doing so causes weird dependency cycles due to mtime
cotto so far so good
cxreg something earlier in the chain needs to know about this generated file before it's generated
so when you run make twice in a row after touching the input file, it does 2 different things 06:33
this wasnt an issue before because the file was committed to svn, not generated 06:34
but the effect is that it was outdated
now, it's just a broken dep :(
06:35 NineCross joined
cxreg if i make a "src/nci/extra_thunks.c : src/nci/extra_thunks.nci" rule, it complains about "make: Circular src/nci/extra_thunks.o <- src/nci/extra_thunks.c dependency dropped." 06:36
but i can't actually find the circular dep in the rules 06:37
sigh.
cotto it might be a sufflx rule
cxreg yeah, maybe
purl rumour has it yeah, maybe is what i need for optional positionals
06:39 preflex joined
cotto msg khairul it looks like you need to add t/dynpmc/instrumentobject.t to svn and regenerate MANIFEST 06:40
purl Message for khairul stored.
06:43 baest joined
khairul cotto: sorry bout that. done. 06:44
dalek rrot: r48182 | khairul++ | branches/gsoc_instrument/t/dynpmc/instrumentobject.t:
Added test for InstrumentObject.pmc
06:48
06:49 fperrad joined 06:50 he_ joined
cotto wheee 06:51
cotto wonders if Lorito will end up having something like sbrk on top of an internal allocator for memory management. 07:00
s/on top of/layered under/ 07:01
so many wheels, all being reinvented 07:02
07:03 jsut joined
moritz stacked wheels! 07:03
dalek rrot: r48183 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrumentobject.pmc:
Commented out currently non-working code.
07:04
rrot: r48184 | cotto++ | branches/gsoc_instrument/MANIFEST:
manifix
sorear these days the cool way to allocate memory is with "get N contiguous pages" type syscalls 07:05
VirtualAlloc and mmap(MAP_ANON)
(yes, modern unix has mmap underneath malloc.) 07:06
cotto What I'm thinking about is how Lorito code will see memory. 07:07
and if instructions and data will live in the same region, thereby opening us to various creative optimizations and attacks 07:08
With a decent concept of main memory, register spilling (and 4-byte opcodes) are possible. 07:10
sorear at least one modern CPU exhibits extremely pathological cache behavior if writable data and instructions are kept on the same page 07:11
if that's what you meant
cotto asking me what I meant makes the assumption that I meant something, which at this point is a questionable assumption. I'll sleep on it and bring it up at #ps
night 07:12
07:19 snarkyboojum joined
dalek tracwiki: v12 | cotto++ | LoritoDesignQuestions 07:22
tracwiki: reorder questions a little, add one about the memory model
tracwiki: trac.parrot.org/parrot/wiki/LoritoD...ction=diff
07:51 bkuhn joined 08:37 snarkyboojum_ joined 08:43 robin-gvx joined 08:54 snarkyboojum joined 08:55 AndyA joined 09:19 rurban_ joined 10:44 bacek joined, aloha joined 10:53 lucian joined 12:07 whiteknight joined
whiteknight good morning, #parrot 12:16
12:21 bluescreen joined
Casan morning WK' 12:23
mikehh make is messed up at the moment 12:43
Coke mikehh: how? I just kicked of a build... 12:55
mikehh Coke: I generally run make corevm/make coretest, make world/make test (with options) make -j corvm failed the first time at r48184, had to run twice, make world ok, make test reran some of the build again 13:04
the culprit is r48180 - it works fine at r48179 - it tries to keep re-building src/nci/extra_thunks.c 13:06
Coke that was recently changed. probably safe to just revert it for now, let that dev fix it before re-applying. 13:15
lemme double check, though.
(doing a corebuild now.) - worked fine in full build) 13:16
mikehh: cannot duplicate your bug. 13:30
r48184, I fired off a realclean, make corevm coretest, completed fine.
mikehh it does a rebuild after make test (of src/nci/extra_thunks.c) and make fulltest and make smoke (normally those go straight to the tests) 13:34
the tests PASS but there is that extra build step, which should mnot happen 13:35
not
13:37 lucian joined
mikehh so i do make corevm/make coretest, make world, make test (rebuild), make html, make smoke (rebuild) make fulltest (rebuild again) 13:37
Coke ok. I'd open a ticket for that, then, and assign it to whoever committed it. 13:39
... or revert it and ping them on irc. =-)
either way. your call.
mikehh I always do a make realclean, svn update, configure,before the sequence and sometimes do it again after make test and do a logged make world m- I also run make manifest_tests, make codetest after the configure 13:40
darbelo commited from a patch from cxreg 13:46
so I can say: 13:51
All tests PASS (pre/post-config, make corevm/make coretest, smoke (#35124), fulltest) at r48184 - Ubuntu 10.04 i386 (g++)
t/op/exit.t - TODO passed: 6 in testf
BUT there a problems with make rebuilding src/nci/extra_thunks.c for make test, make smoke and make fulltest 13:52
so the added lines in /config/gen/makefiles/root.in in r48180 are causing a problem 13:56
14:18 Mike_lifeguard joined 14:21 bubaflub joined 14:27 Mike_lifeguard left
NotFound mikehh: and for make install 14:32
mikehh NotFound: I am reverting the changes to config/gen/makefiles/root.in in r48180 14:34
NotFound mikehh: Maybe better commenting it out, to at least leave the thing half-documented.
mikehh NotFound: ok - it tests ok without it 14:35
dalek TT #1719 created by mikehh++: Addition to config/gen/makefiles/root.in at r48140 causes multiple ... 14:54
TT #1719: trac.parrot.org/parrot/ticket/1719
14:54 ruoso joined 15:00 patspam joined
dalek rrot: r48185 | mikehh++ | trunk/config/gen/makefiles/root.in:
comment out changes to config/gen/makefiles/root.in at r48180 which cause
15:04
15:21 fperrad joined 15:23 theory joined 15:36 [1]Casan joined 15:47 macroron joined 15:59 jsut_ joined 16:03 darbelo joined 16:10 jsut joined 16:13 eternaleye joined 16:16 theory joined 16:20 kthakore joined
kthakore hi again 16:20
purl oh, you're back!
kthakore hugs purl
purl kthakore: get off me, you botvert!
kthakore hehe
finally got my server moved over
getting Parrot again ...
16:35 tcurtis joined
dalek kudo: ac8a2ae | (Solomon Foster)++ | src/core/ (4 files):
Add Numeric.isNaN, Real.isNaN, Num.isNaN, and Complex.isNaN, and use them to
16:37
16:59 mikehh joined 17:01 ruoso joined 17:09 theory joined 17:11 darbelo joined
cotto_work ~~ 17:15
17:19 rurban_ joined 17:27 ttbot joined
mj41 ttbot is broken somehow ... Trying to connect to server irc.perl.org 17:30
Server error occurred! Closing Link: tapir1.ro.vutbr.cz (Registration timed out)
Lost connection to server irc.perl.org.
17:54 Chandon joined
Tene whiteknight, Austin_away: either of you try 'our method' in nqp yet? 18:17
18:41 Austin_Hastings joined
particle mj41: have you updated any of the perl modules ttbot depends on recently IRC::Bot etc? 18:54
cxreg mikehh: i noticed the build problems last night 18:59
debugged a bit with make --debug
the main issue is that there's a difficult circular dependency 19:00
core needs ./src/nci/extra_thunks.c to build parrot, and we use parrot to build parrot_nci_thunk_gen, which then re-generates ./src/nci/extra_thunks.c
so adding a rule for ./src/nci/extra_thunks.c breaks the build 19:01
and leaving it out causes the file to never be updated
maybe it's a mistake to use parrot to process its own dependency
darbelo It really depends on How often the file needs to be updated. 19:02
You could add a new target to update it manually. 19:03
cxreg true 19:04
darbelo I mean, it's been unupdated for a long time without anything braking.
cxreg maybe the input file should include a comment telling editing users to run the target
./src/nci/extra_thunks.nci 19:05
darbelo Also, the static thunks were supposed to be the fallback to the dynamic framebuilders.
cxreg that's over my head 19:06
darbelo It only works on i386 now, but back when we had working JIT, we used that to build the call frames 'on demand' without needing a static list of precompiled thunks. 19:07
dalek rrot: r48186 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c:
Make the existance of the NFG hashing function's existance not depend on PARROT_HAS_ICU.
19:10
rrot: r48187 | darbelo++ | branches/gsoc_nfg (5 files):
Remove the various charset hashing functions, the encodings have been able to do that, and do it better, for some time now.
rrot: r48188 | darbelo++ | branches/gsoc_nfg/src/string/charset/ascii.h:
Remove unused ASSERT_ARGS macro.
19:10 theory joined 19:16 AndyA joined 19:17 Casan joined
whiteknight Tene: no. Haven't touched it yet 19:27
cotto_work #ps in 120 19:30
whiteknight 120? Has it moved? 19:31
cotto_work er, #ps in 59
cotto_work got disoriented
whiteknight that's better
tcurtis was worried he had totally misunderstood DST. 19:32
whiteknight I don't worry, I *know* that I always misunderstand DST
cotto_work tcurtis: I let date --utc do the understanding 19:33
atrodo i only get confused on which half of the year is DST 19:34
particle it's the part with more daylight
whiteknight if I were in charge of the world, there would be no daylight savings time
particle we save it up for winter, but it never seems to work 19:35
atrodo i like the fall when i get an extra hour of sleep. I wish only that part of the year would happen
or, lose an hour in the middle of the day, that'd be fine with me
particle you could just keep moving west 19:37
19:42 jsut_ joined
Coke reminder, there is a comp.lang.parrot calendar on google. 19:53
20:03 Andy joined, GeJ_ joined 20:04 slavorgn joined 20:07 theory joined 20:08 jan joined
cotto_work #ps in 11 20:19
20:21 bubaflub joined 20:24 chromatic joined
chromatic #ps in 2 20:28
darbelo #ps in 0 20:30
Coke ... contact. it's the reason... that everything happens... 20:31
20:35 [1]Casan joined
darbelo mikehh: One of the andys is the resident *linit guru. You could try pinging him for pointers. 20:40
mikehh darbelo: yeah - petdance methinks 20:41
Andy as opposed to AndyA 20:42
Andy what about?
splint/lint/whatever
I'm here.
Whaddya wanna know.
20:43 bacek joined, aloha joined
Coke Andy: why does my belly button lint smell funny? 20:45
Andy Coke: Because sweat from your body accumulates inside your belly button and festers. It's also less likely to get washed than the rest of your body. 20:46
mikehh: I love static analysis! Ask me anyhting!
Coke Andy: awesome. btw, it's great for teasing small children with. But mostly if they're your own. 20:47
Andy I have a fun game I play with Quinn in the morning. I'll be on the toilet and she'll say "Dad, are you almost done in there" and I'll say "Yup, I'm almost done making your lunch!"
Who doesn't love poop jokes and taunting the young? 20:48
mikehh Andy: just trying to work out where to start with the output of make splint :-}
dalek p-rx: da0c21f | moritz++ | src/Regex/P6Regex/Actions.pm:
Quotes should respect :i
p-rx: 120f566 | moritz++ | t/nqp/50-regex.t:
add tests for :i and quoted strings
p-rx: a11bb45 | moritz++ | src/stage0/ (3 files):
update bootstrap files with :i + quotes fixes
Andy mikehh: How long do you have?
mikehh Andy: any flags to use to highlight more? important fixes 20:49
Andy No, not really. Splint obviously kicks out a TON of info.
I suggest you pick one file and splint it and see what jumps out at you.
What makes you go "Hmmm..." 20:50
dalek rrot: r48189 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files):
[nqp-rx] update bootstrap files (nqp-rx commit f8bc67e9754d4ff394a387509d248b664e536c13) with fix for RT #75484
rrot: r48190 | moritz++ | trunk/ext/nqp-rx/src/stage0 (3 files):
[nqp-rx] update bootstrap files with fixes for :i + quoted literals
Andy mikehh: Splint one file, and nopaste the output. I'll look and see what jogs my mind.
I haven't looked at splint in a month or so.
moritz uhm, I didn't remember that I had *two* nqp-rx bootstrap file commits in the queue
sorry for the spam 20:52
mikehh Andy: 'k - probably after #ps
bubaflub mikehh: i'm neck deep in the makefile right now doing out-of-directory building stuff and am willing to help getting parrot building in directories with spaces. just probably after GSoC is over in a few weeks 20:53
mikehh bubaflub: thanks 20:54
NotFound bubaflub: remember that some pepole will kill you if you break compatibility with msvc... even if no one uses it. 20:56
bubaflub NotFound: huh. i don't have a copy of Windows to test that out... maybe i can scare up a copy and load it on VirtualBox 20:57
darbelo Hey! I used it. Twice, and only to see if I had broken it. But I used it!
NotFound I think this is a lose of time, but at least is not my time ;) 20:59
ttbot Parrot trunk/ r48189 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/359726.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ )
Coke and there goes the msvc alert. 21:00
but, seriously, particle at least uses it.
so, if you care to make /him/ happy, there you go.
NotFound Coke: I care, that's the reason I don't think trying to allow build dirs with spaces is a good idea. 21:01
If I don't care, I'll just say. "Make it work with gmakeĀ· 21:02
"
particle if you can't build dirs with spaces, it's an error on linux too
chromatic You can't build in dirs with spaces on Linux right now.
NotFound particle: we can, just add some quotes... and break msvc.,
particle if you're adding a literal quote character, you're doing in wrong. 21:03
NotFound We can't also build in directories with \\n characters. Wanto to also support that?
chromatic seen plobsing?
purl plobsing was last seen on #parrot 2 days, 18 hours, 36 minutes and 37 seconds ago, saying: might work [Jul 25 02:27:08 2010]
particle we have a platform-specific config file for a reason, when we generate our makefiles
21:04 whiteknight joined
chromatic NotFound, if we have a working system we don't have to worry about shell quoting. 21:04
If we have to worry about shell quoting, we have potential security holes.
NotFound Security holes in the name of the build directory? 21:05
darbelo Yes. All user input is malicious. Users are out to get us.
Coke who fixed squawk tutorial. tylercurtis? 21:06
moritz i know that building with a prefix whith spaces is broken on linux too
Coke: yes
NotFound darbelo: I think that if someone is able to build and install parrot as root, that guy has lots of better ways to break the system.
Coke msg tylercurtis - I just assigned you TT #1673.
purl Sorry, I've never seen tylercurtis before.
moritz Coke: tcurtis here 21:07
Coke msg tcurtis - I just assigned you TT #1673.
purl Message for tcurtis stored.
tcurtis Coke: I'll look at it.
chromatic Someone who *runs* pbc_to_exe could have a security hole.
ttbot Parrot trunk/ r48190 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/359753.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 21:08
darbelo Just for fun, look at line 58 of config/gen/platform/generic/exec.c :)
chromatic Right, passing strings to the shell is asking for trouble. 21:12
NotFound I don't want to discuss that issue too much. My point is just: autotools don't care, so I also don't. 21:17
tcurtis Coke: now that the Squaak tutorial is working and up-to-date and NQP-rx-y, do you think it would make sense to lower the priority of that ticket? I plan to write some more docs about adding some of the stuff that Squaak doesn't have to PCT-based compilers, but it doesn't seem like major priority anymore.
dalek tracwiki: v13 | chromatic++ | LoritoDesignQuestions 21:18
tracwiki: trac.parrot.org/parrot/wiki/LoritoD...ction=diff
Coke tcurtis: wfm. hell, it's probably closable.
21:18 zenog joined 21:22 theory joined 21:24 zenog left
tcurtis Coke: why is it that there's no 2.9 milestone? 21:32
Coke tcurtis: moment. 21:33
tcurtis: added 2.7-2.9 21:35
cotto_work chromatic: you still around? 21:37
tcurtis Coke++
cotto_work and if so, do you have time for some Lorito discussion?
chromatic yes 21:39
cotto_work What do you picture Lorito's memory layout looking like? 21:40
chromatic In what sense? 21:41
cotto_work Will there be a single dedicated (virutally contiguous) chunk of memory for use by Lorito code analogous to a computer's main ram?
chromatic I've been imagining we'll have a separate GC much like our current GC. 21:42
atrodo I thought it would make more sense if each pmc was a small allocated chunk of memory that could be manipulated 21:43
chromatic Ideally, yes. 21:44
cotto_work Would there be a contiguous chunk of memory that the GC would take care of or would it just use system memory directly? 21:45
chromatic mmap versus malloc? 21:46
cotto_work yes 21:47
chromatic Depends on the GC tuning, I think. Lorito can work either way.
atrodo how tightly coupled is the GC to parrot now? Is there a well established interface or does everything just know what's going on? 21:48
dalek TT #1720 created by tcurtis++: fdiv_i_i_i and fdiv_i_i ops don't work correctly. 21:49
TT #1720: trac.parrot.org/parrot/ticket/1720
chromatic The interface is decent, but like most precise GCs, there's some coupling.
21:50 Austin_Hastings joined
darbelo bacek did some work into plugging external gc's into parrot. IIRC he even had a working bohem_gc 'plug in' at some point. 21:52
cotto_work chromatic, do you picture instructions and data living in separate regions? 21:55
21:55 aloha joined
dalek rrot: r48191 | NotFound++ | trunk/src/interp/inter_misc.c:
don't waste time calculating a value we already have
21:56
21:58 Austin_Hastings joined
chromatic Yes. 21:59
cotto_work Also, by "separate GC" do you mean one written in C that sits outside Lorito?
ttbot Parrot trunk/ r48191 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/359820.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 22:01
chromatic Tes,
Yes.
cotto_work What do you think about how register spilling could work or if it's desireable? 22:05
chromatic Given variable-sized register sets, I'm not sure it's desirable. 22:07
22:07 bacek joined
chromatic If we're able to optimize even *some* call sites, we can optimize our calling conventions for that call only. 22:08
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#35126), fulltest) at r48190 - Ubuntu 10.04 amd64 (gcc) 22:11
cotto_work I'm thinking about whether it'd be a good idea to use 1-byte args to ops. 22:12
22:12 hanekomu_9 joined
chromatic How would that work? 22:16
cotto_work it'd work if there were a way to load/store from/to memory 22:18
chromatic When you get a chance, can you show some example code?
cotto_work Sure. 22:19
tonight sounds possible
atrodo cotto_work> what about immediates? 22:26
ttbot Parrot trunk/ r48192 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/359876.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 22:28
dalek rrot: r48192 | NotFound++ | trunk/t/pmc/capture.t:
a few more tests for Capture
22:30
cotto_work Constants could be used, though that wouldn't be as efficient. 22:31
I hadn't thought of it. 22:33
22:34 kid51 joined
NotFound Looks like the windows breakage is caused by: # escape spaces in current directory 22:37
r48179
chromatic Yeah, there's an interaction between that patch and the dquote entry in config_lib.pir. 22:39
NotFound Or maybe: # escape unescaped double quotes
chromatic The problem really isn't config_lib.pir. 22:40
NotFound Can someone nopaste the config_lib.pir from that windows build? 22:41
chromatic The problem is building up a string to send to the shell without escaping it appropriately for the shell.
If we had something like Perl 5's system LIST, we'd avoid all of that mess. 22:42
NotFound "we" parrot? 22:44
We have Parrot_Run_OS_Command_Argv 22:45
atrodo cotto_work> constants have to be used sometime. That's why I did 8 byte lorito opcodes, 4 bytes just for the immediates. 22:46
NotFound I guess I'll have to use XP Home one more time to save the wolrd ;-) 22:47
chromatic We also have to quote paths used in the generated Makefiles.
mikehh Andy: just as a matter of interest - make splint - Finished checking --- 12099 code warnings - 15 internal bugs reported (it generates 23735 lines of output) 22:49
22:51 hanekomu_9 left
NotFound The problem seems to be that replacing $v =~ s/(["\\\\])/\\\\$1/g; with $v =~ s/(?<!\\\\)"/\\\\"/g; stops escaping "\\" to "\\\\" 23:05
chromatic It shouldn't, with that lookbehind assertion. 23:06
NotFound I'm not fluent enough with perl re to find a good fix.
chromatic Escaping \\ is fine, but escaping an already escaped \\\\ isn't.
Hm, maybe that should be a lookahead assertion, now that I think about it. 23:07
NotFound perl -e 'my $v = "\\\\"; $v =~ s/(?<!\\\\)"/\\\\"/g; print "$v\\n";'
\\
chromatic Easy way to test this on non-Windows: rename your Parrot checkout directory to contain a space. 23:08
23:10 bubaflub joined 23:25 Util_ joined, PerlJam joined 23:26 dalek joined 23:30 dukeleto joined
GeJ Bonjour everyone. 23:46
kid51 Bonjour, Geraud. 23:52
dalek kudo: 7f5c22f | jonathan++ | src/ (3 files):
A workaround for the role outer scopes bug. It's not perfect, and it's certainly
23:57
23:58 Psyche^ joined