| <<<Back 1 day (to 2012/05/27) | 2012/05/28 |
saper | well it assumes a certain model of perfecting single commits | 00:00.41 |
| it's difficult to switch from "git is only making snapshots of directory trees" paradigm to "let's deal with patches now", something that cherry-pick and rebase try to bring back into git again | 00:01.42 |
| Robin_Watts: I just compiled mupdf trunk with/OpenJPEG 1.2, adding this ... http://bugs.ghostscript.com/attachment.cgi?id=8626 (that's me) | 00:04.40 |
sebras | saper: why do you want to stay with an older version of OpenJPEG? | 00:05.42 |
| I'm wondering since the same issue might arise with other libraries. | 00:06.16 |
saper | because that's what FreeBSD currently have | 00:06.22 |
sebras | like freetype, e.g. | 00:06.23 |
saper | (selfish) | 00:06.28 |
| er, I lied. It's 1.3 | 00:07.12 |
| on my system only mupdf and poppler depend on that, and therefore gimp and xsane; would not probably be too much pain to upgrade once it's in the ports three | 00:08.32 |
| s,three,tree, | 00:08.37 |
sebras | I can see the problem. I know that tor8 catered for older versions of freetype for a while, so let's hope that he feels it worthwhile for OpenJPEG as well. | 00:10.10 |
saper | not a big change, only the palette problem for some files will remain broken if using older openjpeg | 00:11.32 |
kens | A new high for pdfwrite, an 'if' with 17 calls to functions in its tests..... | 10:00.44 |
| Oh, and if it all succeeds, it executes a macro 'DO_NOTHING' | 10:01.18 |
Robin_Watts | oh, boy... | 10:06.15 |
kens | Has anyone forwwarded the latest email to support on to Scott ? | 10:06.35 |
Robin_Watts | http://www.ebuyer.com/344622-zoostorm-pentium-no-os-desktop-pc-7873-1057 <- tempted by this as a replacement for Helens PC | 10:07.43 |
kens | Hmm, tha'ts cheap | 10:08.54 |
Robin_Watts | less than 300 quid with Windows 7 Home Premium. | 10:09.04 |
mace | Robin_Watts: got a mo? | 11:49.36 |
Robin_Watts | Sure. | 11:50.31 |
mace | http://artifex.dsis.co.uk/ you still happy with the contrast etc? | 11:51.44 |
Robin_Watts | OOh, that looks much nicer since I last looked. | 11:52.09 |
mace | yeah i've rolled out all the other changes Miles requested | 11:53.08 |
| the main one you're probably noticing is the partner solutions stuff | 11:53.43 |
Robin_Watts | I love the fade in on the Partner Solutions stuff. | 11:56.06 |
| But, if you swap very quickly from one to another, you can be left with the old one 'faded in'. | 11:56.45 |
mace | yeah that has some rough edges at the moment - i wanted miles to see the effect first before i spend too much time finessing it | 11:57.24 |
Robin_Watts | Sure. But I like it. | 11:57.35 |
mace | goodo :) | 11:57.49 |
Robin_Watts | lunches | 12:07.38 |
| kens, chrisl: You about ? | 13:10.25 |
chrisl | Robin_Watts: I'm here | 13:11.37 |
Robin_Watts | I had psdcmyk working on friday | 13:11.48 |
| and now it's not. | 13:11.52 |
| Do you have a recently updated gs tree you could run a quick test on for me please? | 13:12.04 |
| psdrgb, I mean, sorry. | 13:12.36 |
kens | I'm here | 13:12.47 |
| Hmm, let me see where I'm at | 13:12.59 |
chrisl | I'll just rebase/rebuild, then I can test.... | 13:13.25 |
kens | OK I have Bug 693070 psdrgb wasn't giving corrupted output | 13:14.09 |
| Is that new enough ? | 13:14.14 |
Robin_Watts | Indeed. | 13:14.17 |
| That's perfect. | 13:14.20 |
kens | OK what's the test | 13:14.24 |
| ? | 13:14.33 |
Robin_Watts | Just use psdrgb and tiger.eps and see if you get an image. | 13:14.44 |
kens | OK one sec | 13:14.49 |
| Photoshop crawls into life.... | 13:16.16 |
| Its all black | 13:16.37 |
Robin_Watts | For me too :( | 13:16.45 |
kens | :( | 13:16.59 |
Robin_Watts | So either my testing was screwed, or... confused. | 13:17.15 |
kens | Checked the histogram the only colour is pure black | 13:17.22 |
chrisl | Hmm, patch fails..... | 13:18.45 |
Robin_Watts | sebras, tor8: So tor8 pushed sebras' patches already ? | 13:45.39 |
| Is there a way in Acrobat to tell it to save a PDF not as a 1.7 file ? | 16:12.32 |
kens | I think so yes. | 16:12.42 |
| In the save dialog is there a properties button ? | 16:12.51 |
| Hmm, won't let me select it :-) | 16:13.20 |
| Which version of Acrobat ? | 16:13.43 |
Robin_Watts | oh, d'oh. Let me look in Acrobat rather than Acrobat reader. | 16:13.53 |
kens | Oh well that might work better.... | 16:14.04 |
| The preflight will do it, but I'm not confident of its capabilitiews | 16:16.35 |
Robin_Watts | Tools => Optimise => v5 and later seems to do it. | 16:18.07 |
kens | Ah, fair enough | 16:18.14 |
Robin_Watts | Thanks. | 16:18.19 |
kens | NP | 16:18.22 |
| After all I didn't do anything :) | 16:18.36 |
| Is anyone au fait with parameter lists ? is Ray here yet ? | 16:24.34 |
Robin_Watts | I've sworn at them a bit, but I'm no expert. | 16:26.14 |
| Isn't today Memorial Day ? | 16:26.25 |
kens | Could you look at some code quickly ? | 16:26.25 |
Robin_Watts | Sure. | 16:26.30 |
kens | gdevpsdp.c, line 285 | 16:26.50 |
Robin_Watts | (i.e. I wouldn't be surprised if there was no ray or henrys today - not expecting mvrhel at least) | 16:26.59 |
kens | psdf_get_image_dict_params | 16:27.01 |
| Didn't realise it was a pubnlic holiday | 16:27.15 |
Robin_Watts | I have it | 16:27.31 |
sebras | Robin_Watts: looks like it. I'm happy with the merge anyway. my current itch is the O(n^2) info gathering in mupdfinfo now. | 16:27.50 |
kens | OK what seems to be happening is that teh 'dict' is ending up in the list using somethign which gets freed, this causes a later seg fault or endless loop (memory gets reused) | 16:28.08 |
| The code does 'param_begin_write_dict | 16:28.23 |
| Which seems to read all the data into 'dict' | 16:28.40 |
| THen if oplvalues is non NULL (it isn't) | 16:28.52 |
| It copies it into plvalue | 16:28.58 |
| All looks good | 16:29.03 |
| Then it does param_end_write_dict | 16:29.13 |
| and frees 'dict' | 16:29.19 |
| I think that it is storing 'dict' in plist in param_end_write_dict | 16:29.44 |
| And it shouldn't be, because that gets freed | 16:29.53 |
| I *think* it should be storing plvalue instead | 16:30.08 |
| But I've been banging my head on it all day and I doubt my understanding at this point | 16:30.27 |
henrys | kens:about ray ... it is a holiday not sure if he'll be in. | 16:30.35 |
kens | henys Robin_Watts told me, no problem | 16:30.48 |
| didn't realise it was a holiday | 16:30.58 |
Robin_Watts | kens: OK, this is out of my comfort zone. Gimme a mo to try and understand what's going on. | 16:31.10 |
kens | OK I have to go put dinner on, be back in a minute | 16:31.42 |
Robin_Watts | kens: I'm not going to be able to grok this without spending some time in the debugger. Can you give me a command that exercises this? | 16:35.14 |
kens | OK | 16:35.40 |
| -dNOGC -sDEVICE=ps2write -dCompressPages=false -dCompressFonts=false -sOutputFile="/temp/opentext/out.pdf" j:/tests/Bug691335.eps | 16:36.12 |
| breakpoint on line 294, hit count of 239 I htink | 16:36.57 |
Robin_Watts | kens: Presumably you are approaching quitting time for the night ? | 16:37.00 |
kens | Yes, but I will be abck online this evening Stella has a governors meeting tonight | 16:37.24 |
Robin_Watts | I've just got my head in something else at the moment. | 16:37.30 |
kens | NP | 16:37.34 |
Robin_Watts | I was going to say can we look tomorrow? | 16:37.40 |
kens | Of course, and thanks | 16:37.48 |
Robin_Watts | sorry. | 16:37.52 |
kens | I'll pokie it with a stick some more later | 16:37.56 |
| Off to do the rest of dinner now | 16:38.04 |
ray_laptop | kens: Robin_Watts: I saw the discussion about the dict param lists, but haven't tried to look into it. Unless you (ken) are going to be working on it tonight, I'd rather keep on with the cust 532 pdf14 optimizations. | 17:10.05 |
| debugging a few issues with it and cleaning up code so that takes concentration. | 17:10.32 |
Robin_Watts | ray_laptop: I think ken may be back later. And the impression I got was that he'd like some guidance rather than to pass the problem off entirely. | 17:11.03 |
ray_laptop | Robin_Watts: right. So if I'm online and kens wants to have me look at it and see if I can spot anything, he can ping me here. | 17:11.55 |
| kens: If you are diving into it tonight, and I'm not online, have henry or someone call me, or SMS me. | 17:12.55 |
| Robin_Watts: BTW, did you text me on 5/24 ? (does your number end in 7642 ?) | 17:13.44 |
Robin_Watts | yes. | 17:13.54 |
| and IIRC you appeared as requested and answered questions :) | 17:14.17 |
ray_laptop | Robin_Watts: OK. thanks. I'll add you to my contacts list so I'll be able to tell who it is. | 17:14.23 |
| Robin_Watts: right. That's why I guessed it was you. | 17:14.38 |
Robin_Watts | pops to station. bbs. | 17:19.35 |
gastaldi | greetings ! | 17:30.08 |
| I am looking for a configuration to make PDF conversion into PNG images take less space but still be readable | 17:30.45 |
| can anyone help me ? | 17:32.12 |
| I am using the following flags: -dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=png16m -dTextAlphaBits=4 -sOutputFile=page-%03d.png | 17:32.25 |
ray_laptop | even small text should be legible with AA at 150 dpi. | 17:47.39 |
| kens: what I see with your test is that it is hanging in gs_c_param_list_release because it has a "loop" in the chain of plists: 958->908->8b8->868->958 | 17:58.51 |
| kens: is that what you are working on ? | 17:59.00 |
kens | ray_laptop : yes that's the problem | 18:15.16 |
| However, teh *cause* seems to be that the 'dict' has been freed, and then reused. | 18:15.39 |
| ray_laptop : I'm going to look more tomorrow, so don't worry about it, enjoy your holiday. | 18:16.15 |
ray_laptop | kens: OK. So I am seeing the "GrayImageDict" value.d has a loop in it: 8b8->908->958->628->628 Once it frees the one at 628 we are looking at freed memory when we access pparam->next at the top of the while loop | 18:17.58 |
| kens: on entry, the plist->count is 4, but it continues (due to the self-referencing) to decrement past 0 to 0xffffffff | 18:19.44 |
kens | ray_laptop : the 'source' of the problem seems to me to be the list which is placed inside the parms list. The representation of the Gray (or in my case Mono) image dict | 18:20.30 |
ray_laptop | kens: so the problem is the "next" pointer in that 4th element | 18:21.07 |
kens | When I follow the main list from the head, I see that the subsidiary list representing the dict has hte address of the 'dict' local variable allocated in psdf_get_image_dict_params | 18:21.20 |
| The problem is that that 'dict' is then freed, leaving in essence a dangling pointer. | 18:21.38 |
| When we next allocate some memory we reuse that 'dict' memory and so the self-referencing loop occurs. | 18:22.05 |
| It varies with the memory layout | 18:22.14 |
| In one configuration it caused a crash (seg fault) rather than a loop | 18:22.34 |
| My current code has the problem with MonoImageDict instead of GrayImageDict | 18:22.50 |
| My question really is if you look at line 300 of gdevpsdp.c: | 18:23.30 |
| param_end_write_dict(plist, pname, &dict); | 18:23.30 |
ray_laptop | kens: not surprising that it would cause a segfault since we are de-referencing freed memory. | 18:23.41 |
kens | Is that what puts the 'dict' parameter into the 'plist' ? | 18:23.45 |
| ray_laptop : yes, the loop is perhaps more surprsing :-) | 18:23.57 |
| This is a hazy area for me | 18:24.11 |
| I'm not sure where the child list is being inserted into the parent | 18:24.30 |
| But if we really are inserting a list, and then freeing it, we are really in trouble :) | 18:25.03 |
| ray_laptop : I did trace through this, with a memory write breakpoint | 18:25.42 |
| THe 'next' pointer in the dict is initially created with a NULL, so it does terminate the list | 18:26.01 |
| But of course the allocation which uses the same memory overwrites it. | 18:26.23 |
| THat's where the problem occurs, as far as I can see | 18:26.33 |
| Am I making sense or just confusing you? | 18:26.44 |
ray_laptop | kens: sorry -- lost trying to trace the macro hell of line 300: param_end_write_dict(plist, pname, &dict); | 18:27.31 |
| kens: is that the line 300 for you ? | 18:28.04 |
kens | Yes, that's the beastie | 18:28.40 |
| THe problem is (I think) that we end up putting 'dict' into the plist | 18:28.57 |
| But in the lilnes immediately following that, we free 'dict' | 18:29.11 |
| To be more accurate, we put dict.list into plist, then release dict.list and freee dict.list | 18:29.35 |
| I'm currently in c_param_wite and I see the address of 'pvalue' is the list pointer 'dict.list' | 18:30.38 |
| We make a new param 'MonoImageDict' (Will be GreyImageDict for you) | 18:31.24 |
| And tehn set param->value to be 'pvalue' | 18:31.37 |
| SO indeed it appears we put a pointer into the list, and then we go ahead and free the pointer | 18:31.51 |
| I notice that if its not 'peristent' we should copy it. | 18:32.33 |
| But the type is '11' and so we don't | 18:32.51 |
| 11 seems to be gs_param_type_dict | 18:33.29 |
| Which makes sense | 18:33.33 |
| For what its worth, pparam->value.s.persistent is 0, so it isn't persistent, but we don't copy it. | 18:34.55 |
| I wonder why we don't copy dictionaries. | 18:35.03 |
| I also wonder how this ever works.... | 18:36.04 |
ray_laptop | kens: I really don't know what the 'rules' are, but that doesn't seem to make sense. Let me check the docs and other uses.... | 18:36.20 |
kens | OK, you know more about it than I do | 18:37.00 |
| ray_laptop : I know its a holiday, so feel free to head off and have fun, we can do this another time | 18:37.54 |
ray_laptop | kens: actually, what I am doing is debug on cust 532 changes, but I'm in it now, so I'll keep at it for a bit (unless you need to quit) | 18:39.05 |
kens | No, Stella is at a school governors meeting, so I have time on my hands | 18:39.59 |
ray_laptop | kens: in c_param_begin_write_collection it calls gs_c_param_list_write which sets 'persistent = true' | 18:45.47 |
kens | Hmm, it does ? | 18:46.13 |
| Hang on | 18:46.17 |
| I#'ll have to restart to get there | 18:46.34 |
ray_laptop | I'm just looking at the code statically | 18:46.58 |
kens | Is that called form param_begin_write_dict ? | 18:47.01 |
| Oh, I see | 18:47.06 |
| OK I do get into that code | 18:47.16 |
ray_laptop | kens: yes, param_begin_write_dict is a macro that calls the begin_xmit proc | 18:47.50 |
kens | I see it sets persistent_keys, is that the same thing ? | 18:48.01 |
ray_laptop | kens: oops. I misread that. | 18:49.23 |
kens | pparam->key.persistent is true | 18:50.24 |
| THe 'value' associated with the key comes from teh dict.list we created though, and it seems to be 0 | 18:51.13 |
| sorry, its 'persistent' member seems to be 0 | 18:51.28 |
| Tracking back the data comes fomr pdev->params, and all the composite members have a persitent member of 0 | 19:00.28 |
ray_laptop | kens: so c_param_write calls c_param_add is the function that does the allocation when it does the. c_param_add takes care of allocating the 'key' based on persistent_keys. then c_param_write does the alloc of the 'value' | 19:11.29 |
kens | Yes, exactly what I see | 19:12.00 |
| THe keys are persistent, so that's OK, but it just copies the 'pvalue' across | 19:12.15 |
| If ti was an array it would 'deep copy' it (pvalue->...persistent = 0), but because its a dictionary, it doesn't. | 19:13.06 |
ray_laptop | kens: Really ? I am looking at line 296 in gscparam.c | 19:13.09 |
kens | Maybe I'm not looking at the same code, just a moment | 19:13.22 |
| I don't get to line 296 with this | 19:13.42 |
| The 'type' is 11 (dictionary) so it doesn't copy it. | 19:14.02 |
| line 296 seems to be copying arrays, dicts, names and strings | 19:14.27 |
| My call stack is: | 19:16.11 |
| c_param_write | 19:16.12 |
| c_param_end_write_collection | 19:16.12 |
| psdf_get_image_dict_param | 19:16.12 |
| psdf_get_image_params | 19:16.12 |
ray_laptop | kens: let me set the BP count for the copy to 239 and see what I see. | 19:19.17 |
kens | ray_laptop : I'm not sure that will work for you | 19:19.32 |
| My code is subtly different and gets the same error in a different place | 19:19.50 |
| You will probably need a smaller hit count | 19:19.59 |
ray_laptop | kens: 239 is 'GrayImageDict' -- what name are you seeing ? | 19:20.01 |
kens | MonoImageDict | 19:20.09 |
| Let me check my hit count | 19:20.22 |
| Actually I am seeing GrayImageDict | 19:20.56 |
| This one doesn't go wrong of rme, but I set it that way to be the same as you and Robin | 19:21.11 |
| So its fine | 19:21.15 |
kens | is getting tired.... | 19:23.01 |
ray_laptop | kens: me too. I may poke at it a bit more (but no promises). I'll post anything here or in an email to tech... | 19:28.13 |
kens | OK thanks ray_laptop | 19:31.45 |
| Off for the night, goodnight anyone who is still here | 19:37.56 |
Robin_Watts | night kens | 19:38.02 |
| Forward 1 day (to 2012/05/29)>>> | |