IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/04/25)2013/04/26 
cryptopsy what's a nice tool to convert pdf to html, including images that may be interspersed in the document?05:48.47 
kens Grr, gmail is messing up *again*, now I'm getting a certificate error from it07:19.23 
chrisl I think it should be just a update certificate07:24.39 
kens Well I woudl expect that, but it worked first thing, 10 minuntes later it doesn't....07:25.16 
  I'm not in a hurry to change anything in Eudora and break it again, since last time it turned out to be Google.07:25.43 
chrisl kens: I'm planning to change how gdev_prn_open_printer_seekable() works, which might have an impact on your gdevpsu.c changes07:26.11 
kens I saw in the logs, I doubt it will change what I've done07:26.29 
chrisl Well, the difference is that it will now return an error if it can't open a seekable file07:26.51 
kens I saw. pdfwrite/ps2write will probably need to ifnore the error.07:27.14 
  ignore*07:27.19 
  But then we need to know later if we are dealing with a seekable file.07:27.32 
chrisl That's what I wanted to ask: is it better to keep the file object open, and return the error, and let the device decide whether to ignore the error, or close the file, and let the device device whether to retry with a non-seekable file?07:28.31 
kens chrisl I think its better to keep it open and return an error. A device might be able to cope with either, but prefer seekable07:29.02 
chrisl kens: okay, so the only thing there is that the device should ensure that the FILE * is null before the call to gdev_prn_open_printer_seekable() so it can know whether the file object was actually opened07:32.23 
kens I guess that makes sense07:32.38 
  I suspect this really onl;y affects pdfwrite at the moment07:32.57 
chrisl Yeh, all the other cases *need* a seekable file, or they won't work07:33.24 
  kens: my mail client just asked me if it could update the SSL certificate for gmail, so it looks like they might really have changed it07:39.21 
kens OK in that case I'll go through the pain.....07:39.34 
chrisl Doesn't it update automatically if you allow it?07:40.13 
kens Hmm, don't think so, I'm just modifyiong the certificate manager now07:40.33 
  Yes that fixed it07:41.14 
chrisl Claws and TBird just ask if it's safe to import the new key, and if you allow it, the rest is automatic07:42.10 
kens Eudora is pretty old07:42.23 
chrisl It is several years since I used it......07:43.10 
Robin_Watts cryptopsy: MuPDF is almost there.09:06.43 
  Morning tor8.09:06.47 
cryptopsy Robin_Watts: what?09:06.59 
tor8 for pdf to html09:07.09 
  morning robin09:07.11 
cryptopsy tor8: you mean there's an experimental branch i can try right now?09:07.26 
  is djvu worse than pdf ?09:07.34 
tor8 mudraw with the right number of t's in the -t flag will give you html09:07.46 
  robin's been working on improving that output09:07.57 
Robin_Watts http://git.ghostscript.com/?p=user/robin/mupdf.git;a=summary09:08.03 
  That includes image output too (very naive, but...)09:08.18 
cryptopsy Robin_Watts: you want me to try some files?09:08.21 
Robin_Watts and with luck (depending on tor8's reviewing times) it might hit the main repo soon.09:08.34 
tor8 djvu is a multi-page *image* format (with ocr:d text info)09:08.41 
cryptopsy Robin_Watts: what's the git clone url so i can run some tests for you?09:09.32 
Robin_Watts cryptopsy: Do you have a standard git clone of mupdf?09:10.30 
cryptopsy yes09:10.47 
  do i need to clone twice if i want the changes to remain separate from the rest of the source?09:11.29 
Robin_Watts If so, just add a new remote with /home/git/user/robin/mupdf.git on the end09:11.30 
  Then you can pull from my master into a branch on yours.09:11.42 
cryptopsy i don't know how to use this git feature09:11.56 
  git://git.ghostscript.com/user/robin/mupdf.git09:12.22 
tor8 git remote add robin git://....what you pasted above...09:12.39 
cryptopsy fatal: Not a git repository (or any of the parent directories): .git09:13.37 
  i suppose i have to run it from ./mupdf/ ?09:14.08 
Robin_Watts yes.09:14.42 
cryptopsy now what?09:14.48 
Robin_Watts git pull robin master:robinmaster09:15.11 
  That will pull in my master branch as a new "robinmaster" branch on your repo.09:15.27 
cryptopsy how does git keep track of this; does it copy the main mupdf files twice and then add your files to the copy?09:15.48 
Robin_Watts cryptopsy: Git keeps copies of the different versions of the files, yes.09:16.47 
  and any given working state contains just one copy of each file.09:16.59 
cryptopsy how do i start converting pdf to html once it's compiled?09:18.21 
  mudraw?09:18.53 
Robin_Watts mudraw -tt09:27.03 
cryptopsy would you like to see the output?09:29.15 
  http://ompldr.org/vaTg2bw/llvm.pdf09:31.05 
  http://ompldr.org/vaTg2cA/test.html09:31.07 
  some field did not get interpreted (void ...)09:31.39 
  how to get images?09:31.46 
Robin_Watts cryptopsy: Images should be included automatically. If they are not, I'd think that you didn't change to robinmaster before building.09:34.42 
cryptopsy i did this command before compiling git pull robin master:robinmaster09:35.12 
Robin_Watts cryptopsy: Right. That pulls from roibin master into a new local branch "robinmaster"09:35.41 
  but you need to "git checkout robinmaster" to make that the active branch.09:35.58 
cryptopsy can i just git clone git://git.ghostscript.com/user/robin/mupdf.git09:37.04 
  in that case?09:37.07 
Robin_Watts cryptopsy: You can.09:37.17 
cryptopsy i git'ed that and compiled and ran again, and no images09:39.10 
Robin_Watts Ah . The images there are line art, not bitmaps.09:44.26 
  We don't do line art yet.09:44.29 
  sorry.09:44.36 
cryptopsy is that also comming soon?09:44.50 
Robin_Watts I won't promise soon.09:44.59 
cryptopsy 1 month?09:45.14 
Robin_Watts I certainly won't promise that soon.09:45.28 
cryptopsy what are line art images?09:45.36 
Robin_Watts vector images, as opposed to bitmaps.09:45.59 
cryptopsy thanks09:46.35 
  I have very many pdfs, do you want me to make tests for you?09:47.11 
Robin_Watts cryptopsy: At the moment it's very dumb - we know it needs lots more work.09:48.00 
  I'd hate for you to put in time testing it only for me to say "yeah, we know that's broken".09:48.33 
cryptopsy i can just convert the images to bitmap before using mudraw right?09:48.42 
Robin_Watts can you?09:50.54 
cryptopsy i don't know how hard it is to do that, not familair with pdf09:51.08 
Robin_Watts I wouldn't know how to do it in general. You might be able to depending on where the pdf is coming from.09:51.41 
tor8 Robin_Watts: doing mesh plotting with floats definitely solves the missing pixels. now I just need to figure out all the bugs or maybe make the edge finding logic more robust09:58.02 
  but it definitely looks like it will solve the issue09:58.19 
  (or at least make it 100x better)09:59.05 
dpc I have a question regarding MuPDF integration to my existing android application. I have followed all the steps and I can able to install the compiled MuPDF on emulator. Its working great. But the problem here is, I am unable to figure out on how to integrate MuPDF in my sample android application10:09.53 
  can someone please guide me on this10:10.16 
  thanks in advance10:10.19 
Robin_Watts tor8: fab.10:10.33 
  dpc: hi10:10.44 
dpc hi robin10:10.51 
Robin_Watts If you have specific problems, we can try to help.10:11.11 
dpc I am unable to figure out on how to integrate MuPDF in my sample app10:11.12 
  after getting the actual MuPDF application working on emulator. What all files like libraries I need to take and place it in my application?10:12.00 
Robin_Watts dpc: All the files in mupdf are required for mupdf to work :)10:12.30 
dpc I want to launch MuPDF from my sample activity by passing pdf content path. How can I do it?10:13.21 
Robin_Watts The mupdf sources break down into android and non-android ones.10:13.31 
dpc ok10:13.40 
  i see there is android folder inside mupdf sources10:13.55 
Robin_Watts The non-android ones are built together with android/jni/mupdf.c into libmupdf.so10:13.56 
dpc ok10:14.05 
Robin_Watts All the other files in the android directory are the java sources.10:14.12 
dpc thats right10:14.18 
Robin_Watts The public API for the mupdf library is a C level interface.10:14.42 
  as such android/jni/mupdf.c exposes a small subset of that API to the java - specifically just enough to do what we need to in our example android viewer.10:15.23 
  If you want to use more features than our viewer does, you will need to expand mupdf.c10:15.39 
  If on the other hand, you are happy with the features of the viewer, and you just want to drive it as is, you can probably get away with working at the java level and ignore the C entirely.10:16.09 
dpc are you referring android folder inside mupdf sources as "example android viewer"?10:16.13 
Robin_Watts Yes.10:16.24 
dpc Ok, so from my SampleActivity.java, how can I launch MuPDFACtivty? 10:17.12 
Robin_Watts You wouldn't.10:17.44 
dpc I know its through Intent but what all should i need to place in my sample app10:17.45 
Robin_Watts AIUI, you use Intent to open files with other apps.10:18.31 
  To open a file within the same app, you wouldn't use Intent (or at least you wouldn't have to use Intent), you'd just call direct.10:19.10 
  MuPDFActivity implements an Android Activity. So, presumably, would SampleActivity.java10:19.42 
dpc So, please tell me, if i have button in my sample app and on clicking this button i want to launch a pdf file using MuPDF 10:20.14 
  yes my sampleactivity is extends from android Activity10:20.31 
Robin_Watts actually, ignore what I just said about Activities.10:20.36 
  If you look in android/src/com/artifex/mupdfdemo/ChoosePDFActivity.java you should see what you need.10:20.59 
  That class displays a list of files on the memory card, lets you pick one, and then calls out to MuPDFActivity to actually display one.10:21.28 
  It seems to me that what you want to do should be in there somewhere.10:21.43 
dpc thats right robin10:22.19 
Robin_Watts and in fact, I'm wrong.10:22.20 
  That does use Intent.10:22.27 
  so my apologies.10:22.30 
dpc yeap10:22.34 
  Intent intent = new Intent(this,MuPDFActivity.class); intent.setAction(Intent.ACTION_VIEW); intent.setData(uri); startActivity(intent);10:22.35 
  like this10:22.39 
Robin_Watts So that sounds like what you need.10:22.48 
dpc inorder to work this perfectly, do i had to install MuPDF on the phone??10:23.10 
Robin_Watts If you include MuPDFActivity.class (and all the other classes, and the lib etc) as part of your app, then no, it can all be as one.10:23.53 
dpc yeah here is my problem Robin10:24.12 
  what all classes and what all libs10:24.19 
  to include in my app10:24.23 
  please help me at this point10:24.30 
Robin_Watts all the classes and libmupdf.so10:24.33 
dpc all the classes in the sense "*.java" files, right?10:25.06 
Robin_Watts actually, all the classes except for ChoosePDFActivity.class, I would guess.10:25.10 
  dpc: You've built normal mupdf, right?10:25.21 
dpc yes, i built it 10:25.30 
Robin_Watts Right, so every .java file will correspond to at least one .class file that's been built in the tree somewhere, and is included in the final mupdf.apk10:26.00 
  Either you need to move the mupdf sources over into you app and get them built at the same time...10:26.21 
  or you need to copy the final classes across from the tree/apk and include them.10:26.45 
  honestly, I have no idea which is simpler.10:27.18 
  I'd personally go for the first, I think.10:27.23 
dpc ok......and when i built ChoosePDF app then it generated two libmupdf.so files, one under /libs/armeabi and another under /libs/armeabi-v7a which one should i need to use in my sample app?10:27.36 
Robin_Watts dpc: Some phones are based on arm-v7 chips.10:28.04 
  some older ones are based on earlier versions.10:28.11 
  For the older ones you will need armeabi.10:28.19 
  armeabi will work on the later ones too (I believe), but it will be slower as FP is done in software.10:28.38 
dpc ok, for safety i will also create such folders under my libs folder and place both10:28.40 
Robin_Watts right.10:28.45 
dpc do i need to also copy gdb.setup and gdbserver files?10:29.13 
Robin_Watts What app are you developing, if I may ask?10:29.16 
  dpc: Those are created as part of the build process by android.10:29.28 
  s/android/the android sdk/10:29.46 
dpc idea is to pass a pdf file to my app and try to read pdf from within my app10:29.50 
  so i came across about MuPDF10:29.58 
Robin_Watts right, but is this app for distribution at any point ?10:30.20 
dpc i have also read the two types of licensing10:30.38 
  depends on our requirement , we will definitely approach Artifex 10:30.55 
Robin_Watts Ok, just wanted to make sure you'd seen that before you spent hours working on something :)10:31.13 
dpc till then i wanted to see whether pdf reading is possible or not10:31.16 
  ok10:31.33 
  so after placing all the required sources (.java) files and libmupdf.so files in my sample app. the normal build from eclipse is fine to make my app working, right?10:33.13 
Robin_Watts No idea. I don't use eclipse.10:33.58 
dpc ok.. I will try and if something goes bad then i will come here again10:34.21 
Robin_Watts but paulgardiner does, so certainly eclipse is capable of building it.10:34.28 
dpc many many thanks robin10:34.35 
Robin_Watts best of luck!10:34.37 
dpc thank u10:34.45 
  have a great day10:34.49 
Robin_Watts "Chrome has auto-updated with bettar spell chek!" hehe10:46.03 
Robin_Watts is easily amused.10:47.15 
chrisl Robin_Watts: does it also have a grimmer chalker?10:47.19 
Robin_Watts :)10:47.34 
  Google Chrome: Allo Allo edition.10:47.58 
chrisl :-)10:48.25 
paulgardiner No mvrhel today?10:50.05 
Robin_Watts paulgardiner: Not this early :)10:50.31 
paulgardiner Ah of course. Silly m10:50.42 
  me even10:50.46 
Robin_Watts you get used to it. When we had Masaki working with us, the sun never set on Artifex :)10:52.46 
paulgardiner Looking at his proposal, it is actually very similar to what the customer is doing, with the proposed separate project taking the place of the customer's x.dll10:53.32 
Robin_Watts paulgardiner: Depending on how much 'extra' the customer wants to put into x.dll10:54.14 
  if x.dll is intended to be a simple thin wrapper, then yes, you're absolutely right, the two are the same.10:54.45 
paulgardiner Yes, but it presumably it has exactly the same use of linking so solving one solves the other10:55.00 
Robin_Watts you'd hope so, yes.10:55.45 
paulgardiner I'm wondering if Michael was proposing gs.dll being a win32 dll and linking via the .lib file.10:56.47 
  Reading Raed's latest reply I'm less sure what x.dll is. It may be something he created just to test calling gs in that environment. He says the app is *empty*.10:59.42 
  What's the simplest interaction I could make with gs to confirm successful calling?11:02.56 
kens 'showpage' ?11:03.25 
  produces an empty page of output11:03.51 
Robin_Watts kens: no, i think paul means calling a dll.11:03.56 
  calling the gswin32 dll11:04.06 
kens yes, so feed it 'showpage' as a piece of PostScript11:04.24 
  If that works, its working11:04.39 
  other than that you;d be relying on error returns11:04.48 
Robin_Watts paulgardiner: see gs/doc/API.htm11:04.57 
paulgardiner No setup needed before doing that?11:05.01 
kens paulgardiner : yes, lots11:05.12 
Robin_Watts paulgardiner: So you need to link to the dll, call gsapi_new_instance etc. The docs are in the file I just pointed you at.11:05.46 
paulgardiner I was hoping there might be some utility functions not attached to the main code that I could just call without init.11:05.48 
Robin_Watts paulgardiner: gsapi_revision ?11:06.22 
paulgardiner Sounds good.11:06.32 
Robin_Watts psi/dwdll.c loads the dll and gets the function pointers.11:08.25 
paulgardiner Eek! Does it do so using APIs that are available to Windows Store apps?11:15.23 
Robin_Watts paulgardiner: gs has a publicly defined api for people to call it programattically.11:17.24 
  That is defined in the iapi.h header.11:17.35 
  The DLL exposes that interface.11:17.43 
  If you build a lib, then the expectation is that you'll be calling that same interface (although you may well see all the other functions too - don't think we ever hide stuff).11:18.20 
paulgardiner Confused! You said dwdll.c *loads* the dll.11:18.45 
Robin_Watts So, presumably, if mvrhel (or you, or whoever) wanted to do a winrt wrapper, it would be that same interface you'd expose.11:19.00 
  dwdll.c is a .c file that implements load_dll and unload_dll11:19.33 
  I believe it's used as part of gswin32c.exe (and gswin32.exe) our standard ghostscript exes on win32.11:20.02 
  Those take the form of small exes, which use the dll.11:20.13 
paulgardiner Ok, not anything that would be used in winrt11:20.26 
Robin_Watts no, not currently.11:20.34 
  but I mentioned the code in the hopes it might save you having to look up how to load a dll etc ( certainly I don't carry such information in my head).11:21.02 
paulgardiner Oh ok I understand. I don't think we have those same mechanims to load dlls available in WinRT, at least Raed looks to be claiming so.11:25.12 
Robin_Watts paulgardiner: Ah, fair enough.11:25.39 
  tor8: ping11:25.44 
  paulgardiner: It's a long time since I did this, so my memory is crapper even than usual, but my tests on metro were to see if I could call the standard gswin32 from the metro side.11:26.59 
  and that would have done the dll loading using that very code.11:27.09 
  so either I'm misremembering, or Raed is wrong, or it was dropping back to the desktop and I wasn't spotting it.11:27.31 
paulgardiner Oh right. Interesting11:29.26 
tor8 Robin_Watts: yes?11:33.25 
Robin_Watts tor8: Fix for transitions on my repo.11:33.57 
tor8 Robin_Watts: cool. that one looks like it ought to work :)11:35.29 
  Robin_Watts: let me just check the rest on your branch11:35.36 
  ow. seeing you use printf for put32 hurts :)11:37.20 
  but considering how little it's used that's okay11:37.50 
  s/fz_text_device_images/fz_set_device_hints/ maybe?11:38.45 
Robin_Watts ah, yes, nice.11:39.06 
tor8 make it a bit more general11:39.20 
  and good catch on the device list not respecting hints11:39.32 
  fz_new_output_buffer could maybe be called fz_new_output_with_buffer ?11:41.34 
Robin_Watts on phone, sorry.11:42.03 
tor8 s/fabs/fabsf/11:42.59 
Robin_Watts tor8: back, sorry.11:54.59 
  Yes, I will attempt to generalise fz_text_device_images. I wasn't entirely happy with it.11:55.29 
  Are we happy to have a single 'fz_device_set_hints' function that works for all device types?11:55.52 
  I guess we are, as the hints are in all devices.11:56.10 
tor8 yes.11:56.57 
Robin_Watts fz_new_output_buffer has been in the code for ages - I just added the header for it.11:57.12 
tor8 maybe a enable/disable hint pair of functions instead, to override the default hints a device sets11:57.13 
  Robin_Watts: I know, I just thought it looked like it could use a rename now11:57.31 
Robin_Watts and if we change fz_new_output_buffer we should also change fz_new_output_file11:57.37 
  fz_new_output_to_buffer ?11:57.44 
tor8 yes11:57.44 
Robin_Watts to, rather than with ?11:57.49 
tor8 _to_buffer or _with_buffer, no strong preference11:57.57 
  lots of functions already have _with_11:58.05 
  new_pixmap_with_data etc11:58.11 
Robin_Watts hmm. trying to figure out why I like new_pixmap_with_data, but new_output_to_buffer11:58.55 
  I'll do with for consistency.11:59.33 
  So issues to address:12:00.00 
  1) fabsf12:00.04 
  2) hint set/unset functions12:00.13 
  3) rename fz_new_output_buffer etc.12:00.25 
  anything else?12:00.41 
tor8 I have not reviewed the multi-threaded segv12:01.16 
Robin_Watts ok. That's actually not that bad.12:01.37 
tor8 fix 1, 2 and 3 and I am happy with the other patches up to but not including limit mesh patch12:01.45 
  it said multi-threaded and I'm supposed to be focusing on the mesh rendering! :)12:02.04 
Robin_Watts right. limit mesh patch isn't to go in yet.12:02.08 
  tor8: right, but the customer is waiting for that one :)12:02.19 
tor8 get paul or sebras to look at it! :)12:02.34 
Robin_Watts (indeed the limit mesh patch thing may never go in)12:02.38 
  tor8: ok :)12:02.50 
  I'm being called for lunch. I'll fix/push etc afterwards. Thanks.12:03.09 
tor8 and next meeting, we should bring up CSP-ifying the multi-threaded architecture so all this lock dancing can be simplified12:04.15 
Robin_Watts tor8: I'm not sure I see how CSP can help us.12:07.13 
  We can write a CSP spec for what we're doing, and thus prove it correct.12:07.27 
  but CSP doesn't magically allow us to simplify the code, AIUI.12:08.08 
  Certainly it doesn't remove the need for locking etc.12:08.19 
  sebras, paulgardiner: IF either of you could cast your eye over http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=fb661ffd2e9433305a4cbfb916b47eed16c71a55 I'd be grateful.12:19.23 
tor8 Robin_Watts: it'd help if the only mechanisms we use are channels and processes, and we'd put the store on its own thread (real or coroutine-based) and never share any mutable data between processes12:25.24 
Robin_Watts tor8: Having the store in it's own process with a channel to talk to it is equivalent to having the store protected by its own lock.12:27.06 
sebras Robin_Watts: I'll have a look at it tonight.12:27.27 
tor8 Robin_Watts: exactly, but it's easier to express and understand in the code IM(A)O12:27.29 
Robin_Watts Right, but it has the same lock ordering problems (or equivalent deadlock states if you prefer) as the current solution does.12:28.15 
tor8 yes, not saying it's a magic silver bullet. but it should make it easier to think about.12:29.01 
  and it would let us do automatic multi-threading from a single-threaded user API as well, I would imagine12:29.30 
  and if you don't want multi-threading (and to detect definite deadlocks) just run them on coroutines instead of real threads12:30.09 
Robin_Watts tor8: fabsf: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=675ffc82cc3305038d0823089f6094cfef86cbe113:34.20 
tor8 Robin_Watts: *nod*13:34.33 
Robin_Watts hint enable disable: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=f900105749889d6af78e9721e42210afb246c2cf13:34.39 
sebras /whois fabsf13:34.49 
Robin_Watts renaming: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=0f57a46e0fdb2a57b79fecfb4ba8252099902c8313:35.08 
tor8 so you went with _with_ after all?13:35.51 
Robin_Watts consistency wins.13:36.00 
tor8 question is, fz_enable_device_hint or fz_device_enabe_hint13:36.10 
Robin_Watts I can't come up with a strong argument to back up my gut feeling for prefering 'to' to 'with', so I went with with.13:36.37 
  Ah. The former is probably more consistent with the scheme we use in mupdf (that I don't like).13:37.16 
  so I should change to fz_enable_device_hints13:37.35 
  hint or hints?13:37.49 
tor8 I'd go with singular13:38.05 
Robin_Watts We can supply the OR of multiple hints at once, hence hints would be my vote.13:38.07 
tor8 but since it's a mask, what you said13:38.17 
  so I'd consider it a wash13:38.22 
Robin_Watts ok. I'll change that again.13:38.35 
tor8 plural makes it more obvious that it's a bit mask13:38.43 
  otoh, singular allows us to change the representation should the need arise13:39.04 
  in case we run out of bits for hints in the hint mask down the line (not very likely, IOW)13:39.20 
Robin_Watts I'll do it as hints, and document it as a mask. If we need to change it in future, we can implement a _hint version13:41.59 
  and remove _hints and that way no one can accidently have code that carries over the wrong meaning.13:42.20 
tor8 sounds good13:42.32 
Robin_Watts http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=c06007db0978041d6b60125929d0ca412f36e18e13:45.04 
  All pushed then. (paulgardiner reviewed the multithreaded one for me)13:50.36 
  So, we have a potential customer for mupdf that has the android app set up doing automatic page turns to give a continuous rolling display.13:51.18 
  and they are complaining that we have a memory leak.13:51.31 
  so I'm going to have a look at that next.13:51.38 
chrisl kens: ping14:24.51 
kens pong 2 secs14:25.00 
chrisl kens: do pdfwrite/ps2write always use gdev_vector_open_file_options() for the main output file?14:25.52 
kens I have absolutely no idea ;-)14:26.11 
chrisl Okay - it's just it tries to open the file seekable, and if that fails, it tries again non-seekable, in which case I should close the FILE * object before returning the error code14:27.28 
kens OK seems reasonable to em14:27.56 
chrisl I guess I'll give it a try, and see if it goes bang :-)14:28.16 
kens THe answer is 'yes' though14:28.21 
  via 3 levels of #define indirection.....14:28.35 
chrisl Naturally ;-) I'm glad I checked.....14:28.53 
tor8 Robin_Watts: two patches on tor/master. the formatting one should be good to go, the other one is not finished yet but if you could give it a spin and see if it solves the shading issues well enough to polish up and optimise.15:21.00 
  the edges of highly tesselated shadings are definitely improved with the patch, so I think it's worthwhile whether it fixes all the missing pixels or not15:22.00 
  I can still get the occasional white pixel but it's a lot rarer now15:22.11 
Robin_Watts tor8: Will do.15:24.11 
tor8 something I found a bit odd that I discovered doing this, the mesh data has the float color values premultiplied by 255...15:25.25 
Robin_Watts All the vertex stuff? Yes.15:31.17 
  That means that the *255 only has to happen at once at the top of the subdivision code, rather than on every final triangle?15:32.53 
  but that's a tiny win given the float -> int conversion that happens there.15:33.07 
tor8 yeah. it'd make more sense to have it normalized for eventual high level output devices that get hold of the mesh data.15:33.32 
Robin_Watts formatting patch looks fine.15:34.07 
tor8 and converting the float to fixed point can trivially embed that *255 constant factor once we turn that floating point scan converter into fixed point15:34.13 
  thanks!15:34.33 
  I gotta go, dinner calls.15:34.37 
Robin_Watts tor8: The scan converter seems sane too. I'm in the middle of trying to debug a customer thing, so I won't try it immediately though.15:39.26 
kens goodnight folks16:11.59 
ray_laptop mvrhel_laptop: Can you please handle customer 801's question #26 ?16:19.46 
mvrhel_laptop ray_laptop: reading it now. Do they not set there device's capabilities someplace?16:22.59 
  s/there/their/16:23.06 
  I would think they would need to do that and not have the default settings (e.g. like tiffsep)16:23.45 
ray_laptop mvrhel_laptop: I thought that the problem was probably that they didn't set their device properly and just used our default max_components16:26.09 
mvrhel_laptop right that is what I mean16:27.02 
ray_laptop mvrhel_laptop: but I am not familiar with which, of the myriad, macros were best to set up their kind of device16:27.04 
mvrhel_laptop and I am.... ;)16:27.44 
ray_laptop mvrhel_laptop: I also don't know what might be required as far as SeparationNames or SeparationOrder may be needed to let them tell the interpreter what the name of the Spot color is16:28.59 
  mvrhel_laptop: well, you've mucked about with DeviceN type devices more than I16:29.30 
mvrhel_laptop ray_laptop: I know. I will dig into this16:29.59 
ray_laptop mvrhel_laptop: I'm not sure that they mentioned that their device had spot color support previously. Did you know this ?16:30.26 
mvrhel_laptop ray_laptop: no this is news to me16:30.40 
ray_laptop I was thinking about throwing the BGPrint stuff to them, but since I still have some psdcmyk diffs I can't :-(16:32.08 
  Robin_Watts: my last bmpcmp had a lot of psdcmyk pages where it said "bmpcmp: Page 1: Can't compare images (w=2479,2479) (h=3300,3300) (s=12396,9916) (bpp=40,32) (cmyk=1,1)!"16:41.39 
Robin_Watts right.16:41.53 
  That's because the number of bits per pixel has changed from 40 to 32.16:42.09 
ray_laptop but when I run on my machine I get the identical files 16:42.29 
Robin_Watts Look in the logs, find the exact command line and try that ?16:43.07 
  identical files how?16:43.15 
  visually?16:43.20 
  or to 'diff' ?16:43.28 
ray_laptop Robin_Watts: identical as in size and compared with 'cmp'16:44.22 
Robin_Watts well, the cluster must be having a different experience to you then.16:45.18 
mvrhel_laptop are you sure the bpp are the same?16:51.29 
Robin_Watts bmpcmp is reporting 5 components, rather than 4 (cos bmpcmp uses 8 bits per pixel, always).16:52.16 
  psdcmyk packs things planarly, right ?16:52.41 
ray_laptop mvrhel_laptop: Robin_Watts: the file I am running is the first one on the bmpcmp list tests/Ghent_V3.0/051_Font_report.pdf.psdcmyk.300.116:53.16 
  let me look how many components I am seeing on my machine...16:53.45 
  I'm getting 5 channels (byte 14 == 5) which means I get 40 bits16:56.32 
  plus my file size is consistent with 5 planes of 2479x3300. I guess I have to try on peeves. Thanks16:58.07 
Robin_Watts ray_laptop: You've confirmed that the old version was giving you 5 planes too ?17:08.25 
ray_laptop Robin_Watts: I was only looking at the first page because the bmpcmp reported Page 1 through page 4. Turns out there were 5 pages and page 1 _is_ 5 planes on both, but pages 2 thru 4 are only 32 bit without BGPrint17:09.28 
Robin_Watts Ah.17:09.48 
ray_laptop and with BGPrint=true pages 2 through 4 are 40 bit17:10.06 
  OK. now I can work on it. (I didn't know that Page 1 meant the second page)17:10.33 
Robin_Watts oh, urm, does it? :(17:11.36 
mvrhel_laptop My son just read a book about Fibonacci that had a chapter 0 17:13.42 
  bbiab 17:13.52 
ray_laptop ahh... I think I see it. The 'psd_print_page' function frees the separation names and sets the num_separations to 0 after printing a page in the 'psdd_print_page'. In BGPrint mode, that doesn't get done on the foreground device at all17:24.46 
  just read paulgardiner's email on the Win 8 issues. Yuck! There have to be suitable functions for our gp_monitor, gp_semaphore and gp_*_thread. Might be easiest to use a different gp module instead of gp_wsync.c17:42.44 
Robin_Watts ray_laptop: Do we have a gp_nosync.c or something?17:43.28 
  something to get us up and running without NumRenderThreads working for now ?17:43.44 
ray_laptop and we might need that for the file functions as well (an alternate for gp_mswin.c)17:43.49 
  Robin_Watts: yes, there is a gp_nsync.c17:44.10 
Robin_Watts ray_laptop: Yes. Talking to paulgardiner earlier, he was saying that Windows 8 might be funny about syncronous file handling.17:44.42 
  certainly they seem to want apps never to block on file handling, but whether that means they don't support sync file handling, or they just frown upon it's use is unclear (to me at least)17:45.33 
ray_laptop Robin_Watts: well, the RTL _has_ to block on file I/O, right. how would 'fread' work otherwise ?17:46.46 
paulgardiner ray_laptop: I think we may be lucky with the functions I singled out. InitializeCriticalSectionEx exists according to documentation.17:46.50 
  So I expect CreateSemaphoreEx and WaitForSingleObjectEx do too.17:47.36 
ray_laptop paulgardiner: OK. We can either have conditional compile in gp_wsync.c or just add a gp_w8sync.c17:47.45 
Robin_Watts ray_laptop: Right. That was my argument. But then arguments of the form "Surely not even Microsoft could do XXXX" do not historically have a great success rate.17:47.45 
ray_laptop Robin_Watts: what do yo do -- just see how many bytes fread returns and loop until you get enough ???17:48.27 
  Surely not even Microsoft could want you to do that ??? (maybe Intel to sell more CPU's)17:49.09 
  ;-)17:49.23 
Robin_Watts ray_laptop: 99.9% of uses of fread assume that either it will read all of it, or we hit the end of file. So yes, it would seem utterly mad for ms to break that. but this is ms.17:49.39 
paulgardiner It may well be that they merely frown upon its use.17:50.57 
ray_laptop I'm surprised MS hasn't decided to go back to their roots and go to a loop that cycles through all the tasks17:51.23 
  this pre-emptive task switching is some idea that really doesn't belong in MS since it really belongs in unix ;-)17:52.23 
Robin_Watts Multi-tasking ("Time sharing") predates unix.17:55.22 
ray_laptop I think I see what's up with the cups device, too. cups_print_pages bumps a cups->page element, so of course the foreground cups device never learns about it.17:55.50 
Robin_Watts Was invented by Christopher Strachey (first Professor of Computing at the PRG)17:56.00 
ray_laptop yeah, but if Bill Gates didn't think it was a good idea in Windows 1, it must be evil.17:57.53 
  so devices that change private device structure values after printing a page won't work in BGPrint mode without modification :-(18:07.10 
  I guess this means we need to know which devices are capable of BG printing, and only do it for them. And default all devices that we haven't specifically reviewed as OK to 'cannotBGPrint'18:09.31 
  since so many devices are safe, I hate to have to add a spec_op to all of them. Robin_Watts (et al.) does this sound like we can do it with a prn_device struct element ?18:11.45 
Robin_Watts Either way should work, I guess.18:17.42 
ray_laptop hmm... Since the BGPrint is actually done in the device's 'output_page' (which defaults to gdev_prin_output_page) we can probably just hook that to a _with_BGPrint version for devices that can handle it.18:30.57 
  and devices (like cups) that want special handling can have their own output_page that calls gdev_prn_bg_print_output_page and does any special handling before or after. How's that sound18:32.27 
  ?18:32.44 
  names a little long, so maybe gdev_prn_bg_output_page18:34.41 
  hi, henrys 18:40.03 
henrys ray_laptop:I'm at your stomping grounds in st louis.18:40.31 
ray_laptop henrys: where in St. Louis -- if it's downtown I didn't get there too much18:41.07 
henrys I'm at the first robotics championship where the st louis rams play.18:41.46 
ray_laptop I grew up in North county, pretty near the river (we used to walk down to the river and play on the banks)18:41.48 
henrys edward jones dome.18:42.02 
ray_laptop henrys: Busch Stadium is right downtown18:42.14 
  they probably renamed it since18:42.28 
  if it's where they used to play its in view of the Arch18:42.51 
  but maybe they built a new dome (Busch stadium didn't have a dome)18:43.45 
henrys the old cardinals stadium is still here, drove right by it, not far from where I am.18:44.25 
ray_laptop henrys: yeah -- I just pulled up a sat map on google. It's a new dome, then18:45.48 
  still not far from the Arch18:46.14 
henrys my nephew's team is not ranked 23 out of 100 in his division, this is really something it's like a sporting event.18:46.23 
ray_laptop henrys: I bet. So this is nationals ?18:46.40 
henrys s/not/now18:46.44 
  worlds18:46.54 
ray_laptop coolio18:47.02 
  what age group ? high school ? college ?18:47.39 
Robin_Watts hold on, this is the US "worlds", right? Do you actually invite other nations to play? :)18:48.12 
ray_laptop Robin_Watts: you mean like baseball's "world series" ?18:48.34 
henrys there are other countries here for sure18:48.38 
Robin_Watts ray_laptop: precisely :)18:48.42 
henrys oh right ha ha18:48.49 
Robin_Watts henrys: Take pictures!18:49.09 
ray_laptop well St. Louis is the center, right ? (of the world ;-) )18:49.37 
henrys Robin_Watts: will do18:49.49 
  right half the world is west of st louis other half east18:50.15 
Robin_Watts ray_laptop: I think, technically speaking, it depends on the projection you use.18:50.16 
ray_laptop henrys: lots of teams over from Asia ?18:50.18 
henrys lots from israel turkey and germany based on waving flags but that may not be the best indicator18:51.22 
ray_laptop henrys: what age group ? high school ? college ?18:53.00 
  i.e. which division is your nephew in ?18:53.54 
henrys my nephew is high school - live feed here science.ksc.nasa.gov/robotics/ for windows18:54.00 
  he's in newton18:54.10 
ray_laptop henrys: apparently there is also a 'Vex Robotics High School World Championship that just happened here in Anaheim (April 17-20)18:56.30 
  so you are at the FTC World Championship18:57.06 
henrys yes but there is other stuff for elementary and middle school also.18:57.34 
Robin_Watts All I'm seeing is Xerox adverts.18:58.10 
ray_laptop henrys: I see "Edison" division and "Franklin" division on the web site18:58.12 
  at http://www.usfirst.org/roboticsprograms/ftc/FTCWorldChampionship18:58.25 
Robin_Watts I can hear the cantina music from star wars in the background.18:58.32 
  http://science.ksc.nasa.gov/robotics/18:58.46 
henrys I think you have to sit through some commercials first18:59.45 
ray_laptop Robin_Watts: yeah, I just found that. Streaming site, and they mention "newton"19:00.03 
henrys I'm watching live from here19:00.06 
Robin_Watts I think you get adverts between bouts.19:00.20 
ray_laptop I didn't get any commercials19:00.32 
henrys my nephew's team robot is 6819:01.20 
  they play again in an hour19:01.29 
ray_laptop OK, now I got the BAE ad19:03.27 
  I'll tune back in so I can cheer him on :-)19:04.04 
henrys ray_laptop:I wish my school had a program like this for my kids. These kids are *really* excited about this.19:04.31 
ray_laptop both middle schools have robotics clubs and the high school competes. My son may want to join it. If so, I'll volunteer as an advisor since I've know most of the basics (electronics, servo control, image analysis)19:06.34 
  the accuracy of those frisbee shooters is incredible19:10.51 
henrys 68 is very fast and a very good shooter but other teams have gotten the hang of defending against him, we were ranked 13 yesterday and sunk 10 places today. 19:14.00 
  I'm definitely in geek land though. I could probably interview a few kids while I'm here.19:18.10 
ray_laptop mvrhel_laptop: did you check out the robotics contest video?19:18.16 
  mvrhel_laptop: BTW, I found out what's up with the psdcmyk -- the print_page is where the separations get reset, but I wasn't doing that for the foreground device19:19.12 
henrys got to go back to the arena area bbiaw19:19.36 
Robin_Watts ray_laptop: Should we separate print_page into 2?19:19.59 
ray_laptop so if the device returns a devn_params pointer, I can do that before the foreground return19:20.06 
  Robin_Watts: no, I think just exporting the gdev_prn_bg_output_page suffices. A device can hook the proc, do A before, call the standard function, then do B after it returns.19:21.18 
Robin_Watts ray_laptop: I don't entirely follow that.19:21.52 
  oh, I follow, I think.19:22.57 
mvrhel_laptop oh henrys is at the robot contest 19:23.05 
ray_laptop Robin_Watts: if a device has some action A that needs to be done before the standard output_page, and similarly action B after the standard output_page19:23.06 
Robin_Watts I was thinking of something a bit different, which may be silly.19:23.29 
ray_laptop so, for example, the cups device would increment the cups->page value there as its action B19:24.00 
Robin_Watts ray_laptop: Right. I was thinking that we might have one entry point which conceptually could be split into 2 things; things to do in the foreground, and things to do in the background.19:25.03 
  and we could use the presence of the 'split' functions to mean "can safely bgprint".19:25.38 
ray_laptop the 'tiff_output_page' really should be re-done to do the 'open_positionable' before, then just call the standard if gp_seekable returns true, rather than duplicate all the code19:25.58 
  as I mentioned before, duplicated code really irks me.19:27.44 
  you fix one instance, not realizing that there are other places that do the same thing, so leave places unfixed.19:28.29 
Robin_Watts ray_laptop: Yeah. Part of the mupdf multithreaded store fix I did earlier involved pulling some duplicated code together, so it got tidied as a side effect.19:29.22 
ray_laptop Robin_Watts: nice!19:29.55 
  well, I better get back to work...19:30.25 
  and finish all this BGPrint cleanup.19:30.39 
Robin_Watts The android mupdf stuff does indeed leak like a leaky thing.19:32.47 
mvrhel_laptop off to get a new battery for one of the cars.20:33.40 
  bbiaw20:33.41 
sebras Robin_Watts: hm... there is still a SUBDIV in fz_process_mesh_type[67]()...20:57.31 
  Robin_Watts: I thought your idea was to make the subdivisions happen in device space so you would know how far to subdivide..?20:58.06 
Robin_Watts sebras: The changes that I did to the mesh stuff was to make the subdivision happen at render time.23:14.29 
  Previously we subdivided and stored a list of triangles, which was huuuuge.23:14.49 
  As a next step we can think about varying the degree of subdivision at render time now.23:15.19 
  I have a commit that tries to do that in my repo.23:15.28 
  BUT... it works by deciding the subdivision level based on each patch, rather than the size of the mesh as a whole.23:15.54 
  which can introduce gaps.23:16.03 
  so we're not sure if we can use it yet. We'll know more when Tor8's reworks get finished.23:16.32 
 Forward 1 day (to 2013/04/27)>>> 
ghostscript.com
Search: