IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2011/10/05)2011/10/06 
marcosw_ Robin_Watts: you still here?00:13.50 
ray_laptop mvrhel2: I think the patch is good (with the variable assignment put back in that I mistakenly deleted). Is it OK if I commit it ?02:35.01 
  tkamppeter_: I have a patch for bug 69256803:09.16 
  I decided to go ahead and commit it. 03:30.17 
BamJangles anyone alive?03:43.32 
mvrhel2 ray_laptop: thanks for fixing that04:13.03 
ray_laptop mvrhel2: sorry -- I was working on something else. 04:32.46 
  mvrhel2: I'm pretty sure, but you can think about it from my log and bug comments and see if it makes sense to you.04:33.20 
mvrhel2 Yes it makes sense04:35.09 
chrisl Huh, Steve Jobs dead - didn't see that coming so soon........07:38.06 
kens I guessed it was on the cards after he resigned.07:38.21 
  But I'll be impressed if he can manage this come-back07:38.35 
chrisl Yes, but as I say, not this soon - given he remained as chairman.07:38.52 
kens Yeah, but that's really a figure-head role, Gates is still chairman of Microsoft07:39.19 
chrisl True - the other thing is, the reporting saying he was "found dead", suggests to me it wasn't expected (at this time) by those close to him.07:40.23 
kens Hmm, missed that part of the report.07:40.40 
  I kind of skimmed the effusive and irrationa obituaries.07:40.57 
chrisl I didn't look at the obits, but most new agencies seem to the using the "found dead" phrase, so I'd guess that's what the official statement says07:41.50 
  s/new/news07:41.57 
kens Well, at least he wasn't bodily tanslated...07:42.26 
  translated07:42.30 
chrisl More likely he sublimed.......07:42.43 
chrisl wonders what the Apple share price will do today07:43.50 
kens Interesting question.07:45.27 
Robin_Watts Well, given it dropped 5% after the 4S wasn't called the 5...09:30.03 
chrisl It will probably depend on how much confidence investors have in the new guy - and they haven't had long to develop an opinion09:36.34 
kens Out for lunch today, back later.10:49.29 
Robin_Watts tor8: Morning11:54.20 
tor8 hi11:54.27 
Robin_Watts Up to over 750000 allocations with pdf_reference17.pdf and it's still running clean.11:54.59 
tor8 sweet :)11:55.39 
Robin_Watts I am struck by just how much gets loaded how soon though.11:55.49 
  Does the code run through loading every object when it starts ?11:56.11 
tkamppeter chrisl, can you have a look at http://bugs.ghostscript.com/show_bug.cgi?id=692572, I have assigned it to the PDF interpreter, but can also be CM.11:56.36 
tor8 with the display list in use, I believe everything that's ever needed for a page will be loaded up front11:56.37 
Robin_Watts Even before the display list.11:56.51 
tor8 but no, we don't load every object unless we are in repair mode11:56.54 
tkamppeter kens, ^^11:56.56 
tor8 we load the page tree early though, I've been meaning to make that lazily loaded11:57.09 
Robin_Watts Because doing 800000+ allocations just to render the first page seems excessive :)11:57.46 
tor8 yeah... that does sound a but much11:58.44 
Robin_Watts I fear it may be 3 million.11:58.56 
tor8 I wonder if there's an easy way to profile that11:59.31 
Robin_Watts Memento! :)11:59.39 
tor8 see out where all the allocations stem from11:59.42 
  pardon my grammar11:59.51 
  still waking up :)11:59.57 
Robin_Watts I have something in mind for Memento that will help with that.12:00.39 
  I wonder if I've broken this then.12:02.34 
  It looks to me like pdf_open_xref_with_stream does pdf_load_object on every object in the xref.12:03.02 
  even without a repair.12:03.13 
tor8 I know we load all the objects during a repair, but we shouldn't be doing that in the normal case12:05.26 
Robin_Watts I wonder if I've broken that with the try/catchification.12:06.31 
  yes, I've broken it :(12:07.26 
  Easy fix though.12:07.49 
  Also, we pull the whole content stream into a buffer before we run it ?12:08.12 
chrisl tkamppeter: Yet again, Bug 692572 works just fine with our lcms - you *really* must test with *our* default build before reporting issues to us.12:10.29 
tor8 Robin_Watts: yeah. easiest way to deal with the content stream array crap12:11.31 
  and also being able to seek to other places to load resources on the fly12:11.56 
Robin_Watts tor8: In my pdf code I had a filter type that just concatenated an array of filters.12:12.04 
tor8 I did something similar before, but then we front-loaded all images and font resources from the /Resources dict whether they were used or not to avoid seeking in the underlying file12:12.50 
Robin_Watts isn't the seeking thing just a matter of ensuring you seek back to the right place in the file before reading the next block?12:13.03 
tor8 yeah, nasty stuff to get right with all the pipeline complexity and/or sharing a file descriptor between multiple streams12:13.49 
tkamppeter chrisl, the backtrace made the impression that this time it crashed inside GS, but probably I am not much into GS's internals that I can well determine that. Sorry.12:28.51 
chrisl tkamppeter: You're not wrong, gx_remap_ICC() is a GS function, but gs 9.04 as distributed by us, 12:31.40 
  works fine, so I conclude it's lcms that's the problem12:32.01 
marcosw_ kens: can I ask you to try and duplicate a windows only bug? I've already tried and works for me with XP SP3 (which is what the customer is using). If you have it's: http://bugs.ghostscript.com/show_bug.cgi?id=69257114:20.52 
Robin_Watts marcosw_: Morning. You were looking for me last night ?14:21.11 
marcosw_ Robin_Watts: I was going to ask you to look at the bug I just irc'd kens about. You were the only one still up :-)14:21.48 
Robin_Watts I have 32bit XP SP3 here.14:21.52 
marcosw_ It'd be helpful if you could try and duplicate it; if not than it's likely a setup with the customers Windows.14:22.41 
Robin_Watts Gimme 5 mins, and I'll have a look.14:24.26 
K4R0L15 Hello everyone14:24.38 
marcosw_ btw, for those of you discussing Apple's stock price it opened sharply lower but has already recovered and is now up 1%.14:24.58 
Robin_Watts marcosw_: I get a warning (page 13, stream length incorrect), but otherwise it's fine.14:31.19 
  That's running HEAD of course.14:31.33 
henrys marcosw_:I was reading an article in the Times about how influential he was relative to other CEO's, all these products really were kind of a singular vision of his. Bad news for apple long term.14:31.36 
marcosw_ Robin_Watts: thanks. unfortunately that's the same results I get. How much trouble would it be for you to try 9.04?14:33.52 
Robin_Watts I can checkout and rebuild with 9.04 with my super git powers.14:34.27 
  but not at the moment.14:34.30 
kens sorry marcosw wasn't paying attention14:34.45 
Robin_Watts I'm running the plank vs pamcmyk4 differences at the moment.14:34.47 
  So far I haven't found any differences.14:35.00 
  (8 files tested)14:35.16 
kens my checkout is not in a good state for checking builds14:35.17 
chrisl marcosw_: I have GS 9.04 installed on a 32 bit Win7 VM, if that's okay?14:46.51 
marcosw_ chrisl: should be okay. The customer says it fails under win32 and 2003, so testing on Win7 should be another useful data point (particularly if it fails). Thx.14:48.03 
chrisl I'll check it in a moment14:48.27 
  marcosw_: Nope, sorry - same warning about stream length, but runs to completion. Give me a minute, and I'll double check the AFX release.14:50.56 
marcosw_ okay. I'll add this to the bug report.14:51.10 
chrisl marcosw_: the AFX release crashes.......14:52.33 
marcosw_ sorry, what's the AFX release?14:53.38 
chrisl Artifex - the non-GPL release14:54.01 
henrys luratech? Good thinking to check that chrisl.14:55.25 
chrisl henrys: Could be Luratec, it's the only difference I can think of that might be responsible - and it does seem to be a scanned document, so might be using JBIG214:57.38 
henrys marcosw:I need all the pcl bugs from bugzilla in the bug database like you do do with pdf/ps, I have a large pcl change coming and I fear regressions. Do you have a quick way of getting the attachment with a script or do you visit each bug manually?14:59.47 
  marcosw_ ^^^15:00.32 
marcosw_ henrys: I do it manually15:01.02 
henrys okay thanks15:01.36 
chrisl henrys, marcosw_ that test job does use JBIG2 on page 13 (at least), so luratec is looking a good bet.15:05.42 
marcosw_ chrisl: thanks for the suggestion. I'm trying the luratech build now.15:06.30 
Robin_Watts So it might be a corrupt JBIG2 stream; non-luratech gives a warning, luratech falls over.15:06.39 
chrisl Robin_Watts: it could be. The "stream length incorrect" warning gets emitted before the crash.15:10.03 
  Robin_Watts: have you got a sec?15:11.49 
Robin_Watts Sure.15:11.59 
chrisl I've got a problem on SPARC which appeared with your commit 1553ea878b414b4ac389f7cec4c2076bc52be96615:12.36 
  Oh, crap, no hang on, wrong problem, give me a mo15:12.58 
  Commit 38720da47205c029d9bee6c3b792791b6f39277d is the one I mean (too many windows open!)15:13.54 
  Diff: http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38720da47205c029d9bee6c3b792791b6f39277d;hp=b246d9d85c119f101956ba07cf9e1c8b9f510b4915:14.24 
Robin_Watts Really?15:15.15 
chrisl Now, the problem is that it now results in short runs being rendered with the code in mem_mono_copy_mono() instead of delegating to mem_mono_strip_copy_rop_dev15:15.22 
Robin_Watts I'm slightly surprised at that.15:15.50 
  The code used to always use the code in mem_mono_copy_rop.15:16.03 
chrisl And this is an issue because mem_mono_copy_mono doesn't honor pointer alignment - it assumes it can use 16 bit alignment15:16.22 
Robin_Watts Then I changed it to always call my new ROP run stuff.15:16.29 
  Then I changed it to only call the new ROP run stuff if the width was >=3215:16.53 
  So presumably this file would never have worked, then would have worked, then wouldn't have worked.15:17.23 
chrisl I'd guess so, I can go try it on early versions, if you want.15:17.47 
Robin_Watts I think it would be worth confirming that I haven't somehow broken the code in mem_mono_copy_rop.15:18.11 
chrisl mem_mono_strip_copy_rop_dev() seems to work fine, it's when we skip that call that the problem arises15:19.07 
Robin_Watts Right. mem_mono_strip_copy_rop_dev is my stuff.15:20.19 
chrisl But is slower for short runs?15:20.35 
Robin_Watts The rest of the stuff in this file is peters.15:20.52 
  timings would suggest it's slower, yes.15:21.06 
  But possibly because I honour alignment :)15:21.15 
  If a version of the code from before I made any changes to this file at all still crashes, then it would show that the problem is prehistoric.15:21.58 
chrisl Okay, I'll dig that out, give it a whirl15:22.26 
Robin_Watts And the fix would then either be to fix peters code (no way!) or to force us to take the slower branch every time if alignment is an issue.15:22.32 
chrisl To be honest, I don't think fixing Peter's code would be *that* hard, but I suspect it would then lose the performance benefit it currently has - when it doesn't crash!15:23.33 
Robin_Watts From a quick look, it does look like peters code is trying to cope with alignment etc.15:23.59 
chrisl Yes, but's aligning to 16 bits, which ain't much good in a 32/64 bit world......15:24.41 
Robin_Watts Are you saying that a sparc can't cope with reading 16 bits of data unless it's from a 32bit aligned address?15:26.08 
chrisl Er, IIRC, it can't cope unless it from a 64 bit aligned address15:26.39 
Robin_Watts !?!?!?!15:26.55 
henrys I'd be really surprised if Peter's original code didn't work, he was really particular about alignment...15:27.02 
Robin_Watts ARM used to care about alignment.15:27.23 
chrisl "Modern" SPARC is 64 bit kernel space, (usually) 32 bit user space, but it still enforces (64 bit!) hardware alignment - it's *really* crap :-(15:28.02 
Robin_Watts The rule is that you can load an n bit chunk of data as long as you're aligned to n bits.15:28.07 
henrys chrisl:did you check arch.h for correct settings?15:28.49 
chrisl henrys: Yes, I did - it looks right.15:29.07 
  Given the vintage of this code, it was probably written when SPARCs were 32 bit hardware, so 32 bit alignment would work15:29.43 
Robin_Watts chrisl: How can it possibly insist on 64bit alignment for 16bit data transfers?15:31.09 
chrisl Robin_Watts: *shrug*. It's a long time since I dug into that side of Sun hardware15:32.20 
henrys marcosw_:what's up with the fixed customer bugs?15:38.09 
Robin_Watts chrisl: http://dlc.sun.com/osol/docs/content/DRIVER/hwovr-1.html15:40.37 
  That's what I would have expected.15:40.58 
chrisl Hmm, I seemed to remember it didn't quite work out that way, but as I say, it was >5 years ago. Anyway, I'm build an earlier version to try now (takes a while on an old SPARC!)15:42.33 
ray_laptop are we going to upstream the JBIG2 luratech problem to them ? (and if so, who will contact them?)16:02.11 
  or are we going to have one of us dig into their code ?16:02.32 
henrys alexcher should verify it isn't a language bug and then report it to luratech.16:02.53 
  I'll report it if he doesn't want to.16:03.18 
  but not until it is a verified luratech problem.16:03.49 
  gawd it takes forever to collect attachments for the bug database.16:04.51 
ray_laptop we seem to have a few bugs assigned to 'support'. Are we going to discuss those (or any others) ?16:09.38 
henrys I think miles is going to call.16:13.08 
kens off for the night, bye everyone16:13.20 
Robin_Watts night kens16:13.27 
tkamppeter ray_laptop, thanks for the fix, I have applied it (and got it still into Oneiric) and now the clist problem is solved.16:13.42 
ray_laptop have to take the dog to the vet for shots. bbiab.16:14.46 
henrys hmm I said I think miles is going to call so ray_laptop heads for the vet ;-)16:33.30 
chrisl Robin_Watts: it's a bit hard to tell because of all the macro nonsense (and not have macro expansion on the SPARC debugger!), but it does look like we're getting a 32 bit write to a 16 bit aligned address. I'll hit it with a git bisect tomorrow, because I'm almost out of time today.16:40.20 
Robin_Watts chrisl: OK.16:40.38 
  So it's dying in peters original code, before I touched any of it?16:41.16 
chrisl No, back before 027da430a5b8d7e377ae36098607717b345eb097 it worked fine, but I don't know, yet, when it stopped working.16:42.44 
  It's slow going because the SPARC is painfully slow to build to GS......16:45.00 
marcosw_ chrisl: you were correct, the luratech build does crash on the file. Thanks again for remembering that the default customer build now uses the luratech decoder. In my defense this may be the first instance of the internal decoder working better than the luratech decoder.16:57.03 
chrisl marcosw_: np, glad to get to the bottom of it (from our POV at least)16:58.09 
henrys marcosw_:it should go to alex first to check for abuse of the api - then I'll contact luratech after alexcher looks at it.16:59.09 
marcosw_ henrys: thanks for the suggestion, I'll assign it to Alex and also check to see if it's a regression.16:59.46 
chrisl I was going to say, couldn't we extract the JBIG2 data, and try the luratech demo on it - but I can't get the luratech code to build :-(17:03.12 
ray_laptop chrisl: I had built the luratech standalone in a previous release. I'll see if I can get it to build.17:09.02 
  chrisl: the jb2_demo built OK for me.17:14.20 
henrys ray_laptop:well does the extract jbig2 work?17:15.50 
ray_laptop henrys: I was going to extract it manually from the stream object17:16.34 
  I have to download the problem file first17:16.56 
chrisl ray_laptop: you're on Windows, I assume? I was trying on Linux17:17.34 
ray_laptop chrisl: yes, on Windwos17:17.51 
mvrhel2 Robin_Watts: So I finally verified that Marti's tools that come with lcms2 do a crazy rendering with the same profile that I put in the pdf file that we have the regression on. Marti's results are way different then three other CMMs that I checked. I will wrap this up and get it out to him17:18.07 
ray_laptop Win 7 64-bit Pro, specifically17:18.11 
chrisl ray_laptop: I didn't try Windows because all my Win machines are powered down now17:18.45 
Robin_Watts mvrhel2: Cool. The sooner we can get back onto the lcms2 train, the better.17:18.57 
mvrhel2 yes. I agree17:19.05 
  This is such an extreme case, if we don't hear something back from him soon I would vote that we push forward anyway17:19.36 
  with lcms217:19.39 
Robin_Watts Well, the first step in that is probably getting marcosw to run lcms1 vs lcms2 comparisons.17:21.42 
mvrhel2 yes17:21.48 
Robin_Watts Then porting our changes into lcms2 and reporting them upstream.17:21.59 
mvrhel2 yes17:22.05 
Robin_Watts states the obvious :)17:22.20 
mvrhel2 I think we would want to do the port into lcms2 though before the comparison17:23.04 
Robin_Watts mvrhel2: I was thinking we'd do the comparison, then when we were happy, swap to lcms2 by default.17:24.02 
  Then do the port.17:24.10 
  as the ports are all speed optimisations, right?17:24.20 
  So the cluster tests as we commit those will tell us of any diffs.17:24.30 
mvrhel2 Robin_Watts: no there are minor diffs from the optimizations too17:24.31 
Robin_Watts Right, but we'll spot those minor diffs with the usual per-commit testing.17:24.53 
mvrhel2 and we already went through those17:24.56 
Robin_Watts Fair enough.17:25.05 
mvrhel2 I am fine either way though17:25.24 
Robin_Watts On windows, I get identical results for plank and pamcmyk4 using the command lines that marcosw sent for 012-09.ps17:38.36 
  On 64bit linux, I get differences.17:38.50 
  Let's try 32bit linux.17:39.12 
  ray_laptop: Any chance you could install imagemagick on peeves please?17:43.51 
ray_laptop Robin_Watts: OK. just a minute...17:49.08 
Robin_Watts ray_laptop: Thanks.17:49.18 
ray_laptop chrisl: henrys: I added the jb2 file and the results I get from the luratech demo with the object 613 (the one that reports stream length incorrect).17:49.54 
  chrisl: henrys: the demo fails so we can probably now send it to luratech17:50.18 
henrys send me the naked jbig2, if you want me to talk with them.17:51.51 
ray_laptop henrys: I attached it to the bug17:52.09 
henrys great.17:52.26 
ray_laptop henrys: note that this is just the binary stream from the PDF file. I don't know if a .jb2 file is supposed to have some sort of header.17:53.42 
Robin_Watts "fails" = crashes ?17:54.09 
ray_laptop I guess I will try the luratech compressor to see what it spits out.17:54.24 
  but first I will see to Robin_Watts' request...17:54.38 
henrys ray_laptop:that should be private I believe.17:55.17 
ray_laptop Robin_Watts: OK, peeves should have imagemagick17:55.45 
Robin_Watts ray_laptop: Thanks.17:55.55 
ray_laptop henrys: I suspect that file needs a header of some sort. The files created by the luratech demo compression option has a header (I don't know how much is the header):18:09.41 
  00000000: 97 4A 42 32 0D 0A 1A 0A 01 00 00 00 01 00 00 00 |.JB2............|18:09.43 
  henrys: I think it is the first 8 bytes, but when I stick that on the front of the data I pasted, PS still can't open it and luratech is just as confused by it.18:10.40 
henrys I'll just kick the pdf up to them (luratech) and see if they have any quick ideas.18:13.02 
ray_laptop henrys: might as well pass the data I extracted from the PDF in case that helps them.18:14.29 
henrys please make that private - it looks like it has names and stuff in it.18:14.59 
ray_laptop henrys: OK, will do.18:17.51 
  henrys: done. marked private.18:19.34 
Robin_Watts Gah. I hate C compilers.18:47.59 
  __FUNCTION__ is supposed to be a magic predefine that tells you the function you're in. But it's not.18:48.45 
  it's a magic variable thing, so you can't use it in expressions like: __FUNCTION__ ":" __FILE__18:49.17 
  Oh joy.19:47.55 
  32bit windows gives pamcmyk4 and plank the same results.19:48.16 
  32bit linux gives pamcymk4 and plank the same results (but different to windows)19:48.36 
  64bit linux gives them completely different results to anyone else.19:48.56 
  and each other.19:50.25 
  mvrhel2: When you commit, could you put a bit more than "Fix for Bug 292507" in the first line please?23:40.39 
  "Fix for Bug 292507. pdf14 cmyk issues" or something, would be much more helpful.23:42.09 
mvrhel2 Robin_Watts: sorry. I usually put more in the following paragraph23:44.14 
Robin_Watts mvrhel2: No worries.23:44.40 
  I was struck when I did a: "git logg -20" (to just look at the last 20 commits) that the ones with just a bug number in are much less helpful :)23:45.14 
mvrhel2 did you have any specific questions about a commit?23:45.14 
Robin_Watts mvrhel2: No, I was looking to check that nothing recently would have changed something, and most commits I could discard purely from looking at the logg.23:45.58 
  (git logg is an alias here that lists just the revisions and the first lines of the messages - I know you use tortoise)23:46.28 
  No big deal - I'm sure I've been guilty of doing the same thing in the past.23:46.56 
mvrhel2 ok. I understand23:47.26 
  I will add some additional information on the bug fix commits23:47.44 
  first line23:47.47 
  Robin_Watts: did you need anything from me with respect to planar/halftoning? Since I have closed all my customer issues, I am going to work on our screen creation stuff23:52.29 
Robin_Watts Not at the moment.23:52.40 
  I'm going to try and understand the 32bit vs 64bit differences I'm seeing tomorrow.23:52.57 
  I think the linux vs windows differences are to do with page sizes.23:53.11 
mvrhel2 getting a common interface between genpat and my code plus adding in multi-level, min dot, and different vertical and horizontal sizes into my stuff23:53.18 
  ok. good luck with that23:53.41 
Robin_Watts Right. 32bit linux and 32bit windows plank/pamcmyk4 all agree when I force the pagesize.23:57.58 
  So now to figure out why the 64bit linux ones disagree with that (and itself)23:58.23 
mvrhel2 well all of this is great progress23:59.40 
 Forward 1 day (to 2011/10/07)>>> 
ghostscript.com
Search: