IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/06/23)2013/06/24 
Robin_Watts And just to make Monday more interesting... the hot water in the house has gone wrong.07:54.19 
tor8 "wrong"?08:04.41 
Robin_Watts no pressure. We get hot water from the taps, just very slowly. And it's useless for showering.08:05.03 
tor8 that could be a bit annoying!08:05.45 
kens Odd, isn't your water fed by gravity ?08:12.09 
kens wonders if Robin's gravity isn't working properly08:12.26 
chrisl If it's a combi-boiler, it'll rely on the water pressure from the main08:17.35 
Robin_Watts It's not a combi boiler.08:47.10 
  Supposedly what I am seeing is typically caused by a duff valve, or a blocked pipe.08:47.35 
  The boiler man cometh later.08:48.08 
chrisl Probably lime scale.......08:48.50 
Robin_Watts tor8: So, we really need to fix the Makefile for MuPDF to get the cluster working again.10:06.07 
  Are you happy for me to try?10:06.12 
tor8 Robin_Watts: what needs to be fixed?10:08.35 
  I thought you said running "make V8_PRESENT=no" was sufficient, but it's been a couple of days so my memory is hazy10:09.03 
  or did you want an explicit "make nosj" target?10:11.32 
Robin_Watts tor8: OK, but that requires me to change the cluster code.10:11.38 
  I'd rather have an all-nojs target.10:11.45 
  Of course, that all-nojs target could boil down to make V8_PRESENT=no10:12.03 
tor8 right. easy fix for all-nojs is to recursively call make with V8_PRESENT=no10:12.08 
Robin_Watts fab.10:12.16 
tor8 the other option is to split the INSTALL_LIBS and _APPS variables10:12.35 
  Robin_Watts: fix on tor/master10:16.43 
Robin_Watts I don't see the need for that personally, but it's up to you.10:16.48 
  tor8: looks good to me.10:17.08 
tor8 yeah, the $(MAKE) V8_PRESENT=no is reasonable enough for me10:17.30 
  the same approach would work for most other similar "optional, auto detected presence" features should we want them10:18.01 
  Robin_Watts: should we take on the patch on zeniko/fixes?10:19.39 
Robin_Watts tor8: haven't looked.10:20.20 
tor8 rebased and fixed version on tor/master10:21.54 
  not sure if any of them have been fixed elsewhere since he wrote the patch10:22.57 
  it's all in your and paul's xref/repair code10:23.08 
Robin_Watts tor8: Oh gawd, it'll probably conflict with the progressive stuff.10:23.55 
  I did take on some of zenikos fixes in the area...10:24.03 
  tor8: Why the change from else if to if in the first block?10:41.57 
  num can't be <= 0 and > MAX_OBJECT_NUMBER at the same time (for sane values of MAX_OBJECT_NUMBER)10:42.21 
tor8 no idea10:42.33 
Robin_Watts ok. Otherwise that commit looks fine.10:43.42 
  I'll take it on, but put back the else if.10:43.57 
  In fact, I'm going to collapse the two halves of that if together.10:44.25 
  I had this advertised to me at the weekend: http://www.ebuyer.com/507394-dell-3330dn-mono-duplex-network-printer-210-29941?utm_source=b2c_weekend&utm_medium=email&utm_campaign=b2c_weekend10:49.59 
  "Free" mono duplexing laser printer (after cashback and tradein)10:50.20 
  tradein being (according to ebuyer) any working printer.10:50.43 
  The DELL site seemed to imply it had to be a one of a specified set of printers, so I'd make enquiries before going ahead.10:51.21 
  Oh ,wait I see. It *is* any printer as a tradein.10:54.13 
  tor8: I'm going to look at paulgardiners 4 commits, OK ?11:01.18 
tor8 okay.11:06.28 
  the first two are good, but I haven't looked at the big ones yet11:08.07 
Robin_Watts The first two do indeed look good.11:08.19 
  the next one has a problem in that if it fails building a linked list (malloc failure) then it fails to clean it up.11:08.43 
  other that that it looks OK.11:09.23 
  tor8: coo. New apartment. Congrats.11:18.30 
  Found a better pizza place to live over?11:18.38 
tor8 Robin_Watts: that's the sad part :(11:22.08 
  but it's a lot more central, and bigger!11:22.13 
chrisl Better broadband?11:22.44 
tor8 chrisl: should be about the same, I don't expect any major differences there11:23.20 
Robin_Watts is going to take a punt on that printer. Supposedly it does PCL 53/6 and PS3.11:23.27 
tor8 more options though11:23.28 
Robin_Watts s/53/5e11:23.39 
chrisl tor8: more options is good - hope it all goes smoothly11:23.58 
  Robin_Watts: what's the toner cost like?11:24.17 
tor8 where I live now I'm stuck with one provider... and they've been dodgy sometimes 11:24.38 
Robin_Watts supposedly "cheap to run" according to a review site. It's intended as a workgroup printer.11:24.49 
tor8 like when the internet went down for a week because the server crashed and the person who has the key to the basement where they kept the servers was on vacation >.<11:24.58 
Robin_Watts The bad factors were "expensive to buy" and "small input tray".11:25.16 
  small input tray is not a problem for my use.11:25.30 
  and "free" doesn't seem to be "expensive to buy" to me.11:25.44 
tor8 duplex is a feature to kill for!11:25.52 
chrisl tor8: when my cable modem went down for an extended period it was because the local build had caught fire!11:25.55 
Robin_Watts duplex and network. And free. And (for comedy value) comes with another free multifunction mono laser printer.11:26.28 
tor8 having an android phone saved me that time, wifi hotspot over 3g isn't actually all that bad for day-to-day use11:26.38 
chrisl when it happened to me I had ADSL from Global Graphics, too11:27.16 
Robin_Watts 135 quid for a toner cart. For 14000 pages, 0.9p per page.11:28.46 
chrisl Not too bad then11:28.59 
Robin_Watts Current printer is more like 1.4p per page.11:29.35 
chrisl It would be nice to know who actually made it11:30.31 
Robin_Watts actually... it's too big for my office. I think I'm gonna pass on it.11:33.45 
  I'll probably kick myself later.11:34.07 
  tor8: In pauls review, he has a function pdf_get_incremental_xref_entry.11:38.48 
  That returns the xref_entry for a given number in the incremental xref section.11:39.09 
  Seems reasonable enough.11:39.16 
  he has another function that returns whether a given numbered entry will be in the incremental section or not.11:40.06 
  what should that be called ?11:40.12 
  Currently he has: pdf_xref_is_incremental_entry.11:40.41 
  I wonder if it ought to be pdf_is_incremental_xref_entry ?11:41.11 
tor8 the word order seems rather haphazard :)11:41.34 
Robin_Watts or pdf_xref_entry_is_incremental11:41.48 
tor8 yes, pdf_is_incremental_xref_entry or pdf_xref_entry_is_incremental would sit better with our existing naming conventions11:42.28 
Robin_Watts i am tempted to take his commits as is, then produce a followup commit with fixes in. How do you feel about that?11:42.55 
tor8 I think having "is" first is more in line with what we've done before, but "entry is incemental" passes the "read it aloud" test better11:43.04 
Robin_Watts I think I'd lean towards the former, personally.11:43.44 
  (with our current naming scheme).11:44.08 
  If we were doing modular naming pdf_<module>_operation then the latter would be better.11:44.44 
tor8 Robin_Watts: yes, no argument from me there.11:45.13 
  I'm not convinced of the big picture approach with the incremental xref updates, having to manually ensure that new objects live in the right xref section strikes me as fragile11:45.33 
Robin_Watts tor8: Well, presumably the idea is that all 'high level' modifications to the doc should do the "ensure_incremental" call.11:46.23 
tor8 couldn't pdf_create_object, update_object, delete_object, etc do that automatically?11:46.37 
  possibly gated by a "modify in place / modify incrementally" flag in the xref/document11:47.11 
Robin_Watts pdf_create_object calls pdf_get_new_xref_entry, which ensures that we are in the incremental area.11:49.20 
  Likewise pdf_update_object11:49.56 
  and pdf_delete_object11:50.15 
tor8 right, and we need the ensure_incremental_xxx calls so we don't modify old objects in-place11:51.43 
Robin_Watts tor8: I believe so.11:52.04 
tor8 perhaps adding a "mutable" flag to pdf_obj and making them be immutable by default or some other copy-on-write scheme?11:52.13 
  if a pdf_obj is edited, make a clone of the original state and put that in the old xref and move the now-mutable pdf_obj pointer into an incremental section?11:53.03 
Robin_Watts tor8: except not all pdf_obj's are in the xref.11:53.35 
  and when I modify a pdf_obj, I can't get back to the 'parent' obj.11:53.56 
tor8 so each obj would need a parent pointer to be able to go all the way back up11:53.58 
Robin_Watts and that would present problems; suppose I put the same pdf_obj into several dictionaries?11:54.43 
tor8 reparenting would modify the 'mutable' flag of the new container11:55.48 
Robin_Watts eh? Suppose I create a dictionary, D. I fill it with some keys and int values.11:56.32 
tor8 the mutable/parent flag could just be a reference to the xref slot it lives in11:56.38 
Robin_Watts I then put D into another dictionary E.11:56.59 
  and I put D into another dictionary F.11:57.08 
  where would D->parent point ?11:57.17 
tor8 then E would be copied on write, and F would be copied on write, and D->parent would be irrelevant11:57.25 
  until the next time the pdf is saved, at which time existing objects would have to be frozen...11:57.51 
Robin_Watts No, I don't see how that can work.11:58.05 
tor8 the parent is only needed to figure out which xref slot to "clone" when doing copy-on-write11:58.21 
  okay, let's consider another approach. the parent one has problems.11:58.50 
Robin_Watts the parent one is unworkable, I believe. so by all means let's consider another approach.11:59.13 
tor8 each pdf_obj contains the original xref object number taken while parsing the object from disk11:59.36 
Robin_Watts ok.12:00.20 
tor8 modifying any pdf_obj with an object number would trigger a cloning operation. go back to the original root pdf_obj of that object number, make a deep copy and replace the xref->table[num].obj pointer with the copy. then recursively clear the object number flag beginning from the root pdf_obj.12:00.58 
  and insert the original root object in the incremental xref section12:01.36 
  there's still the issue that we can put the same instance of an object in multiple locations12:02.20 
  but that won't bite us until we have to freeze during saving12:02.33 
Robin_Watts tor8: Would insert the *copied* root object in the incremental xref section.12:02.41 
tor8 Robin_Watts: no, it'd make a copy of the original for safe keeping12:03.06 
Robin_Watts tor8: The original object needs to stay where it was, unchanged.12:03.23 
tor8 otherwise the user would be holding on to the wrong opointer12:03.25 
  of course, we could just do this with an immutable flag, forbid all modifications on immutable objects, and make a "clone-as-mutable" function12:04.02 
  that'd probably be better in the long run as then it's more clear what's edited and where12:04.16 
  but it does mean we need deep and shallow cloning functions to be called in the right places12:05.02 
  making all modifications go into the incremental xref automatically would be more convenient12:05.34 
Robin_Watts I'm still struggling with this in my head.12:07.12 
tor8 Robin_Watts: consider pdf_dict_puts(dict, key, val) ... if the dict is copied and the *copy* is put in the incremental section12:07.37 
  which one would be updated?12:07.46 
  and how would we notify the user that 'dict' needs to point to the new copy12:08.02 
Robin_Watts ok. So the purpose of the deep copy is to leave us with an identical object which we can leave where it was.12:08.43 
tor8 yes.12:09.14 
Robin_Watts IF we do this, we should have a document (or context) flag to mean "all updates should be incrementalised"12:09.45 
tor8 I'm not sure why we'd need to though, maybe it's enough to just move the root object to the incremental xref section12:09.59 
Robin_Watts so that we can still load a document and mess with it, and store it without having to use incremental updates.12:10.05 
tor8 and zero out the old xref sections cached pointer12:10.28 
Robin_Watts tor8: Assuming that saving works by byte copying the old file, sure.12:10.50 
tor8 Robin_Watts: actually, that shouldn't matter :)12:11.16 
Robin_Watts tor8: Why not?12:11.30 
tor8 if we rewrite a new file, xref section by xref section, we'd reload the original object from file from its original offset12:11.56 
Robin_Watts Fair enough, but...12:12.25 
tor8 so just detaching the modified object from the old xref entry's cache slot and putting it in the new incremental section's slot should suffice12:12.26 
Robin_Watts If I come to save a file incrementally, I need to ensure that I get exactly the same set of bytes out for the existing sections as I did before.12:12.34 
  Otherwise digital signatures etc fail.12:12.46 
tor8 Robin_Watts: yes, an incremental save would always copy the original bytes and append new data to it12:12.58 
Robin_Watts and we can't guarantee that we read in/write out and get the same.12:13.05 
  OK, so the cost all this is a an extra pointer for every pdf_opj12:13.34 
  and a flag in the context.12:13.42 
tor8 Robin_Watts: or an extra int (for the object number)12:13.51 
  or do you mean a pdf_xref_entry pointer?12:14.24 
Robin_Watts We need to be able to find the parent xref entry.12:14.46 
  Whether that's done with a pointer, or an int, I don't care.12:15.08 
  is an int enough?12:15.26 
tor8 a pointer to the root object wouldn't be enough12:15.26 
  but I think an int should suffice, depends on whether the 'incremental' xref section shadows it12:15.47 
  any objects in the incremental section would have 0 as their object number12:16.02 
Robin_Watts An int is enough, only if it's enough for us to find "the most recent version of this object"12:16.09 
tor8 a pdf_xref_entry is enough if all we want is to zero the cached entry->obj entry and then recursively zero the number (to flag the root object and children as having been moved to the incremental section)12:17.33 
  however, the pdf_xref_entry table can be realloced...12:17.49 
Robin_Watts True.12:18.02 
  OK, int wins then.12:18.06 
tor8 and I think we only care about latest object, at a given "xref level" anyway12:18.27 
Robin_Watts say that last sentence again with different words.12:18.55 
tor8 we only care about the most recent version of an object / xref slot12:19.28 
Robin_Watts ok.12:19.44 
tor8 and if we want older versions, we can "pop" xref sections off the stack12:19.56 
Robin_Watts objects can go from 0...65535 right ?12:19.59 
tor8 0..2^31 I believe12:20.14 
  the "old" pre-compressed object stream xref format has 99999 as the generation number limit, which served double purpose for the linked list of "free" xref slots12:22.07 
  which is a feature I don't think anybody relies on anymore12:22.32 
Robin_Watts "The maximum generation number is 65535" according to my PDF dead-tree book.12:23.56 
tor8 oh right. I was just going by the number of digits in the generation field of the fixed length record format of the xref table12:24.29 
Robin_Watts WThe xref table must contain one entry for each object number 0 to the maximum object number used in the file, even if one of more of the object numbers in this range do not occur in the file"12:25.04 
tor8 which brings us to another question... generation numbers...?12:25.05 
Robin_Watts generation number = which xref section you are in.12:25.24 
tor8 not in any file I've ever seen :)12:25.40 
  I think the number of times I've run into non-zero generation numbers can be counted on one hand12:26.35 
Robin_Watts To avoid pdf_obj's growing in size, we could use bitfields.12:26.37 
  refs can be 16 bits.12:26.43 
  kind/marked can become bitfields.12:26.51 
  then we can use an int for the object number.12:26.59 
  front door, brb.12:27.05 
tor8 Robin_Watts: we probably could, but I suspect malloc overhead is going to make any savings irrelevant12:27.48 
kens chrisl ping12:28.08 
chrisl kens: pong12:34.16 
kens chrisl I finished the filenameforall for NTFS, and it was a bit more involved than I'd hoped (mostly due to the UTF8/WCHAR stuff). I was about to embark on the OS/2 and DOS, but I'm now feeing wary of this, as I have no way to even compile the code, let alone test it12:35.11 
  I was thinking maybe we could leave these as they are and note it. Then if anyone complains we can ask them to write it :-)12:35.35 
  What do you think ?12:35.40 
chrisl kens: sounds fine. I don't think it's even worth a bounty.....12:36.05 
kens My feeling as well, both OS's are long obselete.12:36.20 
  I'll do some more testing and then push my brnch to Casper.12:36.40 
chrisl Okay, sounds good12:36.55 
kens It does look like the Linux code 'ought' to enumerate sub-directories, but it doesn't for me, so maybe I don't undertand the code.12:37.11 
  Or perhaps I don't understand the file pattern, it seems willing to cater for wildcards mid-pattern....12:37.41 
chrisl I haven't looked at it - I'm struggling with a bit of a headache today12:38.23 
kens There's no hurry....12:38.32 
  chrisl btw the file that James CLoos attached from Cairo still has a full page transparency group12:39.46 
chrisl kens: Is it the page group, or is it still a stupid sub-group?12:40.24 
kens The page is defined with a group[12:40.35 
chrisl Well, that's normal, isn't it?12:40.53 
kens I thought not, I thought that defined the whole page as transparent12:41.06 
chrisl Or is the page group supposed to be implicit?12:41.11 
kens Beats me, I don't remember this stuff12:41.21 
  Well, looks like he's correct, any transparency in the PDF file and ps2write reverts to rendering the whole thing12:47.07 
chrisl Does pdfwrite do the same?12:47.30 
kens Not when its got a high compaitibilty level, checking low levels now12:47.49 
  It would seem that pdfwrite (CompatibiltyLevel=1.3) doesn't do that.12:48.43 
chrisl Hmm, that's....... strange12:48.57 
kens Ah, but it includes transparency in the PDF file which is clearly wrong12:49.01 
  So something is broken12:49.12 
chrisl Oops! What about the PDF subset(s)?12:49.32 
kens I got the switch wrong, case error12:49.46 
  Its exactly the same as ps2write, a full page image12:50.12 
  I'm not sure how optimisable this is, I'll have to talk to Michael12:50.55 
  away from keyboard briefly12:51.26 
chrisl kens: pdf_main.ps line ~1860 - If the page has a Group, enclose contents in transparency group. (Adobe Tech Note 5407, sec 9.2)12:55.33 
Robin_Watts tor8: sorry, heating engineer here.13:32.43 
  At the moment on a 32bit system pdf_obj_s is 7 4 byte words.13:33.22 
  I think we can add the int and reduce it to 6.13:34.02 
  by pushing 'd.sorted' into a bitfield.13:34.34 
  along with kind and marked.13:34.38 
  I wrote a malloc lib (using 2 splay trees), which meant that the minimum allocated block size was 28 bytes.13:34.58 
tor8 Robin_Watts: go for it.13:35.35 
Robin_Watts OK, so I reckon we can take the first 3 of Pauls commits with only needing a small fixup on the last one to do with correcting on a malloc failure.13:36.09 
  and we can discuss the 4th with him when he gets back.13:36.20 
tor8 okay.13:37.15 
kens chrisl so if the page has a group, the whole page is transparent ?13:42.40 
chrisl kens: it seems so. But just removing that implicit group doesn't seem to help with that file, so......13:43.31 
kens wonders if its possible to have a trnasparent file which does not have a group at the page level13:43.37 
  chrisl when I removed teh group I got a blank page....13:43.50 
Robin_Watts joy. might need a new hot water cylinder.13:44.23 
kens I know Michael is travelling today I'll try and remember to ask him abhout this tomorrow13:44.27 
Robin_Watts diameter of hot water cylinder = 50cm13:44.35 
kens Oh new cylinder, much expensive13:44.40 
chrisl kens: I think that's best....13:44.42 
Robin_Watts width of loft hatch = 48cm.13:44.55 
kens Robin_Watts : so how did you get it up there i the forst place ? Through the roof ?13:45.10 
Robin_Watts kens: it was up there before we converted the garage. hence no loft hatch.13:45.29 
kens Oh....13:45.36 
Robin_Watts I can get slimline dual cylinder replacements @ 475mm.13:45.56 
kens ooh that's tight still13:46.06 
Robin_Watts dual coil replacements, I mean.13:46.08 
chrisl Robin_Watts: if there's wooden trim around the hatch, you might get away with just removing that13:46.12 
kens I was thining that too13:46.20 
  lot of effort though13:46.27 
Robin_Watts And interestingly, as I am a company, I can get a solar heating system fitted and get all the money back from the government.13:46.45 
kens Solar water heating ? I wouldn't do that.13:47.03 
Robin_Watts kens: I am dead keen on the idea.13:47.20 
  though I know you've had problems.13:47.26 
kens We have it, its *way* more trouble than its worth, and you'll need a *much* bigger tank13:47.42 
Robin_Watts kens: No mainline gas here, so we have to buy oil. It's expensive.13:47.43 
  kens: Right, but if I have to replace the tank anyway, and the government will pay for it...13:48.06 
kens A major problem in this country is the variability between summer and winter sun. If you have enough tubes to make deent amounts of hot water in the winter, then it makes so much in the summer that you can't use it all13:48.34 
Robin_Watts kens: And how is having too much hot water a problem? :)13:48.55 
kens So either you throw hot water down the drain, or the circulating fluid gets over hot, and soldifies13:49.10 
Robin_Watts kens: That sounds... suboptimal.13:49.48 
kens Which is expensive, smelly and difficult to do yourself, or explodes the tubes, which is expensive, and difficult top do yourself13:49.52 
Robin_Watts What circulating fluid do you use? ethylene glycol ?13:50.16 
kens Ideally you need a sunshade on the tubes13:50.18 
  Robin_Watts : I think tha'ts correct yes13:50.27 
  We have to watch ours, the fluid can reach well over 120 degrees13:50.47 
Robin_Watts At what point does it start to solidify?13:51.06 
  Is it a water/glycol mix or something, and the water boils off ?13:51.32 
kens Its progressive, it gets sludgy throughout its life as I understand it (volatiles biol off) but the hotter it gets the worse the problem is13:51.43 
Robin_Watts kens: So would a 'service' once a year solve it ?13:52.02 
kens The chap we use reccomends every 2 years I think13:52.20 
Robin_Watts ok, I can easily live with that, I think.13:52.35 
kens But that really means we should have a tank twice the size we do13:52.36 
Robin_Watts kens: Know how big your tank is offhand ?13:52.53 
kens 50 litres maybe ? I'm not certain13:53.04 
Robin_Watts I can get slimline tanks in 180 or 210 litres.13:53.30 
kens is not an expert....13:53.44 
  I suspect there were a lot of cowboys around when this system was fitted.13:54.06 
Robin_Watts yeah, I like to think the technology should be mature by now.13:54.22 
kens would not count on that, I think there are *still* a lot of cowboys around.13:54.38 
  On the plus side, I think the worst ones went into PV13:54.51 
  Essentially its a plumbing problem with added complications13:55.04 
  And I hate plumbing13:55.12 
  oho !13:55.54 
  mvrhel_laptop : are you really here ?13:56.01 
mvrhel_laptop kens: yes for a bit13:56.11 
  off to airport in about 2 hours13:56.23 
kens excellent. I need some help understanding transparency13:56.26 
  Yell if this is not a good time13:56.32 
mvrhel_laptop no this is a good time13:56.38 
kens OK so this is bug #69436013:57.04 
  Using ps2write, the whole page gets rendered.13:57.16 
  The page has a transparency group, which (I think) is why this happens.13:57.30 
  Is it possible to have a transparent PDF file where the page does *not* have a transparency group ?13:57.51 
mvrhel_laptop kens: I think so. You can specify an alpha value I thought in a graphic state. let me double check13:58.53 
kens Presumably in that case you could also specify a SMask for an image XObject without having the page be in a transparency group ?13:59.33 
mvrhel_laptop yes13:59.58 
  I think that is correct14:00.14 
kens OK last question, do you have an example file constructed that way ?14:00.39 
kens suspects that's the hard question14:00.52 
  I'd like to test the behaviour of ps2write with such a file14:01.10 
mvrhel_laptop we may have one in the test suite that ray_laptop constructed long ago when we started tying the softmask in the graphic state like it should be14:01.26 
Robin_Watts kens: It's trivial to make one.14:01.43 
mvrhel_laptop kens: there you go14:01.54 
kens Robin_Watts : if that's so, can you make me one please ?14:01.57 
Robin_Watts Sure.14:02.03 
mvrhel_laptop kens: see page 550 in the pdf spec14:02.44 
kens mvrhel_laptop : I'll look now14:02.56 
mvrhel_laptop the soft mask need not be tied to a grpu14:02.57 
  group14:03.01 
  but can just work on individual graphic obects14:03.11 
  same with the CA ca setting14:03.29 
kens Right, then it should not be required fo Cairo to make the whole page transparent. I need to see what Poppler does with this file as well. Once I test ps2write I'll bott a VM and try that. Thanks!14:04.14 
mvrhel_laptop kens: glad that I was of some help14:05.16 
Robin_Watts http://ghostscript.com/~robin/trans_tiger.pdf14:05.37 
kens I find transparency is just enough to overload my goldfish memory....14:05.47 
  Got it thanks Robin_Watts14:05.59 
Robin_Watts I just added /ca 0.5 and /CA 0.5 to an ExtGState.14:06.07 
kens Good enough for me :-)14:06.15 
mvrhel_laptop kens: I know the feeling. I am having the same feeling with DeviceN and overprint right now with my attempts to get overprint simulation working14:06.36 
kens yeah that all looks pretty hideous14:06.56 
mvrhel_laptop I need to do some work on paper today to determine if this is even possible14:07.00 
  the Ghent tests are killing me14:07.08 
  I think the difficulty is in the DeviceN colors that mix the spot and process colors (CMYK) and then also have just a lone spot14:07.45 
kens They are fairly comprehensive on overprint testing. I have an open bug for pdfwrite that says I don't handle most (any ?) of them correctly.14:07.46 
mvrhel_laptop both get converted to CMYK alternate space for CMYK device and so the overprint blending simulation really cant work in that case14:08.12 
kens err, Robin_Watts the problem with the tiger file is that whole content is now transparent14:08.29 
Robin_Watts kens: right. Why is that a problem?14:08.42 
mvrhel_laptop I may end up having to abandon the overprint simulation 14:08.53 
kens So I can't tell if pdfwrite is rendering the whole content to an image, or just the transparent bits14:08.57 
Robin_Watts Would you rather I made just the second half of the content transparent?14:09.05 
kens Robin_Watts : that would be good I think14:09.21 
  as long as some portion of it is not transparent14:09.28 
Robin_Watts http://ghostscript.com/~robin/trans_tiger2.pdf14:11.08 
  Left hand whiskers are solid, right hand are transparent.14:11.18 
kens Shows a blank page for me, let me download it14:11.28 
Robin_Watts kens: If you want I can pdf clean it, then it'll work in pdf.js14:12.01 
kens OK Acrobat shows it fine14:12.04 
  If needs be I can save it from there thanks14:12.28 
Robin_Watts ok.14:12.33 
kens OK ps2write still renders the whole page as an image. THat may be sub-optimal14:13.51 
mvrhel_laptop kens: some of the work that ray_laptop did, to ensure only the bands that had transparency actually ended up pushing the pdf14 device may be of help to you with this14:33.45 
  not sure14:33.47 
  that was for the clist 14:33.54 
kens mvrhel_laptop : ray mentioned it on the bug thread14:34.05 
mvrhel_laptop so it may not be helpful, but I thought I would mention it14:34.09 
  oh ok14:34.15 
  just did not want you to have to reinvent the wheel14:34.32 
kens I'm going to pass on doing anything more with this bug until he's done the clist for high level devices stuff :-)14:34.32 
mvrhel_laptop sounds like a good idea14:34.42 
kens But I would liek to see what Poppler makes of tehse PDF files14:34.47 
mvrhel_laptop yes14:34.53 
kens WHich means building Poppler, which means getting a new version of automake.....14:35.02 
  I thin I'm lost in dependencies....14:35.16 
chrisl kens: can't you just install it?14:35.24 
kens chrisl, working on that now14:35.32 
  chrisl I thought I would get the poppler source from Git and build it.... May have been a bad plan14:36.57 
chrisl kens: bit of a nightmare, IIRC, I don't think I ever got it to build, but not sure.....14:37.37 
kens failed again 'cannot find install-sh'. I think I'll give up14:39.22 
mvrhel_laptop brb14:39.46 
chrisl hmm, install scripts should come with the package14:39.47 
kens I told it to install poppler, it may not be bang up to date but it'll do14:40.30 
chrisl Hmmm, I dunno how to tell pdftops how to not compress the entire file14:41.13 
kens Maybe you can't14:42.00 
henrys I'll be in and out today - it's probably time for my dog, he's 13 1/2 and not doing well.14:42.03 
chrisl kens: so, pdftops produces a 2.3Mb compressed PS file from trans_tiger2.pdf - "feels" like a full page image to me14:42.19 
kens me too14:42.26 
  If you post it somewhere I'll decompress it and look closely.14:42.48 
  Since your 10 minutes ahead of me....14:42.57 
chrisl kens: http://www.ghostscript.com/~chrisl/trans_tiger2.ps14:43.50 
kens THanks.14:44.17 
chrisl Oh, crap, no that's ours!14:44.24 
kens ROFL14:44.31 
  9.06 output14:44.44 
chrisl So, where the hell did pdftops put it's file???14:44.47 
kens beats ne14:44.58 
chrisl Ho! Found it - and it's 4.7 Mb!14:45.33 
  kens: same like above14:46.20 
ray_laptop kens: the pdf14 compositor always write the entire page out as "transparent". It's only in clist mode where we can avoid using the pdf14 compositor for some bands that we can have some bands rendered w/o it.14:48.16 
  chrisl: have you looked at the problem from cust 532 ?14:48.47 
chrisl ray_laptop: no, I haven't - which one?14:49.04 
ray_laptop it came in after you were gone on Friday.14:49.45 
  chrisl: "Issues with Fix for a Crash"14:50.17 
kens ray_laptop : thanks I understadn now14:50.33 
chrisl ray_laptop: looking now - trying to decipher what they're talking about.......14:50.41 
ray_laptop henrys: A PCL question just came in from cust 801. It's rather vague, but if you can handle it, that would be great. If not, let me know. Subject: Regarding PCL language14:52.07 
kens So Poppler also creates a full page image. That's fine, we cna leave it alll until after Ray gets his clist enhancement sorted14:52.13 
chrisl kens: question is: does it do it so quickly just because it's using 300dpi?14:52.47 
ray_laptop chrisl: the follow up email from Naganuma-san has the 'diff' which helps (I think)14:53.02 
kens chrisl I would imagine so yes. When I compared teims at 300 dpi we were basically the same14:53.09 
henrys ray_laptop:well I was going to if marcosw didn't, he likes to have first crack at these, but if you'd like me to answer it now I will.14:53.17 
kens chrisl don't forget, at 720 dpi we produce some 6 times the amount of data....14:53.39 
chrisl kens: well, that seems all good, then!14:54.25 
kens chrisl I believe so, I will write some more into the bug thread shortly, its already closed so there's nothing more to dfo just yet14:54.49 
chrisl kens: BTW, it looks to me like pdftops produces a full page image for the file posted on the bug14:54.57 
ray_laptop henrys: I'm not sure if marcosw knows if there are options that are not in the docs (i.e., whether or not the docs are up to date)14:54.59 
henrys ray_laptop:I'll send marcosw and support the answer, then he can do with it as he pleases.14:56.07 
kens chrisl it seems to always to do so, just as we do14:58.57 
chrisl kens: for much the same reasons, I imagine!14:59.19 
kens chrisl I expect os, yes14:59.29 
chrisl ray_laptop: can you e-mail/post the updated wheel.exe, please - wtf can't they use a standard image format?!?!15:00.16 
henrys ray_laptop:I was just talking to chrisl about how I was kicking myself for not giving language switching a higher priority.15:07.55 
ray_laptop chrisl: The updated 'wheel' is on their FTP site, but I've uploaded it to ghostscript.com/~ray15:25.34 
chrisl ray_laptop: thanks - I struggling to find the e-mail with the ftp details - I know I've got it, can't remember where......15:26.08 
ray_laptop chrisl: I think the reason they don't use a "standard" format is that they have the 'tag' plane maintained in the data as a separate channel15:26.15 
  chrisl: see private chat15:29.11 
  trying to plow through my emails, then get into the hairier issue from cust 801 (reverse page order printing)15:38.02 
  If all they did was PDF it would be easy :=/15:38.17 
henrys ray_laptop:so bgprint and PCL?15:38.31 
  tested?15:38.36 
ray_laptop henrys: BGPrint is coupled into the NumRenderingThreads > 0 weekly testing on Friday AM (Thursday midnight or something)15:39.27 
  henrys: BGPrint is 'invisible' to the languages since it's buried in the 'output_page' function15:40.05 
henrys PCL does have some globals though but I think they are okay.15:40.38 
ray_laptop as far as the parsing thread is concerned, the page was 'printed' once the bg thread starts15:40.43 
  henrys: the only globals of concern would be ones that the parsing thread sets that it expects the print_page procedure to use on the next page.15:42.01 
  then the current printing thread may or may not use the one for the next page on the page currently printing in the background15:42.54 
  henrys: and they would be localized in a specific device15:43.23 
  henrys: the upshot is that I am sure that PCL (or even XPS) is fine with BGPrint=true15:44.20 
  at least for the devices that enable it and that we've tested.15:44.46 
Robin_Watts tor8: pdf_obj shrinking patch on robin master15:45.32 
henrys ray_laptop:I sent my answer to marcosw if he wants me to send it I will thought not getting roped in is appealing.15:47.28 
ray_laptop henrys: well, since I am usually communicating with them, should I go ahead and send it to them ?15:48.10 
  just so they have (mostly) a single point of contact ?15:48.37 
henrys ray_laptop:whatever you think.15:51.17 
ray_laptop henrys: thanks for that email. I'm sure that will help them.15:51.21 
  henrys: since marcosw isn't around (AFAICT) I'll go ahead and send it. He should see my version quickly enough that they won't get two replies.15:52.11 
tor8 Robin_Watts: drop the /* char sorted; */ comment?15:52.21 
  looks good otherwise15:52.37 
Robin_Watts oops. will do.15:52.50 
  tor8: oh, eck.15:55.11 
  pdf_obj's don't have a pdf_document pointer in them.15:55.26 
ray_laptop marcosw: (for the logs). I forwarded henrys' reply to cust 801 so you don't need to.15:55.55 
tor8 Robin_Watts: r.xref does though15:56.13 
ray_laptop hopes he sees my reply before sending another one15:56.29 
tor8 and there's a fz_context a well15:56.31 
Robin_Watts Right, but we are proposing storing an int for all types.15:56.46 
tor8 those could probably be merged and have the pdf_document at the fz_context's place15:56.52 
Robin_Watts tor8: right.15:57.03 
tor8 I believe the fz_context is a remnant from before the fz_obj -> pdf_obj rename15:57.22 
Robin_Watts so replace the fz_context with a pdf_document.15:57.27 
  replacing ctx with ctx_ and rebuilding :)_15:57.56 
  All the errors are in pdf-object.c15:58.24 
tor8 yeah, it's an opaque type :)15:58.31 
Robin_Watts D'Oh.16:00.22 
  So, mostly it's for the context for malloc/free etc.16:00.38 
tor8 Robin_Watts: how about a pdf_associate_obj(pdf_obj *obj, pdf_document *doc, int number) to (recursively) set the object ownership (with a better name)16:00.40 
  yeah, in all but the resolve_object instance it's for malloc/free16:00.51 
Robin_Watts but sometimes it's for the context used with errors.16:00.54 
tor8 and for try/catch16:01.09 
Robin_Watts try/catch is... interesting.16:01.23 
  we can't have 2 threads using the same ctx for errors at the same time.16:01.37 
tor8 pdf_document is limited to a single thread though... but with all the caches and objects used as keys it gets ... interesting16:02.25 
  I have a feeling we should sometimes (you, me, and paul) have a get-together and bash out some of these things in person16:02.53 
kens Sounds like a meeting in Copenhagen :-)16:03.30 
ray_laptop kens: I'm going to take a crack at responding to Hiren if that's OK. I was going to include the relevant section of 'sample.ps' created by PSCRIPT5.DLL that shows him what's going on.16:04.01 
kens ray_laptop : please do16:04.10 
ray_laptop kens: ta16:04.16 
Robin_Watts tor8: Are you volunteering for more travel?16:04.34 
kens ray_laptop : you might also ask why he's doing this PDF->PS->PDF16:04.39 
Robin_Watts Looking in docs/overview in the multithreaded section, I see rule 2:16:04.50 
kens round-tripping is evil16:04.52 
Robin_Watts "The document is bound to the context with which it is created."16:05.01 
  so that's fine, we wouldn't be breaking that.16:05.12 
ray_laptop kens: They are using gs on the back end of a Windows (PS) printer and they probably want PDF out.16:05.26 
tor8 make that documents, streams and pdf_objs IIRC16:05.40 
kens ray but they are starting with a PDF ......16:05.55 
tor8 Robin_Watts: travel within europe is fine, it's the long hauls and annoying immigration procedures that bother me most16:06.09 
Robin_Watts pdf_objs would be bound to the document, which would be bound to the context.16:06.26 
ray_laptop kens: I don't think they know WHAT the customer is printing from16:06.42 
tor8 Robin_Watts: yes. except when they're not bound to a document (yet)16:06.49 
Robin_Watts tor8: I propose to make them all be bound to a document.16:07.06 
tor8 (like during parsing, or when creating stuff)16:07.08 
kens ray_laptop : I'm confused then. How are they ending up with PostScript which is secured against distilling if they don't start from a PDF ?16:07.15 
Robin_Watts i.e. instead of ever passing an fz_context, I would pass a pdf_document.16:07.26 
tor8 use pdf_document instead of fz_context for pdf_new_xxx?16:07.28 
Robin_Watts yes.16:07.33 
tor8 right. sounds good.16:07.40 
  Robin_Watts: except one thing ... don't you transfer pdf_obj's between xrefs when doing the linearisation/renumbering?16:08.31 
ray_laptop kens: the customer is printing a PDF file to their windows driver (which happens to be a PS->gs coupling). It's the Adobe/Microsoft PSCRIPT5.DLL that is putting in the 'no distill' stuff16:08.42 
kens Right, so they are starting with a PDF file16:09.02 
Robin_Watts tor8: Possibly. If so, there will have to be a 'pdf_obj_transfer' function or something.16:09.07 
kens converting to PS and back to PDF is a Bad Thing (TM)16:09.20 
ray_laptop undoubtedly using a PostScript pass through from the Adobe Reader 'print' function16:09.21 
tor8 fair enough. or pdf_own_obj(obj, doc, number) or something like that which would be used when saving mutated objects to freeze the incremental update xref16:09.58 
ray_laptop kens: hmm... I was admonishing Hiren about removing the "no re-distill" code and why he shouldn't be doing it because it would create an unprotected PDF, but that's exactly what gs does from the original :-/16:34.22 
  kens: unless I'm missing something.16:34.41 
kens PDF or PS output ?16:35.05 
ray_laptop goes to check the PDF spec permissions16:35.10 
  kens: PDF output16:35.25 
kens Umm, I have not tried this recently (oor possibly at all)16:35.42 
ray_laptop gswin32c -sDEVICE=pdfwrite -o x.pdf sample.pdf16:35.43 
kens ray_laptop : if its a protected fiel, that shoudn't work16:36.01 
ray_laptop where sample.pdf has the Encrypt in the trailer x.pdf doesn't16:36.12 
kens I guess iits debatable16:36.28 
ray_laptop kens: is that an 'oops' ?16:36.37 
kens Presumably the file is 'allowed to print'16:36.39 
ray_laptop kens: according to Hiren, it has "OK to print" (I am looking now)16:37.11 
kens I'm not sure whhat we can do about that. We can't use teh original passwords (don;t know them).16:37.22 
ray_laptop kens: the PDF interpreter has to know them right ?16:38.49 
kens ray_laptop : not if the file is only secured with an owner password, and allowed to print16:39.14 
  But its been a very long time since I looked at the (rahter poor) PDF security stuff16:39.37 
  I'm going to have to go, need to cook dinner16:39.54 
  night all16:40.05 
ray_laptop hmm... mutool clean also removes the encryption 16:41.55 
Robin_Watts shhh!16:42.03 
ray_laptop hmm... the document _does_ have 'content copying' allowed and 'content copying for accessibility' allowed16:45.14 
  but once we process it, we no longer have the disallowed things set (changing the document, document assembly, and page extraction)16:47.01 
  strange. Acrobat won't let me save it as an 'optimized pdf' but it WILL let me save it as a PDF/A17:06.43 
  but Acrobat creates the PDF/A with the permission bits the same17:07.08 
  Robin_Watts: tor8: anybody: What's the other linux pdf to ps converter ? (besides us)17:08.01 
  oh, I guess it's poppler17:08.47 
Robin_Watts not a clue, sorry17:08.48 
ray_laptop (pdftops -v)17:08.56 
Robin_Watts oh, pdf to ps, yes, probably poppler.17:09.04 
dogisfat Is there a reason that ghostscript would shift all objects on a page to be centered around 0y?19:19.55 
Robin_Watts nope.19:20.56 
dogisfat When I look at the PS file that I am feeding GS there are no pageoffset commands and all of the moves/lines are positive. When I run the PS file through a driver it ends up making moves/lines to negative y values that seem to center the image around 0y.19:27.01 
Robin_Watts Any translate commands?19:30.41 
  Any code to set the matrix ?19:30.53 
bdam Wondering if anyone might be able/willing to answer GS printing question.19:32.51 
Robin_Watts bdam: Ask your question, don't ask to ask :)19:34.01 
bdam Fair enough. I'm printing 200+ page manuscripts with GS's mswinpr2 driver. They are primarily monochrome but will have shading/dithering and other design elements on the title/chapter pages.19:35.45 
  I can't seem to get the shading to print as it would if manually printed via a regular Windows driver.19:36.32 
  If I set bitsperpixel to 1 it produced pronounced banding, set it to 4 and the shading has a pronounced pattern, set it to 24 and the print jobs become so large they just won't print.19:37.25 
Robin_Watts What printer are you going to? (not so much model as technology)19:38.08 
  mono laser? 4 ink inkjet ?19:38.24 
dogisfat Robin_Watts: Is there a trace output I could enable which would show translations/matrix modifications? The setup in the PS file is beyond me.19:38.56 
bdam It's a canon laser (imagerunner 7105)19:38.59 
  mono19:39.16 
Robin_Watts bdam: OK.19:39.36 
  So, if it was me, I'd try using gs to print to a 1bpp bitmap and look to see if the results there were what I expected.19:40.24 
  Are you OK using a command prompt ?19:40.34 
  gswin32c.exe -sDEVICE=pbmraw -o out.pbm -r300 -dLastPage=1 in.pdf19:41.23 
  That will print the first page of in.pdf to out.pbm19:41.33 
bdam sure. For full discloure I'm doing this via PDF Creator using so it'll take me a few minutes to set up GS proper.19:41.51 
  sorry, it's using GS 9.0719:42.30 
Robin_Watts Are you complaining that if you print the page to a printer using a 'normal' windows printer driver, that the shading/dithering it uses is different to that used by gs ?19:46.36 
bdam Correct although this isn't so much a complaint as discovering if there's some middle ground I've missed. If printing the PDF manually it's fine but via GS I seemingly have a choice of banding, distinct patterns, or files too large to print. 19:48.40 
Robin_Watts bdam: Well, there is no 'correct' way to convert from contone to mono.19:49.30 
  So we have various ways built into gs.19:49.44 
  You're probably getting our standard dithering routines.19:49.53 
  You can change the halftones used.19:50.08 
  For top quality, you might want to consider using a different device, and getting error diffusion.19:50.37 
  but we'd need to see an example to be able to comment properly.19:50.56 
bdam When you say device, you mean using a different GS device type (ex IJS) or a different printer?19:54.17 
Robin_Watts bdam: I mean printing to tiff or something.19:54.52 
  and then maybe reprinting the tiff.19:55.00 
dogisfat It would seem I have found my problem, OSX is somehow corrupting the PS file19:56.58 
  Why would supplying a page size and then a custom page size make a PS file improperly interpreted?20:04.18 
bdam Thanks for the help Robin, I made some progress but I'm done for the day, just wanted to thank you for your guidance.20:57.54 
Robin_Watts bdam: no worries. I'll be here tomorrow too,20:58.10 
  as will others.20:58.14 
Gigs- could someone mark the file attached to http://bugs.ghostscript.com/show_bug.cgi?id=694372 private please21:30.07 
  libpng seems to fail building21:57.22 
  my fault, nevermind22:01.59 
  Robin_Watts: can you get that bugzilla file for me22:04.11 
  have a second private file at http://bugs.ghostscript.com/show_bug.cgi?id=69437322:24.51 
  please mark22:24.53 
  I thought this last one might be running into the colorant limit, but I tried upping the soft limit to 16 and it still fails22:26.35 
  instead of CMYK it defines a deviceN colorspace with 4 colors that effectively replace CMYK22:27.01 
Robin_Watts Gigs-: Marking as private now.22:50.12 
  should be private now?22:50.45 
 Forward 1 day (to 2013/06/25)>>> 
ghostscript.com
Search: