| <<<Back 1 day (to 2014/06/25) | 2014/06/26 |
kens | chrisl ping | 07:10.01 |
chrisl | kens: pong | 07:13.23 |
kens | Got a strange one lookin the new report 695334g at | 07:13.54 |
| I am seeing a seg fault, though I'm not convinced its the one the customer has reported (of course a file with some 20 missing fonts is an *ideal* test case....) | 07:14.29 |
| I'm seeing a seg afult in release_subst_CID_on_WMode, possibly because I haven't used their cidfmap (not having all the fonts on my system) | 07:15.18 |
| The problem seems to occur because the ref count of 'subst' is already 0, so adjusting it by 2 causes it to go negative, which makes the rc_adjust code try to free the body, with predictably bad results | 07:15.58 |
chrisl | I wonder why it decrements by 2...... | 07:16.46 |
kens | Well any decrement would be bad, since its already 0 | 07:17.02 |
| Well, I think it is.... | 07:17.15 |
| Its all the usual macro hell | 07:17.24 |
chrisl | Does it go wrong with something other than pdfwrite? | 07:17.37 |
kens | Well it doesn't with the display device | 07:17.47 |
chrisl | That's....um..... strange...... | 07:18.10 |
kens | Well it gets called *many* tiems, because there are so many missing fonts. ALl except one is fine | 07:18.27 |
| Its the call on exit that kills it | 07:18.57 |
| Part of garbage collection | 07:19.04 |
| It appears to be 'Adobe-Japan1' | 07:20.05 |
| AH, which is the first fontthat get set. Possibly if I was to get past this one, there would be more | 07:20.45 |
chrisl | kens: I'll need to look at this properly - if you want to leave it with me, I'll look at it later | 07:21.52 |
kens | Great, lots of the substitutes end up being called Adobe-Japan1 | 07:21.53 |
| OK I'll leave it just now. | 07:22.02 |
| I have other font related things to look at regarding the performance thing | 07:22.14 |
| Hmm, actually it doesn't look like its trying to free the memory, so I'm puzzled as to why it seg fualts now.... | 07:24.12 |
chrisl | Oh, that. I looked at the FAPI end of things a bit yesterday - it does seem to be down to the cost of creating the Freetype end of things. There's quite a cost in setting up the freetype "face", which we almost immediately claw back when we rendering anything - but that file forces us through the creation many times without actually drawing any glyphs | 07:24.23 |
| back in a minute.... | 07:24.58 |
kens | Umm, OK but I was seeing a weird result. I set up a few blank page files (100 pages, 1000, 1000 and 100000) and ran those. The time taken by 9.15 actually got better as the number of pages increased, when compared to 8.71, so its no the sheer number of pages causing the problem. | 07:25.50 |
| Then I added in a '/Helvetica findfont 20 scalefotn setfont (Test) show' and tried that. Still lightning fast. | 07:26.23 |
| SO I tried Times-Bold (because that was one font that the job used) and it got *really* slow. Also, due to my usual terrible typing, I had actually used TImes-Bold, so I got a substitute font. Both 32-bit executables threw an error. 8.71 limitcheck at 44k pages, 9.15 VMerror at 89k pages. | 07:27.41 |
| So clearly there was a lot more memory use going on. I wanted to see if 9.15 also got progressively slower so I'm running a modified version of the test (top pages at 50000) now. | 07:28.17 |
chrisl | kens: And is that with a rendering device, or with pdfwrite? | 07:33.02 |
kens | pdfwrite | 07:33.08 |
| The timings get stranger. 10000 pages is quick, 50000 is not | 07:33.26 |
chrisl | It could be that the way we do substitution defeats pdfwrite's font recognition | 07:33.48 |
kens | I did think it might be something like that. But the timing for 10000 pagesis 20 seconds, 50000 is 11 minutes | 07:34.18 |
| Isn't there some -Z switch that prints the peak memory used ? | 07:34.40 |
chrisl | Erm, probably...... | 07:34.51 |
kens | Yeah that was my feeling, I'll go look in the docs | 07:35.03 |
chrisl | Possibly -ZA | 07:35.26 |
kens | That's all the allocater calls, that'll be huge | 07:35.47 |
chrisl | Yes, but I think that's the one that prints memory use at the end of the job | 07:36.17 |
kens | Oh well I don't want to use that one. I'd rather sit and watch the process monitor | 07:36.34 |
chrisl | Possibly it available in the long-form flags Robin added - but I don't any docs on that | 07:40.06 |
kens | 9.15 seems to use lots more memory than 8.71 | 07:42.04 |
chrisl | What's "lots more"? | 07:43.14 |
kens | maybe 4 or 5 times as much | 07:43.22 |
| Say around 400Mb for a 20k page file | 07:43.36 |
| Doing 30k pages now.... | 07:43.53 |
| 8.71 peaked about 148Mb with 30k pages, 9.15 running now | 07:47.05 |
chrisl | kens: -Z: will spit out memory usage | 07:47.34 |
kens | Ah, OK thanks chrisl I'll try that next | 07:47.45 |
chrisl | kens: so, again, are these differences only with pdfwrite? | 07:48.11 |
kens | I haven't tried rendering yet, that's an obvious next move | 07:48.25 |
| sadly these tests take time..... | 07:48.37 |
chrisl | Because I strongly suspect you're tracking a lot more stuff in pdfwrite now than 8.71 did | 07:48.59 |
kens | Which is why -Z: is good, I can set the test going and do something else | 07:49.07 |
chrisl | Hmm, I don't get a crash on the 695334 file..... | 07:49.21 |
kens | chrisl yes could be, but that's a *lot* more for such a simple job | 07:49.22 |
| chrisl I do :-( | 07:49.29 |
| On Windows 32-bit debug build | 07:49.34 |
chrisl | Okay, I'll try 32 bit on Linux before resorting to Windows...... | 07:49.52 |
kens | Linux would be better with all the macros | 07:50.07 |
chrisl | Only if I get it to go wrong! | 07:50.26 |
kens | I can't see what exactly is failing on Windows | 07:50.39 |
chrisl | Oh, are you using up to date code? | 07:50.51 |
kens | 9.15 peaked at around 660Mb | 07:50.54 |
| chrisl up to date as of last night I can give you the SHA in a second | 07:51.07 |
chrisl | Do you have my two commits from yesterday? | 07:51.26 |
kens | SHA is d936f19 | 07:51.32 |
| I think I don't no | 07:51.42 |
| Last one in my repo is my pdfwrite changes 'more changes to better handle....' | 07:52.03 |
| Let me ujpdate | 07:52.10 |
| and rebuild of course | 07:52.24 |
chrisl | Yeh, it's just my changes were in the memory management, so might just have an influence..... | 07:52.27 |
kens | Yeah I realised, give me a minute | 07:52.37 |
| building new bianry now | 07:52.49 |
| Oh this pulled in Michael's code too of course | 07:53.32 |
chrisl | I have that, too | 07:53.48 |
kens | OK well that's the last commit I have here, still building (looks like VS decided on a full rebuild) | 07:54.13 |
| Fails in exactly the same way | 07:54.41 |
chrisl | OKay, I'll try on 32 bit - just trying to remember runes to build it | 07:55.02 |
kens | nmake -f psi/msvc.mak DEVSTUDIO= | 07:55.25 |
| ? | 07:55.27 |
chrisl | Not on LInux...... | 07:55.34 |
kens | Ah... :-) | 07:55.40 |
| I can build it here, I have a 32-bit Linux, it'll take me a few mintues to do as I need to launch the VM first, let me know if you want me to try it | 07:56.09 |
chrisl | Nope, doesn't crash on 32 bit Linux either :-( | 08:00.37 |
chrisl_r500 | kens: did you use any customisations in cidfmap? | 08:10.18 |
kens | I didn't use any cidfmap at all | 08:10.28 |
| crashed for me without it | 08:10.36 |
chrisl_r500 | Not for me, even on Windows | 08:10.47 |
kens | I'm still trying to figure out if I have all teh fonts the customer's cidfmap uses | 08:10.53 |
| Hmm, that's strange :-( | 08:11.06 |
| The release binary (built using nmake) crashes for me as well | 08:12.23 |
chrisl_r500 | What version of VS? | 08:12.33 |
kens | 2008 | 08:12.36 |
chrisl_r500 | I'll try that | 08:13.43 |
kens | OK. | 08:13.49 |
| FWIW I do see a progressive slowdownwith both 8.71 and 9.15 as the number of pages increases, but nothign like the customer's actual job. I'm going to add in -Z: and a rendering test at 72 dpi | 08:14.45 |
chrisl_r500 | If you look at how the customer's job implmenents the ISOfindfont procedure - it almost have been designed to defeat a font cache] | 08:16.42 |
kens | I wondered if that might be the problem | 08:16.55 |
| I was going to add that in next but got diverted | 08:17.03 |
| I assume this is a file they get fomr their customer (since they won't send ujs the original) and so they can't change it. | 08:17.56 |
| We might be able to suggest an Idiom if we can figure a way to make it work better, I haven't looked yet | 08:18.28 |
chrisl_r500 | Even replacing the body of the procedure with a simple findfont, it still causes the "problem" with FAPI - and I can't fathom why...... | 08:20.26 |
kens | :-( | 08:20.36 |
chrisl_r500 | Still no crash even with VS2008 | 08:21.30 |
kens | THat's really weird | 08:21.42 |
| Maybe I should send you my binary to see if it will crash for you | 08:21.54 |
chrisl_r500 | Oh, crap - wrong exe.... hang on | 08:23.42 |
| No, still no crash :-( | 08:28.31 |
kens | I'm baffled, let me try a clean rebuild of my release binary with nmake | 08:29.05 |
Robin_Watts | chrisl_r500: Use --debug, and it will list all the flags. | 08:29.49 |
chrisl_r500 | Robin_Watts: thanks | 08:30.51 |
kens | chrisl a freshly built release executable, built using nmake -f psi/msvc.mak, crashes on exit for me with "gswin32c -sDEVICE=pdfwrite -sOutputFile=out.pdf 2pages_not_embedded_font_test.pdf" | 08:36.17 |
| Hmm, let me try the 9.14 release | 08:37.07 |
| The 9.14 release works for me, whichdoes sort of suggest something different in our builds | 08:38.03 |
| I'll try and find out if the customer's cidfmap can be used with standard WIndows fonts and see if that fails using the 9.14 release | 08:38.54 |
chrisl_r500 | The debug exe I just tried, I bulit from the VS2008 GUI | 08:39.03 |
| or even built..... | 08:39.19 |
kens | My VS solution isn't the stock one, which is why I was using the makefiles | 08:39.27 |
| OK well I can't use his cidfmap as 9 of the fonts in it are not present on my system. I'mgoing to tell him to simplify the file, | 08:48.39 |
| I do notice that he claims he gets the error with earlier versionof Ghostscript, which I don't. OK lots of questions for him to answer | 08:52.46 |
| Back to performance weirdness | 09:02.15 |
kens | crawls off for a coffee | 09:02.26 |
mattchz | morning | 09:07.46 |
Robin_Watts | morning | 09:07.52 |
kens | Hi Matt | 09:07.53 |
pedro_mac | hi mattchz | 09:07.55 |
chrisl | Good morning | 09:07.56 |
| kens: okay, I realised why my hacking of ISOfindfont didn't work as expected - I didn't realise it was defined in *loads* of places :-( | 09:15.53 |
kens | Oh yeah, the file looks like its been created by something like 'cat' of lots of smaller files, which is a bad idea straight away | 09:16.22 |
| Plus,of course, we *still* don't know what the original looked like before the customer 'cleansed' it :-( | 09:16.54 |
| So anything we do suggest could easily be tharted by the fact that the original file is different | 09:17.11 |
chrisl | True, but we can only work with what we've got | 09:18.28 |
kens | I know, I just worry that we'll come up with seomthing which works 'well enough' for this file, send it to the customer and tehy'll say oh yeah, that's nice, but it doesn't help | 09:18.58 |
chrisl | Well, that'll be tough - we can only fix what we can see | 09:19.20 |
kens | Which I will be amphasising.... | 09:19.33 |
chrisl | kens: bugger! ISOfindfont isn't bound :-( | 09:22.00 |
kens | Well that puts paid to that then :-( | 09:22.14 |
mattchz | regarding PDF annotations, are those displayed by the core, or by the native apps? Or is it the case that the apps display them while they are being drawn, then the core renders them once they are final? | 09:22.57 |
Robin_Watts | mattchz: They are always displayed by the core, AIUI. | 09:28.19 |
mattchz | Ta. | 09:32.15 |
chrisl | kens: So, I replaced ISOfindfont with code that only creates the ISOLatin1Encoding encoded font once, then reuses the same reencoded font over and over...... | 09:41.01 |
kens | OK.... | 09:41.10 |
| I bet that's better | 09:41.14 |
chrisl | The pdfwrite time drops from 6mins 33 secs to 46 seconds | 09:41.35 |
kens | Wow! | 09:41.40 |
chrisl | and memory use drops from ~171Mb to 18Mb | 09:41.57 |
kens | Nearly a factor of 10..... | 09:42.01 |
| So is that because we don't end up with new fonts all the time being crfeated by FAPI, or because pdfwrite doesn't have to check the damn things so much ? | 09:42.56 |
chrisl | A combination of both, I think - with ppmraw @ 72dpi the time drops from 1min 5sec to 24sec | 09:43.41 |
kens | That's a pretty good improvement as well. THough at higher resolution it matters much less | 09:44.05 |
| So basically we're saying what I hinted at to the cusotmer already, their file is daft and does stupid things, which we can't really work around | 09:44.39 |
chrisl | If each findfont actually used any glyphs, the problem goes away | 09:44.40 |
kens | Yeah well I already mentioned that..... | 09:44.51 |
| 14 findfonts to create one font..... | 09:45.05 |
chrisl | I'm just running a test with DisableFAPI | 09:46.37 |
kens | I'm doing that here too, it'll be intersting to see wht you come up with | 09:46.52 |
| I'm just on the last rendering tests now | 09:47.13 |
chrisl | Okay, without FAPI, and my definition of ISOfind font pdfwrite takes 35 seconds, with the original ISOfindfont it takes 5m24s | 09:53.50 |
kens | OK so its pretty much the file that's a killer. | 09:54.22 |
| And FAPI is not that big a problem | 09:54.38 |
chrisl | kens: not if you render at "normal" resolutions | 09:55.06 |
kens | Yeah, though pdfwrite doesn't render, so these things show up more | 09:55.26 |
| If the dratted ISOfindfont was bound we oculd fix this :-( | 09:55.59 |
chrisl | Yeh :-( | 09:56.14 |
| kens: the definition of ISOfindfont I tried: http://pastebin.com/LUU3GcdE | 09:56.40 |
kens | OK so you only define a new version of the font if the ENcoding is not already ISOLatin1, makes sense | 09:58.35 |
chrisl | Yep - not what you'd call rocket science! | 09:59.03 |
kens | This file shows clear evidence oof being created by the 'cat the PS files together' approach, so its a dumb thing to do anyway | 10:00.10 |
| I do wonder why the 8.71 pdfwrite code doesn't suffer from this, but I'm not sanguine about the prospect of searching through 4 years of commits to try and figure out what the difference is. | 10:01.32 |
chrisl | kens: You've improved the font amalgamation code considerably since 8.71, could be that? | 10:02.32 |
kens | It coudl be, certainly | 10:02.45 |
chrisl | Didn't you have a parameter that disabled that code? | 10:03.05 |
kens | Like I said, after 4 years I'm not keen on trying to figure out why there's a difference, not when its a stupid input file | 10:03.12 |
| chrisl I'm pretty sure I don't | 10:03.20 |
chrisl | kens: we could provide a hacked definition of def that automagically binds procedures and an idiom | 10:05.46 |
kens | OMG. Well yes I guess that would work, horrifying though | 10:06.07 |
| Maybe we could suggest they glue it on the front of these jobs | 10:06.34 |
chrisl | I'm fairly sure it's how HQN's "def" works - I seem to remember they were able to idiom recognise non-bound procedures | 10:06.47 |
kens | Hmm, but that rather defeats the point of unbound procedures, though in truth I doubt anyone uses that | 10:07.18 |
chrisl | I suspect that's how I heard about the HQN thing - probably caused some problem or other | 10:07.58 |
kens | :-D | 10:08.04 |
| OK I'll try that here and see, if it works I'll send it to the customer. | 10:08.27 |
chrisl | I was wondering if there was a way to only do the bind if there is a recognised idiom..... | 10:13.11 |
kens | Umm, I don't think so, because the idiom recognitrion is done as part of bind | 10:15.25 |
chrisl | kens: I wondered if we could dup the procedure, do a bind, see if the result of the bind differs from the original - if it does keep the bound version, if it doesn't, keep the non bound version | 10:18.55 |
kens | Cunning, but I'm not inclined to consider it for this customer, they are a 'low support' customer after all | 10:19.31 |
chrisl | It would only be a hack for a specific purpose - it's too horrid a hack for "general purpose use" | 10:20.20 |
kens | I think I'll stick to the simpler horrible hack of redefining def :-) | 10:20.58 |
mattchz | I've removed the iOS tag on this bug: http://bugs.ghostscript.com/show_bug.cgi?id=695257 | 10:22.02 |
| I think it sounds like a core issue, as the problem happens in x11 builds too | 10:22.11 |
Robin_Watts | mattchz: Fair enough. | 10:25.17 |
kens | chrisl redefining def as bind def causes an infinte loop in findfont for me :-( | 10:39.06 |
chrisl | kens: I did this: http://pastebin.com/pDKtKt4p - disclaimers apply...... | 10:40.10 |
kens | Hmm, OK let me try that, the simple-minded approach certainly didn't work | 10:40.30 |
| OK well that doesn't lock up now, but it doesn't find my Idiom, nothing new there, it always takes ages to get teh Idiom right | 10:41.53 |
chrisl | kens: can't you do the redef of bind and the definition of the idiom all in a PS "prefix" | 10:45.01 |
kens | Yeah I'm trying that now. GOt a simplified version to recognise, back tot he original again | 10:45.25 |
Robin_Watts | jogux, pedro_mac: So I've been following the layout process through for shapes etc. | 10:48.24 |
| and there is a call "getShapeGeo", which is supposed to "Get internal geometry bounds" | 10:48.46 |
| I wonder if that's just broken... | 10:48.51 |
mattchz | would someone mind reviewing my most recent 3 commits please? | 10:52.54 |
| http://git.ghostscript.com/?p=user/matt/mupdf.git;a=summary | 10:52.54 |
jogux | I wonder how much, if any, of this stuff works with AUTOSHAPES=IN=LAYOUT disabled | 10:53.11 |
Robin_Watts | mattchz: commit message on the first is screwy. did you forget a blank line ? | 10:54.22 |
mattchz | Oh, hmm, yeah. | 10:54.34 |
| Let me fix that. | 10:54.36 |
Robin_Watts | mattchz: Do you understand the fz_var stuff? | 10:56.33 |
mattchz | fz_var? | 10:56.41 |
| I don't think so. | 10:56.47 |
Robin_Watts | It's the one wrinkle in the fz_try/fz_catch stuff. | 10:57.00 |
| fz_try/fz_catch is implemented using setjmp/longjmp. | 10:57.17 |
| and the bug gotcha with that stuff is that any local variable that is written between the setjmp and the longjmp has an undefined value after the longjmp takes place. | 10:57.58 |
| s/bug/big/ | 10:58.03 |
| so if I do: fred = 1; fz_try { .... fred = 2; fz_throw(); ... } fz_catch { ... } | 10:58.50 |
| then at the end there is no guarantee what value fred might have. | 10:59.05 |
kens | chrisl I see that the ISOfindfont definition leaves the font name on the stack. Presumably this is why when their job ends there are 5000+ objects on the operand stack. | 10:59.15 |
chrisl | kens: I didn't notice that - likely mine does the same.... | 10:59.50 |
kens | It does, I'm going to fix it, they do dup dup, which leaves 3 copies on the stack, but only consume 2 | 11:00.11 |
Robin_Watts | (If you want a more low-level reason, it's because the value for fred might have been held in a register when we did the longjmp and that value doesn't get written back to memory before the longjmp takes place) | 11:00.13 |
| Does that make sense? | 11:00.21 |
mattchz | I think so. | 11:00.27 |
| So fred will at least be 1 | 11:00.33 |
| but may or may not be 2 | 11:00.37 |
Robin_Watts | Indeed. | 11:00.42 |
mattchz | eww | 11:00.46 |
| ok | 11:00.48 |
chrisl | kens: I just tried to preserve the stack state in mine - probably should read code more carefully! | 11:00.48 |
Robin_Watts | Though according to the c-spec it could be 123 :) | 11:00.54 |
mattchz | :) | 11:01.01 |
Robin_Watts | So, we have a crufty trick to solve this. | 11:01.06 |
kens | chrisl I was just puzzled because my idiom seemed to be leaving a name behind, so I had to go figure it out. Talk about crap PostScript though | 11:01.29 |
Robin_Watts | If we pass the address of fred out of scope, then the compiler can't know that it isn't updated elsewhere in the code. | 11:01.36 |
pedro_mac | Robin_ Watts: I donât see geoLeft or geoTop being set anywhere; it looks as if the only time we explicitly set the geometry is in ooxml/drawingml/drml-pathlst.c where we set the geoRight, geoBottom based on a path width/height property. | 11:01.44 |
| Robin_Watts: not sure if that actually expleins your problem, but its certainly far from complete | 11:02.04 |
Robin_Watts | as such it has to write it back before each and every function call. | 11:02.05 |
mattchz | ok | 11:02.14 |
Robin_Watts | or at least, has to ensure that it *has* been written back. | 11:02.25 |
| So we have this magic macro: fz_var(x); | 11:02.38 |
| and that just calls a dummy function with &x. | 11:02.51 |
mattchz | doesn't know whether to be amazed or disgusted ;) | 11:03.12 |
Robin_Watts | Ignore the man behind the curtain! | 11:03.27 |
jogux | mattchz : I dare you to ask about compilers that optimise in the linker ;-) | 11:03.37 |
mattchz | :) | 11:03.51 |
Robin_Watts | jogux: It'll all be fine. Trust me. | 11:04.02 |
| So in functions like setFocussedWidgetChoice (in MuPageViewNormal.h) we might be tempted to do: fz_var(accepted); | 11:04.43 |
| normally we put that just before the fz_try. | 11:04.55 |
| Now, in this case, it doesn't actually matter, cos by the time accepted is written in the fz_try we know we can't get another throw. | 11:05.25 |
| but it's one of the two common gotchas with the try/catch stuff. | 11:05.43 |
| (the other one being not to return within the fz_try). | 11:05.52 |
mattchz | nods. | 11:06.04 |
| I was thinking about that :) | 11:06.37 |
| so, have I broken any of these cases? | 11:06.50 |
Robin_Watts | I don't think so, just checking them now. | 11:07.01 |
mattchz | I think I was pretty much just setting the initial values. | 11:07.21 |
Robin_Watts | yeah. | 11:07.25 |
| but it seemed a good point to give you your daily dose of "ew!!!" :) | 11:07.41 |
mattchz | hehe | 11:07.51 |
Robin_Watts | Ok, that one looks fine to me. | 11:08.00 |
mattchz | tbf, I *think* the wins outweight the ewws | 11:08.01 |
Robin_Watts | I've got to run helen to the station. will look at others when I return. | 11:08.15 |
mattchz | np | 11:08.18 |
| thanks | 11:08.20 |
Robin_Watts | pedro: Ta. Will talk more when I'm back! | 11:08.23 |
mattchz | i'll push the fixed commit message | 11:08.25 |
paulgardiner | jogux, pedro_mac, Robin_Watts:That problem with the top menu that Pete found is a regression. Old app moves the rulers too. So I'm thinking I should chase it down. Is this something I can do on the Windows build? | 11:09.38 |
mattchz | robin_watts: possibly we should fz_var() some of these things anyway then, if we take the C specs strict definition that the value can be undefined even in the initialisation case. | 11:11.21 |
| and in fact create_page_list looks like it has a memory leak of 'list' if fz_new_list_device fails. | 11:13.48 |
pedro_mac | paulgardiner: not sure. Probably worth a try anyway | 11:15.33 |
jogux | paulgardiner: Iâd imagine so | 11:16.45 |
paulgardiner | It's going to be in some weird part of the code because the menu and rulers seem to move exactly in step although AFAIK the rulers aren't properly represented in UE2. At least it should be in an area of the code I know though. | 11:17.38 |
| Oh that was quick: Google have moved the Android app between accounts | 11:19.50 |
| Hmmm. Showing as Unpublished and I can't find us on the store. | 11:21.53 |
pedro_mac | paulgardiner: regarding the good support stuff, we could set up GoodShare locally. I have a download but its a bit of work to install so I havenât tackled that as yet (preferring to go with Goodâs own pre-configured setup) | 11:25.14 |
| paulgardiner: I do think we would benefit no end from being able to skype a decent developer. Round trip time and partial communication is costing weeks :( | 11:26.13 |
paulgardiner | pedro_mac: oh right. That may well be worth doing. We would free from the reliance on Di^H^HFu^H^H can't find the words. | 11:26.16 |
pedro_mac | weâd probably also need a licence fo any local installation | 11:27.31 |
paulgardiner | pedro_mac: yeah for the Android problems that look harder and still have more work in them, I think you are definitely right. For iOS, I'm pretty sure I just need to test communication with GS and I'm done. | 11:27.46 |
pedro_mac | canât believe there are no test apps (polished or otherwise) for all of the Good services | 11:28.14 |
paulgardiner | There are so so many things I can't believe I don't know where to start. | 11:28.40 |
| How many developers must there be in exactly the same position. Why isn't there a general working strategy | 11:29.11 |
| ? | 11:29.13 |
pedro_mac | to be honest, I donât think many of our issues have been significnt technical problems. Almost all are partially described processes, undocumented incompatibilities between components or lack of access to relevant infrastructure | 11:30.54 |
pedro_mac | stops bleating and gets back to âworkâ ;) | 11:31.29 |
jogux | vaguely wonders if we could find someone thatâs actually a good customer, that wants smartoffice, and would be prepared to betatest or get a reduced rate in turn for giving us some test accounts on their system. | 11:32.27 |
| ie. someone that already has all the infrastructure setup, and presumably has an IT department that know how to drive it. | 11:33.09 |
pedro_mac | jogux> we just need some decent support from some engineers who know the system and are prepared to be more proactive and methodical imho | 11:33.35 |
paulgardiner | The testing remaining on iOS is actually very minor. Would take a minute or two with the correct setup... assuming the current problems are actually setup not our app (which I'm say 90% sure) | 11:33.40 |
jogux | (or alternatively going to spend a few days in goodâs london office or something, they must have an internal setup?) | 11:33.42 |
pedro_mac | gets some food | 11:34.00 |
paulgardiner | Yes support from people that actually undertand the working of the system | 11:34.05 |
jogux | there must be a way they get customers to eval the system without all the pain, or something. | 11:34.35 |
paulgardiner | It's not wasting a huge amount of my time now. Each day, try a quick test, write an email, work on other things until next day | 11:35.28 |
jogux | :) | 11:35.42 |
pedro_mac | jogux: trygoodnow is an evaluation system. Itâs targetted at end users, not developers/partners | 11:48.35 |
jogux | ah. mm. | 11:49.01 |
pedro_mac | what theyâre lacking is just a bit of proactive dev support | 11:49.04 |
| none of this is rocket science, but we need access to other apps which can only be done by them granting us access rights to those apps on a domain where we have sufficient rights. | 11:49.56 |
| from my perspective the only workable model is do it yourself, since we need to test against different policy sets (and we canât change other domainsâ policies) | 11:50.38 |
paulgardiner | Quite | 11:50.48 |
| Maybe if we had our own user trial, we'd have the access we need | 11:51.06 |
pedro_mac | paulgardiner: I applied but its through their bizdev folks and they said we should be doing it through the partner network⦠| 11:52.18 |
| paulgardiner: it just gets you a trygoodnow account though, so not much better really | 11:53.09 |
paulgardiner | But perhaps one you can administer your self? | 11:53.27 |
pedro_mac | no, the domain is administered by them unfortunately | 11:53.55 |
| the ideal (imho) would be for them to provide VM appliances for each service | 11:54.29 |
| which developers could then host internally | 11:54.43 |
| (rather than having to set up like we did) | 11:54.52 |
paulgardiner | That would be far too sensible. | 11:55.54 |
| Gah! I wish we would all remove all the unnecessary extra branches from our repos so that I could get sensible results out of gitk. | 11:57.09 |
pedro_mac | paulgardiner: can we do that selectively? | 11:58.54 |
pedro_mac | needs some git-fu for that | 11:59.11 |
pedro_mac | would settle for a âfilter branchesâ option in sourcetree | 12:01.44 |
paulgardiner | I guess I should check sometime that it would actually work. My suspicion is that gitk can handle the number of branches in golden, but it is having trouble with that x 5 | 12:03.06 |
| I've been using sourcetree for a while now but I still prefer gitk | 12:06.21 |
| one tiny commit on my master branch | 12:10.57 |
paulgardiner | tries out Robin_Watts' VS solution for the first time | 12:12.45 |
mattchz | In mupdf, what format is the text expected in when filling out a form? | 12:14.53 |
| We're passing in utf-8, but special characters are getting corrupted. | 12:15.13 |
| s/special/accented/ | 12:15.19 |
paulgardiner | mattchz: yeah, that's all messed up | 12:15.46 |
mattchz | (there's a bug open for it, which I'm looknig at) | 12:16.01 |
paulgardiner | mattchz: all the library APIs should be called with utf8. Internally there should be various conversions that we currently don't do | 12:16.19 |
pedro_mac | paulgardiner: LGTM - just going to testflight it? | 12:16.35 |
mattchz | ok, so just remove the android tag? | 12:16.39 |
paulgardiner | pedro_mac: not yet. Going to look at the top menu problem | 12:17.06 |
pedro_mac | nods | 12:17.14 |
paulgardiner | mattchz: yeah. Makes sense | 12:17.30 |
mattchz | cool, ta. | 12:18.18 |
pedro_mac | notices that commit has your glidos email rather than artifex | 12:18.29 |
paulgardiner | Oh. I better fix that | 12:21.37 |
Robin_Watts | back, now, reading logs. | 12:22.03 |
| paulgardiner: If it's a regression, we should fix it. Possibly it's a misapplication of reviews from branch->trunk. Some of those were to do with rulers. | 12:22.41 |
paulgardiner | Robin_Watts: interesting. I'll check for those | 12:23.10 |
Robin_Watts | mattchz: Putting fz_var in doesn't hurt much (just a function call) even if it's not needed. | 12:23.24 |
| Yes, there looks like a problem with fz_new_list_device. | 12:24.41 |
| fz_new_list_device *should* take instant ownership of the list, and destroy it if there is an error while the device is being set up. | 12:25.14 |
| but it doesn't. | 12:25.22 |
mattchz | dumb question: should the be an fz_var after any write, or is just once in the function enough? | 12:27.54 |
Robin_Watts | just once in the function. | 12:28.24 |
| Think of it as a declaration, hence why we do them (generally) at the top of the function. | 12:28.39 |
| Your commits lgtm. | 12:28.46 |
mattchz | so a variable can't get moved back into a register, presumably. | 12:28.47 |
Robin_Watts | mattchz: Once the address of the variable has been passed out of scope, the compiler has to assume that it might change on any function call. | 12:29.23 |
mattchz | nod | 12:29.37 |
Robin_Watts | (or at least any function call that goes outside it's scope of optimisation). | 12:29.45 |
| longjmp is such a function call :) | 12:29.52 |
paulgardiner | It's like declaring "the value of this variable is changed withing the try clause | 12:29.57 |
mattchz | nod | 12:30.16 |
Robin_Watts | hence we are guaranteed that the value of that variable will always be safely pushed back to memory before longjmp is called. | 12:30.28 |
mattchz | cool | 12:31.33 |
| robin> so there's a bug in fz_new_list_device? | 12:32.44 |
| while the ios code looks fine? | 12:33.13 |
| and also, we don't need an fz_var(list) there, because in all exception cases we return NULL directly. | 12:34.07 |
paulgardiner | Strange! The Windows build doesn't exhibit the problem. | 12:42.40 |
Robin_Watts | mattchz: yeah | 12:42.45 |
mattchz | ok, I'll fix these bits separately. | 12:43.10 |
Robin_Watts | paulgardiner: different options? | 12:43.32 |
paulgardiner | The menu self closes, but the ruler moves with it | 12:44.06 |
| but still I guess it could be to do with options | 12:44.22 |
Robin_Watts | built from the same git tag? | 12:44.31 |
paulgardiner | almost. One further on and the extra is just the addition of a new release config... so yes really | 12:45.54 |
Robin_Watts | different alien behaviour somehow ? | 12:47.27 |
paulgardiner | I think this stuff is all within the library | 12:47.57 |
| I haven't tried iOS debug on my iTouch | 12:48.11 |
| I'll try that | 12:48.15 |
Robin_Watts | pedro_mac: Looking at http://www.digitalpreservation.gov/formats/digformatspecs/OfficeDrawing97-2007BinaryFormatSpecification.pdf it looks like it's dxText{Left,Top,Right,Bottom} that we should be dealing with, rather than the geo stuff. | 12:51.33 |
pedro_mac | agreed - that seems quite specific | 12:54.03 |
Robin_Watts | So I think the next problem is that there should be default values for such things, and we don't have them. | 12:54.53 |
pedro_mac | we should only use geoX to identify the bounds of our own definition of the shape type vertices | 12:54.54 |
| paulgardiner: app/libraries/ue2fileviewer/ue2fileviewer.c may be worth a look as a starting point; handles some of the auto-hide config for the topbar | 12:56.47 |
paulgardiner | pedro_mac: right. Thanks | 12:57.13 |
Robin_Watts | paulgardiner: Random idea: Test the branch point between master and branch | 12:57.31 |
| then bisect up one or the other ? | 12:57.40 |
paulgardiner | I wondered about bisecting but I think I'll have trouble building, unless I can find an early point at which we made Xcode5 work | 12:58.44 |
pedro_mac | Robin_Watts: the Edr_DrawingInfo has a default geometry set which is a square gemetry anchored at 0,0 with a width and height of either Ppt2007_size or Ppt97_size (based on binary or XML doctypes) - libraries/edr/drawing/drawing.c:185 | 13:00.18 |
kens | chrisl looking at this CID font substitution problem.... | 13:00.38 |
jogux | paul: you could just use xcode 4 to build, that should work relatively reliably | 13:00.52 |
| Iâm fairly certain master was broken before robin started reapplying | 13:01.08 |
paulgardiner | I'll give it a go. I'm just checking I can reproduce the problem on my iTouch | 13:01.38 |
Robin_Watts | pedro_mac: That's set in the Edr_DrawingInfo, which (AIUI) is the structure that holds *all* drawings, not just *a* drawing. | 13:02.38 |
paulgardiner | I think then Robin_Watts's suggestion to look for differences in options sounds a good next stop | 13:02.43 |
| I suppose a message to do with this stuff could be routed through the alien and getting lost, but that would mean the design is even more icky than I thought | 13:03.55 |
pedro_mac | Robin_Watts: sure, just saying thatâs where its picking up its current âdefaultsâ from by the looks of it | 13:04.03 |
paulgardiner | So Windows works iOS doesn't strongly suggests a difference in options and a bug dependent on an option | 13:04.29 |
pedro_mac | dxText looks like the right route | 13:04.37 |
kens | chrisl The problemis that the 'subst' object has a rc.free which points to garbage. Tracking this through, I see that at the end of the page the ref count is 30 (2 for every use I think), whicih is duly decremented a number of times, presumably as pdfwrite discards the fonts or something. At the end of the page its count is 6 (I'm not sure why). Before the start of the next page, we get a z2restore, which works its way down free | 13:04.38 |
| ing and filling with zero, which overwrites the 'free' routine pointed to by the susbst rc object. Even though the subst object rc has a ref count of 6 (I believe). This causes the problem. Of course in a release buld the memory isn't freed so this doesn't happen. I still don't understand why this doesn't crash for you | 13:04.38 |
Robin_Watts | pedro: Right, thanks. | 13:05.01 |
| I wonder if there is a way to get the default values somehow... | 13:05.29 |
kens | wonders if pdfwrite is maintaining a stale pointer to a free onject | 13:06.25 |
| Ah, and teh rednering code seg faults under the debugger :-( | 13:07.41 |
| Still during vmreclaim | 13:08.00 |
| So its *not* pdfwrite causing this particular bug | 13:08.18 |
Robin_Watts | foods. | 13:09.22 |
pedro_mac | Robin_Watts: interesting post here regarding preset shape definitions: http://social.msdn.microsoft.com/Forums/en-US/3f69ebb3-62a0-4fdd-b367-64790dfb2491/presetshapedefinitionsxml-does-not-specify-width-and-height-form-some-autoshapes?forum=os_binaryfile | 13:15.42 |
| openofficeâs version is here: http://svn.apache.org/repos/asf/openoffice/trunk/main/oox/source/export/presetShapeDefinitions.xml | 13:17.13 |
| presumably M$ have similar somewhere, but havenât found it yet | 13:17.32 |
| Robin_Watts: ecma. dâuh. http://blogs.msdn.com/b/openspecification/archive/2011/11/14/how-to-use-the-presetshapedefinitions-xml-file-and-fun-with-drawingml.aspx | 13:19.00 |
paulgardiner | jogux: so I'll need to temporarily call Xcode4 Xcode? | 13:33.59 |
| jogux: so I'll need to temporarily call Xcode4 Xcode? (in case you missed that as you fell off freenode) | 13:34.56 |
jogux_ | paul: yes | 13:35.49 |
| and make sure xcode-select points at Xcode.app too | 13:36.06 |
| probably best to skip back to the last picsel commit, and confirm that it is definitely broken there (as xcode4 may not work to build after that) | 13:38.14 |
paulgardiner | Just doing that now. :-) | 13:38.32 |
| Yep. Broken on trunk before we took over | 13:48.45 |
henrys | wonders if one knows all the files in the cluster are going to change is it best to go CLUSTER UNTESTED. | 13:49.50 |
Robin_Watts | henrys: No. | 13:49.59 |
henrys | Robin_Watts: probably right - we should have the record | 13:50.20 |
Robin_Watts | Because you want the test to be run so that the next test correctly runs from the updated baselines. | 13:50.23 |
| otherwise that commit will show up with lots of unexpected changes. | 13:50.38 |
| paulgardiner: How about where branch and trunk diverge? | 13:50.58 |
henrys | Robin_Watts: oh wow I thought cluster untested silently updated the md5âs | 13:51.11 |
Robin_Watts | If it's broken there, then you can possibly hope for a 'fix' on the branch. | 13:51.16 |
| cluster untested just doesn't schedule a cluster test :) | 13:51.26 |
paulgardiner | Robin_Watts: looking at that now | 13:51.33 |
Robin_Watts | pedro_mac: As far as I can see presetShapeDefinitions.xml does not contain the dxText values. | 13:53.31 |
| and the MSDN article doesn't mention them either. | 13:53.53 |
henrys | Robin_Watts, chrisl, marcosw : all news to me, I vote to get rid of the option. Little to gain much confusion potential. | 13:55.07 |
Robin_Watts | henrys: Sure. The only purpose for it was to avoid overloading the cluster with commits that we know cannot possibly make a difference. | 13:56.03 |
| since we've had more servers, it's much less of an issue. | 13:56.15 |
henrys | Iâll bring it up tuesday | 13:57.13 |
Robin_Watts | Removing it would hardly be contentious - I can't recall anyone using it recently. | 13:57.47 |
| well, just chrisl, it seems. | 13:58.27 |
henrys | Robin_Watts: hah | 14:00.27 |
| the catâs will not be hearded | 14:01.07 |
| s/â// | 14:01.27 |
pedro_mac | Robin_Watts: doesnât contain dxText, but I was looking to see if any of the guides were being used as defaults for text. doesnât look like it :( | 14:05.57 |
mvrhel_laptop | good morning | 14:06.13 |
chrisl | Robin_Watts, henrys, marcosw: I use it for things like doc changes and non-Unix build changes - but only because I try to be a "good citizen" and not pointlessly use up resources. It wouldn't worry me if it was taken away. | 14:06.25 |
Robin_Watts | pedro_mac: The first line of his question seems like it should be right on topic, but then I can't see him ever mention text again. | 14:06.32 |
| chrisl: Yes, I wasn't suggesting you were misusing it. (Just pointing the finger at the person that writes documentation ;) ) | 14:07.05 |
chrisl | Robin_Watts: it probably is primarily only relevant to me, as I said, it wouldn't worry me if the option disappeared | 14:08.47 |
Robin_Watts | mvrhel_laptop: Morning. | 14:09.28 |
chrisl | kens: I've even tried with -Z@ and the file still doesn't crash for me - very confusing...... | 14:09.29 |
kens | chrisl just a moment | 14:09.40 |
paulgardiner | Looks like --ios wasn't an allowed build option back at the branch point | 14:09.44 |
henrys | mvrhel_laptop: an icc interruption. | 14:10.06 |
jogux_ | paulgarinder: use âiphone-device or something like that | 14:10.08 |
kens | chrisl I definietly see the memory being used byt the structure released on z2restore | 14:10.09 |
mvrhel_laptop | henrys: another one.. | 14:10.20 |
| ? | 14:10.22 |
Robin_Watts | http://social.msdn.microsoft.com/Forums/en-US/150245f6-c643-4a6d-b117-c8495d638f60/text-bounding-box-size-for-powerpoint-autoshapes-is-not-mentioned-in-ecma376?forum=os_binaryfile | 14:10.31 |
kens | If you break in release_subst_CID_on_WMode you don;t see the 'free' being corrupted ? I see it on debug both pdfwtite and rendering | 14:10.42 |
henrys | mvrhel_laptop: no I meant the last one | 14:10.45 |
Robin_Watts | pedro_mac: ^ | 14:10.46 |
chrisl | kens: I never tried it in a debugger..... | 14:11.39 |
mvrhel_laptop | oh yes henrys | 14:11.54 |
kens | for me rendering crashes ina debugger, because of teh memory wipe | 14:12.06 |
mvrhel_laptop | that one I apparently knew about as I had made a comment in the code that I needed to do that | 14:12.12 |
| not sure while I just did not do it at the time | 14:12.22 |
chrisl | kens: well, -Z@ should zap freed memory | 14:12.33 |
kens | baffling | 14:12.49 |
mvrhel_laptop | marcosw: will you give them a patch? | 14:13.03 |
chrisl | kens: well, erm, it's not calling release_subst_CID_on_WMode() for me at all..... with the default cidfmap | 14:13.39 |
kens | O.O | 14:13.47 |
| For me ig gets called many times | 14:14.09 |
chrisl | Are you sure you don't have anything in your cidfmap? | 14:14.38 |
kens | clean source and no --I or anything | 14:15.04 |
chrisl | Or is it picking up a cidfmap for an installed gs? | 14:15.18 |
paulgardiner | jogux_: now I think I've strayed into a time when we used a different version of python. :-( | 14:15.24 |
jogux_ | hm. whatâs the error? | 14:15.39 |
paulgardiner | "Type : invalid literal for int() with base 10: '' | 14:15.55 |
kens | chrisl can't see how, and that would presumably get me the 'wrong library verison' error | 14:15.57 |
paulgardiner | That was two single quotes at the end when I typed it | 14:16.22 |
jogux_ | paulgardiner: Thatâs code for âI canât find gccâ | 14:16.25 |
| iirc | 14:16.28 |
pedro_mac | Robin_Watts: not sure I follow their meaning; thatâs basically saying the bounding box of the shape is the bounding box of the text? | 14:16.50 |
chrisl | kens: I don't think you'd get an error as it should only find the cidfmap (no other init files), and I can't remember if we stash such path related stuff in the registry | 14:17.30 |
Robin_Watts | pedro_mac: For every autoshape in the presetShapeDefinitions.xml there is a <rect.../> definition. | 14:17.42 |
| I don't think that 'rect' says anything about the size of the shape. | 14:17.57 |
kens | chrisl well even if its finding a cidfmap, its still substituting for the fons | 14:18.07 |
Robin_Watts | I think it's purely the text size. | 14:18.10 |
| the text box size. | 14:18.18 |
chrisl | kens: is it using DroidSansFallback? | 14:18.43 |
kens | appears to be, let me check | 14:18.52 |
| I see droidsansfallback 3 times on page 1 | 14:20.11 |
chrisl | And the test file name is 2pages_not_embedded_font_test.pdf | 14:20.16 |
kens | THe ohters are substituted for Aobe-Japan1 or Adobe-Korea1 | 14:20.38 |
| yes that's the file | 14:20.41 |
| I see the release_subst_CID_on_Wmode being called from font_finalize from z2restore | 14:21.19 |
| when I press 'retrun' to finish page 1 | 14:21.31 |
chrisl_r500 | Okay, trying on Windows...... | 14:21.32 |
kens | OnPage 2 I see droidsans called once, all the others then use Adobe-Japan1 | 14:22.12 |
pedro_mac | Robin_Watts: fun - in my simple test file with a 12-point star and âmooâ the rect is associated with the txBody element, rather than the owning shape and has no explicit attributes | 14:22.37 |
Robin_Watts | How are you doing that test ? | 14:22.56 |
pedro_mac | so I can only assume its either implicitly defined somewhere or is specified by the <a:xfrm> element on the shape | 14:23.22 |
kens | chrisl where is the default cidfmap anyway ? | 14:23.26 |
Robin_Watts | I think this stuff is all 'implicit'. | 14:23.28 |
chrisl_r500 | kens: Resource/Init | 14:23.41 |
kens | ah right | 14:23.45 |
| let me check that too | 14:23.51 |
Robin_Watts | I think autoshapes automatically set up shape dependent internal text boxes. | 14:24.06 |
kens | chrisl its empty | 14:24.09 |
| Only comments | 14:24.15 |
chrisl_r500 | This will take a minute - something eat my executable...... | 14:24.44 |
Robin_Watts | and the values for the margins for those text boxes are calculated using the formulas encoded in presetShapeDefinitions.xml | 14:24.51 |
kens | chrisl I specified a -I switch to /ghostpdl/gs/Resource and I still see release_subst_CID_on_WMode being called | 14:25.37 |
pedro_mac | Robin_Watts: yeah, seems logical. ish. | 14:26.10 |
Robin_Watts | pedro_mac: I can't see a copy of presetShapeDefinitions.xml in our code. | 14:26.22 |
| So I assume that we must have the preset shapes hardwired. | 14:26.38 |
pedro_mac | more than likely all hardcoded | 14:26.40 |
kens | Wow, with the display device the ref_count goes bananas, its -17891602, so it never tries to free the struct | 14:26.42 |
pedro_mac | yup | 14:26.44 |
Robin_Watts | so probably we need to similarly hardcode those text boundaries. | 14:26.58 |
chrisl_r500 | kens: well, that one "solution" | 14:27.03 |
kens | chrisl but nevertheless it still crashes for me | 14:27.14 |
| because subst->rc is bogus | 14:27.45 |
kens | fires up a Linux VM | 14:28.14 |
paulgardiner | jogux_: might replaceing gcccommon.py with the most recent version fix this, do you think? | 14:30.26 |
Robin_Watts | paulgardiner: Do you have a copy of gcc on the machine in question? | 14:30.53 |
mvrhel_laptop | brb. need to restart | 14:31.28 |
kens | OK building a Linux 64-bit binary to test with | 14:32.04 |
chrisl_r500 | Is there a way to get VS to lookup a function name? | 14:32.21 |
kens | lookup in what sense ? | 14:32.30 |
| right click and 'go to definition' if that's what you want | 14:32.40 |
paulgardiner | Robin_Watts: Oh! I was assuming we were still using gcc for iOS builds. If we've used gcc in the past and moved away from it on iOS then possibly I don't have a copuy | 14:33.00 |
chrisl_r500 | I know the function name, I don't know what file it's defined in, or where it's called from | 14:33.03 |
kens | fid in files ? | 14:33.16 |
| or even 'find in files'. I think there's an easier way too | 14:33.29 |
| But I can't recall it | 14:33.35 |
chrisl_r500 | So, grep.... | 14:33.35 |
Robin_Watts | paulgardiner: I mean, type "gcc" on the command line and see if it gives an error :) | 14:33.36 |
kens | chrisl : that way is a grep yes. | 14:33.43 |
| I just can't remember the other method | 14:33.50 |
paulgardiner | just did and yes I have | 14:33.51 |
Robin_Watts | chrisl_r500: Ctrl-Shift-F will basically do grep for you. | 14:33.52 |
chrisl_r500 | I was hoping it would find it via the symbols in the debugging info | 14:34.16 |
paulgardiner | I'll try the gcccommon.py substitution. Can't hurt | 14:34.29 |
Robin_Watts | but if you have a piece of code where that function name is called, right click it and click "go to definition" | 14:34.32 |
kens | I'm pretty sure there's a way to do that, if had a memory..... | 14:34.37 |
Robin_Watts | or, type the name in a spare window, and then click that :) | 14:34.55 |
mattchz | robin/paul: two more commits for you (sorry!) | 14:35.46 |
| http://git.ghostscript.com/?p=user/matt/mupdf.git;a=summary | 14:35.46 |
kens | chrisl edit->intellisense->lilst members gives an alphabetical list, tehn hovering the mouse over it will tell you the file its in. | 14:37.22 |
chrisl_r500 | kens: close enough, thanks | 14:38.04 |
kens | I'm sure there's a better way :-( | 14:38.26 |
| Well 64-bit Linux doesn't crash right enough | 14:39.13 |
chrisl_r500 | kens: so, in zbuildfont11() I never see a dictionary with a /subst_CID_on_WMode entry in it | 14:40.06 |
kens | really ? Let me look here | 14:40.18 |
| first call hits that for me | 14:41.10 |
| So I must have *something* different | 14:41.24 |
| But I have no clue what it is. | 14:41.33 |
chrisl | kens: that entry is created in gs_cidtt.ps line ~88 | 14:42.32 |
kens | I get the usual slew of errors 'Can't find CID font "Gulim" Atttempting to substitute CID font "/Adobe-Korea1 for /Gulim" | 14:42.37 |
| ah let me look there | 14:42.42 |
| really ? line 88 is /.loadfontfile for me | 14:43.38 |
| D'oh wrong file | 14:44.00 |
jogux | paul: thatâs annoying. I canât remember other issues :( | 14:44.31 |
kens | Hmm, ok let me stick a print or two in there | 14:44.45 |
paulgardiner | jogux: latest gcccommon.py fails but in a different way: "getGccVersion failed to find version for /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang" | 14:47.10 |
jogux | paulgardiner: ahha. that means it thinks it canât find the xcode version | 14:47.34 |
kens | chrisl OK so for me 'resourcestatus returns true and goes through the code at line 88 to insert the subst_CID.... | 14:47.40 |
jogux | you definitely has a correct /Applications/Xcode.app? | 14:47.49 |
kens | presumably for you it returns false | 14:47.52 |
chrisl | kens: for me it returns false - and I think I see why.... it doesn't look like the /SubstCID resource files are being built into the romfs | 14:48.41 |
paulgardiner | I suppose it's possible that I have an Xcode4 that has behind the scenes been updated to 5. How would I tell? | 14:48.54 |
kens | chrisl that would explain a great deal, except why you don;t see the problem on WIndows | 14:49.09 |
jogux | paul: run it and check the about menu :-) | 14:49.09 |
paulgardiner | 4.6.3 | 14:49.28 |
jogux | thatâs right | 14:49.33 |
| so⦠open tgvbuild.py and search for /Developer, and see if you can see why itâs going the /Developer route rather than the /Applications one | 14:49.52 |
paulgardiner | Okay ta | 14:50.13 |
chrisl | kens: actually, it doesn't explain why you *do* see it on Windows, since the romfs is created by the same makefile for both! | 14:50.35 |
kens | yes, that's sort of what I mean, we should be the same...... | 14:50.54 |
| Also, if I set includes with -I, why do I still see the problem, now I'm confused again | 14:51.41 |
paulgardiner | jogux: ah! Looks in Developer unless IOS_SDK_VERSION > 5.0 | 14:52.08 |
chrisl | With -I it probably *will* find the SubstCID resources | 14:52.24 |
kens | realises that is precisely the problem..... | 14:52.51 |
jogux | paulgardiner: hm, I thought we defaulted to higher than that, but I guess âiphone-sdk=6.1 or similar will fix then :) | 14:52.57 |
kens | I hacked gs_cidtt.ps and added a -I to find it, now it works | 14:53.05 |
kens | smacks head | 14:53.13 |
chrisl | Hmm, build fixed, still no crash..... | 14:54.13 |
kens | and rebuilding makes the problem go away | 14:54.21 |
| O.O | 14:54.24 |
paulgardiner | and that way they'll be some chance it'll run on my device if I do ever get it to build | 14:54.28 |
kens | chrisl, now I can't reproduce the crash........ | 14:55.34 |
chrisl | Urm...... | 14:55.48 |
| kens: -Z@ | 14:56.14 |
| maybe? | 14:56.22 |
kens | Just going to do a full clean build | 14:56.25 |
| will try that after | 14:56.29 |
paulgardiner | and now getGccVersion fails to find gcc in an entirely different place!! | 14:56.46 |
jogux | paul> which is? | 14:56.58 |
kens | oh great and someone reporting an intermittent problem. | 14:57.05 |
paulgardiner | "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang" | 14:57.30 |
jogux | hm, Iâd tend to agree that it canât be found there. | 14:58.18 |
chrisl | kens: with the build fixed so it includes the missing resources, I do get the /subst_CID_on_WMode entry, and I do see release_subst_CID_on_WMode() being called - but still no crash | 14:58.20 |
jogux | paul: puzzling. | 14:58.52 |
kens | chrisl that's odd.... COUld be memory dependent I suppose | 14:58.55 |
| But if you zap the memory with 0 it *should* crash. | 14:59.10 |
paulgardiner | so the "/clang" bit on the end is wrong? | 14:59.21 |
chrisl | kens: I tried -Z@ no luck | 14:59.32 |
kens | chrisl of course this may be nothing to do with the customer's problem | 14:59.46 |
jogux | paulgardiner: I guess so. | 15:00.07 |
chrisl | I wish they would put a SHA, rather than just rely on "master" | 15:00.11 |
jogux | paulgardiner: itâs very possible we never tried building master with xcode4 I guess :-S | 15:00.19 |
kens | chrisl I'm pretty suspicious 'master' is bogus too | 15:00.38 |
jogux | but Iâm sure it didnât build with xcode5 either, which leaves it as a bit of a mystery what it did build with. | 15:00.44 |
chrisl | kens: he says in the report "with GS Head....." | 15:01.13 |
kens | Oh, missed that. Well he *really* needs to say how he's building ti then | 15:01.29 |
chrisl | Nope, even backing up a few commits doesn't show a crash | 15:03.52 |
kens | Well now it won't crash for me either. | 15:04.38 |
| Full rebuild works perfectly | 15:04.46 |
| So I guess its down to the customer to supply something which fails. | 15:05.06 |
mattchz | robin/paul> are there old builds of mupdf for android available anyway? e.g. 1.4 | 15:05.47 |
| actually, don't worry, I'll just rebuild. | 15:06.46 |
Robin_Watts | mattchz: Some, but they are not immediately version tagged. | 15:07.03 |
paulgardiner | mattchz: there's a 1.4 version in /home/releases/issues/8114 on casper. | 15:07.47 |
chrisl | kens: so I think we need a lot more info - how he's building and what with, the exact SHA, plus all the font related stuff you've already asked about | 15:07.49 |
mattchz | ah, thanks | 15:07.59 |
kens | chrisl yes, that'sd pretty much how I feel. I also think it would be a *really* good idea if he reduced the file to something more manageable rather than sending us 24 fonts, which I suspect is his likely first response...... | 15:08.53 |
Robin_Watts | paulgardiner: WTF? | 15:09.42 |
| mattchz is taking about mupdf. /home/releases is for SOT right? | 15:10.07 |
paulgardiner | Aagh! Brain addled by SOT | 15:10.30 |
mattchz | np, I'm building from sauce anyway | 15:10.52 |
paulgardiner | There's a MuPDF 1.4 on testflightapp maybe | 15:11.14 |
mattchz | ah right, yeah | 15:11.38 |
| ta | 15:11.43 |
Robin_Watts | Most of the versions that have been on google play can be found on http://ghostscript.com/~robin | 15:11.57 |
mattchz | handy | 15:12.50 |
paulgardiner | With my SOT addled brain, I shouldn't be reviewing your commits, but... | 15:13.07 |
mattchz | the sequentially numbered ones? | 15:13.11 |
paulgardiner | should you not destroy dev before rethrowing and I think you need to init dev to NULL in case fz_new_device throws | 15:14.13 |
Robin_Watts | mattchz: Yeah. | 15:14.19 |
| 50-53 are the current ones. | 15:14.23 |
mattchz | ah, those numbers match up with the numbers in the dev console? | 15:14.38 |
| (I tried to download them from there, but it seems you can't) | 15:14.48 |
Robin_Watts | mattchz: Yeah. | 15:15.15 |
| paulgardiner: I think the commit is right. The only thing that can fail is the creation of dev. | 15:15.49 |
paulgardiner | Oh okay. Just need to be careful if adding any more calls in there. | 15:16.35 |
Robin_Watts | mattchz: "inptr_t" - I think you mean "intptr_t" in the commit message. | 15:16.43 |
| paulgardiner: Yeah. | 15:16.46 |
mattchz | ah, yes. | 15:17.22 |
| do you want me to destroy dev then just in case? | 15:17.33 |
Robin_Watts | mattchz: Does %uu work properly on windows ? | 15:17.36 |
paulgardiner | I'd be tempted to do it just to follow the paradymn, but I don't have a strong feeling that way | 15:17.38 |
mattchz | %u is what was already there. | 15:17.49 |
| u is just literal | 15:18.06 |
Robin_Watts | oh, and you're adding a suffix. sorry. | 15:18.07 |
| yeah, that seems fine to me. | 15:18.16 |
paulgardiner | to me too | 15:18.28 |
mattchz | I left out the first %u -> %uu, because it was actually an int | 15:18.34 |
| if I destroy the dev, I'd need an fz_var correct? | 15:19.12 |
Robin_Watts | yes. | 15:20.35 |
kens | chrisl, customer updated report :-( | 15:21.18 |
chrisl | kens: I see..... | 15:21.24 |
kens | NB he says its a problem with rendering also | 15:23.03 |
| OK now I have to set up a test environment for this | 15:24.40 |
mattchz | btw, is it a bug that make clean in the root doesn't delete the stuff in generated? | 15:26.54 |
Robin_Watts | You say bug, I say feature :) | 15:27.14 |
mattchz | heh | 15:27.19 |
chrisl | kens: and I see a segfault...... | 15:27.33 |
mattchz | the reason I ask is that when checking out old versions, stuff breaks when you try and rebuild the android. | 15:27.37 |
kens | chrisl you're ahead of me, still setting up fonts | 15:27.44 |
paulgardiner | Well somethings building. Dread to thing what. It'll probably have 3 legs, on eye and a hare lip | 15:27.46 |
mattchz | because the structs in the cmaps have changed. | 15:27.49 |
kens | chrisl what if you use the TIFF device ? | 15:27.56 |
Robin_Watts | mattchz: Hmm, yes. | 15:27.59 |
mattchz | (in fact, it's also a bug that ndk-build doesn't do rebuild the generated) | 15:28.06 |
Robin_Watts | mattchz: No, it's not. | 15:28.17 |
kens | wonders why the4 customer is using '//' as a separator | 15:28.22 |
mattchz | no? | 15:28.24 |
Robin_Watts | How could ndk-build possibly rebuild the generated? | 15:28.32 |
mattchz | cd .. && make generated or something :) | 15:28.45 |
chrisl | kens: tiffgray seg faults, too | 15:28.46 |
Robin_Watts | That would require a host targetted C compiler, and we don't have one. | 15:28.49 |
kens | chrisl well that's encouraging actually | 15:28.56 |
Robin_Watts | It's all clearly documented in step 10 of the android ReadMe.txt that no one ever reads. | 15:29.10 |
mattchz | I read it ;) | 15:29.20 |
| Just wondered if it'd be nice to automate. I guess it only works because I've also got a mac build env setup | 15:29.50 |
chrisl | <sigh> in do_validate_object() :-( | 15:29.59 |
mattchz | (i.e. I have a host compiler) | 15:30.00 |
Robin_Watts | on linux and macos you can often get away with make generated. | 15:30.18 |
| on windows... no. | 15:30.21 |
mattchz | yeah. | 15:30.24 |
| I realise that now... | 15:30.30 |
kens | chrisl, that's one of the places I was getting a seg fault before, that one was whewn rendering | 15:30.42 |
| chrisl how do you add a cidfmap ? | 15:30.54 |
| Just reaplce the on in Resource/Init ? | 15:31.04 |
chrisl | Yes | 15:31.12 |
kens | OK let me see then | 15:31.31 |
Robin_Watts | stupid sodding windows in the VM is now refusing to talk to the real windows on the same box to network stuff :( | 15:32.06 |
mattchz | how's that look: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=1b7decfcad3fb4c67d421b3a0a3b03dd25e3f6df | 15:32.20 |
| I'll fold it into the earlier commit if you're happy. | 15:32.28 |
Robin_Watts | looks good to me, yeah. | 15:32.46 |
mattchz | ta. | 15:32.50 |
Robin_Watts | oh, wait... | 15:32.56 |
paulgardiner | mattchz: just lovely | 15:32.56 |
kens | chrisl OK yes I get a segfault alos, sadly it looks different to the one I was seeing earlier | 15:33.15 |
Robin_Watts | The moment fz_new_device succeeds, the responsibility for dropping list has moved from fz_new_list_device into the device itself. | 15:33.39 |
| hence dev = fz_new_device(ctx, list); | 15:33.48 |
chrisl | kens: if it's memory corruption, it could be the same problem, difference place | 15:33.50 |
mattchz | ah, good point. | 15:33.56 |
Robin_Watts | should be followed immediately by: list=NULL; | 15:34.00 |
mattchz | ok, I need to null it then. | 15:34.01 |
mattchz | nods | 15:34.04 |
kens | Possibly yes, but I'm not absolutely sure | 15:34.08 |
chrisl | Let's just worry about the reported problem...... | 15:34.28 |
kens | I'm seeing a crash in do_validate_object as well: | 15:34.38 |
| ulong size = pre_obj_contents_size(pre); | 15:34.38 |
paulgardiner | Robin_Watts: well spotted | 15:34.43 |
chrisl | kens: 'cause pre is nonsense? | 15:35.00 |
kens | Yes, exactly so | 15:35.06 |
| It is vm_reclaim I see | 15:35.41 |
paulgardiner | Robin_Watts: needs a var list aswell then? | 15:35.51 |
Robin_Watts | no, list is passed in. | 15:36.04 |
paulgardiner | Ignore me | 15:36.11 |
| yeah. Not being changed | 15:36.18 |
mattchz | howzat: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=26eb3804b56fdd6a4151570b461c80f67a1f030e | 15:36.20 |
Robin_Watts | except by being NULLed. | 15:36.28 |
| and even then, it's safe because it's passed in (it's not a local var) | 15:36.41 |
mattchz | and this is why I love objective C :) | 15:36.43 |
| (with ARC) | 15:36.54 |
chrisl | kens: memento reports corrupted block(s) | 15:37.03 |
kens | chrisl I don't know if this helps, or obfuscates, but I'm seeing a similar problem to before in release_susbt_CID_on_WMode. subst->rc.ref_count goes mental | 15:37.04 |
Robin_Watts | mattchz: All destructors in MuPDF accept NULL. | 15:37.10 |
| so you don't need the if (list != NULL) | 15:37.17 |
mattchz | not this one apparently | 15:37.19 |
Robin_Watts | REALLY? | 15:37.28 |
chrisl | kens: that's probably because of the memory being freed...... | 15:37.36 |
paulgardiner | Robin_Watts: oh hang on. Are you sure? Passed in by value | 15:37.42 |
mattchz | void | 15:37.51 |
| fz_drop_display_list(fz_context *ctx, fz_display_list *list) | 15:37.52 |
| { | 15:37.53 |
| fz_drop_storable(ctx, &list->storable); | 15:37.54 |
| } | 15:37.55 |
kens | chrisl I would guess so, I'll follow that thread and see where it goes (probably nowehere) | 15:38.00 |
Robin_Watts | &list->storable is NULL for list == NULL :) | 15:38.10 |
mattchz | is it?!! | 15:38.19 |
Robin_Watts | storable is the first thing in the header, deliberately. | 15:38.23 |
mattchz | bah | 15:38.26 |
| isn't that, well, err, a bit yuk? | 15:38.44 |
Robin_Watts | mattchz: I don't think so. | 15:39.04 |
paulgardiner | Robin_Watts: I would have thought the compiler would feel just as free to stick a passed in value into a register | 15:39.06 |
Robin_Watts | paulgardiner: You are right. | 15:39.29 |
| so an fz_var would be good. | 15:39.34 |
kens | chrisl yes as before its z2restore freeing the memory being used by the substitute font | 15:40.11 |
| weird, it looks like the subst stuff is subject to save/restore, it came out of z2restore with a refcount of 2, when it went in at 26 | 15:41.40 |
mattchz | cheekily retorts back with 'there's no comment in fz_display_list_s indicating that fz_storable must never have another insertedf before it' ;-) | 15:43.36 |
| another field | 15:43.44 |
| that is. | 15:43.45 |
| but fair enough ;) | 15:43.50 |
chrisl | kens: I would assume that's because the (CID)Font is subject to save/restore, too | 15:44.31 |
Robin_Watts | mattchz: It's kinda central to the way fz_storable things work. | 15:44.53 |
kens | chrisl I guess that must be it. BUt at the time its restored its ref count is 24 | 15:44.54 |
chrisl | Seems high, but..... | 15:45.26 |
Robin_Watts | Within MuPDF various objects are ref counted. Others are both ref counted and cacheable. | 15:45.35 |
kens | seems like a count of 2 per font at least | 15:45.41 |
Robin_Watts | All ref counted and cacheable things start with a storable. | 15:45.57 |
mattchz | nod. | 15:46.03 |
| that makes sense. | 15:46.07 |
Robin_Watts | yes, comments should possibly be improved. | 15:46.18 |
mattchz | The &blah->storable thing confused me though at first. | 15:46.19 |
Robin_Watts | I did a double take, yes. | 15:46.27 |
kens | chrisl *something* is still pointing at this memory. vm_reclaim counts it down fomr 2 to 0 and frees it, tehn something scribbles in the memory, then I come through again pointing at theg old 'susbt' memory and its all been corrupted | 15:47.35 |
| That causes us to decrement the refcnt by 2, so we then coruupt whatever is stored there.... | 15:48.21 |
chrisl | kens: subst objects does have a ref count of 2 for each font object which seems - strange...... | 15:48.51 |
Robin_Watts | kens: Is the memory in question a malloced block ? | 15:49.22 |
kens | Agreed, but to be honest I'[m more concerned that it seems to keep on calling release_subst_CID_on_WMode, and each time it counts down the 'ref count' which is effectively corrupting 'something' | 15:49.44 |
| Robin_Watts : no idea | 15:49.47 |
| but I'd submit that a later seg fault suggests we are corrupting something useful | 15:50.03 |
Robin_Watts | valgrind or memento. or both. | 15:50.12 |
kens | eh ? | 15:50.23 |
mattchz | better? http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=ad7c0c6a3bb682145d61557f8f27625e8f1f1e25 | 15:50.28 |
Robin_Watts | kens: I'd suggest using valgrind or memento. or both. | 15:50.49 |
kens | Robin_Watts : chrisl is doing that :-) | 15:50.58 |
Robin_Watts | oh. I'll shut up :) | 15:51.08 |
| mattchz: lovely. | 15:51.19 |
mattchz | awesome, ta. | 15:51.43 |
kens | chrisl in a vague hand-waving sort of way it look slike gc_objects_set_reloc is continuning to finalize the CIDFonts which have already been freed earlier in the vm_reclaim. THat is definitely corru[ting memory, but I don;t know if its causing the problem here. | 15:53.07 |
| Well if I stop it breakling the ref count then it still goes wrong, but in a different way. Oh well :( | 15:55.29 |
| chrisl OK if I assign this one to you, since its not pdfwrite-specific ? | 15:56.11 |
chrisl | kens: yeh, absolutely - only thing it, I'm on vacation tomorrow and Monday | 15:56.32 |
kens | Well I don't see me making any likely p;rogress on it before then anyway | 15:56.53 |
| Enjoy your time off :-) | 15:57.02 |
chrisl | Thanks - I'm spending a long weekend in the 1950's - erm, I mean, the Isle of Wight | 15:57.41 |
kens | :-) | 15:57.50 |
paulgardiner | jogux: I've nearly got this thing to build, except now I have link warnings to do with TicPrint. | 15:57.55 |
kens | hadn't realised they'd reached the 50's yet | 15:58.03 |
jogux | paulgardiner> boggle. | 15:58.14 |
| are you building for x86? | 15:58.24 |
paulgardiner | For the device | 15:58.43 |
jogux | is tempted to say ignore them if theyâre warnings :) | 15:59.06 |
chrisl | kens: as long as I don't see the locals burning a large wicker effigy..... | 15:59.12 |
kens | doens't think they are that friendly | 15:59.25 |
| You're probably safe as long as you seem to have money though | 15:59.45 |
paulgardiner | I wish I'd really meant warnings! | 15:59.53 |
chrisl | kens: Actually I was on the IoW back in Feb - never been there before, and now twice within 6 months..... | 16:00.36 |
kens | Ah, a strange attractor :-) | 16:00.50 |
mvrhel_laptop | I had to look this place up | 16:01.05 |
| looks interesting | 16:01.10 |
kens | Which place ? | 16:01.19 |
mvrhel_laptop | IoW | 16:01.25 |
chrisl | This trip wasn't exactly my idea...... | 16:01.26 |
jogux | paul: ah ;-) what are they? is it easiest to just disable printing maybe? not sure why this is proving so tricky :-S | 16:01.34 |
kens | mvrhel_laptop : I suppose it could qualify as interesting, for small values of interesting | 16:01.48 |
| I wouldn't recommend visting it in December though | 16:02.15 |
chrisl | The weather was pretty horrid in Feb! | 16:02.42 |
kens | I would expect so :-) | 16:02.57 |
paulgardiner | A lot of the hassle was to do with SDK 6.1. I had a load of deprecations to fix and warnings about uninitialised stuff (which were all valid warnings!) | 16:03.08 |
Robin_Watts | mvrhel_laptop: Are you going to bring the kids etc in December? | 16:03.30 |
mvrhel_laptop | Robin_Watts: that is the plan | 16:03.37 |
paulgardiner | I guess I need a build option to leave out ticprint. | 16:03.50 |
Robin_Watts | I think Miles is still trying to find a "downtown" london hotel that doesn't cost the earth... | 16:04.20 |
kens | thinks he'll be liucky.... | 16:04.34 |
paulgardiner | I can probably find it. I remember seeing it before ALIEN_IPHONE_PRINT=0 or something | 16:04.38 |
mvrhel_laptop | Robin_Watts: right. It will be nice to be closer to everything since Stephanie will be taking the kids out and about during our meetings | 16:05.00 |
Robin_Watts | mvrhel_laptop: yeah. | 16:05.14 |
pedro_mac | Robin_Watts: tbh youâd probably be better/cheaper renting apartments for a few days rather than hotels | 16:05.20 |
Robin_Watts | I pointed him at a couple of places, but it's still the thick end of 200 quid a night. | 16:05.47 |
pedro_mac | reckons you could (as long as some folks are prepared to share) get 2 or 3 room apartments for less than 250/night | 16:06.26 |
jogux | boggle. sure I paid under 100/night last time I stayed in london. | 16:06.30 |
Robin_Watts | jogux: Depends where you want to stay. | 16:06.42 |
pedro_mac | jogux: depends where you stay :) | 16:06.45 |
kens | I seem to remember one of the ladies who rides in our lesson recommending a place at Marble Arch that was reasonable, I'll see if I can find out more | 16:06.48 |
pedro_mac | grins | 16:06.50 |
jogux | that was tower bridge or something I think | 16:07.00 |
Robin_Watts | the intercontinental? at canary wharf? | 16:07.17 |
kens | jogux, yeah well things were cheaper in the 70's :-) | 16:07.22 |
Robin_Watts | st catherines dock, sorry. | 16:07.42 |
mvrhel_laptop | well at least they added back non-stop from Seattle to LHR. For awhile there were no such flights | 16:07.56 |
| prices are somewhat reasonable | 16:08.04 |
| 9.5 hours.. We will see how the kids do on that | 16:08.54 |
Robin_Watts | mvrhel_laptop: I recommend lots of sugar, and seats the opposite end of the plane to you. | 16:09.17 |
mvrhel_laptop | what is the flight time for you guys when you come to SFO | 16:09.19 |
| Robin_Watts: :) | 16:09.23 |
Robin_Watts | 10.5 hours or so. | 16:09.29 |
mattchz | This place wasn't bad, and not too expensive when I went recently: | 16:09.38 |
| http://www.pestana.com/en/pestana-chelsea-bridge-hotel/pages/home.aspx | 16:09.39 |
| if brixton counts as central enough. | 16:09.48 |
mvrhel_laptop | Robin_Watts: have you guys already gotten your tickets for chicago? | 16:10.24 |
| I guess I need to do that | 16:10.28 |
Robin_Watts | mvrhel_laptop: Yeah. | 16:10.34 |
mattchz | when is it you guys are going to be in SFO btw? | 16:10.36 |
Robin_Watts | Not til next year now. | 16:11.00 |
| chigago in sept, london in dec, probably SFO in mar. | 16:11.18 |
henrys | mattchz: chicago is next | 16:11.18 |
mattchz | ah. I'm hoping to go out there beginning of November. | 16:11.20 |
| henrys> ah yeah, of course. | 16:11.30 |
| I presume the weather's still pretty nice even in November? :) | 16:11.38 |
| (looks it from the forecast) | 16:11.47 |
henrys | there is only one forecast for SF AFAICT | 16:12.19 |
| mattchz: no idea how those folks do without seasons | 16:12.39 |
mattchz | :-) | 16:12.51 |
| We are currently in our brief "summer period" in Glasgow | 16:14.29 |
| By November, I'll definitely want some sunshine. | 16:14.47 |
Robin_Watts | jogux: So page 2 of Artifex2014.pptx... the one where all the text doesn't line up? | 16:15.34 |
| That's full of spaces in weird japanese fonts, tabs in odd places etc. | 16:15.57 |
| I'd shoot the author, except we're reliant on him running the company. | 16:16.13 |
pedro_mac | presumably a bunch of cânâp slide bits | 16:17.15 |
Robin_Watts | I am very tempted to edit out the uses of the japanese font, and if it works, to claim it as not being a bug. | 16:20.11 |
mvrhel_laptop | :) | 16:20.38 |
| So I have a very basic question for SOT | 16:21.07 |
| with NodeMngr_findChildNode | 16:21.16 |
| and ObjectNode | 16:21.25 |
| so in drawingml-chart.c around line 201 it is trying to find the type of chart | 16:22.24 |
| what I am confused about is that the Object node that is returned is <c:pieChart> type | 16:22.58 |
| which is correct | 16:23.02 |
| but the number of children comes back as two for this object | 16:23.17 |
| in the xml I see something like this | 16:23.27 |
| <c:pieChart> | 16:23.36 |
| <c:varyColors val="1"/> | 16:23.37 |
| <c:ser> </c:ser> | 16:23.39 |
| <c:dLbls> </c:dLbls> | 16:23.40 |
| <c:firstSliceAng val="0"/> | 16:23.42 |
| </c:pieChart> | 16:23.44 |
| why would it not have 4 childern | 16:23.48 |
| Perhaps I am misundertanding something | 16:24.06 |
Robin_Watts | Looks like 4 kids to me too. | 16:24.27 |
| but perhaps it's eliding ser and dLbs because they have no attributes and no content ? | 16:24.47 |
mvrhel_laptop | oh they have content | 16:24.59 |
jogux | robin_watts: :) | 16:24.59 |
pedro_mac | mvrhel_laptop: not sure, buts its quite likely that we only recognise/parse two of those children and ignore the others | 16:25.00 |
mvrhel_laptop | I just did not include all the details | 16:25.09 |
Robin_Watts | or maybe the parser is ignoring... what pedro said. | 16:25.13 |
mvrhel_laptop | ok | 16:25.23 |
| fair enough. I was not expecting that. | 16:25.51 |
Robin_Watts | mvrhel_laptop: Try adding/ removing some and see if the number of things read changes? | 16:27.26 |
kens | OK enough is enough, night all | 16:27.31 |
pedro_mac | with both the native and xml translations most âunknownâ content would be thrown away as it could not be used. That changed slightly when editing was supported as some data needed to be preserved for save. I think we should really be generating the complete xml tree regardless, but Iâm not sure that is what currently happens | 16:27.33 |
mvrhel_laptop | pedro_mac: yes. It certainly would make debugging easier to have our parsed tree to match the data | 16:28.45 |
Robin_Watts | mvrhel_laptop: The cost for that is that it uses more memory, which is scarce on embedded devices. | 16:29.36 |
mvrhel_laptop | right | 16:29.43 |
Robin_Watts | but as pedro says, now that editing is in the frame, the goalposts have moved. | 16:29.57 |
mvrhel_laptop | ok now that I know that we don't include the whole thing in our tree I can figure out why we are not finding the sRGB color settings in the chart later | 16:33.15 |
mattchz | does mupdf support saving out annotations in password protected PDFs? | 16:46.52 |
| and does it support owner passwords at all? | 16:47.48 |
Robin_Watts | mattchz: We probably unprotect on save. | 16:47.58 |
| and yes, we support owner passwords for reading, sure. | 16:48.08 |
mattchz | owner passwords are for modifying and printing, apparently | 16:48.30 |
| Someone was asking: | 16:48.56 |
| http://bugs.ghostscript.com/show_bug.cgi?id=695217 | 16:48.57 |
Robin_Watts | owner passwords are for anything that goes contrary to the permissions flags on the PDF. | 16:49.12 |
mattchz | I just tested annotating a file with a user password, and it seemed to not write out. | 16:49.14 |
| I guess I'm just wondering if this is a bug or an unsupported feature. | 16:51.04 |
Robin_Watts | I would have thought that we could at least write out an unprotected file. | 16:54.01 |
| we don't support encrypting things, I think. | 16:54.16 |
mattchz | is there any way of building with extra debug output? So I can see if I can troubleshoot why it's not saving out? | 16:54.50 |
Robin_Watts | mattchz: the JNI stuff has some debug in it, but that's all. | 16:55.27 |
mattchz | ah right; I was thinknig of the core, probably. | 16:55.37 |
Robin_Watts | then no. | 16:55.48 |
mattchz | ah, np. | 16:56.40 |
Robin_Watts | I wonder if this problem is simply that powerpoint has default tabs of 1 inch, and we have default tabs of 0.5inches ? | 17:16.45 |
| No, it's that our tab stops are not evenly distributed across the screen. | 17:18.19 |
mattchz | robin> hmm, ok, it seems like we are writing out a file, and it's changing size, but when I open it again the annotations are not visible. | 17:28.46 |
Robin_Watts | The content is there, but the annotations aren't? | 17:29.10 |
mattchz | yeah; and the password is still there. | 17:29.25 |
| We seem to get errors about "unknown keyword" | 17:29.45 |
| I wonder if the annotations aren't getting encrypted. | 17:29.55 |
| and so it's choking on them? | 17:30.01 |
Robin_Watts | could be. | 17:30.01 |
| annotations are paulgardiner's baby really. | 17:30.13 |
| (not blaming him for this !) | 17:30.21 |
| Can you put the original and revised files online somewhere? | 17:30.42 |
mattchz | ok, will do :) | 17:31.08 |
| I'll get a fresh file. | 17:31.14 |
| robin_watts: http://ghostscript.com/~matt/ | 17:35.29 |
| password is 'abc' | 17:35.31 |
Robin_Watts | mattchz: Right, so how much do you know about the structure of PDF files? :) | 17:37.27 |
mattchz | nothing whatsoever ;0 | 17:37.40 |
Robin_Watts | PDF files can have stuff added to them by doing an 'incremental save'. | 17:38.16 |
| basically, when you start to read a PDF file you read the first few bytes to see that it's "%PDF-1.x" | 17:38.39 |
| and then you jump to the end and read backwards a bit to read the trailer. | 17:38.52 |
| That tells you where in the file all the objects are. | 17:38.58 |
mattchz | ok | 17:39.09 |
Robin_Watts | So if you bung a whole new trailer on the end, you can add some new objects and override the existing stuff. | 17:39.25 |
| That's what we do with the annotated file. | 17:39.30 |
| Of course, the objects we add are all unencrypted, so it doesn't get read right. | 17:39.44 |
mattchz | i see the extra trailer there. | 17:39.56 |
Robin_Watts | So it's purely down to us not supporting encryption. | 17:40.25 |
mattchz | So, I guess we should disable annotation for encrypted docs? | 17:40.51 |
Robin_Watts | Probably we ought to refuse to... yeah. | 17:40.57 |
mattchz | So, I guess we can close this: http://bugs.ghostscript.com/show_bug.cgi?id=695217 | 17:41.41 |
| and just say we don't support it? | 17:41.45 |
Robin_Watts | Or maybe we should allow annotation, but caution that we can't save. | 17:41.58 |
| cos people might want to annotate then print? | 17:42.04 |
| oh, wait, printing requires saving a PDF :) | 17:42.11 |
| so no. | 17:42.14 |
mattchz | heh | 17:42.16 |
| in that case we could strip the encryption | 17:42.26 |
| (we probably have to ?) | 17:42.30 |
pedro_mac | heads off - catch you later | 17:43.06 |
Robin_Watts | mattchz: So... you have an fz_document *, right? | 17:43.29 |
| Call pdf_specifics on that to get a pdf_document *. | 17:44.33 |
| If it's NULL, it's not a PDF. | 17:44.40 |
| If it isn't NULL, you can call pdf_crypt_version. If you get 0, it's unencrypted. | 17:45.09 |
paulgardiner | Robin_Watts: don't know what made me thing of this again but: it looks like fz_new_device takes ownership of list only if dev->free_user is set up and I can't see where that was being done. | 17:45.24 |
mattchz | ok | 17:45.24 |
Robin_Watts | paulgardiner: oh, god, of course you are right. | 17:46.02 |
mattchz | so we should just hide the annotation controls in that case then? | 17:46.10 |
Robin_Watts | What would be the point in having a list device that destroyed the list after it wrote it. | 17:46.21 |
paulgardiner | Oh! :-) I hadn't thought of it like that, buy yes | 17:46.43 |
mattchz | so, err, I broke something else in that function? ;) | 17:46.53 |
paulgardiner | So possibly the try catch isn't actually needed | 17:46.56 |
| and if there's a leak then it's down to the caller | 17:47.20 |
Robin_Watts | mattchz: I suspect we should just back out that entire commit. Sorry, we lead you up the garden path there. | 17:47.35 |
mattchz | which commit? | 17:47.47 |
Robin_Watts | The one where you added try/catch to fz_new_device_list | 17:48.13 |
mattchz | but leave in the fz_var() stuff at the top though, right? | 17:48.39 |
Robin_Watts | no. | 17:48.53 |
mattchz | for accepted | 17:48.59 |
Robin_Watts | Yes. | 17:49.03 |
| Is that the same commit? | 17:49.12 |
mattchz | I think so. | 17:49.18 |
Robin_Watts | just fetching now to check. | 17:49.31 |
| right, yes. | 17:50.01 |
mattchz | http://git.ghostscript.com/?p=mupdf.git;a=commit;h=ada560eb015e7b2208c492d47f28da8093733c4a | 17:50.01 |
Robin_Watts | Just revert the changes to source/fitz/list-deice.c and blame us in the commit message. | 17:50.19 |
mattchz | heh :) | 17:50.28 |
| how's this: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commit;h=a51341c3e2ec46cb4759ca921c4fe011dc3d9dba | 18:01.44 |
Robin_Watts | mattchz: Sure. Though I would feel free to cite collective insanity as the reason in the commit message. | 18:04.14 |
mattchz | heh, it's fine | 18:04.25 |
| so, re this annotations stuff, if we just hide the annotations controls for encrypted docs, and close that bug as WONTFIX, that is sufficient? | 18:05.42 |
Robin_Watts | Possibly we should open an enhancement bug for "be able to save encrypted files". | 18:10.58 |
| so we don't forget the issue. | 18:11.10 |
mattchz | Ok, I can leave this open if you like and just change it to an enhancement? | 18:11.26 |
Robin_Watts | probably better to do it as a new bug. clean history, no stray "android" tags etc. | 18:11.56 |
mattchz | okey dokey. | 18:12.09 |
Robin_Watts | and you get to close it as fixed :) | 18:12.10 |
mattchz | it's not fixed though really, as it was basically a request about how to do it ;) | 18:12.40 |
Robin_Watts | So... in office docs, tabs are supposed to be relative to the left hand edge of the current text box. | 18:37.53 |
| epage seems to do tab stops at absolute positions across the page. | 18:38.12 |
Robin_Watts | goes to cook. will consider how to fix that later. | 18:38.41 |
mattchz | night | 18:39.38 |
mattchz | off too. | 18:39.41 |
| Forward 1 day (to 2014/06/27)>>> | |