IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2012/07/18)2012/07/19 
Robin_Watts sebras: So we maybe have a flag in the pdf_function that we set to 1 the first time we warn?00:29.38 
  So we only ever warn once in eval_function ?00:29.58 
mvrhel marcosw are you there?05:58.59 
  or henrys05:59.40 
  I guess it is a bit late...05:59.55 
  good night all06:13.48 
paulgardiner Robin_Watts: I looked over the test-generator patch and it looks fine to me.08:02.45 
sebras Robin_Watts: that's definitely an option.08:46.27 
  Robin_Watts: also I guess there's a decision of whether to warn early (when loading the function) or late (when evaluating the function).08:47.03 
  Robin_Watts: oh, and I started to separate/squash my function patches yesterday but it was too late in the evening/night for me to make something that I trust.08:54.46 
kammerer Hi ALL, what is the best way to extract text from specified region in page?09:04.14 
chrisl kammerer: you're best hop is probably to use the XML output from either mupdf or Ghostscript txtwrite device, and parse the XML to find what text segments intersect your region of interest09:41.44 
  s/hop/hope09:41.50 
kammerer chrisl: big thx09:43.00 
chrisl kammerer: sorry there isn't a simpler answer09:43.23 
Robin_Watts sebras: So... you're suggesting validating the functions at load time rather than eval time?10:06.35 
  That sounds like a nice idea if possible.10:06.41 
  especially if it means we can irradicate the possibility of the function eval failing entirely.10:07.04 
  paulgardiner: When I commit this, all your mjs files are going to be out of date :(10:50.47 
paulgardiner Don't understand. "out of date"? Different to what the script would generate?10:51.58 
Robin_Watts I mean, different to all the ones I put on a blu-ray for you.10:52.16 
paulgardiner Oh!10:52.27 
Robin_Watts is pdf_text_stride yours ?10:53.15 
paulgardiner Were the scripts a large proportion of what was on that blu-ray?10:53.15 
Robin_Watts no, they were tiny.10:53.26 
paulgardiner Robin_Watts: pdf_text_stride is mine, yes.10:53.40 
Robin_Watts but either you're going to need to regenerate yourself, or you can svn checkout.10:53.49 
  Try: mudraw -j out.mjs ..\ghostpcl\tests_private\pdf\forms\v1.6\sf328-cert-foreign-int-ext-venx-feb06.pdf10:54.26 
  pdf_text_stride is entered with len = 1, room = -56610:54.52 
  So the first for loop never runs.10:55.10 
  We then go into the if, and h.w is used without ever having been initialised.10:55.24 
paulgardiner Doesn't sound ideal!10:55.33 
Robin_Watts And what's the i-- about ?10:55.41 
  oh, for count, sorry.10:55.48 
  if (x > room && i) ?10:55.59 
  But even then I'd be suspicious of the fact that room is negative.10:57.02 
paulgardiner Yeah room shouldn't be negative10:58.20 
Robin_Watts splitter->unscaled_width = 34, splitter->x = 60010:58.51 
  hence room = 34 - 600 = -56610:59.11 
  (in text_splitter_layout)10:59.48 
paulgardiner Hmmm, I thought for a moment that pdf_text_stride was broken even for room = 0.0, but no it is ok. Just being called wrongly. Do we tend to use asserts in mupdf?11:02.26 
Robin_Watts There aren't many, but they are there.11:02.55 
  The cluster testing runs without asserts of course.11:09.33 
paulgardiner Why's that?11:10.53 
Robin_Watts It tests release builds11:11.41 
  and the point of assert is that it compiles away to nothing in release builds.11:12.09 
paulgardiner Oh ok. I didn't realise it was release builds.11:12.40 
Robin_Watts It was debug for a long time, but we changed it.11:13.23 
  debug builds often fill unused memory so hiding problems.11:13.43 
paulgardiner Robin_Watts: I broke it when I fixed the failure to terminate in very thin text fields. I have a fix I'll push in a minute11:26.32 
Robin_Watts paulgardiner: Cool. I'll review that, push it, then regenerate the mjs stuff and push all that.11:31.09 
paulgardiner Pushed. I've also started a mujstest run to check it doesn't break loads of other things.11:32.48 
  Robin_Watts: actually that's a bit crap. I might do it another way11:38.50 
Robin_Watts ok.11:39.00 
paulgardiner Pushed11:51.30 
Robin_Watts Ok, so you only add span on if it will fit, rather than adding it on repeatedly until it overflows then backing the last one out ?11:53.31 
  That does seem nicer.11:53.38 
paulgardiner Yeah, I avoid break in loops if I can, but in this case it's better that way11:54.20 
Robin_Watts new mjs files going into svn now...12:10.04 
sebras Robin_Watts: well, I'm advocating validating the functions at load time, giving warnings if something is wrong (incorrect number of inputs/outputs), and then later during evaluation replacing missing input values with zero and ignoring excess output values.12:13.21 
Robin_Watts That sounds perfect.12:13.34 
sebras Robin_Watts: alrighty, then I know what to do tonight. :)12:13.52 
Robin_Watts So the warnings etc come out early, and we cope as best we can (the eval can never fail)12:13.53 
sebras exactly.12:14.11 
  and also the warnings come out once instead of at each eval.12:15.10 
  so some kind of implicit rate limiting. :)12:15.22 
paulgardiner Robin_Watts: My last mujstest showed a huge number of diffs. Might that be because of your changes to the mjs files?13:29.01 
Robin_Watts Yes, I've not committed the git changes yet.13:53.46 
  I was going to look at the bmpcmp first13:53.57 
  Hmm. My bmpcmp produced a completely different set of differences than I was expecting.13:57.00 
  oh, I understand why it shows few differences overall.13:57.35 
  OK, I've pushed now. When those tests finish, we should get sane results again.13:58.05 
paulgardiner Great. I'll try a run with my last change removed to see what's due to it13:59.04 
Robin_Watts Hi mvrhel.14:54.35 
  Got 5 mins for me ?14:54.51 
pickcoder what aspect of a process does "/ioerror in --run-- " pertain to. It was followed by an XREF reading error and then an ioerror in quit.15:39.31 
mvrhel Robin_Watts: I have to head out in a couple secs. for my daughters dr. appt15:47.01 
Robin_Watts You go, I've made a bit more progress.15:47.13 
  But I may well want to ask you some more questions later if you're available.15:47.31 
mvrhel ok. i will ping you when i get back15:47.33 
Robin_Watts Thanks.15:47.35 
mvrhel quick question15:50.41 
  if I put psdcmyk at the end of my clusterpush will it do just that device?15:50.57 
Robin_Watts --filter=psdcmyk maybe15:51.06 
mvrhel Robin_Watts: ^^15:51.10 
  oh15:51.14 
Robin_Watts Or maybe just filter=psdcmyk.15:53.30 
  I wrote an email about this, thus allowing me to completely forget it. Hold on, I'll check :)15:53.49 
  yeah: 8/11/2011 to tech.15:54.28 
  clusterpush.pl xps filter=xpsfts-a4 15:54.38 
mvrhel oh that is the test files though15:55.06 
Robin_Watts clusterpush.pl xps filter=xpsfts-a4,7215:55.10 
mvrhel is there a --?15:55.16 
  and what about devices?15:55.26 
Robin_Watts It just checks for the presence of the strings in the test filename: tests_private/comparefiles/Bug691783.pdf.pgmraw.300.0 15:55.34 
  So it will do banding/devices/filenames/resolutions.15:55.44 
  No --, I misremembered, sorry.15:55.56 
mvrhel ok thanks!15:56.07 
Robin_Watts let me know how it gets on - it's not had much testing.15:56.26 
  ctile->depth == 0 sounds bad to me.15:58.58 
  Aha.16:04.06 
  gx_dc_serialized_tile uses a byte for the depth. This is bad when we have depths of > 256 :)16:04.39 
Robin_Watts waves a fresh pot of coffee under the webcam and hopes for ray to appear...16:23.39 
fm__ chrisl, anything new to test for me?16:34.32 
chrisl fm__: no, we know what the problem is, and I've given a proposed solution to the relevant engineer for his consideration.16:35.33 
fm__ thanks. is there any bugreport in bugs.ghostscript.com which i should link to https://bugs.launchpad.net/ubuntu/+source/ghostscript/+bug/1025061 ?16:37.50 
chrisl fm__: no, I haven't created a bug - I suppose I should - I'll do it in a bit, and post it on launchpad16:38.41 
fm__ great16:39.07 
chrisl fm__: done16:45.50 
fm__ chrisl, thanks16:50.25 
Robin_Watts hey ray_laptop 17:33.00 
  Got a mo?17:33.05 
ray_laptop Robin_Watts: sure -- just discovered that what I thought I screwed up with my fill_rectangle_hl_color changes wasn't me at all -- HEAD has the same problem17:33.56 
  Robin_Watts: so, how can I help ?17:34.22 
Robin_Watts I've been looking into bug 69318517:34.38 
  specifically the SEGVs with psdcmyk when the MAX components thing is set to 32.17:35.06 
  I've found a problem and fixed it, and the SEGVs stop, but along the way I found something else.17:35.22 
  and it's a clist thing, so I'd like to run it past you.17:35.33 
  pcls->colors_used17:35.55 
  That looks to be a gx_color_index.17:36.05 
ray_laptop Robin_Watts: well, that's right what I'm in the middle of -- a clist SEGV (and mis-rendering with NumRenderingThreads=1)17:36.27 
Robin_Watts and in various places in the code we set it to values like: ((gx_color_index)1 << cldev->clist_color_info.depth) - 117:36.27 
  Right. This isn't anything to do with NumRenderingThreads. It's just to do with planar stuff.17:36.57 
  The problem is that clist_color_info.depth can be a large number (say 256, if the max components is 32)17:37.49 
  1 << 256 is undefined in C.17:38.01 
  so, I think we need to find an alternative way to work here.17:38.18 
ray_laptop Robin_Watts: gx_clist_state doesn't have a colors_used17:39.03 
Robin_Watts gxcldev.h line 273 would beg to differ17:40.18 
ray_laptop oops -- I traced the wrong struct17:40.26 
  (tags led me to the 'common_members' 17:40.50 
Robin_Watts Presumably we only actually need 1 bit per component to indicate its usage?17:41.27 
ray_laptop Robin_Watts: that is true 17:41.59 
Robin_Watts So moving to a bitfield would save our bacon.17:42.10 
  (Well, at least get us up to 64 max components, which is the limit elsewhere in the code)17:42.29 
ray_laptop so for up to 64 components we could get by with uint64_t17:42.31 
Robin_Watts So, I may try and look at that then tomorrow.17:43.06 
ray_laptop but if we are changing it, I'd think that going up to at least 256 components for this area wouldn't be that much different (byte colors_used[8])17:43.45 
  oops math wrong17:44.04 
  colors_used[256/8]17:44.22 
Robin_Watts We cease to be able to deal with that in such a simple way though.17:44.52 
ray_laptop but it does mean that we'd have to use the color_info shift and mask stuff to derive the bit #17:45.21 
Robin_Watts Yes.17:45.29 
  Urm, no.17:45.35 
  Well, in some cases, yes.17:46.00 
  To go from a color_index to a bitfield value, yes.17:46.19 
  We'd have a harder time converting from gx_color_info -> bitfield.17:46.49 
ray_laptop right -- but for a hl_color we can get it from the ccolor (or something)17:46.56 
Robin_Watts exactly.17:47.03 
  Rather than colors_used[256/8], we should use colors_used[(MAX_COMPONENTS+7)/8]17:47.44 
ray_laptop the colors_used isn't used much elsewhere17:47.45 
  Robin_Watts: I assume you mean GS_CLIENT_COLOR_MAX_COMPONENTS, but yes17:48.21 
Robin_Watts yes, I just wasn't going to type all that :)17:48.32 
ray_laptop does much cut and paste17:48.49 
  Robin_Watts: so the planar code actually uses 'colors_used' ? (I haven't looked at it much yet)17:49.58 
Robin_Watts I am not aware of it using colors_used.17:50.16 
  I have to confess, I don't understand what colors_used is about.17:50.26 
ray_laptop it is *supposed* to indicate what components are used so that we can skip rendering bands that are blank17:51.08 
Robin_Watts Looks like it's something to do with copy_rop?17:51.11 
  searching on colors_used, I can only see it be READ in 1 place.17:51.39 
ray_laptop and for the entire page (page_info.colors_used) we can determine if a page is only black 17:52.08 
Robin_Watts actually, that's only used so it can be updated.17:52.40 
  I can't see where it's ever used.17:52.47 
ray_laptop the 'rop' part of it is also intended as an optimization -- was used by the 'wts' device to decide if we had any non-idempotent rops in a band, and if so we would render that band in RGB contone, otherwise render directly to halftoned CMYK17:53.54 
Robin_Watts And it's broken in clist_strip_copy_rop2 anyway.17:53.58 
  Can you see anywhere it's used in the current source ?17:54.17 
ray_laptop Robin_Watts: since no one ever used it, and it's broken, I think we should just get rid of them both until we put in something that is correct.17:54.58 
Robin_Watts Fab. I heartily agree :)17:55.14 
  I will prepare a patch.17:56.05 
ray_laptop IMHO, I think we should collect the 'band_stats' (for whatever we decide we want) at init_reader time, writing an array into a pseudo-band that the reader can read back17:56.29 
  Robin_Watts: but a patch to rip it out is a good start.17:56.44 
  because it will make sure that nobody uses it.17:56.59 
  Robin_Watts: so does this relate to the SEGV at all ?17:57.20 
Robin_Watts no.17:57.35 
  The SEGV was because when putting a pattern through the clist we wrote the depth into a byte wide value.17:57.53 
  so a depth of 256 was coming out as 0, resulting in a NULL pinst pointer.17:58.07 
ray_laptop Robin_Watts: please try: gs -r72 -sDEVICE=psdcmyk -o colorcir.psd -dNumRenderingThreads=1 -dBandHeight=800 examples/colorcir.ps17:58.26 
  take a look at the output -- it's REALLY screwy17:59.20 
Robin_Watts That still SEGVs.17:59.32 
  output ?17:59.39 
ray_laptop what OS ?17:59.41 
Robin_Watts windows 7 64 bit17:59.49 
ray_laptop hmm... I get output (with debugbin/gswin32c)18:00.16 
  same OS, VS 918:00.40 
Robin_Watts VS2005, so that's 8, I think.18:01.11 
ray_laptop oh, well -- I'm digging into it. I just thought you might be able to look at it and say "oh, the plane offsets are all bogus" or something. I'm comparing Threads=0 to Threads=118:02.09 
Robin_Watts I'll have a look in a mo.18:02.27 
ray_laptop go ahead and fix your issue first. I'll let you know if I need any info about the planar setup18:03.19 
  Robin_Watts: I got an email about ARM Tech Con locally (well, Santa Clara) and of Oct. think it is worth attending ?18:07.01 
Robin_Watts ray_laptop: I rather suspect that such things tend to be "let us tell you how marvellous our new suite of compiler tools is..."18:07.33 
ray_laptop I haven't looked at agenda yet.18:08.07 
  http://eetevents.com/portal/wts/cemciv2dviB6edETB6-7-C2gAO7N6c18:08.21 
  looks like a lot of H/W discussions18:09.56 
  but there are several S/W papers as well.18:10.49 
  I notice that the one "Is C++ Fast Enough for Embedded Programming?" was cancelled (don't blame him)18:11.30 
Robin_Watts HARDWARE/SOFTWARE CODESIGN18:11.32 
ray_laptop Robin_Watts: yeah, that looked interesting18:11.46 
Robin_Watts ho ho. That was what my PhD was supposed to be in. Sponsored by ARM :)18:11.53 
ray_laptop that and GPGPU ON ARM18:12.53 
  and Take GPU Processing Power Beyond Graphics with GPU Computing on Mali18:13.24 
Robin_Watts "ADVANCE COMPILER OPTIMIZATIONS FOR THE SMALLEST, FASTEST CODE" by someone from Greenhills. Last time I used the greenhills compiler it couldn't actually give me working code, let alone optimise it.18:13.31 
ray_laptop Yeah, I remember fighting GreenHills compiler trying to work around it's glitches. Having to desk check the disassembled code isn't fun18:15.00 
  another one that might be interesting is "Taking Advantage of Quad ARM Cortex A-9 CPUs and ARM Mali GPUs for Rich Graphical Effects"18:15.41 
Robin_Watts yeah, I suspect that's "Use OpenGLES".18:16.03 
  "but avoid these specific bits as they were optional and we haven't implemented them fully"18:16.38 
ray_laptop well, I might go up for part of it, but too bad it's over halloween -- that's an important time for my 6 (he'll be 7 by then) year old. They do a historical bio of someone, then dress up and do a presentation to the whole school and parents18:18.57 
  well, back to work on the screwy planar painting ...18:20.18 
Robin_Watts Ok, that solves all the SEGVs, but bumping the number of components up does show differences.18:21.05 
  ray_laptop: Actually, the band complexity looks at the colors_used.18:25.52 
  And the clist writer looks at uses_color when writing.18:27.51 
  It looks to me like we jump through lots of hoops collecting this 'uses_color' information, and the only place we use it is in clist_image_plane_data at line 78718:30.37 
  actually, not even there.18:31.24 
  ray_laptop: Can the band complexity stuff be ripped out too?18:31.35 
ray_laptop Robin_Watts: yes, please !!!18:32.06 
Robin_Watts That was the opposite answer I was expecting, but OK :)18:32.30 
ray_laptop it'll make it easier for me to put in right afterwards (a clean slate).18:33.02 
  part of the problem with the colors_used and uses_color nonsense it that it did an "OR" which really is only valid for a subtractive color model18:34.30 
  IMHO, we should collect useful band_statistics AND write it to the clist (in a pseudo band)18:35.53 
  we might want to make collection of ROP and colors_used bits optional so devices that don't need it don't bother to collect it.18:37.20 
  but we should collect the color info correctly, if we do it at all -- which is fairly easy for RGB and CMYK (taking polarity and bits_per_component into account), but is trickier for devn18:38.53 
  I found the smoking gun with the funky rendering.19:06.18 
  now to find out why and fix it. Shouldn't be much longer19:06.53 
Robin_Watts Damn and blast.19:07.16 
mvrhel Robin_Watts I am back19:07.20 
Robin_Watts brb, sorry.19:07.29 
mvrhel if you still need to chat19:07.31 
  np19:07.34 
Robin_Watts mvrhel: Sorry, that was the front door.19:08.59 
  mvrhel: I have fixed the psdcmyk SEGVs with the max components being 32.19:09.35 
  We were trying to pack a pattern t34le depth of 256 into a byte for the clist, and obviously that wasn't working so well :)19:10.01 
mvrhel oh great19:10.01 
Robin_Watts There are still some differences (minor ones) in psdcmyk banded when I up the components to 32 though.19:10.37 
  I spotted that the colors_used mechanism can't work now.19:10.56 
mvrhel I was wondering what that was all about19:11.12 
Robin_Watts I'd hoped to just rip it all out, but that looks like it isn't going to work.19:11.25 
  It's looking like I'm going to have to look at making colors_used be a bitfield rather than a gx_color_index19:13.16 
  I'll look into that tomorrow.19:13.29 
mvrhel that sounds reasonable19:13.35 
  marcosw1: so can I close 693061?19:20.47 
  marcosw1: also I just committed a fix for gemma's last issue19:21.17 
Robin_Watts 693061 is what ray is looking at I think.19:57.16 
  I've been looking into 69218519:58.55 
  69318519:59.00 
ray_laptop mvrhel: so the problem with the NumRenderingThreads > 0 in planar mode devices is that it isn't picking up the is_planar.20:04.18 
mvrhel what isnt picking it up? the clist devices?20:04.46 
ray_laptop when it creates the clist devices for the threads to use when rendering20:04.49 
mvrhel ok20:04.53 
  that should be an easy fix20:05.04 
ray_laptop that causes the 'tile_cache_size' to differ and then we get different pointers for where the data starts20:05.33 
  mvrhel: yes, but I need to make sure that the dev_spec_op doesn't need to be other than the default.20:06.32 
mvrhel ray_laptop: not sure I understand what needs to be done with the spec_op, but I can see where this would have caused a segv20:07.29 
ray_laptop mvrhel: possibly. It definitely gets the parts of the buffer space messed up20:11.49 
mvrhel sure20:12.01 
  bbiab20:17.41 
ray_laptop OK, cluster testing a patch. Also I'll check on peeves to see if it fixes the SEGV (it wasn't reproduced on Windows).20:35.00 
  If this is the fix, I probably need to make the fill_rectangle_hl_color change separate from the fix. :-(20:39.04 
  HURRAY. The SEGV on peeves is cured (it was VERY repeatable before, even with the fill_rectangle_hl_color changes)20:40.17 
  bbiaw20:41.00 
  my git logg tree is looking REALLY funky after I tried to split up my commits into the bug fix and the change to the fill_rectangle_hl_color changes. I _think_ it is OK :-(23:07.01 
  doesn't help that I have clusterpush stuff messing it up in between23:07.28 
sebras Robin_Watts tor8: I chopped my mega-patch into pieces and tried to write a bit more informative commit messages. have a look at them over at sebras/master and tell me what you think23:28.20 
  and yeah, I don't expect any comments until tomorrow or even later.23:28.43 
  and reworing commit messages are fine. I'm not good at writing them as tor8 can testify to.23:43.28 
  see! rewor_D_ing.23:43.56 
 Forward 1 day (to 2012/07/20)>>> 
ghostscript.com
Search: