IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/11/11)2013/11/12 
Robin_Watts ray_laptop: Unless you're developing for Win 8.1, why do you need to upgrade?00:27.31 
  ray_laptop: I found a typo.00:59.41 
  Now I think the cache is working, but it's dying in my garbage collection code when it tries to reloc.01:00.03 
  ray_laptop: Latest version on robin/master. Maybe you can spot what I am doing wrong in the gc.01:10.59 
ray_laptop Robin_Watts: OK, I'll download now, and check in the morning. Robin_Watts I assume you saw my discussion with mvrhel_laptop about the same ICC profile in and out being the cause of the "resampling"07:43.32 
  good morning to the .eu group07:44.12 
kens Mornign ray07:44.19 
  working late again ?07:44.25 
ray_laptop kens: and chrisl:07:44.28 
  kens: yep.07:44.36 
mvrhel_laptop morning all07:44.37 
chrisl good morning, ray07:44.39 
  and mvrhel_laptop....07:44.49 
ray_laptop mvrhel_laptop: you're working late, too!07:44.49 
kens Oh Michael here too, and yesterday was a holiday in the us07:44.55 
mvrhel_laptop beating on this stupid windows 8.1 stuff07:45.01 
  I dont think it was a real vacation day was it?07:45.12 
kens No idea, henrys said it was veterans day07:45.25 
mvrhel_laptop yes it was07:45.49 
  but it is not on the official holiday list07:46.14 
ray_laptop Robin_Watts: (for the logs) I was going to download the 2013 Pro stuff to try and get a profiler that didn't die. AFAICT it will cost me just as much to get 2013 as 2012 given that the latest I have is 200807:46.22 
kens Ah, well we're not current on US public holidays over ehre :-)07:46.43 
mvrhel_laptop right07:46.49 
chrisl I'm not even current on UK public holidays!07:47.01 
mvrhel_laptop ok bed time for me. i finally got this thing working again07:47.01 
  talk to you all in about 8 hours....07:47.12 
chrisl Sleep well07:47.24 
kens goodnight mvrhel_laptop07:47.28 
ray_laptop The (free) CodeTune seems to work, but it doesn't let me launch gswin32c -- I have to start GS, then start a profile session, attach to the gswin32c process and then start GS processing once "sampling" starts07:48.06 
  I'd much rather have a working profiler that allowed for "instrumentation" rather than "sampling" so I can get results more like gprof07:48.55 
  as I mentioned, VS 2008 profiler gives me BSOD *immediately* whether sampling or instrumented mode.07:50.17 
  and Very Sleepy seems to collect samples (like CodeTune), but then dies while assembling the results07:51.04 
  so far, I have to recommend CodeTune. It's free and sort of works, and is worth every penny :-)07:51.50 
kens Very Sleepy works OK for my limited needs07:52.09 
  I've not liked any recent version of the MS profiler, they're hard to use at best07:52.38 
ray_laptop the major issue is that it has a minimum 1ms sampling period, which is rather sow on my laptop07:52.52 
  (my comment above relates to CodeTune)07:53.27 
  kens: I think Robin_Watts has also had success with Very Sleepy.07:55.06 
  At least with VS, if I (Miles) bought the current 2013 and it didn't work, I'd have the pleasure of demanding my money back from Redmond :-)07:56.16 
chrisl Is VS2013 out yet? Last time I looked it was still a beta07:57.02 
kens Good grief:07:57.04 
  http://www.bbc.co.uk/news/uk-england-manchester-2490604007:57.04 
  And nobody noticed when raising it ?07:57.18 
chrisl Actually, I quite like that!07:57.52 
ray_laptop chrisl: it is slated for release on Nov 13, 2013, but you can buy it and download it now. I don't really know what you get if you buy it now07:57.57 
  kens: so, that isn't your flag ?07:58.52 
kens Well, *nearly*....07:59.04 
chrisl ray_laptop: ah, okay - they usually give the "release date" as the day the physical media will be available...07:59.08 
ray_laptop it looks sort of funny with some extra stripes07:59.12 
kens The stripes normally go from centre to edge, not 'round' the edge....07:59.32 
ray_laptop is that some other country's flag, then ?07:59.45 
kens Its supposed to be the UK flag07:59.56 
  But someone got it badly wrong08:00.05 
ray_laptop maybe that's just the "Manchester Variant" ;-)08:00.21 
kens and apparently nobody at the local government even noticed.08:00.25 
ray_laptop kens: BTW, what is the Scottish flag going to be when they break away ;-)08:01.59 
kens I assume the Saltire08:02.08 
ray_laptop some tartan or the other ?08:02.12 
kens Not he flag they've had for centuries, teh Saltire, or cross of St Andrew08:02.32 
  Its one of the flags incorporated into the Union flag08:02.54 
ray_laptop kens: that seems rather boring by today's standards. They need to spruce it up a bit ;-)08:03.42 
kens Well, its an old flag, but why change ?08:03.58 
  "In 2003 the Scottish Parliament specified the official colour of the flag using the international colour coding system and it was decided that the white St Andrew's Cross should appear on an azure background known as Pantone 300."08:04.53 
ray_laptop how about some gradients and SMask drop shadow shading, and maybe a hologram embedded ;-)08:04.59 
kens THey can do that with the currency :-)08:05.14 
chrisl They'll hire a PR company who'll charge a large amount of money to tell them "use the flag you already have"......08:05.33 
kens Nah, the PR company will charge them lots of money for Ray's idea, then there'll be a huge public outcry and tehy'll have to change it back, for yet more expense08:06.07 
  Isn't that how government 'works' ?08:06.27 
chrisl Only if someone from the PR company is reading this channel! Otherwise it would suggest the PR people actually thought of something different - unlikely!08:07.08 
kens could believe this is how PR companies get their ideas08:07.29 
ray_laptop kens: yeah, and those of us that got "pre-release" copies of the flag that got recalled will be able to make a lot of money because they'll be rare ;-)08:07.36 
chrisl ray_laptop: especially if it's in the original, unopened packaging!08:09.16 
kens Hmm, well marcos reckons that bug #694772 is a regression caused by Alex chaning the PDF interpreter for DOCINFO pdfmarks, but when I run it here with STOPONERROR it tells me its an invalid font08:09.29 
  And indeed, it *is* an invliad font, it has a FontMatrix of [0.04 0 0 0.-4 0 0]08:10.25 
ray_laptop g'nite, all08:10.38 
kens goodnight ray08:10.47 
chrisl I wonder how other readers "open it correctly", then?08:13.03 
kens Well, I've still to track it down further, but we know that Acrobat has a habit of ignoring numbers it doesn't like08:13.36 
  Very probably the Acrobat display isn't correct either but its hard to see small errors in a 48x36 page08:14.19 
  I notice that the file has been modified, I bet whatever modified it broke it08:14.55 
chrisl I wonder if it ignores the errant number(s) or ignores the entire matrix08:15.07 
kens chrisl previous experience would be that it substitutes 0 for broken numbers08:15.25 
  So we'd get a degenerate font matrix, and text might go missing08:15.38 
  But like I said, on a 48x36 inch page, its really hard to tell08:15.54 
  I'm going to examine the fontents now08:16.06 
chrisl How on earth can that be considered the "correct" behaviour - what a pile of crap :-(08:16.28 
kens Well, this is Acrobat....08:16.41 
chrisl Exactly - a pile of crap.....08:16.59 
kens I still don't understand why marcos thinks that a change to the Info dictionary processing caused a regression on this08:17.33 
chrisl Well, I can easily checkout the commit before and try it, if you like08:18.15 
kens Ah, its a type 3 font. Want to bet someone added some annotations ?08:18.23 
  chrisl if you cna check that I'd be interested08:18.39 
  The bug is 69477208:18.46 
  and Marcos listed the commit in the comments08:18.53 
  Hmmm actually I see -4 in the original file. I wonder if Alex did manage to mess this up somehow08:21.19 
  Looks like he did, there is no -.4 in the file08:21.34 
chrisl With the commit before the DOCINFO one I get "**** Unknown operator: '0.-4', processed as number, value: 0.0" and "**** Unknown operator: '0.-526', processed as number, value: 0.0"08:22.02 
kens What does hte output look like ?08:22.24 
  blank ?08:22.27 
chrisl No, there's quite a lot on the page08:22.57 
kens Interesting08:23.09 
chrisl Like brickwork illustrations08:23.18 
kens THe output is blank for me and I don't get those warnings08:23.24 
  I wonder if mupdfclean 'fixed' the broken FontMatrix, I'll have to go back to the original file08:23.43 
  Ah yes it did fix the file08:24.13 
  OK so somehow Alex screwed up the code that considers broken numbers to be '0'08:24.49 
chrisl Yep, that seems to be so - the DOCINFO commit doesn't give the "Unknown operator...." warnings08:25.56 
kens Thanks chrisl I'll try and figure out what he did08:26.18 
  Nevertheless, teh PDF file *is* wrong, and I can't believe the Acrobat ouput is correct08:26.39 
  THat is, as intended by the edit08:26.50 
  And if I fix the two type 3 font matrices, then current code will read the file too08:27.38 
chrisl Hmm, looking at that commit, there doesn't seem to be much to it......08:27.54 
kens That's why I'm surprised08:28.03 
  I did read it already and couldn't immediately see how it broke this08:28.15 
  But I'll find out08:28.23 
  And a whole *bunch* of annotations are missing with the assumption that theFontMatrix entries should be 0. When I check them in Acrobat I can see that *exactly* the same text is missing. So the output in Acrobat is, as expected, wrong. Ot at least not as the annotater intended.08:32.35 
chrisl How on earth can that be better than giving some kind of error? I really don't get it.....08:33.47 
kens I agree and I'm putting comments to that effect in the bug. I shall also enourage Marcos to send the files back to the customer and point out to them that the text ia *missing* and that the Acrobat view is incorrect.08:34.36 
  I'd rather have an error than stuff silently being ignored personally08:35.01 
  But I do have to figure out what Alex broke and fix it. Just so we can be 'compatible' with Acrobat08:35.29 
nl_ hi09:04.30 
ghostbot niihau09:04.30 
nl_ Is there somebody here that knows a lott about ghostscript?09:05.03 
kens If you have a question, just ask it09:05.40 
nl_ I build the gs32.dll from code with the XCFLAGS="-DGS_THREADSAFE=1" flag09:06.08 
  Everything went fine.. pdfwrite seems to be working correct09:06.26 
  I only have a problem with the PNG device.09:06.35 
  When I convert a pdf to png and the parameter -dTextAlphaBits=4 is set I get blank pages09:07.01 
  When I set -dTextAlphaBits=1 everything works ok09:07.28 
kens I suggest you report a bug, attach the input file and state the command line used. You should probably also check with teh stock pre-built binaries09:07.53 
nl_ I used the latest code09:08.13 
kens Fine, but you should still check with teh binary we build09:08.26 
nl_ That one works fine09:08.39 
  But the THREADSAFE flag isn't turned on in those builds09:08.51 
kens I know, but I would suggest you try bulding the binary yourself *without* the threadsafe option and trying that09:09.16 
nl_ The reason why I want to use the threadsafe flag is because I want to do parallel processing09:09.18 
kens This elimiates more possible prblems09:09.25 
nl_ If I build it without everything is ok09:09.34 
kens Right, then I suggest you open a bug report and include all that information09:09.48 
chrisl And a sample file that shows the problem09:10.23 
kens Yep, I did say that previously, also a full d line09:10.40 
nl_ I'll do that09:10.41 
  It only happens when the anti aliasing is turned on... 09:11.37 
  I had the same with the pnggray device but there I didn't need the anti aliasing and could fix the problem with the "-dBufferSpace=2147483647" '2GB Buffer command09:12.22 
kens Which is useful information, but just put it in the bug report. Whoever looks into it will welcoms a minimal casew to reproduce and the additional information will reduce the investigation needed.09:12.26 
nl_ bye and have a nice day09:14.01 
chrisl Hmmm, yes, GS_THREADSAFE is *badly* broken :-(09:39.38 
kens Well we never test it09:39.50 
  I guess we should.....09:40.08 
chrisl I thought it had been tested09:40.20 
kens Umm, no idea ?09:40.43 
chrisl Well, maybe not - we just ignore calls to the default path filling method.......09:41.13 
kens That doesn't sound like a good idea09:41.43 
chrisl Nope, but adding it back in, throws a bunch of undefined symbol errors on debug code :-(09:42.32 
kens Oh that's not great09:42.56 
chrisl And our friend hasn't actually opened a but (yet).....09:43.47 
kens The 'fix' from Alex tht causes the problem seems to have multiple problems starting with a dup which leaves something on the stack. It appears this wasn't to do the original enhancement, but to fix a file in our test suite with a broken Infor dict. Of course Alex didn't say which file so I've had to revert the fix and run a cluster test to find out.....09:44.15 
  chrisl well, up to him, you can ignore it until he does ;-)09:44.30 
chrisl indeed09:44.56 
  OTOH, if I build the modified code with the right CFLAGS it works - doh!09:51.35 
kens ROFL well if he ever opens a bug report you can tell him what's wrong09:51.57 
chrisl I could have told him earlier - "it's broke".....09:52.45 
Robin_Watts chrisl: So, is GS_THREADSAFE broken?10:25.00 
chrisl Robin_Watts: Oh yes - if you look in gxfill.c line ~654 - you'll see the call to gx_general_fill_path() is conditionally compiled out. Fills don't get filled.... easy fix, though10:33.10 
Robin_Watts What the hell was i thinking?10:34.15 
  Presumably I was intending to only remove the vd_ stuff ?10:34.27 
chrisl Yeh, I think the function call just got caught up in the mix10:34.45 
  I've got fixed code here - as I said, it's trivial10:35.15 
Robin_Watts chrisl: Are you going to commit that?10:35.33 
chrisl Once I type the commit message10:35.46 
Robin_Watts Fab, thanks.10:35.53 
chrisl I'm assuming you won't need to review such am obvious change......10:36.13 
Robin_Watts no, that's fine.10:36.28 
chrisl I guess I should clusterpush with GS_THREADSAFE (after the commit run is complete), just for kicks10:37.52 
kens I guess it might be useful10:38.22 
  I'm still trying to fathom what Alex was up to with this PostScript change10:38.53 
chrisl When was the change made?10:39.18 
kens 201210:39.22 
  16th August10:39.35 
  The enhacement works fine,its the code to 'fix' the broken Info dict aht's borked10:40.03 
Robin_Watts http://news.slashdot.org/story/13/11/12/039249/digital-textbook-startup-kno-was-sold-for-15-million11:02.27 
chrisl Eeek!11:03.22 
Robin_Watts chrisl: I've got a gc problem I don't understand here.13:29.50 
kens thinks this is perfectly normal13:30.24 
Robin_Watts The first time my code tries to relocate a non NULL gsicc_cache pointer, the code falls in a heap.13:30.41 
chrisl I did take a quick look at your code earlier, and nothing stood out as daft13:33.14 
Robin_Watts chrisl: The actual relocation appears to be done using igc_reloc_struct_ptr13:37.41 
  which makes reference to 'chunk_head_t' etc.13:37.54 
  but the memory that this object is in is NOT a chunked allocator - it's the underlying thread safe allocator (which is the standard allocator based on malloc I think).13:38.31 
chrisl Well, it can't be gc'ed memory13:38.53 
  Hmm, you've got ENUM_OBJ() but RELOC_VAR()13:40.04 
Robin_Watts RELOC_VAR == RELOC_OBJ_VAR13:40.20 
  The existing code already handles gsicc_cache pointers. In the same routines look at the lines dealing with icc_cache_cl13:41.10 
  I just copied those.13:41.18 
chrisl Oh, is it an array of pointers? Or an an array gsicc_cache objects?13:41.33 
Robin_Watts I have an array of pointers.13:42.02 
chrisl So, cache is allocated separately13:42.16 
Robin_Watts yes13:42.23 
chrisl each cache13:42.24 
Robin_Watts yes13:42.33 
  so I probably need to cope with enumerating/relocating the block of pointers too.13:42.49 
  but I don't believe that's the problem at the moment.13:43.03 
chrisl Ah, it may be that the array of pointers has been gc'ed by then13:44.16 
Robin_Watts chrisl: I have some debugging in there, and the pointers look fine to me.13:46.08 
chrisl Try running with -Z@13:46.29 
Robin_Watts From the command line, it still crashes in the same place.13:47.12 
  my VS just died :(13:47.18 
chrisl I would expect it to crash in the same place, but it *may* have overwritten the pointers by then, if the array has been gc'ed13:48.05 
Robin_Watts pointers have not been overwritten.13:50.07 
chrisl Robin_Watts: are you sure the memory in question gc'ed memory?13:50.23 
Robin_Watts -Z@ fills memory on freeing?13:50.30 
  chrisl: Oh, possibly not.13:50.47 
chrisl Yes, it fills with different bit patterns on whether it was freed, or gc'ed. But I can't remember when during the compaction the gc'ed memory gets written into13:51.09 
Robin_Watts Is memory allocated using the basic gs heap allocator gc'd ?13:51.19 
chrisl No13:51.34 
Robin_Watts Then that might explain it :)13:51.42 
chrisl You should be able to look in the allocator in the debugger13:52.07 
Robin_Watts I need to use a thread safe allocator for a memory space that won't go away until after the clist device does.13:52.29 
  so I used cdev->memory->thread_safe_memory13:52.40 
  which I think is the raw gs_heap stuff.13:52.56 
  Let me trap the allocation.13:53.02 
  gs_heap_alloc_struct13:53.29 
  THat does still put the structure descriptor in ptr[-1]13:54.39 
chrisl So, if you look into the allocator's procs. the register_root method will tell you if it's gc'ed13:54.57 
  A gc'ed allocator will have i_register_root()13:55.40 
Robin_Watts gs_heap_register_root ?13:55.44 
chrisl Yeh, isn't that an empty function?13:56.00 
  Yep, so that's non-gc'ed memory13:56.25 
Robin_Watts so it is.13:56.33 
  OK, thanks!13:56.36 
chrisl I have squash training now - back for the meeting. I can debug it properly then, if you're still struggling13:57.58 
Robin_Watts Morning henrys14:06.00 
henrys howdy14:06.19 
Robin_Watts Can I get a sanity check from someone please? gxclist.c line 6814:06.21 
  In the CLIST_IS_WRITER case, we have a switch with explicit cases for 0,1,2,3,4,514:06.56 
kens yes14:07.16 
Robin_Watts and a default case where we pass on the enumeration with index - 5.14:07.17 
  surely that should be index-6 ?14:07.23 
kens Don't know, depends what ENUM_USING is exepcting, 0-based or 1-based14:07.57 
Robin_Watts cos for index == 6 (the first one that isn't handled explicitly) we want to pass that on as being index == 0 ?14:08.01 
  ENUM stuff always works 0 based, I believe.14:08.10 
kens C eums are 0 based by defatul, but need tno be AIUI14:08.25 
Robin_Watts kens: no, this is garbage collection enumeration.14:08.43 
kens GC I don't really understand :-(14:08.54 
Robin_Watts gc ENUM routines enumerate the list of pointers that a given structure holds. From 0 upwards.14:09.24 
kens THat is, I understand garbage collection, I don't understadn our garbage collector14:09.50 
Robin_Watts Ok, code works now. and OptimiseByResampling is taking 8% rather than 50%.14:17.15 
  lunchtime.14:17.20 
kens sounds like progress14:17.28 
henrys kens:according to your comment you wanted this to go back to Robin … http://bugs.ghostscript.com/show_bug.cgi?id=69391614:51.41 
Robin_Watts It's the clist that needs altering I believe.14:56.00 
kens henrys we taslked about that at the last staff meeting, its mine again14:56.37 
henrys kens:oh sorry I don't remember … it seems trivial to fix up the array size if necessary get rid of the postscript code. 14:58.26 
kens there are several parts, PS, pdfwrite/ps2write and the clist14:58.48 
Robin_Watts Nothing that involves changes to the clist is trivial.14:59.23 
kens ray claims clist will work15:00.02 
henrys okay just going through the agenda before the meeting and noticed that one.15:00.03 
  kens:clist doesn't need to change if you exceed the max pattern it uses a fill.15:01.33 
kens henrys yes that's what ray said15:02.46 
Robin_Watts God, that sounds awful for performance.15:03.06 
tor5 huzzah for broken internets.15:03.08 
kens Robin_Watts : Its incredibly rare to find such a thing15:03.22 
henrys Robin_Watts: patterns like that are never seen15:03.30 
kens You more or less have to handcraftone15:03.34 
henrys sorry what kens said15:03.37 
  we can look at the coverage data to see if we test that path.15:04.25 
kens henrys we do not15:04.35 
  the setdash anyway15:04.42 
  clist I don't know, but I'll find out when I do the work15:04.53 
henrys kens:we do - pcl does15:05.49 
kens yeah I mentioned that in teh bug thread15:06.01 
henrys kens:only in some very dreaded set files15:06.55 
kens technically there is no limit in PostScript these days.....15:07.17 
  THe hard part is going to be fixing pdfwrite15:07.28 
henrys but that is fairly good evident the fallback in clist will work for ps and pdf.15:07.41 
kens Yes I would think so15:07.50 
kens fetches coffee for meeting, brb15:08.47 
henrys marcosw: I really appreciate the coverage stuff - nice to look at a path in the code and have a list of test files.15:09.53 
Robin_Watts apparently gdevrops.c is never used.15:12.12 
  likewise gdevm2.c, gdevmr1.c, gdevmr2.c, etc15:14.13 
kens surely gdevrops.c is used by PCL for rasterops ?15:16.38 
Robin_Watts It's not used according to the gs coverage data - but it is under the PCL stuff. I guess that makes sense.15:18.46 
kens Yes indeed, GS won't use it, but PCL does.15:19.08 
  gdevm2.c is 2bpp output, which I gues our coverage doesn't test15:19.24 
Robin_Watts kens: yeah, there are probably reasons for all of them.15:19.50 
kens gdevmr1,c is monobit rasterops apparently so same as gdevrasterops.c etc15:20.13 
  I'm guessing gdevmr*.c is rasterops15:20.28 
marcosw henrys: nice to hear that the coverage analysis is being used.15:24.47 
henrys marcosw: Sorry I missed you comment about the windows problem and only noticed it today.15:25.55 
  marcosw: but it looks like you've moved on.15:26.37 
  coffee before meeting15:28.31 
marcosw henrys: no, I haven't assigned that bug to anyone. it's 15:30.19 
  http://bugs.ghostscript.com/show_bug.cgi?id=69477115:31.09 
henrys marcosw: not a clue here15:32.14 
Robin_Watts Coo. Memento isn't threadsafe. That never occurred to me before.15:32.30 
henrys So I think a good next step in the 801 plan is to get their device in the nightly test suite.15:34.14 
Robin_Watts henrys: How do we do that without checking their device into a public repo?15:34.38 
henrys Robin_Watts: the same way we test the ufst I suppose15:34.57 
  marcosw?15:35.27 
Robin_Watts It's a different problem though.15:35.33 
henrys Robin_Watts: in that we frequently change it?15:36.00 
chrisl henrys: surely it's not our responsibility to test customer's devices?15:36.05 
Robin_Watts ufst is a configure option that will cause a third party lib to be linked in/called.15:36.07 
  i.e. there is public code permanently in the gs tree that can be enabled/disabled.15:36.34 
  that is not the case with cust801.15:36.42 
ray_laptop I can only stay for about 30 min today -- my wife can't take my youngest to school15:36.43 
henrys chrisl: we are testing that we don't break a customers device15:36.46 
marcosw henrys: yes15:37.19 
chrisl henrys: well, we should test customer 532's device, too. And any other customers that have custom devices......15:37.30 
Robin_Watts henrys: IMHO the only way we should undertake this is if they are prepared to work from a git repo that they will share with us.15:37.50 
ray_laptop chrisl: cust 532's device can't really be tested -- it's an ASIC (they have a s/w simulator but that is *NOT* suitable for automated testing, IMHO)15:38.26 
Robin_Watts That way we can ensure we are testing the latest version of their device, and if changes are required, we can fix them.15:38.33 
henrys Robin_Watts: I don't know that we have to have every single change.15:38.54 
Robin_Watts BUT I suspect we don't really need to test their device.15:39.02 
marcosw we can put customer devices into tests_private, the nightly regression code can copy the file(s) from that repository into devices (or wherever they need to go) before compiling.15:39.10 
henrys the important thing is to test we don't break 5 color with their profile etc. 15:39.34 
ray_laptop Robin_Watts: I agree, as long as they move to proper use of the device interface15:39.41 
chrisl ray_laptop: my point is that 801 isn't the only customer to have their own code, and we don't regression test any others - that's the customer's responsibility15:39.41 
Robin_Watts all we need to do is to test a 'similar' device. a planar device that uses process_page.15:39.59 
ray_laptop chrisl: right, thanks for clarifying. I agree15:40.16 
henrys chrisl: yes it was a new idea of mine only for customers that are significant. Sorry I though I had said something about that.15:40.28 
  chrisl: and feasible as ray_laptop points out.15:40.46 
chrisl henrys: I'm putting the counter-argument......15:40.52 
ray_laptop Robin_Watts: I do feel the need to check a device that use plane skipping in band mode15:41.08 
chrisl henrys: if we start down that road, we can be taking on a huge burden, in the long run15:41.38 
henrys Robin_Watts: so why not have marcosw put gdev801.c in a private place and just test it.15:41.55 
Robin_Watts henrys: It's not just that file.15:42.08 
mvrhel_laptop I do have it on my list to come up with color testing, one of which would be the use of N-color output profiles henrys15:42.09 
ray_laptop chrisl: but only for our top two or three customers. That's why we test UFST, after all, is for the significant customers15:42.20 
Robin_Watts It's a change to the makefiles to include it etc.15:42.23 
  marcosw could have a patch that he applies each time, but it's effort when it inevitably breaks.15:42.42 
kens is distinctly uneasy about doing customer-specific testing15:42.43 
mvrhel_laptop yes me too15:42.48 
henrys chrisl: just significant customers with unusual devices - a very small crowd15:42.58 
ray_laptop mvrhel_laptop: a psdcmykog shouldn't be too difficult15:43.08 
mvrhel_laptop exactly15:43.14 
chrisl henrys: but that group can change over time15:43.22 
kens When/if a customer is no longer in our top 2 or 3 will we stop esting their device ? How many devices from each customer ?15:43.23 
mvrhel_laptop ray_laptop: I already have a profile and input file that tests the use of this quite nicely15:43.50 
Robin_Watts Personally, I'd like to make a public example device that shows planar, process_page operation, with band skipping and just put that into our regular commit tests.15:43.56 
ray_laptop kens: well, if all of our customers stopped using UFST, we'd sure drop that !!!15:44.08 
chrisl Robin_Watts: I agree, that seems sensible15:44.14 
kens I'd rather do Robin's approach15:44.15 
mvrhel_laptop Robin_Watts: I think a demo device would be great15:44.20 
henrys kens: I think we look at each device. In my view we have high probability of breaking 801's device so ...15:44.20 
chrisl It's probably worth doing a 5+ color test set, too15:44.36 
kens I'd rather have a device we cna make public as an example, and test ourselves15:44.42 
ray_laptop Robin_Watts: I agree. And I agree with *NOT* testing actual customer device code15:44.48 
Robin_Watts henrys: Their *current* device is completely fragile. The one we've done should be much more robust.15:45.03 
ray_laptop chrisl: we do (with psdcmyk) test > 4 planes when the files call for Separations15:45.39 
mvrhel_laptop not with an icc profile though15:46.05 
kens ray_laptop : I'm not convinced UFST is a similar example, we have a font API which we should keep up to date to allow other Font handlers, and also UFST is not a singel customer15:46.05 
henrys okay so somebody is going to make a 5 color profile?15:46.16 
ray_laptop chrisl: mvrhel_laptop proposed adding a device that would have the ICC profile that generates > 4 colorants15:46.20 
chrisl ray_laptop: sorry, I meant with a suitable profile15:46.20 
mvrhel_laptop henrys: I have one15:46.23 
ray_laptop guessed that mvrhel_laptop would15:46.39 
henrys if it has the same features, fine by me.15:46.40 
Robin_Watts ray_laptop: We'd probably want to have our example device have 5 (or more) colorants.15:46.42 
henrys Robin_Watts: and it should have ht in the device, right?15:47.18 
ray_laptop Robin_Watts: yes. I'd recommend using the one that mvrhel_laptop is proposing, and adding band skipping by writing 0's for empty colorants (ignoring what's actually rendered in the plane)15:47.48 
Robin_Watts I think it's far better for us to have a public device that we can show to customers to say "this is an example you can work from" rather than to say "we test this stuff in the background, but it's secret, so we can't show you."15:47.50 
henrys paulgardiner: so I guess we'll stop looking at open source solutions and see what Robin_Watts comes up with?15:48.17 
Robin_Watts henrys: The device currently renders contone internally and SSE's down to 4bits.15:48.17 
paulgardiner henrys: Seems sensible to me. 15:48.50 
ray_laptop Robin_Watts: or better yet, to make sure that thee color_usage is tracking, checking the contents of "empty" planes and dying if a plane is actually marked (to spot color_usage wrong)15:48.58 
Robin_Watts We can't use their bluenoise tables in public of course.15:49.11 
mvrhel_laptop we can generate our own with ray's code15:49.26 
ray_laptop Robin_Watts: I can easily generate BNM tables15:49.32 
henrys Robin_Watts: I don't think we need sse, but we should get a 4 bit result right?15:49.33 
paulgardiner henrys: I'd sort of assumed that, so I've been back working on the iOS app.15:50.07 
Robin_Watts henrys: Having SSE is nice as an example.15:50.13 
  cos it demonstrates alignment etc.15:50.23 
mvrhel_laptop yes15:50.28 
henrys Robin_Watts: I'm concerned that will get on their radar that our device is much like theirs15:50.52 
mvrhel_laptop is the SSE code "ours" or is it part of their device?15:50.53 
ray_laptop henrys: I don't think we need to test the 4-bit, but the SSE is useful as Robin_Watts says15:50.54 
  mvrhel_laptop: we (Robin) wrote it15:51.10 
Robin_Watts Personally I'd like to rip out the bluenoise tables entirely.15:51.11 
  The only bit of SSE that is theirs is the application of the bluenoise.15:51.34 
mvrhel_laptop ok15:51.38 
Robin_Watts so if I rip that out everything is then ours.15:51.43 
  and it doesn't matter if we're on their radar.15:51.51 
mvrhel_laptop sounds reasonable15:52.10 
Robin_Watts actually, we should possibly rip out the code that changes the scale of CMY to be a different res to K.15:52.46 
henrys Robin_Watts: we need to back this up a bit - they very reasonably may not want a 5 color planar device released as open source.15:52.52 
ray_laptop Robin_Watts: right -- just "strict" 8-bit to 4-bit. But what about the 600->300 do we seriously want a device with different res for some planes 15:52.53 
mvrhel_laptop I would say no15:53.14 
Robin_Watts ray_laptop: I would say not.15:53.17 
mvrhel_laptop :)15:53.23 
  henrys: I will do 6 color15:53.46 
  that is what my profile is15:53.49 
Robin_Watts henrys: OK, so let's do a 7 color planar device.15:53.50 
ray_laptop Robin_Watts: although if we want to just have the SSE to the averaging downsampling for ALL planes, that would be OK15:53.52 
Robin_Watts CMYcmyK ?15:53.55 
henrys they are not a rival for which we are trying to make a legal case - they are a potential customer that we don't want to annoy.15:54.28 
ray_laptop Robin_Watts: light y is not common15:54.31 
Robin_Watts ray_laptop: OK.15:54.38 
  henrys: I don't see how this can be bad for them.15:54.48 
mvrhel_laptop I forget what it is. It is some extra spot colors15:54.49 
ray_laptop light K *is* seen more often15:54.59 
  mvrhel_laptop: I think I have a CMYK+Orange+Green ICC profile (from Raph)15:55.54 
mvrhel_laptop generally the light c, light m and light k are not produced from the icc profile, but from 1-D look ups15:55.56 
ray_laptop *if* I can find it15:56.00 
henrys Robin_Watts: I don't either but they have been very specific that everything be confidential so I'm a bit nervous about release a similar open source device.15:56.05 
mvrhel_laptop ray_laptop: ok that would be nice15:56.10 
ray_laptop mvrhel_laptop: I'll look for it later today15:56.25 
mvrhel_laptop thanks15:56.28 
Robin_Watts henrys: We can always go back to them and suggest this as a course of action.15:56.29 
kens Hexachrome (CMYKOG) was common enough in the past15:56.29 
henrys Robin_Watts: that i'd be good with.15:57.03 
ray_laptop kens: if you know where to get an ICC profile for that, just forward it to mvrhel_laptop (and let us all know)15:57.12 
henrys Robin_Watts, ray_laptop : you saw they had build problems?15:57.22 
kens I don't have one any more, sorry15:57.23 
mvrhel_laptop I may have one actually15:57.30 
ray_laptop henrys: no, I haven't processed emails yet.15:57.44 
henrys ray_laptop: you mentioned in the /tmp file bug that it might have been fixed with bgprint?15:58.14 
Robin_Watts We can say "we would like to produce a simple open source example device, that uses cmykog in 4 bits. It would be similarly structured internally to the device we have produced for you. We'll put this into our test suite, thus you can have confidence that as we develop ghostscript, your device will not be broken. This helps keep the details of your device secret."15:58.28 
kens It looked like they wanted to 'merge' in their own device, I didn't hitnk they needed to, I assumed Robin/Ray had sent them everything.15:58.40 
henrys now we have tor5 and tor715:58.49 
kens THat's not unusual15:58.58 
mvrhel_laptop I bet they will take a month + to get back to you on that one Robin_Watts 15:59.03 
tor7 internet just recovered for tor715:59.09 
Robin_Watts henrys: Yes, I saw their build problem. I was going to talk to ray_laptop about it when he's free.15:59.26 
ray_laptop kens: we (mostly Robin_Watts) had hacked on their device pretty thoroughly.15:59.26 
kens ray_laptop : that's what I thought, I assumed what you had sent them was 'ready to go' and wouldn't need any merging15:59.51 
  I may have misunderstood their mail though16:00.01 
Robin_Watts I read their emails as "We've started working with gs 9.10. Can you give us just the changed files from 9.10?"16:00.07 
henrys ray_laptop, kens, Robin_Watts: we must stop merging politely.16:00.10 
  tell them to upload the code and we'll fix it.16:00.29 
  anything else for the meeting? Can everyone have a look at the agenda and see what updates are needed?16:01.25 
Robin_Watts And my response would be "We cannot easily do that. We have done significant changes since the release of 9.10 specifically to support your use case. You should take a current snapshot and apply these diffs."16:01.32 
ray_laptop Robin_Watts: I'll be back at the office by no later than 8:45 16:01.37 
Robin_Watts ray_laptop: No worries.16:01.44 
ray_laptop We *could* give them all of the changed files since 9.10. I have their code on a branch under git16:02.41 
  Robin_Watts: he mentions linux -- I didn't even think to try building on linux16:03.06 
Robin_Watts ray_laptop: We could, but really we should point out that that is NOT a good way to work.16:03.09 
tor7 henrys: mupdf can do cmyk output, the svg parser is now functional (but incomplete) and can do vectors and the state stack tracking and a lot of the fundamentals are in, and I've got the system font loading callback API in place and a demo of it using fontconfig16:03.25 
henrys chrisl: I need to ping urw again.16:03.31 
Robin_Watts I've not built on linux either.16:03.38 
  tor7: Did you see zenikos comments earlier?16:03.50 
tor7 Robin_Watts: I did not.16:03.55 
  my internet's been wonky16:04.09 
ray_laptop Robin_Watts: I can try that (and debug that) when I get to the office.16:04.12 
henrys tor7:wow can we let Raed give it a spin (svg)16:04.20 
  ?16:04.23 
chrisl henrys: I was going to remind you in a week or two - they did say November before the personal responsible would be available16:04.29 
ray_laptop Does gcc use the same SSE intrinsic syntax ?16:04.44 
tor7 henrys: it only does vectors at the moment, but it can at least read most of the stuff that comes out of Robin's svgdevice16:04.49 
Robin_Watts ray_laptop: I believe it's standard.16:04.55 
henrys tor7:okay let's hold off ;-)16:05.09 
tor7 henrys: but I'm pleased that at least it now works well enough that it can be incrementally improved :)16:05.30 
marcosw In case anyone missed my email to tech@ I'd like to mention the custom test stuff I added to the nightly/weekly regression tests. See tests_private/comparefiles/custom_tests.lst for details.16:05.38 
henrys tor7: yes that is good.16:05.44 
tor7 Robin_Watts: where did zeniko comment?16:05.47 
marcosw it would be good if people added tests before the next staff meeting, so we can discuss missing features.16:06.07 
henrys marcosw: it was on my list to check that out, thanks marcosw 16:06.08 
ray_laptop chrisl: does our linux configure take care of HAVE_SSE* #defines somewhere ?16:06.10 
mvrhel_laptop Robin_Watts: I will make sure that I am up and running with their device when we visit next week, in case they still can't build by then...16:06.14 
chrisl ray_laptop: it does, yes16:06.21 
Robin_Watts tor7: I'm trying to find it.16:06.34 
tor7 Robin_Watts: found it in yesterday's log16:06.44 
ray_laptop mvrhel_laptop: do you want me to upload the tarball to casper for you ?16:06.47 
henrys marcosw: are you going to field guillaume stuff?16:06.55 
  I know it was addressed to me.16:07.03 
ray_laptop mvrhel_laptop: or do a git patch for the xxxx branch I have?16:07.23 
marcosw henrys: I've already replied to his most recent email and was reading his second when I remembered the meeting wasn't over.16:07.23 
  so yes, I'll deal with him.16:07.32 
henrys marcosw: oh thanks great16:07.37 
tor7 zeniko (FTL): I do *not* trust loading system fonts for the builtin fonts. at least not without setting the "is a substitute" flag.16:07.59 
mvrhel_laptop ray_laptop: I think I would prefer to work in the git framework16:08.04 
ray_laptop recommends using a git branch so we can track changes from origin/master easily16:08.06 
mvrhel_laptop yes16:08.11 
tor7 but the arguments to the function can definitely be extended with more information than just the font name16:08.27 
ray_laptop mvrhel_laptop: OK, when I get back, I'll put a git format-patch together for you (and Robin_Watts in case he wants it)16:08.54 
mvrhel_laptop ok thanks16:09.01 
ray_laptop I have to go now. bbiaw (35 min or less)16:09.19 
  sorry16:09.20 
henrys no problem16:09.28 
  move to adjourn anyway.16:09.46 
tor7 and I'd be willing to add a second function for CJK fonts in particular16:09.48 
henrys Robin_Watts: after thinking about it if we just do a hexacrhome planar open source device I doubt it would be a problem.16:11.44 
Robin_Watts henrys: Cool.16:12.08 
henrys or something of that ilk16:12.10 
marcosw also, I setup windows 7 nightly regression testing. It's a Rube Goldberg combination of virtualbox, shared folders, batch files, cygwin, and perl code so probably will break if someone breathes on it, but for now it's working. I'll probably have it start sending out emails next week, so one more regression email that everyone can ignore :-) (except me, I read them very occasionally).16:12.14 
chrisl marcosw: that is hardly fair - how can I delete them if I ignore them..... ;-)16:13.02 
marcosw currently it does only gswin32c.exe testing. I do build the gswin64c.exe code but wasn't sure if anyone of our customer use it.16:13.20 
sh4rm4 hrm is there a way to make ghostscript link against libgs.so instead of compiling everything into the binary ?16:14.04 
henrys marcosw: great lots of folks using that crazy OS ;-)16:14.30 
chrisl sh4rm4: "make so"16:14.35 
Robin_Watts So I have J12_PS_ACR9.ps down to 14.3s from 21s at 600dpi.16:14.47 
sh4rm4 chrisl, will that create the "gs" binary as well ?16:14.50 
chrisl sh4rm4: it creates gsc and gsx binaries, linked to the .so16:15.09 
marcosw I've run a comparison of output from gswin32c.exe vs gs on linux and there some significant differences that I'm tracking down and will enter bugs for.16:15.10 
Robin_Watts And down to 11.2 from 18.38 at 300dpi.16:15.43 
sh4rm4 chrisl, are those 2 sufficient to fully replace "gs" ?16:15.45 
chrisl sh4rm4: yes16:15.58 
sh4rm4 which one does what ?16:16.04 
Robin_Watts mvrhel_laptop: Is there a 'cmsGetIdentityLink' or something ?16:16.10 
marcosw henrys: just wait until we start having customer using Windows RT :-)16:16.15 
sh4rm4 or which one do i use instead of "gs" ?16:16.18 
mvrhel_laptop Robin_Watts: no16:16.22 
henrys marcosw: which looks right?16:16.38 
Robin_Watts mvrhel_laptop: I have the 'list of caches' stuff working.16:16.57 
chrisl sh4rm4: either. The only difference is in the the way the screen output works16:16.58 
henrys marcosw: also windows is 32 bit did you check against gcc 32 tests?16:17.03 
Robin_Watts I worry that it might be leaking though.16:17.06 
sh4rm4 chrisl, so which one would you symlink to "gs" then ?16:17.21 
marcosw in most cases the windows build doens't produce output for all the pages.16:17.25 
mvrhel_laptop Robin_Watts: essentially, if the source and destination profiles are the same, we currently mark the link as such and then later if we encounter said profile we ignore it and don't do the transform16:17.31 
chrisl sh4rm4: I wouldn't, I would use the monolithic executable16:17.43 
mvrhel_laptop s/said profile/said link/16:17.48 
Robin_Watts mvrhel_laptop: REALLY?16:17.49 
mvrhel_laptop really16:17.56 
Robin_Watts mvrhel_laptop: Then I am confused.16:17.58 
sh4rm4 chrisl, and in my case ? which one is better suited ?16:18.06 
marcosw henrys: yes, but there aren't significant differences between the linux 32 and 64 bit builds. I think only in some of the quality logic tests that check for maxint and such.16:18.07 
Robin_Watts I've been looking at J12_PS_ACR9.ps16:18.16 
chrisl sh4rm4: I don't know what your case is - try them both, and see which suits16:18.31 
Robin_Watts which is the one where getting the link was taking ages.16:18.34 
sh4rm4 chrisl, i take it i dont have to run "make install", only "make soinstall", right ?16:18.42 
Robin_Watts ray_laptop had said that that was a case where the start and finish profiles were the same16:18.56 
mvrhel_laptop ok that could be16:19.04 
chrisl sh4rm4: that *should* work, yes16:19.05 
henrys marcosw: christ my phone has 64 bits I wonder how long 32 will be around.16:19.09 
mvrhel_laptop we currently will create the link16:19.20 
  I was going to add code to avoid that16:19.32 
Robin_Watts Ah, we create the link, but never use it ?16:19.33 
mvrhel_laptop right16:19.36 
Robin_Watts This makes me wonder if I should bother committing my code.16:20.02 
  If we fix the identity case to not make the link, we'd sidestep this particular example.16:20.37 
mvrhel_laptop oh a much cleaner solution16:20.53 
  let me drop what I am doing with 8.1 and see if I can quickly do this16:21.06 
marcosw henrys: I was wondering if we should start shipping a gswin64c.exe in addition to gswin32c.exe. I know chrisl doesn't have enough to do for every release :-)16:21.10 
chrisl Robin_Watts: are you seeing any performance improvement with the persistent cache?16:21.11 
Robin_Watts but then I guess there are other (non-identity) examples which might also be slow, so might benefit from us keeping a cache.16:21.17 
  chrisl: Yes.16:21.20 
  21->14s at 600dpi, 18->11 at 300dpi16:21.33 
mvrhel_laptop Robin_Watts: yes, the cache should still elp16:21.34 
chrisl marcosw: we do ship gswin64c.exe16:21.40 
mvrhel_laptop that is signfiicant16:21.41 
Robin_Watts OK, so it's probably worth me committing this code anyway.16:22.09 
chrisl And presumably there will be times when we can't elide the transform (because it's identity)?16:22.27 
sh4rm4 chrisl, thanks, it seems to work16:22.44 
Robin_Watts chrisl: Presumably. I just don't have an example of that :)16:22.50 
sh4rm4 however i hope that cups-filters likes gsx instead of gs16:23.00 
chrisl sh4rm4: it uses the same command line args, so it *should* be fine(!!)16:23.29 
sh4rm4 cool16:23.40 
chrisl Robin_Watts: still, seems like a general solution is better than a special case one.....16:23.51 
Robin_Watts chrisl: yeah.16:23.58 
  OK, so the only minor worry I now have is leaks.16:24.08 
chrisl Well, as long as it's all cleaned up with the clist, then it should be fine16:24.29 
  clist doesn't rely on the garbage collector16:24.54 
Robin_Watts If you run the current code as a debug build with NPR > 1, then we get 'leaks' of icc_cache's reported when the chunk allocator for each thread is closed down.16:25.22 
  They aren't really leaks though, because when the chunk allocator is closed down, all the storage goes away.16:25.45 
  In my code those have moved from being in the chunk allocator to being in the basic heap allocator.16:26.08 
  which means that any such leaks will be real.16:26.18 
chrisl marcosw: what I haven't done is build both gswin32(c).exe and gswin64(c).exe into one installer - that presents "problems" for the build......16:26.29 
henrys marcosw: he asked me to buy some other product which I did, at the end of the day we want to see the hp output.16:26.40 
chrisl Robin_Watts: Hmmm, that's not ideal :-(16:26.47 
henrys marcosw: I'm worried he fishes through a bunch of apps until he finds output he likes ;-)16:27.11 
chrisl henrys: that's what customers do!16:27.30 
Robin_Watts We'll be leaking fewer objects as they are not created one per thread per page any more.16:27.34 
  but the leaks will be real now. Let me try to do some debugging to see if they really are leaking.16:27.58 
chrisl Robin_Watts: I'd have thought having the cache lifetime tied to the clist lifetime would solve any such problems :-(16:28.40 
Robin_Watts chrisl: I'm using reference counting.16:28.57 
  so if something isn't decrementing properly in the existing code, it won't go away on the clist_close.16:29.23 
chrisl Oh, okay.16:29.44 
Robin_Watts Possibly I should just free it and be done with it on clist_close.16:30.05 
marcosw chrisl: right, sorry. I expected the 32 bit builds and the 64 bit builds to be in the same installer (didn't notice the gs910w64.exe installer).16:30.52 
  chrisl: do we know what the ratio of downloads is for the two installers?16:31.10 
chrisl marcosw: not off hand no. The last time I looked the 32bit one far outstripped the 64bit, but that was quite a time ago16:31.54 
marcosw maybe i'll run weekly tests on gswin64 vs nightly for gswin32...16:32.33 
chrisl On sourceforge, the two are about equal, for 9.1016:33.02 
marcosw henrys: I agree that comparing ghostpcl to hp output is better than comparing to a third party hpgl rasterizer, but there isn't anyway of automating that. We can automate comparing to viewcompanion and then plot the files which are different to determine if we or they are correct. 16:36.19 
  I'm happy not to do it, just surprised that ViewCompanion only cost $54.16:36.44 
henrys marcosw: go for it, I agree it is cheap, I had difficulty automating the other product as there was non real batch mode. If they only do a windows display it doesn't help much.16:38.07 
marcosw There is also a ViewCompanion Premium which also reads "EPS (Encapsulated Posctscript)". I wonder whose rip they are using.16:38.49 
Robin_Watts I think there are tools that can automatically grab windows displays to bitmaps.16:39.01 
marcosw they can generate TIFF and JPEG files, so it's only a question of if they have a batch mode or if I have to hack something up (unfortunately the latter is one of my skills).16:40.10 
  they have a 30 day trial, so we can even save the $54 (assuming they don't watermark the output).16:41.18 
chrisl Is it worth buying Premium just to check whether they are using GS?16:41.30 
henrys chrisl: probably16:41.43 
marcosw chrisl: yeah, I'm going to download the trial and check.16:41.47 
henrys Robin_Watts: I've tried that on other platforms and always seemed to trip over something. but yes I guess it is possible.16:42.30 
  Robin_Watts: you really want to generated lots of rasters fast and rifle through them for an effective strategy.16:43.28 
ray_laptop OK, back (for a bit). My son was complaining of a stomach ache, so I'm hoping it fades and I don't get a call from the school.16:44.38 
Robin_Watts henrys: Sure. But there are tools out there that you can call from a script that will grab the full extent of a scrollable window into a bitmap.16:45.13 
  so you can script the collection of rasters from a windows display.16:45.32 
  ray_laptop: OK, so I have the cache list thing working. 21->14s, 18->11s for J12 at 600 and 300dpi respectively.16:46.05 
ray_laptop I know there is a similar thing for X11 buffers, but I haven't played with it for 15+ years16:46.21 
Robin_Watts I'm just sorting out some leaks now.16:46.28 
ray_laptop Robin_Watts: is that with -dBGPrint=true and -dNumRenderingThreads set to whatever is fastest ?16:46.58 
  Robin_Watts: but that sounds like quite an improvement.16:47.10 
henrys Robin_Watts: and how do you write a script to tell the program to generate the next file without a batch mode?16:47.22 
Robin_Watts No, that's without background printing (I don't have your changes), and with -dNumRenderingThreads=4 (cos that's how I did timings before)16:47.27 
ray_laptop Getting rid of the resampling all together would be even better16:47.39 
Robin_Watts henrys: There are tools to drive windows from scripts too. but I admit it's much nicer if it's command line drivable in the first place :)16:48.17 
  ray_laptop: We discussed this in your absence :)16:48.27 
ray_laptop Robin_Watts: you may want to try 2 and 3 threads. On my laptop 4 and above got slower than 2 or 3, which were almost the same16:48.34 
mvrhel_laptop Robin_Watts: ok cluster testing a simple fix to avoid the creation of the link from the CMM16:48.35 
Robin_Watts Yes, avoiding the resampling in the first place would be nicer in this case - mvrhel_laptop is looking at that now.16:48.54 
  but there are likely to be non-identity cases where this is still a win and we can't sidestep the generation.16:49.18 
  mvrhel_laptop: Fab.16:49.25 
  I have 2 questions, the first for ray/chrisl (and anyone else interested)16:49.51 
  In gxclist.c line 70ish.16:50.20 
  That's an enumeration function. In the writer case we explicitly check for index = 0,1,2,3,4,516:50.40 
ray_laptop Robin_Watts: if I format-patch xxxx (where xxxx is a branch) will that then let you and mvrhel_laptop get the branch on to your git repo ?16:50.44 
marcosw I have to run. If consensus is reached on customer 801 regression testing and I need to do something please send email (I try to read the irc logs but sometimes miss stuff).16:50.57 
Robin_Watts then in the default case pass it on with index-5.16:51.09 
ray_laptop marcosw: OK. np16:51.32 
Robin_Watts ray_laptop: Change onto the branch, then use "git format-patch master". That will output all the patches between master and where you are.16:51.50 
ray_laptop Robin_Watts: OK. Thanks16:52.19 
Robin_Watts or rather, all the patches from where your current branch deviates from the history of master, I think.16:52.22 
  Returning to my question. Surely it should be index-6 ?16:52.38 
chrisl Robin_Watts: I would have thought so, unless there's a reason we skip the first pointer in the imager state16:55.40 
ray_laptop chrisl: that's unlikely (and dangerous) since it assumes what the first pointer in the imager_state is.16:56.21 
  Robin_Watts: checking that, however, because stranger things have been done16:56.45 
chrisl ray_laptop: Indeed - I wasn't suggesting that would a good reason, but might be a reason.....16:56.58 
  It's also possible that an additional pointer has been added above, and the number not changed16:57.33 
Robin_Watts chrisl: The number was incremented for the last one added.16:57.58 
  but I didn't dig further back in history :)16:58.09 
ray_laptop Robin_Watts: it looks like 'saved' is pointer 0 in gs_state_do_ptrs(m)\16:59.48 
  m(0,saved) m(1,path) m(2,clip_path) m(3,clip_stack)\16:59.50 
Robin_Watts ray_laptop: OK, so it's a typo. I'll fix that.17:00.13 
  next question...17:00.24 
  (thanks, btw)17:00.29 
  ray_laptop: In gxclthrd.c17:00.43 
ray_laptop I can't see any good reason to skip 'saved', but it probably works because there is some place else that points to it17:00.49 
Robin_Watts aroundabout line 413, we rc_decrement the icc_cache_cl17:01.06 
  but only in the bg print case.17:01.12 
  why do we not rc_decrement it in the non bg print case ?17:01.26 
chrisl ray_laptop: is the clist write imager_state the graphics state, or is it really the "cut down" imager state?17:02.52 
ray_laptop Robin_Watts: when bgprint == false, this is not a thread for the BGPrint rendering, but rather a clist rendering thread that allocated its own icc_cache. That gets freed when we call gdev_prn_free_memory17:04.26 
Robin_Watts ray_laptop: The icc_cache_cl was allocated in setup_device_and_mem_for_thread17:05.12 
  (in the non bg print case)17:05.21 
  at around line 175.17:05.40 
  It is never freed as far as I can tell.17:05.47 
ray_laptop Robin_Watts: that may be something I fixed in the xxxx branch, let me switch back to it17:05.47 
Robin_Watts It gets away with it because the chunk allocator gets thrown away, so the cache goes with it.17:06.15 
  BUT I just moved that icc cache out of the chunk allocator, so now it's a real leak.17:06.35 
ray_laptop Robin_Watts: I think you are right. So we probably want to rc_decrement it, not actually free it. That was *not* fixed on my xxxx branch17:09.33 
  rc_decrement *will* free it ordinarily, but if you change to use one from an array, setup thread would (presumably) just rc_increment the one it uses, and the free/rc_decrement would be done by the manager of the array, right ?17:11.11 
Robin_Watts ray_laptop: My local fix is to move the rc_decrement out of the if.17:13.19 
  I make the new ones into the array, and then rc_increment when copying them out.17:13.43 
ray_laptop Robin_Watts: yes, that makes sense17:13.44 
Robin_Watts and when I destroy the array I rc_decrement there.17:13.58 
ray_laptop darn. how did my toolbin disappear ?17:14.03 
mvrhel_laptop hmm seg faults and diffs with my push, which would indicate that there are places where we may be applying an "identity" link. Robin_Watts I am going to have to look at this a bit futher17:14.59 
  need to do my expense report this week to.17:15.10 
Robin_Watts mvrhel_laptop: No worries.17:15.22 
ray_laptop oh, I know. When packaging up the .zip for xxxx I did: rm -fr *bin to clean up my builds. That got toolbin :-/17:15.42 
Robin_Watts mvrhel_laptop: and indeed, no real hurry here. With my fix it's much less of an issue than it was.17:16.05 
ray_laptop glad I can just check it out again17:16.05 
Robin_Watts ray_laptop: So, how are you packaging for 801?17:16.29 
  Are you just sending them a zip of 9.10 + all changes?17:16.37 
ray_laptop Robin_Watts: I'm just zipping up my gs 17:17.12 
  since that way I know they have everything they need to build (in theory)17:18.15 
Robin_Watts ray_laptop: Ok. We should really encourage them to track us in git.17:18.47 
ray_laptop Robin_Watts: I agree. Any idea if they are able to use git ?17:19.18 
Robin_Watts ray_laptop: No idea at all.17:19.35 
ray_laptop as we know, it can be a bit of a learning curve.17:20.04 
Robin_Watts I think one of us should explain to Masaru-san that there will be large differences from 9.10 as we have made lots of changes for their use case.17:20.22 
  If he wants differences from 9.10 we will do it, but they will be large.17:20.40 
ray_laptop Robin_Watts: agreed.17:20.42 
  Maybe the best way to convince them is to explain how to set up a local git repo and tell them how to apply series of patches to get caught up as well as sending them all of the changed files (which will be much bigger)17:22.54 
kens OK off now, goodnight all17:24.51 
Robin_Watts ray_laptop: I think most developers will have some experience with git these days (or at least, within the team, there will be at least one person that does)17:24.56 
  The key thing is that by moving to a git based reflow they can continuously merge or rebase to keep their stuff up to date with ours.17:25.46 
ray_laptop Robin_Watts: it is definitely worth a shot. It will make it a *lot* easier.17:33.35 
  Robin_Watts: the cluster doesn't have a way for us to add command line arguments for a test run, does it ?17:35.03 
Robin_Watts ray_laptop: Not for a user push, no.17:35.41 
  marcosw has set up some custom test stuff, but that's for overnights etc, AIUI.17:36.12 
  ray_laptop: 3 commits on robin/master if you want to look them over before I push them.17:37.38 
ray_laptop darn. I want to run -dBGPrint=true -dNumRenderingThreads=4. Guess I'll just hack gs_init.ps17:37.44 
  Robin_Watts: OK.17:37.57 
  have to go get coffee. bbiab.17:38.58 
Robin_Watts ray_laptop: You're thinking of: clusterpush.pl gs --extra-args="-dBGPrint=true -dNumRenderingThreads=4" ?17:39.02 
  marcosw: ping17:43.14 
marcosw Robin_Watts: hey18:25.30 
Robin_Watts marcosw: Hi. I've been fiddling in the cluster again.18:26.00 
marcosw oh no18:26.07 
Robin_Watts I committed all the changes that were there before I started.18:26.11 
ray_laptop Robin_Watts: are you trying to add support for --extra-args ??18:26.21 
Robin_Watts so we can easily back out my breakages :)18:26.21 
  ray_laptop: I am.18:26.27 
  marcosw: The plan is that I should be able to do: clusterpush.pl gs extras=-dNumRenderingThreads=3 and it will add that extra arg to every job.18:27.11 
ray_laptop if so, I can back out FORCE_SAVED_PAGES_TEST :-)18:27.36 
marcosw Robin_Watts: seems reasonable18:28.25 
Robin_Watts Do we have docs anywhere for the switches you can use for the cluster?18:29.29 
  lowres/highres/filter=/ etc?18:29.46 
marcosw docs? What are these docs you speak of?18:29.50 
Robin_Watts OK, that's what I thought :)18:30.02 
marcosw or "These aren't the docs you aren't looking for."18:30.16 
Robin_Watts I would hate to impinge upon your job security :)18:30.28 
marcosw or "Docs? We don't need no stinking docs!"18:30.34 
ray_laptop or "we don't need no stinking docs:18:30.36 
marcosw great minds think alike :-)18:30.52 
ray_laptop typed a bit to slowly :-)18:30.59 
marcosw Robin_Watts: actually there are docs, but probably out of date, in ghostpdl/gs/toolbin/localcluster/clusterpush.txt18:31.42 
ray_laptop Robin_Watts: so, do you want me to try it ?18:34.33 
marcosw it looks like Robin_Watts is trying it already...18:34.51 
Robin_Watts ray_laptop: I am testing now.18:34.56 
  ray_laptop: I'll have the results in a mo. Just long enough for you to look at robin/master :)18:35.26 
ray_laptop what? testing a change before letting users have the full bleeding edge experience ? That's not the Artifex way ;-)18:35.34 
marcosw you probably should have used an extras= option that is going to produce a change in output. hopefully -dNumRenderingThreads=3 will be no different than leaving out the option.18:35.49 
Robin_Watts marcosw: That was the point. I'll look at the logs.18:36.06 
ray_laptop definitely not what they teach in colleges !18:36.22 
marcosw looking at the cluster/jobs files the option is on the command line. so that's good. What are you doing for pdfwrite/ps2write jobs? Feeding extras to the first or second operation (or both)?18:37.01 
Robin_Watts marcosw: yes.18:37.13 
marcosw looks like both.18:37.46 
Robin_Watts sh: 1: cannot open -dNumRenderingThreads=3: No such file18:38.00 
  oops.18:38.03 
marcosw you need it before the '- <' for ps/eps files.18:38.28 
ray_laptop we pipe from stdin because the ps3cet files need it that way18:39.14 
marcosw i.e. line 621 isntead of 624.18:39.32 
  and 883 instead of 88618:39.48 
Robin_Watts done.18:39.57 
marcosw looks better now.18:40.00 
Robin_Watts OK, ray. Do you use: "git cluster" or "clusterpush.pl" ?18:40.17 
marcosw we need a google docs for source code, so one person can edit while another observes (or edits at the same time, what fun that would be :-) )18:40.35 
ray_laptop Robin_Watts: I use gitpush.sh18:41.38 
Robin_Watts OK, so you should be good to go.18:41.50 
  gitpush.sh gs extras=-dNumRenderingThreads=3 extras=-dBgPrint=118:42.14 
  or whatever.18:42.16 
ray_laptop so that looks like it puts the args in "clustercmd" when it pushes it18:43.00 
Robin_Watts It does.18:43.07 
  gitpush.sh is a "cunning piece of engineering", or "a horrid hack" depending on how you look at it.18:43.48 
marcosw it's both!18:46.07 
Robin_Watts ray_laptop: Are you going to fire off a test?18:49.22 
ray_laptop Robin_Watts: in process (remote: syncing)18:49.41 
Robin_Watts I was about to commit some stuff, but I will hold off until after you set a test going if you want.18:49.43 
ray_laptop hmm... not starting yet ?18:50.49 
Robin_Watts ray_laptop: You did -extras="-dBGPrint=true -dNumRenderingThreads=2" ?18:52.37 
  I think spaces present it a problem.18:52.49 
  Try: extras="-dBGPrint=true" extras="-dNumRenderingThreads=2"18:53.14 
  sorrry, without the quotes.18:53.25 
  Try: extras=-dBGPrint=true extras=-dNumRenderingThreads=218:53.34 
  has your prompt come back to you?18:53.59 
  That seems to work for me.18:55.47 
ray_laptop Robin_Watts: sorry, cust 532 called.19:04.08 
  back now19:04.10 
  trying with separate extras= options...19:05.13 
pipitas Hi. I'm trying to build something called 'zathura'. It's a lean, commandline driven document/PDF viewer, which can use poppler or mupdf as PDF backend. 19:05.28 
mvrhel_laptop so one + for VS 2013 is that it is integrated with git19:05.51 
Robin_Watts pipitas: It's been mentioned on here before.19:05.56 
mvrhel_laptop not sure if 2012 had that feature19:06.00 
ray_laptop mvrhel_laptop: sounds dangerous ;-)19:06.14 
Robin_Watts mvrhel_laptop: There are git plugins for VS200x too.19:06.16 
mvrhel_laptop ray_laptop: yes. no way I am going to do any operations other than look at history and do diffs19:06.39 
Robin_Watts VS2005 and VS2008 both show a Git menu for me.19:06.48 
mvrhel_laptop ok. I never played around with them before19:07.03 
pipitas the zathura plugin for mupdf wants that -fPIC is used for building. I was able to build mupdf with that, but now zathura looks for something called libfitz.a from a mupdf build. However there is nothing like this in the mupdf build dir.19:07.11 
mvrhel_laptop this one seems to at least work right out of the box for looking over history and looking at diffs19:07.26 
Robin_Watts me either. I think these ones just call to gitk.19:07.45 
pipitas Robin_Watts: Do you have any ideas about libfitz.a and why it may be missing from the mupdf build? (I'm using the current Git version for mupdf sources)19:08.07 
Robin_Watts pipitas: On what platform?19:09.38 
  pipitas: We've probably reworked the makefiles since zathura was last updated.19:10.06 
  We now build a libmupdf.a19:10.35 
  I suspect that libmupdf.a may be broadly equivalent to what libfitz.a used to be.19:11.20 
pipitas Robin_Watts: Ubuntu 13.1019:14.14 
Robin_Watts linux, right.19:15.43 
pipitas-www Linux, yes.19:16.09 
  I just see the following note on the zathura website: "If you are using the git version of mupdf, make sure you checkout the mupdf-git branch in our plugin repository." Maybe this is the thing.... I'll try to locate it and use it. Sorry for the premature noise...19:17.08 
Robin_Watts ok. best of luck!19:17.30 
ray_laptop Robin_Watts: on the collection of icc_cache elements, I prefer calling things array rather than list (list to me means singly or doubly linked list). Other than that, it looks fine19:17.56 
  Robin_Watts: but I am not hung up about the naming. It's obvious from the code that it accessed as an array19:18.45 
Robin_Watts ray_laptop: cool.19:19.06 
  so, are you going to mail 801 about their build problems, or should I ?19:19.33 
ray_laptop Robin_Watts: so, the extra rc_increment following the gsicc_cache_new is so that it won't go away when the thread is torn down, right?19:20.08 
Robin_Watts exactly.19:20.25 
  both the array and the icc_cache_cl entry have their own references.19:20.40 
  ray_laptop: So, are you going to mail 801 about their build problems?19:38.57 
  If I'm going to do it, I need to do so soon, cos I'm gonna stop for the night in a bit.19:39.16 
pipitas Is there any commandline tool or parameter option (or a small PostScript program) for gs or for mutool that can attach a file to a PDF using /EmbeddedFile ?19:40.31 
  Also, is there a commandline parameter that tells Ghostscript to NOT remove an embedded file when doing PDF->PDF conversion?19:41.19 
Robin_Watts pipitas: No, and no.19:42.19 
  PDF->PDF using gs completely breaks the file down and then builds a whole new file up.19:42.46 
  There is no concept of "not removing an embedded file" because the output file bears no resemblance to the input file (except for hopefully rendering the same)19:43.20 
Robin_Watts will leave mailing 801 to ray then.19:45.30 
pipitas Robin_Watts: I know that, basically. Let me re-phrase it: instead of "not removing an embedded file", could it be made so that when "gs completely breaks the input PDF down" it preserves the embedded file and "puts it back in when building the whole new file"?19:56.06 
ray_laptop Robin_Watts: OK. I am trying the build on linux...19:56.28 
Robin_Watts pipitas: still no way to do that19:56.53 
  ray_laptop: So shall I commit my cache changes?19:57.04 
ray_laptop Robin_Watts: please got ahead.19:57.15 
  s/got/go/19:57.21 
Robin_Watts done.19:57.35 
  thanks.19:57.50 
pipitas Robin_Watts: It would be cool if it could be added as a new feature sometime in the future. JDF job tickets are also passed along as embedded files, for example.19:59.19 
Robin_Watts pipitas: It is something that could probably be added to mupdf fairly simply.20:10.36 
pipitas Robin_Watts: Who decides about priorities for feature requests to be implemented in mupdf? Can he/she be bribed? :-) 20:12.20 
henrys oh joy my bug today is a 7 1/2 foot plot let the thrashing commence22:27.56 
  marcosw_:how did you view this. Imagemagick blows up.22:29.15 
  ?22:29.18 
marcosw_ I didn't viewed it yet. still waiting for my plotter to finish :-) Have you tried photoshop?22:30.18 
henrys I'll just fix the code I don't really need to look at it ;-) 22:31.34 
  marcosw_: the ppm was 2.1 G22:36.21 
  marcosw_: probably not a good file for the cluster test 22:37.58 
  marcosw_: the gimp works23:11.54 
marcosw_ how long did it take to open?23:12.20 
henrys 5 minutes or so23:12.33 
  on a dated mac pro23:12.46 
marcosw_ hey, your mac pro is a generation newer than mine :-) 23:13.34 
henrys you have the retina no?23:13.53 
  I'm 201123:13.58 
marcosw_ my MacBook Pro is a retina, from last year, but my Mac Pro is the 2007 model.23:14.21 
henrys oh sorry I'm on my macbook pro woops23:14.38 
marcosw_ they are about the same speed in terms of compiling ghostscript (both have 8 cores, 16 gigs of memory, etc). My Mac Pro is 2.2 GHz and my MacBook Pro is 2.6 Ghz. The MacBook Pro is faster with single tasks since it's cpu has turbo mode, otoh the MacPro has a very high end graphics card so photoshop is much faster.23:16.05 
henrys you don't get any bang out of the xeons?23:16.52 
marcosw_ Intel's web site says: "Intel® Turbo Boost Technology :No"23:18.31 
  and no hyper threading23:18.45 
henrys Anyway I'm done with the bug and will have a fix so you need not fool with it unless you want to.23:19.06 
marcosw_ henrys: this is for the oil plot? there is another file as well.23:20.09 
henrys oh christ23:20.19 
  I wonder how big that one will be.23:21.06 
marcosw_ it's not as big but not small. it's called 101.plt. I haven't opened a bug yet since I wanted to plot it first.23:23.10 
henrys marcosw_: take your time ;-)23:24.13 
marcosw_ my plotter is probably still wasting paper & ink plotting the oil files; I started it and left the house to run some errands. 23:24.43 
 Forward 1 day (to 2013/11/13)>>> 
ghostscript.com
Search: