IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2016/09/12)20160913 
Robin_Watts I get no reference counting issues when using the gproof device on the desktop.10:46.48 
  oops, wrong group10:47.10 
sebras tor8: trivial patch over at sebras/master (actually yours), can I merge it?14:00.13 
  Robin_Watts: given your previous work with having cygin on windows work with the cluster. do you think it is feasible to have android also build automatically?14:01.17 
Robin_Watts sebras: I believe it's doable. It would require a change to the cluster though.14:01.43 
sebras realizes his grammar now is messed up in any language.14:01.45 
Robin_Watts IMHO, cluster nodes should announce their capabilities when connecting to the clustermaster.14:02.19 
sebras Robin_Watts: if the cost is not huge we would be able to avoid those silly ooops forgot a build system I'm not currently using mistakes.14:02.28 
Robin_Watts and then the clustermaster can feed them particular jobs.14:02.39 
  The downside to that plan would be that we'd have to cope if there wasn't (say) a windows build box available.14:03.22 
sebras Robin_Watts: right. is that an implicit failure?14:04.31 
  would definitely put more strain on whomever is responsible for keeping the cluster up.14:04.49 
Robin_Watts Either it would be an implicit failure, or we'd have to keep the job queued until we did have one.14:05.04 
sebras Robin_Watts: I think failure is better. because whomever fired up the job would go looking at the log, but if no response is sent..?14:05.56 
Robin_Watts I think I agree.14:06.08 
  actually, the way it'd probably work is that if you schedule a ghostscript cluster job, it would sent "build+test" to all the connected linux nodes, and just "build" to all the connected windows nodes.14:07.11 
  hence not having a windows node connected would mean that you'd not get an error.14:07.34 
sebras Robin_Watts: ok. and if you _do_ have a windows node and the build fails..?14:08.17 
Robin_Watts Then that would be an error.14:08.25 
sebras that would still be visisble as an error?14:08.26 
  ok, that would probably work for me.14:08.33 
  and if it can be coaxed into working for android, even better.14:08.44 
  do we build for ios as it is?14:08.51 
Robin_Watts sebras: We do not.14:09.07 
sebras Robin_Watts: but there is a macpro? but it's never scheduled?14:09.40 
Robin_Watts That would be possible too, but it would have to require someone else being prepared to setup and maintain the ios build tools etc14:09.54 
  Cos I am not going near that.14:10.09 
sebras Robin_Watts: :) I'd place my bet on jogux.14:10.36 
HenryStiles I think for mobile we should be looking at other test sites and not roll our own.14:11.32 
Robin_Watts HenryStiles: This would just be smoking testing builds.14:12.03 
  s/smoking/smoke/14:12.11 
sebras Robin_Watts: smoke tests imply _some_ kind of test at all right, we're only talking about build testing here, really.14:12.42 
Robin_Watts ok, "build testing" then.14:12.59 
HenryStiles but build testing and running on many devices?14:13.18 
Robin_Watts HenryStiles: No.14:13.36 
sebras HenryStiles: that wasn't my intention.14:13.39 
  HenryStiles: I recently added files to mupdf that broke the windows build (because I normally don't build it)14:14.03 
HenryStiles just the build, doesn't seem like it would be worth the trouble but I'm fine with it.14:14.16 
Robin_Watts All that sebras and I were discussing was attempting to leverage to cluster so as to prevent us getting into the situation where we commit a change and forgetting to update all the relevant build things.14:14.29 
sebras HenryStiles: if it is easy enough to at least build for win in the cluster then that would resolve my mistakes for messing things up for robin.14:14.42 
HenryStiles fair enough14:15.01 
sebras HenryStiles: Robin_Watts: if you guys deem it not worth the effort I'm fine with that too. but I'll probably repeat my mistake again (and no one calls me out on it in the review either! ;) )14:15.48 
HenryStiles the macpro lives with me, if somebody wants to send a batch process that builds mupdf ios (if that is even possible) I'll add it.14:16.36 
Robin_Watts sebras: We've all done it before. We'll all do it again. It's just unfortunate that this time it hit michael at an inconvient point.14:16.44 
  HenryStiles: You've not had the pleasure of building for ios have you? :)14:17.08 
HenryStiles Robin_Watts: I have built the ios app, I have no idea how to do it outside of xcode from the command line.14:17.41 
Robin_Watts Many strange incantations, installations of xcodes, sacrifices of chickens, obscure provisioning keys, burning candles and a sprinkling of luck are required.14:18.17 
tor8 sebras: LGTM.14:18.32 
Robin_Watts And you have to redo them about as often as you have to reboot a Windows ME box.14:18.35 
  I'm a fan, you can tell.14:18.56 
HenryStiles jogux is the shaman14:19.29 
tor8 Robin_Watts: Shhh. Don't tell anyone the real reason I stopped using Apple software...14:19.31 
jogux it's not too bad setting up iOS. Apple made it a lot easier in Xcode 8 which is officially released in 2 hours time :-)14:20.52 
  command line builds are easy enough, you just call xcodebuild or use fastlane. latter is meant to be very good, but seems to introduce as many problems as it solves so I'm veering back to the former lately.14:21.32 
Robin_Watts tor8 uncloaks!14:21.45 
sebras HenryStiles: would our app(s) build easily in those thirdparty test environments?14:21.55 
Robin_Watts tor8: To return to the font bbox commit on robin/master...14:22.26 
  http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=005dbf1594bf24011b633df6d96685883fb59a1d14:22.34 
HenryStiles sebras: I haven't looked much at it. I think jogux looked into a few services14:22.55 
Robin_Watts You previously complained because you said that font->bbox_table was not always defined.14:22.57 
  sebras: I don't think we care about the current ios app, cos it's not in the ideal form.14:23.18 
  We care much more about the new one.14:23.24 
  tor8: In every case where we call either of the functions that rely on it, we know it exists (because we've just checked for it).14:23.52 
  Hence I reckon the commit is good to go.14:24.00 
sebras tor8: commits LGTY and clusters, so I'll push it.14:24.09 
jogux sebras: Yeah, easy enough to get mupdf building in third party environments (more so if it builds nicely in android studio now).14:24.10 
Robin_Watts It passes the cluster, with 1 progression (the testfile for the bug in question)14:24.15 
jogux sebras: I think the ones Henry is talking about are things like Amazon's cloud testing, where we actually check that the android build *runs* on x billion Android devices.14:24.56 
HenryStiles if it isn't much more work to have testing beyone build I think that would be really great14:25.17 
sebras jogux: right, but then we'd need to define how to test it as well?14:25.21 
jogux sebras: Yeah. Although "app starting and can load a document" is a damn good start :)14:25.49 
sebras jogux: i.e. what files to use and where the automated virtual finger should be clicking and what strings should be entered through the keyboard etc...14:26.00 
tor8 Robin_Watts: right you are. LGTM then.14:26.02 
Robin_Watts tor8: Thanks./14:26.12 
tor8 Robin_Watts: all type 3 fonts will have <= 256 glyphs, so should always have a bbox_table so we won't run into the issue of having to fall back to the font->bbox14:27.13 
Robin_Watts tor8: yeah.14:27.48 
tor8 which is also highly unreliable, but tends to work okay enough for CJK fonts which is where we tend to end up using it most14:28.15 
sebras tor8: with my commit now on master you should not need 86864c8 any more.14:46.45 
tor8 sebras: yes, git rebase automatically fixes that (and drops the commit)14:50.35 
sebras tor8: cool.14:51.34 
  tor8: will you make the pdf-annot.c pdf-annot-edit.c merger commit today?14:51.54 
  and i'14:51.56 
  ll rebase my changes and remove the cruft tomorrow?14:52.05 
tor8 sebras: I think I'll keep the split (just move a few functions from pdf-annot to pdf-annot-edit/pdf-appearance)14:59.18 
  so that pdf-annot.c will have the read-only basic functions for the fz_annot layer14:59.35 
  pdf-annot-edit.c will have all the creation/deletion and property accessors14:59.50 
  pdf-appearance.c will have all the appearance synthesis14:59.59 
  the stuff on tor/master could do with a review15:00.11 
  (and a thorough test, I am afraid that the tmp/deleted/changed annotation lists commit will break some of the viewers that I'm not in a position to test right now15:00.40 
sebras tor8: aren't those just a matter of search/replace?15:01.09 
tor8 sebras: search/replace what?15:02.03 
sebras FZ_ANNOT_FREETEXT -> PDF_ANNOT_FREE_TEXT15:02.19 
  or it is not that one you're refering to?15:02.31 
tor8 no. I'm referring to ad21b4815:02.56 
sebras aha.15:03.22 
  tor8: both the old android viewer and ios apperas to call pdf_poll_changed_annot() which you seem to remove.15:06.44 
  platform/android/viewer/jni/mupdf.c::update_changed_rects() calls it.15:07.26 
  same with platform/ios/Classes/MuPageViewNormal.m::updatePage()15:07.49 
tor8 sebras: yeah. I changed how it's used in pdfapp.c15:08.36 
  just normal iteration with an if (annot->changed) test for the block15:08.56 
  that pattern should be used for the other viewers too15:09.06 
sebras tor8: conceivably introduced in the same commit! ;)15:09.38 
  I attempted to see if the apps use any of the other pdf_page mambers that you remove, but I don't see any of that.15:10.14 
  that's what I can find.15:11.43 
tor8 sebras: tip of tor/master15:14.08 
  sebras: well, I guess I can fix the android viewer15:15.03 
  the iOS viewer will be more difficult15:15.11 
sebras tor8: let me relieve you of that clang warnings in mupdf_native.c15:16.41 
  I don't see those using gcc...15:16.49 
tor8 if you can teach gcc about setjmp so we don't get the dozens of 'possibly uninitialized value' warnings that'd be swell15:18.07 
sebras tor8: where do you get those?15:18.36 
tor8 sebras: I already fixed 52394dba7f4714ec22bb351068e86303706a023815:19.02 
sebras tor8: what about the warnings for initializing fz_rect using { 0 } ?15:19.27 
tor8 sebras: everywhere, when building release with gcc15:19.39 
sebras clang 3.6.2 warns on those.15:19.43 
tor8 sebras: we don't need to initialize the hits[] array15:20.53 
sebras I know. I'd like to merge your len= 0 change with not initing those hits arrays.15:21.17 
tor8 nor the pdf_write_options (pdf_parse_write_options fully initializes it)15:21.31 
sebras also I'd prefer to return 0 instead of initing length to zero (to keep the code consistent)15:21.33 
  I know.15:21.40 
tor8 initing len to zero is consistent with how I handled jni_rethrows everywhere else15:22.05 
  maybe you've changed how that works though15:22.14 
sebras I think I have. if the function returns I try to return the fixed value instead so it stands out and you don't need to go hunting for it and see if was accidentally modified on the path to the return.15:23.06 
tor8 sebras: in Buffer_readByte, shouldn't that if (at >= buf->len) also throw an exception?15:23.23 
  if (jat < 0 || jat >= buf->len) throw_oob15:24.18 
sebras possibly, let me check InputStream interface15:24.30 
tor8 likewise for readBytes15:24.38 
  etc15:24.46 
sebras tor8: actually InputStream.read() returns -1 on EOF15:25.26 
  it's quite ugly though because in BufferInputStream I just continue incrementing position and relying on that Buffer.readByte() returns -115:26.07 
  the same goes for InputStream attempting to read into byte[]15:27.36 
  -1 is returned upon EOF.15:27.42 
  tor8: oh, that's were there NPE were thrown... if the byte array is null.15:36.16 
  the jdk interface stipulates that.15:36.23 
  I'm going to say we stay with IAE in Buffer() and I make a test in the java code. is that ok?15:36.46 
  if (b == null) throw NPE()15:36.54 
  that way we still conform to InputStream interface while also making all mupdf interfaces behave consistently.15:37.26 
tor8 you mean have duplicate tests for the same thing in Buffer.java and mupdf_native.c?15:38.39 
sebras mmm15:39.04 
  a bit icky.15:39.11 
tor8 the second test in mupdf_native.c would be completely redundant15:39.26 
sebras no, only if you use BufferInputStream.15:39.42 
  if you work on the Buffer directly we could throw there.15:39.54 
tor8 right now we're going to throw IAE and OOB exceptions instead of IO exceptions in BufferInputStream15:43.15 
  try/catch/throw IOException in the BufferInputStream java methods?15:43.37 
  or is the code well behaved and never provokes an OOB?15:44.10 
  sebras: anyway, time to eat. TTYL.15:45.39 
sebras tor8: the idea was that it should be well behaved.16:23.28 
Robin_Watts tor8, sebras, mvrhel_laptop (or fred when he gets back): I have 3 commits on robin/master for mupdf to be reviewed.16:40.08 
  numbers 3/4/5 in the list.16:40.22 
  5 updates memento to keep backtraces on android.16:41.03 
  4 updates the android viewers build so it works with that.16:41.14 
  3 fixes a bug with the GPRF device building.16:41.27 
mvrhel_laptop Robin_Watts: so the one the gprf device. Is that this one? http://git.ghostscript.com/?p=user/robin/mupdf.git;a=blobdiff;f=source/gprf/gprf-doc.c;h=a4658d228a37f7ea6509796a9d1cb2f835dc1c96;hp=6308dc8f1585d26f9c814e78b01f3bab41c0bfe1;hb=2c907c5e034b140d812202b63bb533d23d70445c;hpb=c4cccf356eb9ec2300a7f3250d5b95a788e9213e16:43.36 
Robin_Watts Yes.16:43.45 
  Pants.16:43.48 
  Just a mo, sorry.16:43.55 
  Fixed version online, sorry.16:45.09 
mvrhel_laptop ok. much better :)16:45.36 
  That one lgtm16:45.52 
  I think you will need fred for the others....16:46.20 
Robin_Watts mvrhel_laptop: Possibly. I'm not expecting anyone else to understand the internals of memento, but fred will probably recognise the code from a stackoverflow page we've both been looking at :)16:47.37 
sebras Robin_Watts: why is status in the outerscope in Memento_showStacktrace()?16:56.37 
Robin_Watts sebras: no particular reason.16:59.24 
  I hacked the code around a lot, and that's just where it ended up.16:59.34 
  Would have been neater inside, but too late now.16:59.40 
sebras https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/a01696.html17:01.10 
  output_buffer can be reallocated using realloc().17:01.25 
Robin_Watts sebras: Oh, pants.17:01.50 
sebras but if you can vouch for 256 bytes always being enough I don't have a comment. :)17:01.52 
Robin_Watts I'll fix that, thanks. Ignorance on my part.17:02.08 
sebras also the pointer demangled must be free()d.17:02.35 
  according to the link. presumably because malloc() was used to allocate it. :)17:03.00 
  could the two memento patches be one commit?17:04.17 
Robin_Watts sebras: Yeah, I was hoping to avoid mallocing/freeing.17:04.24 
  sebras: No. One is a change to memento, one is a change to code that uses memento. One I need to pull over into gs :)17:04.44 
sebras Robin_Watts: ok, if you want to keep the history of the two files in synch I see your point.17:06.11 
  Robin_Watts: add missing inclue looks good to me.17:07.49 
  Robin_Watts: the svg device change I think I have reviewed before.17:08.28 
Robin_Watts sebras: Thanks, mvrhel reviewed that in the other tab already, as did fred for the memento things, but he missed your insight into the reallocing.17:08.32 
sebras ok.17:08.44 
Robin_Watts I'll get a followup commit up with your fix in.17:08.52 
sebras I was just curious enough to actually read the manpage of the functions you call. :)17:08.59 
Robin_Watts Not even I did that :)17:09.10 
sebras I didn't read the other tab, sorry. :)17:09.14 
  when I review code I always do. for all functions, mainly for checking boundary conditions.17:09.36 
  I often find something.17:09.40 
Robin_Watts http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=a1a5fc2d220c66f316e4c527de4ae6719c6fba3517:10.07 
sebras Robin_Watts: LGTM, but I don't know if it works now so please test it. :)17:11.25 
Robin_Watts just doing that.17:11.34 
 Forward 1 day (to 2016/09/14)>>> 
ghostscript.com
Search: