IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2014/04/17)2014/04/18 
ray_laptop the improvements to the PDF parser result in a 30% parse time improvement on my laptop with HEAD. Starting a regression run !00:16.43 
  Note that is with this particular type of file with lots of text. I'll test the PLRM as well.00:17.28 
  chrisl_away: (for the logs, also sent email) the simulator code (with ALL of my mods) is on casper.ghostscript.com:alp2_venus_2014_04_17.zip00:18.36 
  chrisl_away: (for the logs, also sent email) the simulator code (with ALL of my mods) is on casper.ghostscript.com:/home/ray/alp2_venus_2014_04_17.zip00:19.01 
  the PRLM only improves by 10% -- but it's better than nothing :-)00:27.03 
  running a regression test on the change now00:36.01 
  oops -- ppmraww is NOT a good filter :-(00:37.39 
  mvrhel_laptop: so you are still doing gs bugs ? You must be *really* fed up with fighting viewer problems ;-)00:42.23 
mvrhel_laptop hi ray_laptop00:42.40 
  no a free user pinged me and said that robin sent him00:42.55 
  and I was being a nice guy and said I *might* look at it by next week00:43.18 
  I am getting close to having this text selection stuff finally working00:43.31 
ray_laptop I heard (on the phone) that Len said that or (kens and mine) PDF interpreter change gets us really close to the target time00:43.55 
mvrhel_laptop then I just have a few things to add with respect to using the stuff from mutool00:43.58 
  ray_laptop: that is great!00:44.11 
  I am going to try to get some sleep tonight. this damn thing has kept me up late each night and then I still have to get up early to help get kids out the door00:45.23 
  ok. the text selection is now all working00:50.26 
  need to clean up a couple minor things00:50.43 
ray_laptop darn. Regression test turned up some diffs (and bmpcmp shows they are wrong). I don't understand how they can happen, but I didn't really look at what PreserveTrMode does :--/01:02.12 
  oh, great. The PreserveTrMode toggles around with some of the files :-(01:09.56 
  now to find out why it does that...01:11.00 
  well, the speedup is good enough. So what if there are a few missing characters ;-)01:31.16 
mvrhel_laptop ok. text selection stuff is pushed. now on to adding the stuff in that mutool provides, then I think I will be done...03:56.47 
  except for clean up and making the installer and I will need some QA from everyone03:57.23 
kens Ray, if the value of PreserveTrMode is changing during the course of the job then as far as I cna see this must be caused by the device changing (as I suggested last night). The only devices which implement this paramter are txtwrite, pdfwrite and ps2write, txtwrite and pdfwrite have the value hard-coded to true, ps2wtite to false.07:20.14 
  If a device doesn't support the parameter, then its false. I would guess that during the course of the job we are isntalling another device (eg to flatten to an image) and that device, quite correctly, doesn't support preserving the text rendering mode.07:21.12 
spanners Robin_Watts: You'd best email your font query as I'm busy with the (ill) kids.10:05.02 
Robin_Watts spanners: Sorted, I think.10:12.00 
  but thanks!10:12.04 
mikkado Hello, is git://git.ghostscript.com/ghostpdl.git/ is valid URL for repository?10:59.36 
  fatal: unable to connect to git.ghostscript.com:11:01.54 
chrisl mikkado: you would probably be better use http protocol, rather than git protocol11:03.11 
  mikkado: having said that, try again now?11:04.17 
mikkado I'll try it right now!11:06.29 
  Flying tortoises...11:07.48 
  Cannot obtain needed tree 38be4c201d89270a914d9740e631a8748269400a11:52.12 
  while processing commit 821d4c00e4507c0f68fd1eafb00622cbabcd1343.11:52.16 
  error: Fetch failed.11:52.22 
  =(11:52.25 
  Could not load sources11:52.31 
  =(11:52.32 
  Cloning into 'C:\Users\zadorozhnyj\Desktop\Ghost\ghostpdl'...11:52.50 
chrisl <shrug> it worked for me11:54.40 
Robin_Watts mikkado: git --version ?11:55.33 
mikkado git version 1.8.311:56.03 
Robin_Watts You're using wingit? The GUI front end ?11:56.21 
mikkado TortoiseGit 1.8.4.011:56.32 
Robin_Watts So you should have an msys git setup with that too, right?11:57.27 
mikkado hm11:57.48 
chrisl I thought TortoiseGit was standalone?11:58.25 
mikkado It install all what I need to use with git11:58.52 
  I don't know how it is realy works =)11:59.20 
chrisl Oh, no it seems it doesn need msys git11:59.28 
Robin_Watts mikkado: Do you have a command line window where you can execute git commands?12:00.22 
mikkado I can execute, but I never use it.12:00.52 
  If you can suggest a command i can execute12:01.17 
  them12:01.24 
Robin_Watts OK, well, in that window, do: git clone http://git.ghostscript.com/ghostpdl.git ghostpdl12:01.25 
  That should clone you a copy into ghostpdl.12:01.34 
mikkado Cloning into 'ghostpdl'...12:02.48 
  So, result is:13:04.51 
  error: The requested URL returned error: 500The number of HTTP requests per minute exceeded the configured limit. Contact you your forefront TMG administrator.13:06.25 
  (curl_ersult=22, http_code=500, sha1=2d957f7....13:06.57 
kens mikkado : As far as I know we don't use Forefront (its a Microsoft product), is it possible this is running at your end ?13:13.19 
  Forefront TMG = Microsoft Forefront Threat Management Gateway13:14.30 
mikkado oh may be I shoud push my sys-admins ))13:17.42 
  thx13:17.49 
kens No problem13:18.18 
henrys tor8:hopefully the domain will get straightened out monday miles is out of town13:37.32 
ray_laptop morning, all14:02.54 
kens Hi Ray14:02.58 
ray_laptop Hi, kens14:03.06 
  As you saw, my patch had problems on 66 tests (23 files)14:06.19 
kens Yes, I did comment in the logs, I have some 'spare' time this afternoon, want me to take a quick look at the file(s) ?14:06.52 
ray_laptop I don't understand why. I had filter=ppmraw so pdfwrite and ps2write were not involved14:07.33 
kens Oh, I must have missed that14:07.44 
ray_laptop I didn't say it on IRC14:08.01 
  sorry14:08.06 
kens Ah, I guess that would explain it :-)14:08.15 
  You have a bmpcmp still there ?14:08.25 
  or rgression mail ?14:08.43 
  Hmm your last regression run said 8904 files have started producing errors, I guess that wasn't the one14:09.19 
  OK I see in your bmpcmp that there are some files with missing text, is it those ?14:10.02 
ray_laptop that was the previous run, yes (with 4 pages of bmpcmp)14:10.47 
kens OK let me poke at 067a for a minute,its a fairly easy one as I recall14:11.10 
kens notes that they do all look like Tr problems14:11.59 
ray_laptop I looked at one with debug in, and the place where PreserveTrMode changed was the one following the comment: % If the device doesn't handle text rendering modes then we now have a suitable14:12.38 
kens OK the intriguing question is why the value should ever change, its not supposed to14:13.14 
  All the devices either have it hard-wired, or not present14:13.27 
ray_laptop so, putting back that "dynamic" check fixed 067a and all but 4 other files14:13.35 
chrisl Isn't there some crazy nonsense that we always somehow load pdfwrite even when it's not the requested device?14:13.48 
kens I oculd believe pdfwrite pushing another deice that caused a different response, but ppmraw shouldn't14:13.58 
  chrisl yes indeed we do14:14.05 
chrisl So if pdfwrite was in force when the initial check is done....14:14.25 
kens True, but I think it should not be because the PDF interpreter isn't started until after the device changeover is done (I think)14:14.55 
chrisl I wasn't sure where Ray had put the check....14:15.27 
kens Well, I assume its in the PDF interpreter :-)14:15.38 
ray_laptop the really STRANGE thing, is that on that file (067a) the check above that section (just before the comment % NB we must have Tr at least 4 or the test above would have) returned 'false', but the later check returned 'true'14:16.36 
  chrisl: you can look at the bottom of my regression run to see my changes14:18.09 
  kens: chrisl: do either of you want the patch ?14:19.37 
kens I can pick it up if I need it, I'm just looking at the PostScript at the moment (the PDF interpreter PS)14:19.59 
chrisl ray_laptop: I'm in the middle of my own stuff right now...14:20.08 
kens Trying to remember what this all does14:20.10 
ray_laptop Note that this run also had the color remap changes in, but that regression run was clean14:20.10 
  chrisl: font cache ?14:20.19 
chrisl ray_laptop: font cacheing, yes14:20.43 
kens ray_laptop : there is an inversion in the logic there, how did you check the return value ? The return value should be 'not present' which in effect does a 'cleartomark //false'14:24.05 
ray_laptop kens: what I did was to capture the PreserveTrMode setting from the device at the start of the page (right after where PDFSave was done in pdf_main) and then replace the getdeviceparams with using the saved value in pdf_ops.ps14:24.14 
kens ray_laptop : yes.....14:24.29 
  But the point is that the return value gets inverted at the second test14:24.43 
ray_laptop kens: oops. I missed that14:24.55 
kens THere's a 'not' right in front of the if clause14:25.10 
ray_laptop the code looks mostly alike :-/14:25.16 
  kens: thanks for spotting that14:25.32 
kens NP, does it help do you think ?14:25.45 
ray_laptop kens: I'll let you know. At least it explains why I saw something different for that part of the code14:26.33 
  twisty passages, mostly alike :-)14:28.19 
kens Well, the thing is I wanted to do something if it *wasn't* true, as opposed to if it was....14:28.45 
ray_laptop kens: I realize that (now)14:29.09 
kens There are probably other similar cases14:29.25 
ray_laptop the other cases were all OK (no 'not' in the original code)14:30.52 
  now I have to look at the other things my patch honked up. Thanks, kens 14:31.38 
kens No problem. I'd still prefer to do this a different (faster) way though14:32.04 
ray_laptop The following 8904 regression file(s) have started producing errors...14:32.08 
kens Yeah I saw that, didn't look good14:32.22 
ray_laptop kens: doing a getdeviceparams once at the start of the page is not a performance hit14:32.37 
kens It does lack flexibility though, what if I push a device (eg pdfwrite/ps2write) which changes the behaviour....14:33.06 
ray_laptop and the way I did it captured ALL of the parameters of interest with a single currentpagedevice (which gets a dict of all of the params)14:33.21 
  kens: how can you push a pdfwrite device during a page ???14:33.52 
kens Not a pdfwrite device, but what if pdfwrite poushes a flattening image device ?14:34.12 
ray_laptop kens: right. so PreserveTrMode will be true for pdfwrite, right ? 14:35.14 
kens Yes14:35.21 
  But not for an image device doing transparency flattening14:35.34 
ray_laptop and presumably it needs to be false for the "normal" flattening to work ?14:35.37 
  well, for cust 532, that isn't an issue14:37.46 
kens I would think so yes14:37.48 
  Sure, but if this is worth having, why limit it to that customer ?14:38.05 
  more performance = better14:38.28 
ray_laptop kens: clearly worth having. For that QL file (WWTTN1CT) I got 30% improvement of the parsing time on my laptop14:41.27 
  and 10% on the PLRM14:41.37 
kens which makes me think again we hsould do something different for these parameters14:41.55 
ray_laptop kens: If you want to do this right, adding a dev_spec_op usable from PS, that's fine. The problem is that the spec_op functions are invoked by enum (gxdevsop.h)14:47.30 
  The other approach is to just have a PS operator that examines the device structure, and move those parameters to the gx_device part of the struct (so they are always present)14:49.16 
kens I'd rather do a spec op and I htink its feasible to add a gneric 'get paramtere' to the enum14:50.08 
  Lets get your case working first, then I'll look into it14:50.24 
ray_laptop kens: the problem with get_params is that it does ALL of the parameters. There is no way to just get a single parameter from a device14:51.21 
kens And its hideously slow14:51.31 
ray_laptop kens: right. because it is getting all the params14:51.53 
kens asLike I said, lets get this working for you first, then if it looks good open a bug for me to address it14:53.19 
ray_laptop kens: I see the problem with my error files (affects ALL pdfwrite/ps2write) in the way I collected the settings15:02.39 
kens Presumably you cna fix it though....15:03.21 
ray_laptop kens: fixed. I was in a hurry and didn't handle the case where the device had the parameters15:06.26 
kens Ah :-)15:06.37 
malc http://cs.sjsu.edu/~mak/CS185C/KnuthStructuredProgrammingGoTo.pdf15:10.24 
  first few pages fail to render15:10.32 
kens Pleae open a bug report if you thinkyou have found a problem15:11.29 
malc http://bugs.ghostscript.com/show_bug.cgi?id=69517115:13.56 
chrisl malc: it's generally preferable if you attach the problem file to the bug - that way it won't disappear before we get a chance to look at it15:15.39 
  malc: seems to work okay for me....15:19.19 
malc tmp$ ~/x/rcs/git/mupdf/build/release/mupdf-x11 KnuthStructuredProgrammingGoTo.pdf 15:20.04 
  warning: unknown keyword: ''15:20.07 
  might be an endianness problem, i'm on PPC15:20.17 
  or perhaps char related15:20.35 
kens Oh MuPDF15:20.43 
chrisl Possibly useful information like that would be in the bug report15:21.08 
Robin_Watts henrys: You about?15:22.30 
malc chrisl: it's a regression, but i'd rather not go bisecting it unless absolutely necessary15:23.44 
Robin_Watts malc: If it's a big endian thing, then it will be a lot of work for us to hunt for as we don't have big endian machines easily to hand.15:29.37 
chrisl malc: well, unless you state the specifics of the problem in the bug report (like the platform), it'll just get closed as "works for me"15:29.54 
Robin_Watts Bisecting it would make it vastly more likely to get fixed. (After all, if you can't be bothered to bisect it when it doesn't work for you, why should we when it works for us ? :) )15:30.40 
malc Robin_Watts: pride?15:31.16 
ray_laptop malc: if it works for us, we CAN'T bisect it 15:31.44 
Robin_Watts malc: pride indeed, but with recent events, the workload here is now such that we don't have time to go hunting for stuff.15:31.52 
ray_laptop malc: plus we don't have ready access to PPC machines15:32.28 
malc Robin_Watts: recent events?15:33.11 
ray_laptop malc: we acquired a whole new product line -- SmartOffice and swallowing that is time consuming15:34.12 
malc ray_laptop: okay, it's not that i'm against bisecting, it's just this PPC is sortof on the slow end of things for this kind of work15:34.17 
  ray_laptop: oh, okay15:34.26 
ray_laptop malc: I bet our big endian machines are even slower than yours15:34.45 
malc ray_laptop: arm-be? mips?15:35.19 
Robin_Watts malc: Yeah, we're still at the "dislocating our jaw" phase.15:35.30 
chrisl Interestingly Acrobat 9 can't pre-flight the file - gives an error reading contents stream15:35.39 
ray_laptop ARM is the most easily available15:35.47 
  and those are pig slow15:36.10 
chrisl All the ARMS we have around are little endian aren't they?15:36.13 
Robin_Watts arm-be is a non-starter. I refuse to acknowledge it's existence :)15:36.20 
ray_laptop agrees15:36.30 
  malc: one of our guys has an old Mac PPC15:37.04 
malc ray_laptop: that's what i have :)15:37.11 
ray_laptop but we can't ssh to it, AFAIK15:37.21 
chrisl I have a PPC Mac Mini here - but I'm also busy with other stuff. I'm happy to look at it, at some point.....15:37.43 
  Assuming the dratted thing still works, of course!15:38.09 
malc it is a PPC Mac Mini :)15:38.24 
ray_laptop chrisl: I also have an OLD mac mini. It's been at least 3 years since I powered it on15:38.48 
malc Robin_Watts: any arm would at least tell whether it's signedness of char is at play15:38.49 
chrisl It's been a bit flaky the last few times I used it15:39.17 
Robin_Watts malc: Well, we've not had arm android device complaints, so...15:39.17 
chrisl malc: and you still haven't updated the bug with the platform information it....15:41.14 
malc chrisl: too busy bisecting...15:42.25 
ray_laptop kens: got my problems sorted out (all but one that I can't reproduce locally)15:45.42 
kens What's the odd one ?15:45.54 
ray_laptop kens: tests_private/comparefiles/Bug693365.pdf.ppmraw.300.015:49.32 
kens wAh I think that's one that's been indeterminate recently, just a moment15:49.53 
chrisl ray_laptop: so, I have changes in the PDF substitution code which generate an XUID based on the real font's UniqueID/XUID and the PDF object number of the font object.... so the cacheing code retains the glyphs even though the font is destroyed at the end of the page15:50.42 
kens No, I'm wrong its not that one15:50.43 
ray_laptop strange. the bmpcmp run came up with files that have differences that are NOT on the report ??? tests_private/comparefiles/Bug692502.eps.pdf.ppmraw.300.0 and tests_private/comparefiles/Bug693538.pdf.ps.ppmraw.72.015:51.54 
  chrisl: AWESOME!15:55.08 
  chrisl: did you put that in the customer's code, or do you want me to port it ?15:55.31 
  chrisl: and have you done a regression of the change ?15:58.25 
  chrisl: (it looks like you did do a regression run about an hour ago)16:00.05 
chrisl ray_laptop: on phone16:04.37 
henrys_laptop mvrhel_laptop, Robin_Watts : debugging on vs 2013 I'm getting "basepath" can't be relative when starting the debugger. I don't remember that happening before.16:17.33 
Robin_Watts debugging what?16:17.47 
henrys_laptop ghostscript16:18.04 
mvrhel_laptop henrys_laptop: I have never had a problem with vs 2013 and gs16:18.24 
  :( darn the sot build failed16:18.36 
henrys_laptop I've probably horked something up16:19.04 
mvrhel_laptop some python command failed to occur16:19.47 
Robin_Watts henrys_laptop: I only have VS2010, and I don't see a "basepath" configuration anywhere.16:19.47 
mvrhel_laptop digging a bit before I bug Robin_Watts 16:20.28 
Robin_Watts mvrhel_laptop: bug away, it might be something I recognise.16:20.51 
mvrhel_laptop Failed to execute command python C:\vrhel\Artifex_laptop\git_sot\sot\epage/foundation/libraries/io/fs/mkromfss2.py ....16:21.51 
henrys_laptop Actually it is basePath - it is a string in a generated file16:21.56 
  let me clean and rebuild16:22.15 
Robin_Watts henrys_laptop: Which file?16:22.23 
henrys_laptop I'm trying out circ a chrome irc extension seems to work ok.16:22.34 
Robin_Watts mvrhel_laptop: Anything earlier than that?16:23.00 
henrys_laptop Ghostpdl.sdf16:23.01 
Robin_Watts mvrhel_laptop: Are you on master ?16:23.22 
mvrhel_laptop yes I am on master16:23.49 
henrys_laptop let me do a clean make and try to reproduce it.16:23.56 
Robin_Watts mkromfss2.py is something I added since SO came to Aftifex, so it's probably my fault.16:24.38 
  mvrhel_laptop: Can you pastebin the error messages somewhere?16:26.24 
mvrhel_laptop Robin_Watts: hold on let me build again so I just have the erors 16:26.37 
  then I will pastebin16:26.41 
henrys_laptop Robin_Watts, mvrhel_laptop do you guys usually use the project in Ghostpdl/win32 for ghostscript or the one in gs/16:26.55 
  ?16:26.56 
mvrhel_laptop ghostpdl16:27.09 
Robin_Watts The solution in ghostpdl is the one to use.16:27.29 
henrys_laptop okay that's what I was using let's see if it goes wrong again16:27.51 
mvrhel_laptop Robin_Watts: http://pastebin.com/iFwxL4wg16:28.22 
Robin_Watts The reason the vcproj for gs is in gs rather than with the solution, is for historical reasons; when we used to do a separate gs source release, it could be useful to be there.16:28.37 
  mvrhel_laptop: Ah!16:30.17 
  You were trying to "Build Solution".16:30.25 
  Don't do that.16:30.27 
mvrhel_laptop ok16:30.32 
  I did look at the readme16:30.38 
Robin_Watts Just try to build test-shell for now.16:30.55 
  SOT has all the files in, but can't be built itself.16:31.37 
mvrhel_laptop ok16:31.45 
  so still some errors16:31.55 
  let me pastbin those16:31.59 
  Robin_Watts: http://pastebin.com/qaHtdt0g16:32.38 
henrys_laptop something nuts is happening I was forced to login to ms this time, something is seriously broken16:33.58 
ray_laptop chrisl: still on phone ?16:35.26 
chrisl ray_laptop: yes16:35.37 
malc Robin_Watts: 551de42088c58dc69fba06fb53e36c2ddb12367f culprit16:36.59 
chrisl ray_laptop: back now.....16:40.49 
  ray_laptop: so, yes cluster tested - there is one file I need to look at, which is strange as it's a single page file, so really shouldn't be affected!16:41.25 
henrys_laptop bbiab16:42.55 
chrisl ray_laptop: The net result is cutting the number of times the glyph rendering is called from 7070 times down to 3039 times - but (you must have known there would be a "but") despite cutting glyph rendering calls in half, it actually runs marginally slower on my Linux box :-(16:43.03 
ray_laptop chrisl: I wonder why there are so many calls still16:46.58 
  the font is the same on all pages and there are only two sizes of fonts used (10 and 12)16:47.56 
  and the text for the size 12 font is the same on all pages16:48.26 
chrisl There may be any number of reasons we can't use the cached bitmap every time16:48.48 
ray_laptop chrisl: BTW, on the simulator, there are only 4,274 calls to FAPI_do_char to do the rendering16:52.18 
chrisl ray_laptop: I'm on the current master code16:52.41 
ray_laptop so your numbers are a little suspect16:52.41 
kens Goodnight all16:52.46 
ray_laptop kens: g'nite16:52.54 
chrisl ray_laptop: how are you gathering the numbers?16:55.20 
ray_laptop chrisl: There _are_ two fonts used, but there are only two words used from the Italic font16:55.31 
  chrisl: from Len's excel spreadsheet16:56.05 
  chrisl: hold on while I double check with the simulator16:56.28 
chrisl ray_laptop: well, I put a static variable in gs_fapi_do_char() and increment it on every all, then print it out when we complete, so....16:57.39 
ray_laptop chrisl: I have to rebuild. I hadn't rebuilt since I cleaned it out to zip it up for you :-( It'll be a bit...16:59.29 
chrisl ray_laptop: anyway, my point is, I need to look at why with a lower call count, it's actually slower - maybe streamline some of the Postscript that I've added17:00.31 
ray_laptop chrisl: if the PS is only for Tf ops, then it shouldn't be invoked frequently -- only once on some pages and three or four on others17:01.38 
  chrisl: can you shoot me a patch to try on my machine ?17:02.19 
chrisl ray_laptop: I'll do that in a little while17:02.54 
  I'm just running a profile to see if it highlights anything17:03.47 
henrys Robin_Watts, mvrhel_laptop and both of you are using the relative settings for command and working directory from the Readme? 17:05.02 
chrisl ray_laptop: gprof agrees with my call counts - 7070 before, 3039 with my changes17:05.08 
Robin_Watts henrys: For debugging?17:05.15 
ray_laptop chrisl: with the simulator and using breakpoint 'hit count' I get 4,158 hits on FAPI_do_char17:05.21 
henrys Robin_Watts: yes17:05.42 
chrisl ray_laptop: like I said, I'm using the master code, on the 9.06 release, or the 532 code17:05.44 
henrys hold on I think I missed something17:06.52 
Robin_Watts henrys: It is possible that they have disallowed relative things in later VS.17:06.53 
  In which case, you might need to use $(ProjectDir)\... etc17:07.14 
henrys Robin_Watts: maybe wonder why it works for mvrhel_laptop 17:09.40 
  ?17:09.43 
Robin_Watts henrys: Maybe he put full paths in?17:10.05 
ray_laptop chrisl: patch, please ?17:10.33 
  that way you don't have to mess with their code :-)17:11.27 
chrisl ray_laptop: http://git.ghostscript.com/?p=user/chrisl/ghostpdl.git;a=commitdiff;h=62b5c3017:14.07 
ray_laptop chrisl: thanks. I'll give it a whirl on their code.17:14.39 
chrisl ray_laptop: oh, and I'm not using the UFST as I've been tracking down a few issues that the cluster highlighted17:15.01 
henrys Robin_Watts: well absolutes do work, but we should probably save the docs if mvrhel_laptop has had the same experience17:16.28 
  s/save/change17:16.39 
Robin_Watts henrys: Can you try using $(ProjectDir)/... please?17:17.00 
mvrhel_laptop hold on let me look 17:17.11 
Robin_Watts if that works, we can update the docs to that and they stay relative.17:17.12 
mvrhel_laptop for the executable I have full path in there. dont call why though. in my command args, everything is relative to the working directory17:19.25 
henrys mvrhel_laptop: and the working directory is ".."17:19.47 
  ?17:19.49 
mvrhel_laptop .17:19.58 
henrys hmph17:20.16 
  mvrhel_laptop: trying to get the ReadMe.txt sync'd up17:20.49 
  checking project dir17:20.58 
chrisl ray_laptop: the call count disparity is from the width matching code that 532 replace with their MM font substitution17:23.35 
henrys Robin_Watts: ProjectDir seems to work for the "command"17:23.46 
Robin_Watts Sounds, from what michael says, that that's the problematic one.17:24.32 
chrisl Removing the width matching code, the call counts drop to 4158 before and 127 after my XUID changes - but the latter is still slower for me :-(17:25.23 
  ray_laptop: ^^17:25.35 
henrys Robin_Watts: yes ".." in the working directory seems okay.17:26.24 
Robin_Watts henrys: So update the docs to use $(ProjectDir) and everyone is happy? That should work in old versions too.17:26.48 
  This is something MS changed in recent VS.17:26.56 
henrys Robin_Watts: can't this be baked into the solution - the only thing the user needs to change is arguments?17:27.20 
Robin_Watts henrys: Sadly on VS2005/8 solutions, the debugging settings are saved 'per user'.17:27.51 
  hence they can't go into source control.17:28.04 
henrys Robin_Watts: okay17:28.16 
Robin_Watts On vs2010, it's different.17:28.20 
  I tried, honest :)17:28.30 
ray_laptop chrisl: OK, thanks. I've ported your patch and am trying it now...17:38.25 
  chrisl: let me say it again: AWESOME ! Now I get 127 calls to FAPI_do_char :-)17:40.15 
chrisl ray_laptop: cool, *BUT* as I said, it isn't any faster for me - which is *SO* strange :-(17:40.52 
ray_laptop well, I'll shoot it off to them and let them try it on their target17:41.25 
chrisl ray_laptop: okay, I *would* like to tidy up the patch a bit on Monday - I'd do it over the weekend, but I'm busy both days17:42.07 
  ray_laptop: I wonder if using the XUID is slowing things down.....17:43.32 
ray_laptop chrisl: what about the regression testing -- I notice there were quite a few differences on your last run. Is there anything to worry about ?17:50.05 
chrisl ray_laptop: there are a few pixel differences because we use a cached glyph instead of render a new one, several false positives (differences not in glyphs). The one I was worried about is a *severly* broken file - so I'm not worried about it now17:52.00 
ray_laptop chrisl: OK. Thanks.17:53.42 
chrisl ray_laptop: the sumatra ones are all really badly broken files - those are more about handling the breakage gracefully than any real expectation of them rendering correctly17:53.43 
ray_laptop chrisl: have a good week end17:53.50 
chrisl ray_laptop: thanks - although, I know the strange performance behaviour is going to prey on my mind.....17:54.36 
  OKay, it's not using the XUID that slows it down.....17:56.57 
  using UniqueID shows the same characteristics17:58.11 
Robin_Watts chrisl: Presumably you're worried that it's the comparison of the XUID that is taking time?17:59.30 
chrisl Robin_Watts: that was my thought, yes17:59.50 
Robin_Watts Compare it 10 times, and see if it makes a difference.17:59.53 
  If it doesn't then it's reasonable to assume that comparing it once wasn't a hardship.18:00.21 
  paulgardiner: (For the logs) 1 commit on robin/master (mupdf) for you.18:01.50 
chrisl Robin_Watts: My thinking along those lines was because the UniqueID is an integer, the XUID is an arbitrary length array of integers - but we check it only at the font level (so rarely) not at the glyph level (which would be often)18:02.44 
Robin_Watts chrisl: Right. I've worried about similar things in the past (with glyph caching in mupdf for one)18:03.31 
  It's hard to measure the "don't compare" vs "compare once" time, because the "compare once" time does less work due to having done the compare.18:04.56 
  So all you can tell is "how much time did doing the compare and avoiding some work save me"18:05.21 
  but if you "compare 10 times and act on it just once" you can get a direct measurement.18:05.48 
chrisl Yeh, in this case, it was fairly easy to check it experimentally18:06.11 
  It was trivial to make the code use a UniqueID instead of an XUID, and run the job a few times.18:06.52 
  and it was a relief that wasn't the culprit because using a "patched" UniqueID did not give sufficient "uniqueness" and we got incorrect cache hits18:07.25 
ray_laptop chrisl: we need gprof for the PS code :-)18:08.53 
chrisl ray_laptop: I seem to remember someone did at least a partial profiler for PS at some point - but I suspect it was level 1 only, and would likely choke on our custom operators!18:10.07 
ray_laptop chrisl: how often does the Widths checking run ? Once per font per page ?18:10.15 
chrisl Yes18:10.24 
  ray_laptop: I originally looked at just using a few selected glyphs and Widths, but as I said, there was virtually no measurable hit on the hardware I could test, so didn't bother18:12.02 
ray_laptop so remembering that you already checked a certain font and determined that you didn't have to adjust widths would help ?18:12.16 
chrisl ray_laptop: yes, that's something I could do now I have access to the PDF obj number18:13.02 
ray_laptop chrisl: are you actually rendering the glyph or just grabbing its advance width metric ?18:13.45 
chrisl ray_laptop: we actually render the glyph in order to get the advance width18:14.21 
  ray_laptop: unfortunately, even though we know we're not drawing the glyph, the cache is still set up for it, and it throws a hissy fit if you then don't give it a bitmap18:15.46 
  ray_laptop: unfortunately, the font object does not survive the page boundary....18:21.38 
  Anyway, I'll revisit this stuff on Monday, maybe light will dawn.....18:27.24 
 Forward 1 day (to 2014/04/19)>>> 
ghostscript.com
Search: