IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2011/12/13)2011/12/14 
chrisl kens: I think the problem is slightly different to what I put in the e-mail - pdfwrite (I think) gets the "right" font, but *something* seems to be hanging around from the original loading - I'm experimenting now.08:08.31 
kens You are ahead of me, I'm still reading last nights IRC logs.08:08.51 
  I may ask you some dumb questions i na minute08:09.01 
  OK I've hacked zchar_set_cache so that it executes the CDevProc, I now get properly spaced text, but the wrong glyphs again.08:19.13 
  Which test file are you suing chrisl ?08:21.16 
chrisl I've been using Bug692320.pdf08:22.29 
kens OK. I tried using thrane.pdf and most of the text goes missing.08:22.44 
  692320 is a bit complex and takes a long time to process08:22.59 
chrisl I'm only processing the first page - I'll switch to thrane.pdf08:23.23 
kens No don't do that, I'm not sure what's going on there, but it has 2 missing fonts.08:23.41 
  Just cracked open the PDF file and most of the text really is missing, don't know why.08:24.44 
chrisl I'd expect thrane.pdf to work because it seems to use Identity ordering, which is what the default fallback uses initially08:24.59 
kens The inital part of the text works, but then it just stops. Odd.08:25.21 
  The aring glyph is wrong too :-)08:25.34 
  But I think that's excusable08:25.45 
chrisl What I found with Bug692320.pdf was that if I changed the default fallback record to load the font with Korea1 ordering, the pdfwrite output is "correct"08:26.05 
kens OK, what difference does that make to the output file ?08:26.27 
  Does it change the CIDs in the text ?08:26.39 
  BTW thrane.pdf has most of the text missing with rendering too08:26.53 
  So its not a pdfwrite problem.08:26.59 
  Looks like it throws an error for some reason.08:27.16 
chrisl thrane.pdf works for me, to rendering, at least08:28.35 
kens Really ? Maybe I'm missing somethign else08:28.47 
  Of course I have a hack instead of a proper fix for the CDevProc issue.08:29.11 
chrisl So, maybe I should commit my CDevProc change, then08:29.30 
kens I think it would be a good idea.08:29.37 
  Even the wrong glyphs is better than the error we throw08:29.51 
chrisl Okay, I need to revise your comment, then I'll do so08:29.55 
kens OK.08:30.01 
chrisl Actually, I should cluster test it first......08:32.26 
kens :-)08:32.33 
chrisl kens: In the interim, should I send you a patch?08:38.13 
kens Yes please.08:38.23 
  I'm just making a reduced file08:38.29 
chrisl On its way. TBH, I'm wondering if a different approach to creating the substitute might be better........08:40.15 
kens Without knowing what the problem is, its hard to tell08:40.31 
  OK patch is here08:41.27 
chrisl Well, based on my experiments, as I said, it looks like if I load the CIDFont substitute with the expected ordering from the start, pdfwrite is happy with it - something about *redefining* the CIDFont is the problem.08:41.41 
kens Which is interesting.08:42.03 
chrisl So, I'm wondering if a better solution would be to manipulate the CIDFont resource .map dictionary to include a mapping on the fly08:43.41 
kens It would make my life easier I guess, but I don't really know enough to comment08:44.09 
chrisl Well, I had rather assumed that you could redefine CIDFonts with the same abandon as you can fonts. I still think it ought to work.....08:45.24 
kens CIDFont handling in pdfwrite is way more complex....08:46.18 
chrisl I guess what I'm saying is: has my code exposed a bug/limitation in pdfwrite, or am I doing things ought not to be done......08:46.37 
kens I think manipulating a CIDFont after you've loaded it is probably bad, but whether tis legal is a different question08:47.15 
chrisl Well, I'm doing it "properly" in that I don't mess with the font in place, I create a brand new dictionary with only the "base" entries, and then do defineresource08:48.26 
kens That sounds like it should be OK.08:49.03 
chrisl I'd think that creating a new dictionary without things like the FID would sever any link to "internal data" that might confuse things.08:50.30 
kens OK simplified test file on its way to you.08:50.59 
  brb08:51.02 
  chrisl how do you modify the record to use Korean ordering ?08:58.24 
chrisl Erm, in gs_cidfm.ps there's a default definition of the CIDFallBack mapping09:01.22 
kens OK09:01.31 
chrisl If you search for /CSI [(Identity) 0] and replace the "Identity" with the ordering you want to test09:02.14 
kens Yes got that09:02.26 
  Indeed, that looks fine.09:03.18 
  Hmm, we get a completely different CIDToGIDMap in the output09:04.16 
  And a different subset font.09:04.54 
  So it looks like we end up doign something differetn with CIDs. The 'incorrect' one is using an Identity mapping.09:05.48 
  Which is sort of suspicious.09:05.58 
chrisl Well, as you saw, I normally load the base CID fallback with Identity and then (I thought!) create a new CIDFont with the appropriate CIDSystemInfo09:09.41 
kens Yes, it looks like the Identity is persisting though, as you suspected. I'm trying to track it down.09:10.08 
  Its not taking the path I expected.09:10.15 
  OK found it where the map is created at least09:11.40 
  Quelle surprise, the cidtogid mapping is filled in in scan_camp_text09:15.04 
  We seem to be picking up the mapping from teh descendant font.09:15.41 
  It uses z11_CIDMap_proc to get a GID given a CID.09:16.29 
chrisl Surely that must work, or rendering would be wrong?09:17.01 
kens I don't know, I can check in a minute, but I'm by no means certain that rendering uses this path09:17.28 
  Notes to self: With Korea1 mapping, CID 0x495-> GID 0x582b09:18.32 
chrisl Okay, CDevProc change pushed09:19.09 
kens With Identity mapping CID 0x495-> GID 0x49509:19.35 
  Rendering does not exercise that code path.09:20.11 
  Which is why it works.09:20.17 
  chrisl it looks like you aren't attaching the correct CIDMap to the descendant font, I have no idea where that would be done though.09:21.01 
  I'm thinking this is part of the font substitution process.09:21.18 
chrisl OKay, let me have a poke around at it.09:22.28 
kens Could be the Decoding resource perhaps ? Looks like you are making the font with an Identity Decoding, and it needs to be done with a Korea1 Decoding. Don't understand why this would work for rendering though. Surely we must get the correct GID somehow.09:31.04 
chrisl That's what I was thinking. None of the procedures for building the CIDMap are "openly" available, they're all hidden in the resource remapping cr*p09:39.13 
kens Yes, I did dig into this once, long ago....09:39.28 
  It does look like the CIDMap is wrong if the Identity CSI is used though, and tht seems to be the source of teh problem for pdfwrite. What I *don't* understand is how rendering works.09:40.12 
chrisl Let me investigate messing with the .map dictionary on the fly, that might save some pollution of the resource dictionaries as well09:41.29 
kens OK I'll be going out in an hour, let me knwo if you want to bounce ideas off, or have me investigate what pdfwrite is up to.09:42.07 
chrisl I figure I should have an answer about changing .map on the fly by the time you get back from riding - I'll let you know......09:43.21 
kens Thanks.09:43.31 
kens realises he's actually going out in 40 minutes. Time flies...09:44.16 
chrisl kens: it *looks* like manipulating the .map dictionary on the fly will work10:09.50 
kens That sounds good. presumably that gives us a correct CIDMap10:10.09 
chrisl Yes, because we go straight creating the faux CIDfont with the correct CSI data, we never load the font with "dummy" settings10:11.17 
kens OK, that sounds like a better approach if tis feasible10:11.35 
  Still seeing problems with thrane.pdf so I'm doing a clean and rebuild10:12.13 
  OK thrane.pdf is fine now (except for the aring glyph and some spacing weirdness) , must have been some residual flakiness.10:21.08 
  Works for pdfwrite too.10:21.14 
chrisl Well, that's about a good as I'd expect. I need to tidy up the code I've got for this, and test it more - but I think I need coffee first!10:22.57 
kens The spacing is just caused by glyphs being different widths.10:23.20 
  The aring is 'well, its a best guess' I think.10:23.31 
  Its probably as good as can be expected when the font is missing10:23.52 
chrisl Very probably, DroidSansFallBack isn't "complete"10:24.15 
kens So now, instead of 'I get an error, Ghostscript crashed' We'll get 'it doesn't look the same as Acrobat'....10:24.27 
  I need to dash, be back later.10:25.12 
chrisl Okay10:25.16 
Robin_Watts tor8: ping13:27.35 
  So, I've got some code changes underway here, and i thought I should discuss the direction I'm going with it with you.13:28.24 
tor8 Robin_Watts: good (late) morning13:28.43 
Robin_Watts Every storable item now starts with an fz_storable structure.13:28.56 
  This structure contains a reference count, the drop function, and a pointer to the 'fz_item' which corresponds to it (NULL if it's not in the store)13:29.38 
  All fz_keep/fz_drop of storable items ends up using that ref count.13:30.09 
  The store is now fz_store rather than pdf_store.13:30.42 
tor8 I thought you were going to rename it to cache :)13:31.04 
Robin_Watts Maybe later :)13:31.16 
tor8 alright :)13:32.13 
Robin_Watts At the moment the store is split into two, the ones indexed by an indirect object, and the ones that aren't.13:32.20 
tor8 for XPS we'll want indexed by a string/filename13:32.39 
Robin_Watts ok, will need to think about that.13:33.11 
tor8 I guess we could turn that into a number easily enough though13:33.12 
Robin_Watts I'd like to extend the linked list through ALL the objects.13:33.33 
tor8 but that's a bit of an ugly hack13:33.42 
Robin_Watts (both the ones in the hash table, and the ones that aren't)13:33.43 
tor8 which linked list?13:33.55 
Robin_Watts The ones that aren't indexed by an indirect object are held in a linked list13:34.16 
tor8 ah, right!13:34.27 
Robin_Watts I want to make that doubly linked (so removals given an object take constant time)13:34.51 
  and I want to use it in an LRU style (so that uses of objects pull them to the top of the list)13:35.33 
  and I want to extend that through the hashed objects too.13:35.47 
  So when we run out of memory, we can bin items off the end of the list.13:36.08 
tor8 right. so if I understand what you're trying to achieve: hashtable for fast lookups, double linked list for LRU.13:36.16 
Robin_Watts yes.13:36.23 
  Ideally, I'd like ALL items to be hashed and all to be on the LRU.13:36.36 
tor8 which hashtable implementation are you using?13:37.03 
Robin_Watts To do that it means we'd have to find a way of generating a hash from non-indirect objects.13:37.05 
  I haven't changed the hashtable implementation.13:37.18 
tor8 we could have a 'hash' function in fz_storable13:37.27 
  right, so you're using the fz_hashtable13:37.35 
Robin_Watts It's the key that needs to be hashed.13:37.40 
  not the value.13:37.44 
  storable things are values.13:37.50 
tor8 content addressed storage ;)13:38.00 
  I mean we can put the key, or make one up, in the storable struct13:38.18 
Robin_Watts One wrinkle to this is that for some of the storable things (colorspaces, cmaps, etc) we have 'static' ones too.13:38.53 
tor8 I'm thinking we could do like git for non-indirect-reference type objects13:39.00 
Robin_Watts tor8: you mean SHA1 them? (or something like that)13:39.18 
tor8 yeah, in the absence of an indirect object number which is a fairly unique identifier, checksum the data13:39.38 
Robin_Watts tor8: That seems reasonable; what gives me pause there is what happens if we have << /Foo 1 /Bar 2 >> and << /Bar 2 /Foo 1 >>13:40.19 
  Do those come out as equivalent ?13:40.44 
tor8 depends a bit on whether we expect everything to be uniquely identified in the store. I'm assuming it would.13:40.54 
  in the old pdf_store implementation those would be different13:41.24 
Robin_Watts My worry is that someone might try to look up something from the store with the first of those, and not find it because it was inserted with the second one.13:41.32 
tor8 but if the data is the same, there's no harm in finding a duplicate13:41.49 
Robin_Watts well, if we go the 'simple' hash making route, then we'd be no worse off.13:42.02 
tor8 my main worry with any invent-a-key scheme is getting false positives -- finding an object that isn't the one you wanted13:42.37 
Robin_Watts tor8: well, we'd have to check the key, right?13:43.05 
  no one should assume in any hash scheme that we won't get collisions.13:43.27 
tor8 yeah, but if we invent keys, what if we end up with the same key for two different objects13:43.29 
  the hash scheme for the hashtable is not important, that's just an optimization :)13:43.43 
  (maybe we mean different things with 'key' here)13:44.15 
Robin_Watts We have a 'key' to use to look up. We hash that to get a hash value.13:44.42 
tor8 yes.13:44.57 
Robin_Watts The hash value gets us quickly to a value. We check the key against the key stored with the value to see if it's the same one.13:45.16 
tor8 yes.13:45.35 
Robin_Watts If it is, we've found it, if not, we look at the next one in the same 'bin' (or linear probe etc)13:45.38 
  so hash collisions are inefficient, but not fatal.13:45.49 
tor8 my concern is with generating the key that is used to test for object equivalence13:45.51 
  in the indirect reference or xps filename case, it's not an issue13:46.03 
  but if we make one up for generic fz_obj objects ... we could land in hot water depending on how you do it13:46.39 
Robin_Watts The key *is* the generic fz_obj.13:46.54 
tor8 okay. so you're just talking about getting a hash value out of that!13:47.11 
Robin_Watts It's just we need a smart.... yes.13:47.18 
tor8 I still haven't had my coffeine :)13:47.24 
Robin_Watts If we want to cope with xps filenames as well, then either we need to shoehorn xps filenames into fz_objs (yuck!)13:47.51 
  or we need to make a more generic key type.13:48.07 
  something that can encapsulate both fz_obj and the xps things.13:48.48 
  For now, I'll just try and make something work with pdf.13:49.02 
  2 other problems:13:50.24 
tor8 get it working with pdf first, it shouldn't be too hard to change the hashing to work with filenames (or inodes or zipfile indexes) later.13:50.32 
Robin_Watts 1) I need code to establish the 'size' of the storable things. (So I can watch the size of the store, and dump stuff if it gets too big)13:51.01 
  2) The 'static' versions of storable things (colospaces, cmaps etc) are tricksy hobbitses.13:51.32 
tor8 I saw your question about #2 yesterday. I expected that we wouldn't store them at all.13:52.10 
  another question: where is the fz_store? is it hidden in the context, or visible to the code that uses it?13:52.42 
  because ... what happens if you store one object in two stores13:52.53 
Robin_Watts Well, suppose we read a colorspace out of a file (say a Lab one), and we don't cope with that, so we go on and read the alternate, and end up with a DeviceRGB.13:53.11 
  That will still be stored, right?13:53.17 
tor8 let me look :)13:53.25 
  it may very well be13:53.31 
Robin_Watts Key to this idea is that every item only gets stored in a single store at a time.13:54.16 
  (every storable structure only has one item pointer!)13:54.30 
tor8 hmmm. I think I see what I did there. I just refuse to touch the refcount of static objects.13:54.42 
  so yeah, tricky hobbitses indeed.13:55.01 
Robin_Watts yeah.13:55.03 
  So my plan was to allow static items to be put in the store, but never update the store pointer for them.13:55.30 
tor8 and I guess it wouldn't make sense to keep the fz_storable struct separate from the thing being stored, as a link between the resource and the store13:55.47 
Robin_Watts That means they can be inserted and removed manually from the store just fine, but they will never be evicted automatically.13:56.05 
tor8 which would let us put things in multiple stores (by making a linked list from the resource to the storable-info)13:56.18 
Robin_Watts (which probably makes sense as evicting them can never save memory)13:56.22 
tor8 but that defeats the point of it, I think13:56.26 
Robin_Watts tor8: When I coded the caching scheme for my previous employer, I had exactly that.13:56.48 
  I had a separate 'cache_entry' struct, and eviction would throw away the contents of the cache_entry, without destroying the cache_entry itself.13:57.29 
tor8 let me see if I understood that correctly: you'd insert them into the hash and list, but not update the resource->storable.item that points back to the hash/list?13:57.29 
Robin_Watts Yes.13:57.40 
tor8 remind me again, why do we need the storeable.item pointer back into the list?13:58.38 
Robin_Watts (but the cache_entry scheme means that we don't get the nice transparent handling of things by using the standard reference counting - we'd need to move to explicit cache handling, and that would complicate the code)13:58.39 
  tor8: For when we fz_drop(ctx, obj);13:59.23 
tor8 ah, right!13:59.30 
  which is not a problem with the static ones.13:59.38 
  I get it :)13:59.40 
  sounds like a reasonable approach.13:59.48 
Robin_Watts yeah. I *think* it all works out.14:00.02 
  So I'll keep bashing at this today.14:00.14 
  after lunch :)14:00.18 
tor8 I don't spot anything obvious either.14:00.23 
Robin_Watts cool.14:00.27 
tor8 just as a digression, I did implement an LRU for the glyph cache once14:00.57 
Robin_Watts what does it use now ?14:01.16 
tor8 but since I had some weird ideas about packing the glyph data tightly in a cache buffer14:01.18 
  it just performed worse than if I just threw the whole cache away when it filled up...14:01.39 
Robin_Watts Another potential idea for future is to have a 'shuffle' entry for stored things.14:01.59 
tor8 and that's what it still does today. zapped when full. so there's another task if you want to battle it :)14:02.02 
  I think I wanted to avoid doing separate mallocs for each glyph bitmap14:02.17 
Robin_Watts which reallocs things to allow them to shift in memory and avoid sandbars.14:02.24 
tor8 but in retrospect, that would be so much easier14:02.25 
Robin_Watts tor8: yeah. Another day, another battle. :)14:02.43 
  boss is calling me for lunch. bbs.14:02.55 
tor8 okay. send my regards.14:03.08 
gegooo Hi, I tried to decode halftone JBIG2 files with jbig2dec but only generic and text regions were decoded. Someone here who knows about halftone support of jbig2dec? 14:23.38 
  I wrote a EMail months ago but the mailinglist seems (nearly) dead (http://ghostscript.com/pipermail/jbig2-dev/2011-August/000125.html)14:25.24 
chrisl gegooo: it doesn't support halftone regions: http://bugs.ghostscript.com/show_bug.cgi?id=69124714:25.38 
gegooo Aha. Thank you. Didn't know that jbig2dec has a bugzilla. (it is not linked by http://jbig2dec.sourceforge.net/)14:28.47 
chrisl gegooo: I think the sourceforge page is a bit dead, to be honest14:29.56 
gegooo Are there any efforts to implement halftones? Are patches for halftone implementation welcome?14:34.11 
chrisl gegooo: I'm not aware of any efforts currently going on, patches are welcome (we'd prefer the copyright assigned to Artifex). There is already a patch in bugzilla, but it appears incomplete/faulty - and is well out of date with the current code.14:36.19 
  gegooo: if you check back in a couple of hours, the current owner of that code is henrys, he can probably give you more definitive answers14:37.06 
gegooo ok. Thank you.14:37.28 
chrisl np14:37.43 
kens chrisl, sorry I'm late, did you get anywhere with the mapping thing ?15:38.04 
chrisl kens: yes, I think I've got it working - just ironing out the error handling15:38.55 
kens Sounds great.15:39.05 
  I forgot I had a lunch engagement....15:39.17 
chrisl If you're interested, you can look at my latest bmpcmp to see the pdfwrite output I get not15:39.37 
kens Will do.15:39.47 
chrisl Not a problem - I keep thinking of another error I need to handle, or another "something" I need to validate to be safe15:40.21 
kens Hmm, that first set of diffs is odd. THe scond one look great15:40.38 
  So just the two files showing differences.15:41.17 
chrisl Yes, the first file, I'm not sure - it seems to be showing differences in things that aren't text (as well as the text).15:43.22 
kens Yes, some of it seems to be subtle grey scale differences. Weird.15:43.42 
  Is that file usually indeterminate do you remember ? The name is familiar....15:44.04 
chrisl I don't remember, but *only* in one set of halftoned output15:44.28 
kens Strange.15:44.51 
chrisl Yes, it is listed as having previous problems in the delta readout, so it does seem to be an indetermism15:46.30 
kens No reason to worry about it then, that's good.15:46.56 
chrisl Yep, and all my test files "work" as expected.15:47.28 
kens Great, sounds like a good result all over.15:47.57 
chrisl Now my final problem is if we reach the very final fallback of the ArtifexBullet CIDFont, the pdfwrite output is largely emtpy, whilst the rendered output has the intended bullets.15:48.46 
kens Hmm, strange, I'm inclined not toworry, but do you want me to take a look ?15:49.18 
chrisl I think it's the same issue, but as I've got ArtifexBullet as a real CIDFont.15:50.00 
  Oops, wrong key15:50.15 
  Anyway, I just load ArtifexBullet with the Identity ordering, and let the chips fall where they may - we only have one glyph in it, so ordering *shouldn't* be very important15:51.06 
kens Absolutely.15:51.17 
  Have you opened the PDF with Acrobat or GS or both ?15:51.29 
chrisl Actually, with this setup, only evince, let me try GS and Acro15:52.05 
kens I would, it may be eliding /.notdef15:52.19 
  Or somethign similar15:52.24 
chrisl Odd, opening it in GS shows bullets, but not as many as I'd expect......15:53.16 
  The Acrobat display is "peppered" with bullets, similar to the GS output, so I think it's about as good as you might expect for such a "fallback for a fallback" position15:55.24 
kens Yeah, sounds reasonable to me.15:55.37 
chrisl I've also added command line options and environment variables which allow the path to, and the file name of the fallback font to be changed from the default.15:56.54 
kens Sounds very comprehensive.15:57.07 
chrisl It occurred to me that most Linux dists are now already shipping DroidSandsFallback.ttf, so they'll probably want it to straight forward to direct GS at their existing copy.15:58.20 
kens Yes, that makes sense.15:58.56 
chrisl Ironically, after all that, the substitution code has actually ended up shorter and simpler :-)15:59.39 
kens Well worh tit hten.... :-)15:59.54 
chrisl With all the changes I've done, I'm going to do another clusterpush before I commit16:00.50 
kens OK, I'll go back to the problem list16:01.08 
chrisl I've even updated Use.htm - how very dedicated of me.......16:01.51 
kens It all looks good to me, are you goign to commit it now ?16:24.38 
chrisl Yes, just writing up the commit comment now16:28.14 
kens Great, it'll be good to get that done.16:32.33 
chrisl There, pushed.....16:34.31 
kens Excellent, congratulations on getting that done!16:34.50 
chrisl Thanks - it would have been much quicker if not for that crazy resource remapping nonsense!16:35.29 
kens Yeah, I'm fairly sure that was causing the CIDMap problem.16:35.56 
chrisl It makes sense to have the "helper procedures" for each subcase not global in scope, but to hide them completely just seems deranged!16:36.58 
kens :-)16:37.08 
kens is off17:28.14 
  Goodnight all.17:28.18 
Robin_Watts Night kens17:28.25 
chrisl night17:28.27 
Robin_Watts tor8: Nothing else uses fz_hash currently, right?17:28.35 
  oh, rats, yes.17:29.23 
tor8 the glyph cache I believe17:29.41 
  and the colorspace memoization17:30.13 
mvrhel_laptop hi marcosw: I was wondering if you did the run of plank with the color halftone turned on?17:57.00 
henrys mvrhel_laptop:I tested usefastcolor - I verified it is getting the identity link in the debugger - and as expected it does speed up files. Maybe Marcos can run the performance suite.18:18.10 
mvrhel_laptop ok18:18.24 
  good18:18.27 
  waiting at SLC airport for scott to arrive18:23.59 
  at least they have free wifi18:24.07 
  unlike the miami airport18:24.11 
henrys yeah we have it too at denver - sit through an ad first though.18:25.32 
gegooo Hi henrys, I interested in halftone support for jbig2dec. Are there any efforts in implementing?18:26.19 
  sorry: I am interested in ...18:26.55 
henrys hello gegoo somebody is working on jbig2 now but I don't know if he wants to take that on.18:27.30 
  is this a bountiable bug?18:27.37 
  oh are you interested in doing it or having it?18:28.19 
Robin_Watts From what gegooo said earlier, both, I think.18:29.29 
  (he specifically asked if we'd be interested in patches to do it)18:29.43 
gegooo I am coding for GNU PDF and I think it would nice to support this.18:29.46 
henrys anything we put into jbig2dec has to have GPL and Artifex copyright is that a problem?18:31.33 
gegooo yes, both18:31.34 
henrys I assume the former is not 18:31.52 
gegooo no, I don't think this is a problem18:32.02 
henrys well we will certainly integrate patches you provide. Do you have any wild PDF files that use the halftoning?18:33.43 
  we have a consultant working on jbig2 and he may be interested in looking at it also. We are less inclined to look at it without real world PDF examples.18:35.28 
  mvrhel_laptop:I assume scott is all geared up with mupdf on the ipad?18:36.42 
Robin_Watts henrys: We set him up at the meeting, so he was good to go then.18:37.08 
mvrhel_laptop I hope so. He did send me the presentation though so I have it on my laptop18:37.22 
Robin_Watts He's been in contact with me since about putting the standard Artifex presentation powerpoint thing onto mupdf on his ipad too.18:37.40 
henrys Robin_Watts:oh I didn't know it got completed at the meeting.18:37.44 
mvrhel_laptop Robin_Watts: ok. that is what he sent me in case he can't get it to work on his ipad18:38.14 
Robin_Watts mvrhel_laptop: Ah. He may arrive and ask you to put it on for him then :)18:38.29 
  mvrhel_laptop: Do you have iTunes on that laptop ?18:38.44 
mvrhel_laptop no18:38.47 
  too many updates....18:38.52 
  all the time18:39.00 
Robin_Watts Ah. You'll need iTunes to be able to put the file on.18:39.01 
mvrhel_laptop well we will just run the presentation from my machine then18:39.19 
Robin_Watts ok. I do think it would be worth us getting it sorted for him at some point though.18:39.46 
mvrhel_laptop yes18:39.51 
Robin_Watts because if someone asks what he's using for the presentation, it'd be nice for him to be able to say "Oh, that's our other product..." :)18:40.21 
gegooo henrys: *was looking* in a bunch of JBIG2 containing wikimedia PDFs ... no one found yet. 18:40.40 
  with halftones18:40.54 
henrys gegooo if you do find one let me know and we can create a bug at bugs.ghostscript.com18:41.27 
Robin_Watts Bug 691230 has one.18:41.50 
henrys oh 18:42.18 
Robin_Watts Do we have the ubc test suite? that has 2 more in supposedly (but they don't count as wild files :) )18:42.41 
henrys that's good enough for P2 bountiable anyway maybe shelly will have a look.18:44.37 
Robin_Watts http://vark.mine.nu/cheezer.1418:47.54 
henrys I rarely use FF anymore, chrome mostly18:49.58 
Robin_Watts Yeah, I've defected too.18:50.13 
  "I don't know if the blame is so easy to place. It is kind of like watching one fat guy explain to another why they can't sit on the same bench."18:50.43 
mvrhel_laptop ok. miles is here. ttyl18:54.35 
henrys chrisl:the sooner the better for dropping in the original urw fonts.18:58.43 
Robin_Watts tor8: http://ghostscript.com/~robin/0001-Work-in-progress-rework-pdf_store.patch19:11.06 
  That's what I've got so far. Seems to work without any problems.19:11.26 
  Currently I'm not setting a top limit on the store size though.19:11.45 
  I'm thinking that the store should move to be part of the context, so the malloc stuff can scavenge from it as required.19:12.07 
Robin_Watts pops to shop. back in 5 mins.19:12.16 
tor8 the fz_drop_*_imp could be called fz_free_* but I like the _imp suffix so you don't call it by accident.19:17.00 
  did you forget fitz/base_store.c ?19:17.23 
Robin_Watts Ahem.19:18.00 
  Look again now.19:18.11 
tor8 and I agree that the fz_store should be part of the context eventually. but it can be created/destroyed inside the pdf_new_xref / free_xref calls since it's function pointer based and not hard linked.19:18.21 
Robin_Watts (haven't left yet, relacing shoes)19:18.23 
tor8 also: fz_keep/drop ... how about fz_keep_resource or fz_keep_storable?19:18.55 
Robin_Watts Is there a green way to recycle old trainers?19:18.58 
  fz_keep_storable would be my preference.19:19.06 
tor8 you also forgot the FZ_ prefix on the INIT_STORABLE macro :)19:19.47 
  could you s/rc/refs/ to please me?19:21.28 
Robin_Watts sure.19:21.38 
tor8 Robin_Watts: as you can see, I can only nitpick on the names which means I approve of the patch in general19:21.44 
Robin_Watts :)19:22.05 
  ok, really off now. will do those tweaks when I get back.19:22.16 
chrisl henrys: I'll do the font switch over tomorrow - I want to double check the file names before committing them19:28.03 
henrys thanks19:28.41 
Robin_Watts tor8: Part of the reason I want the store to be in the context, is so it can be inited with the context.19:30.54 
  which seems the most reasonable place to be setting a "max" amount of memory.19:31.16 
tor8 Robin_Watts: yeah. I also think the context is the right place for it.19:33.41 
Robin_Watts tor8: If I move to using fz_free_*_imp, rather than fz_drop_*_imp, I should rename all the 'drop' things to be 'free' things.19:49.56 
tor8 I call things that have reference counting drop, and things that don't free19:51.18 
  helps me not confuse what is refcounted and what is not19:51.40 
Robin_Watts tor8: Right, so I'm not proposing changing fz_drop_colorspace etc.20:10.38 
  I'm saying that the 'drop' function provided to fz_store should be a 'free' function.20:10.55 
tor8 oh, right!20:37.26 
  Robin_Watts: ^20:37.31 
Robin_Watts New patch up with those changes.20:38.19 
  Going to move store into context now.20:38.26 
  Hmm. I can't email to gs-devel@ghostscript.com21:53.02 
  I'm told there is no such mailbox.21:53.12 
  chrisl: It's not a bug.21:56.30 
  w.r.t beebes email.21:56.43 
  The code in question is protected by #ifdef HAVE_SSE2, and he's passing -DHAVE_SSE2 to the compiler, hence he gets what he asked for.21:57.17 
  If the autogen stuff is incorrectly setting HAVE_SSE2 that's a bug.21:57.28 
  But I suspect he's abusing it and not autogenning with the same compiler.21:57.50 
  so he deserves what he gets.21:57.59 
chrisl Robin_Watts: it's not protected by HAVE_SSE2, perhaps it should be22:03.51 
Robin_Watts is too.22:03.59 
  Line 130, of gx_thresh.c ?22:04.49 
chrisl Line 28822:05.07 
  gxht_thresh.c22:05.27 
Robin_Watts That's a warning.22:05.31 
  The error is on line 13022:05.36 
chrisl Oh, right, wrong thing! Too late for me!22:06.07 
Robin_Watts Still can't get mail to send. Oh well.22:07.16 
chrisl Sorry, I wanted Nelson to report stuff to bugzilla - sending it to gs-devel is b*gger all use these days22:07.46 
  I think that makes it clear I'm too tired to be useful - I'm going to bed......22:09.23 
 Forward 1 day (to 2011/12/15)>>> 
ghostscript.com
Search: