IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/03/21)2013/03/22 
ray_laptop marcosw: sorry. Yes, this was a bmpcmp run and subsequent localcluster runs (user runs) were fine.00:11.40 
  open house at the middle school tonight. I might be back on later...00:12.16 
marcosw ray_laptop: that's what it looked like. a bmpcmp run didn't initialize some memory values.00:12.24 
Robin_Watts ray_work: I strongly suspect that the bitmap only gets displayed at the end of rendering.00:46.11 
  TTOTD: When outputting debugging to file, it helps if it all goes to the same file.00:59.44 
  tor8 or paulgardiner: (For the logs) http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=bf08301ded2f44e33bebf5572587a9c7102dcc9801:03.03 
mvrhel_laptop whew. finally getting somewhere with the async calls in the windows app and keeping all the rendering thread safe. no mutex locks etc and I wanted to be able to render the document thumbnails but not block any full res resolution renderings while that is going on and of course no blocking of the UI04:23.25 
ray_work closed 3 bugs that I think I have fixed recently (made a lot of changes that are in similar areas) and they no longer fail. (plus the original 3 bugs and 3 I found along the way, of course)04:45.57 
  bug scrub can be rewarding sometimes, but I hate when none of the bugs I think might be fixed are not04:47.01 
  mvrhel_laptop: great! I look forward to seeing the windows viewer in all of its glory :-)04:48.50 
  enough work for today. Tomorrow going to play with digital signing for Windows drivers :-(04:51.01 
  doesn't look to hard -- just a lot of hoops to jump through.04:51.21 
  mvrhel_laptop: do you have to deal with digital signing your viewer in order to get it to install nicely on Win8 (or is only drivers that they pick on) ?04:52.02 
vtorri ray_work, i'm writing a multi doc rendering lib, cross platform, and i plan to make it fully async too04:58.39 
ray_work vtorri: yes, I've seen you chatting w/ Robin_Watts and sometimes tor05:08.56 
  vtorri: is your implementation on Windoze or what ?05:09.21 
vtorri cross platform05:09.32 
  at least it will work for linux, widows and mac os x05:09.51 
ray_work vtorri: I know you said "cross platform", but which platforms05:09.53 
  vtorri: are you using Qt or some other cross platform tools ?05:10.16 
vtorri other one05:10.24 
  EFL05:10.26 
  you konw them ?05:11.03 
ray_work vtorri: thanks. I'll check that out (and probably run screaming). Cross platform tools are nice, but have a large learning curve05:11.06 
vtorri indeed05:11.15 
ray_work at least when dealing with UI issues05:11.20 
vtorri check what can be done with the EFL:05:12.33 
  http://www.rasterman.com/files/wp2.avi05:12.35 
  this is the wallpaper selector of E1705:15.39 
  i plan to do the same for an 'exposé' like effect05:16.03 
  for my app05:16.08 
ray_work vtorri: reminiscent of an XPS viewer I saw Microsoft demoing about 3 years ago (before Win 7 was released)05:18.26 
  vtorri: so the 'expose' will go from a thumbnail of pages to the page at full size ?05:19.20 
vtorri yes05:19.28 
ray_work cute05:19.36 
  and if I want to then only see that page, I click on it or something ? And can return to the thumbnails somehow ?05:20.21 
vtorri yes05:20.32 
  in the expose mode, you click on a thumbnail. The page is shown.05:21.38 
ray_work vtorri: well, good luck !05:21.41 
  time for bed...05:21.54 
vtorri you click elsewhere than on an icon, you return in the expose mode05:22.05 
  click on the icon, and then, the page is really selected05:22.19 
  thanks and good night05:22.29 
ray_work vtorri: can I see the pages without the icon tiles collected around the edge ?05:22.43 
vtorri yes05:23.14 
  it will be different from that wallpaper selector05:23.33 
  you have to read a document05:23.42 
ray_work OK. Thanks for the info.05:23.43 
vtorri so that doc must not have hidden parts05:23.55 
mvrhel_laptop ray_work: so yes, it has to be submitted and approved05:41.19 
  but it windows8 does "install" it as is on my local machine. not sure about how it is shared and installed on others05:42.17 
  I will have to look at that later. the way the async stuff works is taking me a little time to get used to . i would prefer if I had more control over threads in the standard way05:43.14 
  done for the night06:24.48 
  good night all06:24.50 
chrisl kens: do we actually care about the pdfwrite/ps2write build "bug"??07:58.14 
kens chrisl, imo no. I will look at it, but I suspect it is 'unfixable'. My solution is to remove one of teh '.,ak' files07:58.42 
  .mak files*07:58.48 
  I think the problem is that *noth* devices are defined in the same C source file07:59.05 
  So you can't remove one of tehm just by removing C input files from the build07:59.26 
chrisl I think I can fix it, we're using a sort of "short cut" to handle the dependency07:59.35 
  Although, I'm not totally sure.......08:00.06 
  But the current behaviour is intentional08:00.27 
kens Hmm, why ?08:00.39 
chrisl From devs.mak: "Since ps2write actually is a clone of pdfwrite, we just depend on it."08:01.08 
kens Right, which is pretty much what I sadi in the bug report, these aren't so much devices in comman as the *same* device08:01.35 
  Since the 2 devices are both defined in gdevpdf.c, I'm not at all sure how you could remove one of them.08:02.12 
chrisl Sure, as I say, it was clearly done this way on purpose - so it's not accidental08:02.33 
kens Yes, I see. I'm not bothereed myself, I was goinjg to propose removing one of the .mak files as a solution (having both does seem odd), but its up to you08:03.13 
  The only alternative is to move the definition of ps2write into its own file and to be honest I can'tr see any point.08:03.41 
  Its not like it would actually save anything08:03.54 
chrisl No, exactly - I'd close it "won't fix"08:04.19 
kens OK in that case I'll do so, just looking at the other one Macros raised, which is at least a bug :-)08:04.42 
chrisl Yeh, I'm looking at the tiff build one.08:05.29 
kens I passed on that one. The one to support this morning looks like a nightmare08:05.59 
chrisl I've never seen anything like that error message08:06.46 
kens No me neither08:07.13 
  Oh, I wonder if they are somehow spawning GS as a thread of execution, in which case it could be their app causing the problem.08:07.54 
  Or the fact that GS doesn't clean up very well08:08.16 
chrisl I think that is what they're doing - it could be that stack problem that Ray just fixed08:08.25 
kens Of course their test app is written in something weird and M$ ish08:08.42 
chrisl C#?08:10.14 
kens It calls something that looks like it ought to start a 'process' but I wonder if it really spawns a thread. Not sure what langage this is, could well be C# yes08:10.23 
chrisl Well, based on the .cs 08:10.47 
kens I'm looking at the code, which is 'sort of' like C++08:11.04 
  Yes its C#08:12.02 
  Bit hard for us to help with that08:12.45 
  Despite hte use of teh word 'process' I would guess its spawning a thread08:13.12 
chrisl That could explain the weird error message - it might be from the C# runtime08:13.19 
kens I think it is basically yes08:13.29 
  I suspect that the GS executable is spawned as a thread and is therefore using the C# app address space.08:13.50 
  Presumably our porr cleanup leaves stuff lying around and eventually it can't spawn a new process because it hasn't got enough memory. Or something like that.08:14.24 
  I suppose using process explorer woudl show whether gswin32c is a prcoess or a thread08:15.01 
chrisl I'm struggling to find reference for this stuff to find what "new Process..." actually does08:16.15 
kens Fundamentally this is a pretty lousy way to run Ghostscript, or any other command line process, if teh above is true. It relies on the process cleaning up perfectly. Arguably the thread handler ought to clean up the memory used by the thread when it terminates of course, but this is Microsoft we're talking about08:16.37 
  chrisl new is a C++ operator08:16.47 
chrisl Also C#08:16.59 
kens if you have vs installed look for System.Diagnositics.Process08:17.11 
  In the 'SeaRCH' UNDER HELP08:17.22 
chrisl kens: no, the thread handler doesn't clean up memory - it doesn't work like a process completing08:17.40 
kens chrisl then if it is a thread, its not going to work well08:17.55 
  THis is suspicious:08:18.21 
  "A Process component provides access to a process that is running on a computer. A process, in the simplest terms, is a running application. A thread is the basic unit to which the operating system allocates processor time. A thread can execute any part of the code of the process, including parts currently being executed by another thread."08:18.21 
chrisl But then, Ghostscript shouldn't leak any resources - we certainly don't leak memory on Unix-like systems08:18.49 
kens Looks to me like it does run the process as a thread (nicely corrupted terminology MS)08:18.54 
  chrisl GS has memory allocated when the process08:19.11 
  exits08:19.16 
  It does not clean up 100%08:19.32 
chrisl Hmm, well, it does on Unix.....08:19.45 
kens It certainly does not on Windows, according to Memento08:19.59 
  And when I brought it up (pdfwrite memory cleanup) I was told that this was known and nobody cared because its all one-time allocations that get freed when the process exits08:20.30 
chrisl One of the last things the code does is shut down the memory manager(s) and that releases all the memory - valgrind reports no leaked blocks on Linux08:21.13 
kens Well I guess maybe Memento can't catch that08:21.38 
  If someone runs their application it should be easy enough to see if the memory usage is increasing.08:21.56 
chrisl Do you know what the leaked memory is for? IIRC, the Jaws "GUI" app left memory allocated on exit for the Windows gui crap08:22.32 
kens Its also possible that the memory simply becomes fragmented, and not enough contiguous memory is available to lauch the large) Ghostscript executable08:22.37 
  Not GUI stuff, this was stuff reported by Memento08:22.59 
chrisl It still could be text buffers and stuff like that08:23.21 
kens I don't know, it wasn't what I was cahsing so I ignored it. Made my life a bit harder because I had to sift my allocations out at the end08:23.58 
chrisl Mind you, 576 dpi - add in a bit of transparency, and that could use a *lot* of memory.......08:25.41 
kens Yeah its fairly high resolution, but the file appears to be text only (I didn't chec all 400 pages)08:26.12 
chrisl Oh, well it shouldn't be a problem......08:26.51 
  Hmm, well, if my cursory reading is right, that code should be creating a process, not a thread08:28.48 
kens chrisl it says process, but the doc (see above) says 'a thread is the basic unit to which the operating system allocates processor time'08:29.40 
  I don't trust MS to make a proper ditinction between threads and processes.08:29.59 
chrisl Yes, but there are specific c# calls to spawn a thread08:30.14 
kens THe only way to tel is probably going to be to run their test app :-(08:30.15 
  Well if we aren't spawning a thread (I don't think their command line does that), its hard to see how we can be responsible for a thread error.08:30.50 
chrisl Except that all processes are threads (but not all threads are processes)08:31.32 
kens Well I'm going to get on with real work and leave it just now08:31.55 
chrisl I wonder if they're exhausting resources before the c# garbage collector runs - I wonder if explicitly destroying the object would help......08:32.50 
kens I don't know, its worth trying08:33.03 
  If you can reproduce the problem...08:33.12 
  of course if it truly does generate a random set of pages, then its definitely going to be awkward to reproduce08:34.05 
  indeterminate test harnesses don't really help08:34.21 
chrisl No, I'm not going to volunteer for this one.....08:36.49 
chrisl (quoting Robin_Watts) touches nose!08:37.10 
kens has finger on nose also08:37.26 
chrisl Okay, back to makefile fun.......08:38.16 
kens Not done my morning Stack Overflow review yet....08:38.37 
Robin_Watts Morning tor8. More reviews on robin/master for you.10:30.41 
tor8 Robin_Watts: store debugging fns LGTM11:04.09 
Robin_Watts tor8: D'oh. 2 more there now that I'd forgotten to push.11:06.17 
  For the reflow stuff, would it be easier if I made a branch with the commits all squashed?11:06.47 
tor8 Robin_Watts: or a few squashed by category11:21.29 
Robin_Watts tor8, paulgardiner: I'm going to spend a couple of hours trying to reduce the noise in the reflow branch to make it easier for you guys.11:31.31 
  so, unless you've started already, don't start looking! :)11:31.50 
paulgardiner Ok. Let us know when it's ready11:32.23 
Robin_Watts paulgardiner: There is a pdf_device commit waiting on robin/master that you might want to look at.12:14.21 
paulgardiner Looking... and at the fixing of warnings12:22.16 
  Robin_Watts: Unlikely to matter I guess, but should diff be set to 1 also when the colorspace changes?12:38.54 
Robin_Watts paulgardiner: It should. Do i not do that?12:39.06 
  Isn't that what the first hunk of the diff does?12:39.42 
paulgardiner :-) Sorry, I'm looking I was looking at my local copy for the sake of checking the warning fixes, and I carried on looking at it12:39.44 
Robin_Watts ah! :)12:39.54 
paulgardiner Those two commits look fine.12:40.15 
Robin_Watts I obviously only got 1/2 way through that code :)12:40.25 
paulgardiner Yeah. That's partly what confused me: the old copy seemed to have the intention of handling the case12:41.16 
tor8 Robin_Watts: warnings look fine12:42.24 
Robin_Watts tor8, paulgardiner: Thanks.12:42.37 
henrys wow adobe is doing really well revenues wise with the $50 a month creative cloud. I'm surprised these apps with very heavy UI's don't have latency problems over the web. I can't imagine something like freehand drawing with a stylus would keep up with an artist.14:23.47 
Robin_Watts tor8, paulgardiner: OK. Reflow branch rejigged.14:30.10 
  I think that's better. I'm going diff blind though.14:30.23 
  There are some xps files that seem to show up as changed quite a lot in mupdf regresion runs.14:31.45 
  Seem to involve xeon and macpro a lot.14:32.10 
  1 trivial fix on robin/master14:38.15 
  tor8, paulgardiner: ^14:38.24 
paulgardiner trivial fix fine14:42.02 
Robin_Watts Thanks.14:42.17 
paulgardiner I'm doing less well at checking the reflow stuff. There is a lot of it14:42.37 
  Android changes look fine14:42.56 
Robin_Watts paulgardiner: Yeah, there is a fair amount of reflow stuff, and I'm prepared to believe that you/tor might see bits you want changed before we take it on.14:44.10 
  (although I hope we might be able to take it on and then refine it, but...)14:44.33 
paulgardiner Any particular parts that you thought might be objectional?14:45.14 
Robin_Watts Not really.14:45.27 
  There is a bubblesort hidden in there somewhere.14:45.51 
henrys chrisl:was the problem to that all generated files should go to one directory fixed? Before we were seeing tiff stuff created in the tiff tree, I meant to put that on the agenda.14:49.53 
  marcosw:since the policy is customers only at support@artifex.com I don't think bugzilla should have any default assignments going to support, are you okay with that. I can fix it or you can, wanted to run it by you first at least.14:51.57 
Robin_Watts So I can reproduce the macpro vs other xps diffs.14:53.35 
  I wonder if this is to do with atof or sscanf being different on the macpro ?14:53.56 
paulgardiner Robin_Watts: I'm not seeing anything I don't like14:54.55 
Robin_Watts paulgardiner: That's good to know. I spent so long staring at that code I think I've lost all perspective on it :)14:56.23 
chrisl_r61 Hmm, the command lines have disappeared from the cluster log files :-(15:08.04 
kens Still int the ones I see15:08.46 
henrys chrisl_r61 I wrote to chrisl above don't know if you saw it.15:09.47 
chrisl_r61 henrys: sorry, I didn't - no not fixed yet, other crap keeps hitting my queue before it.....15:10.34 
henrys chrisl_r61:I can create a bug if you want, let me know15:11.08 
chrisl_r61 henrys: no necessary - it is written on the whiteboard in my office, so I won't forget!15:11.38 
  s/no/not15:11.44 
  kens: the local push I just did, the log files are "formatted" timing, md5 etc15:12.14 
kens Hmm15:12.22 
chrisl_r61 Oh, hang on a sec.....15:12.41 
kens Not what I'm seeing for my last set15:12.46 
  AH you are looking at result email15:12.57 
  you need individual machine logs15:13.03 
chrisl_r61 Oh, that is odd - I have two browser tabs open, both the same address, one shows the "formatted" log, and one the old style "dump" I was expecting.....15:13.54 
  Well, confusing, but I have the command line I needed.15:15.31 
kens :)15:15.37 
Robin_Watts tor8: To run mudraw on an exploded xps file, what bit do I point it at again?15:47.52 
tor8 _rels/.rels15:48.20 
Robin_Watts error: cannot find end of central directory15:49.05 
ray_work kens: I am looking at your comment on 693722. We have many instances of modules that include MANY devices, but not all of the devices get built in. For example, pamcmyk is in gdevpbm.c but is not part of the standard Windows build15:50.01 
  kens: so why does the device list get populated with the pdfwrite device ? (I know all the files will still be linked in, but that is different)15:50.58 
tor8 Robin_Watts: odd...15:51.13 
Robin_Watts ./_rels/.rels works.15:51.25 
tor8 that means it doesn't detect it being a xps-in-a-directory15:51.29 
Robin_Watts It needs "/_rels/.rels" in the path "_rels/.rels" isn't enough15:51.47 
kens 1ray as far as I understand it,the macros defining the devices caus ehtem to be defined. SO if you include a source file with a macro definition of a device then that device is included. Is this not correct /15:52.03 
tor8 Robin_Watts: what you said :) I just checked too.15:52.32 
ray_work kens: I am looking at what might be wrong in the makefiles...15:53.02 
Robin_Watts kens: AIUI, including a source file is NOT enough to get all the devices that that source file defines included.15:53.15 
chrisl ray_work: there is *nothing* wrong in the makefiles, it was intentionally written that way15:53.28 
ray_work kens: OK. the problem is that the ps2write.dev does ADDMOD $(DD)ps2write -include $(DD)pdfwrite.dev15:54.03 
chrisl ray_work: there is even a comment in the makefile making it clear it was intentional15:54.03 
kens ray_work : see chrisl comment above and the note in the bug thread15:54.21 
chrisl ray_work: that's not a problem!!!15:54.25 
ray_work kens: (and chrisl): just because it was "intentional" (not sure it wasn't just for convenience) doesn15:56.50 
  doesn't mean that it is very difficult to fix.15:57.09 
kens No, but I don't see it as a major problem eitgher15:57.23 
chrisl Of course it was just for convenience - but what benefit do we derive from changing it?15:57.26 
ray_work kens: I was commenting on your statements that there is no way to do this. It's actually quite simple -- the problem is the -include pdfwrite.dev invokes uses the SETDEV2 macro16:01.49 
  so it's only a couple of lines to change it 16:02.25 
kens ray_work : I detest the way we define devices, and I'm no expert on teh build. I did say if it bothred Marecos enough he could raise it as a build issue16:02.28 
ray_work marcosw: is it worth fixing ? If so I'll develop the patch and pass it to chrisl for review16:03.09 
  kens: I assume marcosw had a reason to open the bug in the first place.16:03.34 
kens I have no idea, apart from the fatc that it's 'differnt' to other devies16:03.51 
  Because he didn't say why this was a problem16:04.01 
ray_work kens: just for the record, the SETMOD just defines a helper .dev module (usually a library or collection of modules). The SETDEV2 is what also puts the device into the device list16:04.59 
  kens: so if what is there now for the pdfwrite.dev : target instead were to be changed to a pdflib.dev target then this BOTH the ps2write.dev and the pdfwrite.dev just become two line definitions that -include pdflib.dev16:09.25 
  (well, maybe three line definitions)16:10.08 
chrisl ray_work: why do you care?16:10.16 
ray_work chrsl: why do I want to make sure kens knows why it happens, and that there is an easy way to fix it ?16:11.04 
kens is not interested16:11.21 
ray_work kens: perfectly fine with me.16:11.42 
  Mostly I don't like incorrect information being spread in the bug tracker, because people might get confused16:12.15 
Robin_Watts Having one (set of) devices that works differently to others is bad. We should strive for consistency.16:14.26 
  A consistently mad build system is better than an inconsistently mad one :)16:14.55 
ray_work Robin_Watts: so you are thinking that's why marcosw opened the bug ?16:14.59 
  I'll wait until marcosw weighs in...16:15.24 
Robin_Watts It sounds like it confused marcosw. And if it confuses marcosw it's entirely possible it'll confuse other people.16:15.56 
  It's worth noting that I've never found anyone that was entirely happy with the build system they were used. I think it's a fact of nature that everyone will consider their build system to be suboptimal.16:16.51 
ray_work Robin_Watts: well, ghostscript's build system is a bit more arcane than many -- what with all the 'helper' generated programs16:17.41 
Robin_Watts ray_work: Everyones build system has quirks such as that. Everyone believes that their system is worse than everyone elses.16:18.31 
henrys a clue that there shouldn't be build systems16:19.09 
Robin_Watts should introduce henrys to Julian Smith one day :)16:19.42 
ray_work henrys: right. we should go back to the good old days of just compiling each file by itself, then putting all the object files on a link command line ;-)16:20.18 
  at least we don't use Jam (anymore)16:20.50 
henrys who is juilan smith16:22.37 
  ?16:22.39 
Robin_Watts friend of mine. one of the guys behind undodb.16:23.03 
  Has written at least 2 build systems that I know of.16:23.35 
  Is extremely good at pointing at things in computing and saying "but we've been doing that wrong for years".16:24.23 
marcosw Robin_Watts, kens, chrisl, and ray_work: I opened bug 693722 because I wasted a bunch of time trying to build a gs without the pdfwrite device and couldn't. I needed gs without pdfwrite for bug 693721. I also tried building with just the TIFF devices, but that didn't work either (which explains bug 693720). 16:41.40 
  pdfwrite.dev and ps2write.dev being inseparable is a bug according to the documentation (see doc/Make.htm#Features_and_devices, which says you may omit devices by removing them from the DEVICE_DEVS definition in the Makefile, removing pdfwrite.dev from the Makefile does not remove it from the build). I suppose kens will argue that it's a documentation error :-)16:50.23 
kens That or a build prcoess bug, its *NOT* mine.16:50.48 
henrys no kens argued - assign it to chrisl as I recall.16:51.02 
  ray_work, marcosw ^^^16:52.55 
ray_work marcosw: I just posted a patch (tested on my Windows build) that works. see bug 69372216:54.18 
  I don't see any harm in making the change, but I'll leave it up to the rest of you to duke out16:55.24 
henrys ray_work:I don't like calling something a lib that isn't but I'll stay out of it too.16:56.23 
ray_work I don't care what it's called. That is also a trivial change: pdfstuff.dev is fine with me :-)16:57.03 
Robin_Watts pdfwritecore.dev ?16:58.08 
ray_work pdfwrshared or pdfwrcommon also (or what Robin_Watts said).16:58.22 
henrys Robin_Watts: any of those is fine by me.16:58.34 
ray_work the point of posting the patch was to show _how_ to do it16:58.35 
Robin_Watts common is nice.16:58.39 
ray_work Robin_Watts: we used to have to keep .dev names to 8 char, but I think we abandoned that since all systems have long filenames (at least the build systems)16:59.42 
  pdfwrcore ?16:59.54 
Robin_Watts IF we're abandoning 8 chars, then let's abandon 9 too. pdfwritecommon seems nicest to me.17:00.32 
  but I'm only involved in this cos I'm nosey, so feel free to ignore me :)17:00.49 
henrys in the interest of ruffling feathers: code review works again … ;-)17:01.49 
ray_work henrys: in this case, the feathers were ruffled by my review of the bug commentary.17:02.30 
ray_laptop chrisl: A makefile question for you (new topic -- I'm done with the previous one). gs.mak lines 376 and 377 set FEATURE_DEVS_EXTRA= and DEVICE_DEVS_EXTRA= (no contents). With stoopid nmake, this redefines the macros, making the intended use non-functional17:08.23 
  chrisl: do we really need these? undefined macros are harmless in all makes that I know of.17:09.06 
  they just default to an empty string 17:09.24 
chrisl ray_laptop: okay, I wasn't aware of what the intended purpose was.... was can probably remove the assignments17:09.24 
  ray_laptop: We could protect them with a conditional17:10.18 
ray_laptop chrisl: this works OK on linux make (and most other make implementations) because they don't assign something that already has a value17:10.26 
chrisl ray_laptop: as I say, we can make them conditional on not being defined already17:11.04 
ray_laptop chrisl: we don't allow conditional statements in the shared .mak files (like lib.mak and gs.mak) since those also are not the same on different makes17:11.14 
chrisl ray_laptop: oh, sorry I thought you were in a windows specific file17:11.44 
ray_laptop only the top makefiles that are specific to a particular build system can have conditionals17:11.54 
chrisl Well, as I said, removing is probably fine17:12.31 
ray_laptop chrisl: I found a couple of other problems with these optional macros in msvc.mak as well so if you don't object, I'll fix them in the same patch17:13.07 
chrisl ray_laptop: sure, no problem17:13.26 
ray_laptop the other problem is that the 'nmake' invocations for the other targets don't populate the invocation with FEATURE_DEVS_EXTRA=$(FEATURE_DEVS_EXTRA) (same for DEVICE_DEVS_EXTRA)17:14.21 
  that's the problem with nested nmake invocations :-(17:14.50 
  as the common/msvc_top.mak shows. 17:15.47 
  it would be so much nicer if the macros were inherited17:16.16 
  chrisl: unix make does inherit macro values, doesn't it ?17:16.51 
chrisl ray_laptop: I think it does, it uses environment variables - but I would prefer to fix it properly than rely on that17:17.45 
ray_laptop chrisl: mess up the unix make to add all of the junk that msvc_top.mak has ? Noooooo...17:18.30 
chrisl ray_laptop: okay, we'll not worry about it then17:19.13 
ray_laptop this is already a nightmare because the pcl make has to be manually maintained every time we add a macro (and we -- the gs-centric folks -- usually forget)17:19.50 
chrisl ray_laptop: that's why I want to have pcl/xps built "properly" by the gs build system - as discussed at the staff meeting17:20.32 
ray_laptop chrisl: I meant that if you really want to do that to the unix makefiles, fine. As long as you keep them up to date17:20.43 
chrisl ray_laptop: no, let's not worry about it17:22.51 
ray_laptop chrisl: currently msvc_top.mak has 62 macros that it passes down into the nmake !!!17:23.46 
  and I have no idea if that is a complete list :-(17:24.20 
  chrisl: I hope you can get things straightened out. I don't envy you. Maybe you can put pharmaceuticals on your expense report ;-)17:25.30 
chrisl :-)17:25.46 
ray_laptop or at least hair replacement treatments 17:26.05 
Robin_Watts So, we're getting different FP results on macpro and on windows.18:36.18 
  a + (b-a)*d18:36.30 
  where *(int*)&a = 0x3f800000 *(int *)&b = 3e40c0c1 *(int *)&d = 0x3e40c0c018:37.42 
  Sorry. *(int *)&d = 0x3f80000018:38.37 
  macpro gives result r, where *(int *)&r = 0x3e40c0c018:39.15 
  wheras windows gives 0x3e40c0c118:39.30 
  3f800000 = 1.0, so it seems that windows is right :)18:41.44 
  If simple FP can vary between machines, how is the cluster ever working!?18:42.06 
  tor8, paulgardiner: 2 small patches on robin/master19:06.31 
paulgardiner Robin_Watts: Look fine, although I'm astounded that those two versions could give different results.19:11.23 
Robin_Watts paulgardiner: It's a difference in the bottom bit.19:11.42 
paulgardiner If it had been a + b +c I'd guess it was down to non-associativity, but you'd think there was only one way to calculat a + (b - a) *x ... unless it was being really clever and making it b * x + a * (1-x)19:15.45 
Robin_Watts why would that be clever? That's 2 muls instead of 1.19:16.18 
  1 more patch, also tiny.19:20.36 
paulgardiner Yeah, that makes no sense, so the only freedom it has is commutability. Surely that would count as a processor bug if plus or times didn't commute19:25.18 
Robin_Watts paulgardiner: You would hope that a + (b-a)*1 = b19:25.43 
  but my fix makes all the machines make a+(b-a)*1 be not quite b.19:26.05 
paulgardiner I'm less surprised at that than at there being two possibly values.19:27.56 
  Was x == 1 the only failing case?19:28.21 
Robin_Watts x == 1 was the case I spotted.19:28.47 
  I fear this same problem may occur elsewhere in the code (like in the antialiasing code). So it may not be possible to get it consistent :(19:29.26 
  even with this fix in, I'm seeing some files giving different results.19:29.51 
paulgardiner Optimiser might be spotting the x == 1 case, but that's a really bad thing to do with floating point.19:31.39 
Robin_Watts paulgardiner: It's a variable. Don't see how it could.19:32.29 
paulgardiner store-bookkeeping commit looks good19:33.03 
  yeah it can't be. The only other thing I can think of is the plus and times instructions themselves don't commute.19:33.57 
Robin_Watts paulgardiner: If it was an ARM thing I'd look at the assembly :)19:36.35 
  Yeah, still getting funny blending on the edges of things. On both text and line art :(19:37.23 
paulgardiner Would be insteresting to know what b -= a; x *= b; x += a; return x; does and b -= a; b *= x; a += b; return a;19:37.43 
Robin_Watts So the cluster may have problems with FP usage.19:38.07 
 Forward 1 day (to 2013/03/23)>>> 
ghostscript.com
Search: