| <<<Back 1 day (to 2016/03/30) | 20160331 |
jogux | sebras: nice work! a lot of people seem to really struggle with ndk-gdb | 08:24.09 |
| Robin_Watts: crikey (windows bash). will be interesting to see how that all fits together in practice. the end of cygwin could be nice, assuming the new thing isn't just as bad :) | 08:28.10 |
kens | Werll its just a preview right now. | 08:31.25 |
Robin_Watts | jogux: Run any user mode ubuntu binary on windows. bonkers. | 08:32.01 |
jogux | if I can seriously apt-get any ubuntu package (including X11 etc) that would be seriously nuts. | 08:32.40 |
Robin_Watts | jogux: Yes. apt-get was specifically mentioned. | 08:32.58 |
kens | I don't thnk X is supported as such, though if you have an X servere already.... | 08:33.04 |
Robin_Watts | mingw. | 08:33.09 |
kens | Just running Git would be good from my POV | 08:33.34 |
Robin_Watts | kens: Well, the mingw port of git is fine, and I use the bash shell that comes with that all the time already. | 08:34.11 |
jogux | for me, that might actually make windows a usable alternative to OS X. (I certainly don't put ubuntu as an OS in that camp) | 08:34.34 |
kens | Its what I'm using here, but I would be happy not to have to use it | 08:34.37 |
jogux | Robin_Watts: so the new stuff is based again mingw? | 08:35.00 |
| s/again/around/ | 08:35.05 |
Robin_Watts | No, the new stuff us based on ubuntu. | 08:35.15 |
kens | Nope, robin was pointing out that there is a bash shell in MingW already | 08:35.28 |
jogux | ah | 08:35.45 |
| I wonder how exactly they've got unix code compiling on windows (presumably without any changes to the source) | 08:35.59 |
kens | It isn't recompiled, they translate the sys calls to Windows calls | 08:36.24 |
| In a similar manner to WOW32 I imagine | 08:36.36 |
chrisl | It's the opposite of wine | 08:36.37 |
Robin_Watts | jogux: I believe windows 10 has a new (smaller/saner/more portable) kernel. | 08:36.56 |
jogux | ah, so a full POSIX system library etc (ish) | 08:36.58 |
Robin_Watts | and win32 is just "one thing" implemented on top of that. | 08:37.12 |
| this sounds like a "new thing" implemented on top of that. | 08:37.26 |
kens | Yep, that's pretty much what I meant | 08:37.40 |
Robin_Watts | Yes "posix system library" was probably what I meant by "new thing" | 08:37.41 |
jogux | nods | 08:38.30 |
chrisl | Which is rather what cygwin and mingw were supposed to be, but never seemed to quite make it....... | 08:38.38 |
kens | Well if MS supports it, it shbould get plenty of tractoin I guess | 08:38.54 |
Robin_Watts | to be fair I think the windows 10 changes have rather moved the goalposts in a helpful direction. | 08:39.16 |
jogux | will bash actually be installed by default? | 08:39.58 |
Robin_Watts | implementing posix on win32 is hard. Implementing posix on the new kernel is probably easier (cos I bet the new kernel was designed with this in mind) | 08:40.00 |
| jogux: Appstore install, apparently. | 08:40.08 |
jogux | nods at Robin_Watts | 08:40.24 |
kens | optional install makes szense to me, it would onl;y confuse most Windows users | 08:40.38 |
jogux | I wonder if it cleverly shares configuration etc with windows (so hostname lookups somehow magically get routed through the windows dns subsystem or something) | 08:41.12 |
Robin_Watts | oh, ugh, yes. I can't imagine people would take kindly to that not being the case. | 08:43.23 |
chrisl | OTOH, it's hard to see how they'd make that work..... | 08:44.27 |
jogux | I wonder if this means they've given up on their openssh port to windows | 08:45.12 |
Robin_Watts | chrisl: It depends if the core networking layers run at the win32 level, or the kernel level. | 08:46.35 |
| You'd have to suspect they run at the kernel level, because they have to presumably be shared between WinRT/Win32 already? | 08:47.04 |
chrisl | Possibly... I would have expected things like name resolution would be "user space" rather than kernel, though | 08:48.07 |
jogux | well reading resolv.conf and sending/parsing dns packets is all inside glibc. though actually I think there are some hooks for routing dns to other subsystems (eg. hostnames can be looked up in nis before dns). | 08:48.11 |
| seems likely they'll have to tweak some of the packages in the base system to play nicely. | 08:48.46 |
| wonder if this is the (eventual) death of all the ports of perl/python/apache/etc to native windows. | 08:49.55 |
sebras | kens: though Terminal with bash in is is standard in osx, and osx users are supposedly the less confused of all users (because the ui is so super intuitive). | 09:07.15 |
| least. | 09:08.26 |
| jogux: ndk-gdb wasn't too bad. I was just slightly worried when it spewed out lots of warnings about not finding files, but it turned out that this didn't matter when looking into crash backtraces. | 09:09.29 |
jogux | :) | 09:09.44 |
| more about the bash on windows thing: http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html (though it doesn't answer the questions about dns / x11 etc) | 10:12.03 |
tor8 | jogux: that, combined with the conhost improvements and openssh client *and* server apparently coming to windows is, well, unexpected | 10:14.52 |
| I'm sure it's just an evil plot to get the stubborn people still stuck on windows 7 and older to upgrade to windows 10... | 10:15.56 |
jogux | they've been talking about openssh (client and server) on native windows for at least a year, I've not seen an actual estimated release date yet. :( | 10:16.26 |
| tor8: very possibly. I think it helps them compete with OS X too. | 10:17.03 |
tor8 | jogux: maybe they gave up and implemented a syscall translation layer so they can run the linux binary instead ;) | 10:17.05 |
jogux | :-) | 10:17.11 |
sebras | tor8: review over at sebras/master (unless you already read the logs) | 10:17.29 |
| jogux: tor8: so now whenever linux adds a new syscall microsoft need to update their translation layer. it is indeed wine in reverse. | 10:18.12 |
jogux | nods | 10:18.32 |
tor8 | sebras: pdf_write_options commit LGTM | 10:18.58 |
Robin_Watts | sebras: MS have partnered with ubuntu, so presumably that indicates a commitment to keeping it working. | 10:20.53 |
jogux | I wonder if that means MS are paying ubuntu. | 10:21.21 |
| I never really understood how ubuntu manage to make enough money to keep going | 10:21.32 |
tor8 | jogux: if it's anything like redhat of old ... support contracts with big companies | 10:21.55 |
jogux | yeah, seems likely. | 10:23.05 |
Robin_Watts | tor8: You're not waiting for anything from me for the release, right? | 10:33.52 |
Robin_Watts | will start to prod at this muso thing if not. | 10:34.15 |
tor8 | Robin_Watts: nope. though you could review the java stuff on tor/master if you've got a few minutes | 10:34.55 |
Robin_Watts | sebras: Yell if you get a mo to talk about the delta things, otherwise it will have to wait til I get back. | 10:35.04 |
| tor8: sure. Will look now. | 10:35.10 |
| platform/android/viewer makes reference to the mupdf.c java classes, not the mupdf_native.c ones, I thought? | 10:36.56 |
tor8 | Robin_Watts: oh ... I wonder if this code uses your halfway approach? | 10:37.26 |
| that wouldn't be good for the release | 10:37.34 |
Robin_Watts | Ah, no, it's fine. | 10:38.06 |
| mupdf.c is in platform/android/viewer | 10:38.21 |
| which is perfect cos it's specific to the android viewer :) | 10:38.35 |
| platform/java/Makefile: OS := $(shell uname) | 10:41.59 |
| Could that be OS ?= $(shell uname) ? | 10:42.08 |
tor8 | Robin_Watts: yes, that's waht we do in Makerules. will change. | 10:42.53 |
Robin_Watts | Other than that, I can't see any problems. | 10:44.13 |
| So great, go for it. | 10:44.17 |
tor8 | Robin_Watts: so, drop the mupdf_native.c from android/viewe/jni/Android.mk and fix the uname in platform/java/Makefile | 10:45.16 |
Robin_Watts | No, just fix the uname. | 10:45.50 |
| Well... | 10:46.06 |
| We could drop mupdf_native.c, as long as we don't include the mupdf.jar built from inside platform/java. | 10:46.58 |
tor8 | Robin_Watts: ah, right. | 10:49.13 |
| I think we do | 10:49.21 |
| but the viewer doesn't use the 'fitz' package anywhere I can see | 10:49.34 |
Robin_Watts | It probably doesn't. | 10:49.43 |
| So we could drop both the mupdf.jar and mupdf_native.c | 10:50.02 |
| which might make the build easier | 10:50.09 |
tor8 | Robin_Watts: anything more than what's on tor/master needed to drop the mupdf.jar? | 10:58.12 |
Robin_Watts | tor8: Looks plausible to me. | 10:59.01 |
tor8 | Robin_Watts: thanks. I'll squish and push then. | 11:01.54 |
kens | Further to the bash thing: | 11:03.10 |
| http://www.theregister.co.uk/2016/03/31/microsoft_visual_studio_c_plus_plus_for_linux/ | 11:03.10 |
tor8 | Robin_Watts: so ... all that work we did to optimize text layout is gone now that harfbuzz is in the pipeline making things slow | 14:16.19 |
| how do you feel about having two branches of the layout code, and skip harfbuzz if script is one of CJK,latin,greek,cyrillic and the font doesn't have opentype tables? | 14:17.27 |
Robin_Watts | tor8: I am tempted by the idea of keeping it so that we can build within harfbuzz. | 14:23.08 |
| Cos I can imagine that harfbuzz's C++ dependency will be annoying to some. | 14:23.34 |
kens | build within == build without ? | 14:23.56 |
Robin_Watts | kens: Yes, thanks, sorry. | 14:24.07 |
kens | NP just checking :) | 14:24.34 |
Robin_Watts | Not sure how I feel about the idea of having both paths in the same build and "guessing" which one to use (unless we can be 100% accurate about it) | 14:24.36 |
tor8 | Robin_Watts: I'd 'guess' per word | 14:25.23 |
Robin_Watts | tor8: Which bit is slow? The layout, or the rendering, or both? | 14:25.23 |
| If we could bear to call harfbuzz once during the initial measurement, and then cache a bit per word meaning "need shaping" or not. | 14:26.19 |
| We have the bidi stuff running too now - some of the slowness may be down to that. | 14:27.10 |
tor8 | I'd need to profile properly to know if it's slow in layout or rendering. I suspect both, since we shape twice | 14:27.37 |
| without opentype tables, it looks like memset is the culprit | 14:28.26 |
| with opentype tables, a lot of time is spent in C++ template functions with names that imply opentype lookups | 14:28.52 |
Robin_Watts | memset being the culprit smells like page blanking to me. | 14:29.11 |
| Certainly that was the big hitter on the raspberry pi. | 14:29.24 |
| Doing opentype lookups is expensive. | 14:29.59 |
tor8 | 7.6s with NotoSerif, 7.2s with Times (no opentype tables) | 14:30.14 |
Robin_Watts | oh, well, that doesn't seem like a huge difference. | 14:30.35 |
tor8 | on a document that used to take 0.9s before we added harfbuzz | 14:31.08 |
Robin_Watts | oh, right. | 14:31.30 |
tor8 | and most of the time pre-harfbuzz was spent parsing and matching css | 14:31.31 |
| so I think we've got a factor 20-50 slowdown with harfbuzz | 14:31.42 |
Robin_Watts | So that implies that it's not the opentype lookups that are the slow bits. | 14:31.56 |
tor8 | yeah, opentype or no, it's harfbuzz doing its own encoding and metric lookups on the font tables without our caches to help | 14:32.21 |
| I also suspect we don't actually do opentype lookups given how we invoke harfbuzz | 14:32.38 |
| it doesn't look like we're getting ligatures or kerning, which are opentype lookups | 14:32.51 |
Robin_Watts | We are getting shaping though. | 14:33.11 |
| so clearly that's SOME opentype lookups working. | 14:33.18 |
tor8 | yes, but I suspect it's only applying the minimum opentype lookups needed | 14:34.06 |
| IFF script is latin/greek/cyrillic AND no opentype tables; then harfbuzz should be giving the exact same results as we used to get | 14:34.56 |
| so if we can bypass it then, most documents would get us full speed | 14:35.10 |
Robin_Watts | tor8: As a short term fix (for the release) we could have it as a build option? | 14:35.21 |
tor8 | I would like a build option regardless :) | 14:35.34 |
| Robin_Watts: 60% of the time is spent in FT_Get_Advance (called from hb_shape) | 14:42.53 |
Robin_Watts | And hb_shape is not doing any caching. Great. | 14:44.03 |
tor8 | 90% of the time total is spent in fz_layout_document | 14:44.26 |
Robin_Watts | tor8: how much time in the bidi stuff? | 14:45.44 |
tor8 | 4-5% or so | 14:46.32 |
Robin_Watts | ooh, simple hack.... | 14:46.37 |
| in walk_string, we run through encoding each char and breaking into fonts, right? | 14:47.09 |
tor8 | yes... | 14:47.26 |
Robin_Watts | If we encode the entire string in a font with no opentype tables (like the default one), then we can avoid harfbuzz. | 14:47.48 |
| We can have font->shapeless set to true if it's one of our base14 fonts. | 14:48.38 |
| and then work off that. | 14:48.46 |
tor8 | sort of what I was suggesting with my test | 14:48.59 |
| it should be easy enough to detect whether a font has opentype tables | 14:49.12 |
| I've got to go shortly, and I'll be out most of tomorrow (got a dentist appointment in the afternoon). we should get this sorted before release, IMO. a 20x slowdown from last release is really not good :( | 14:49.19 |
Robin_Watts | I'm flying at 3am, and have yet to pack, so I suspect I won't get it done. | 14:49.48 |
tor8 | if you could bash up a conditional compile, I can see about getting that selected dynamically at runtime... or I'll just do it myself then :) | 14:50.05 |
malc_ | tor8: haha :) got a dentist appointment at 12:00 tomorrow | 14:50.07 |
| great teeth hurt alike | 14:50.15 |
Robin_Watts | tor8: I'll pack now, and then see what I have time for. | 14:50.37 |
jogux | amusing, apparently BMW i3 cars run cups: https://github.com/edent/BMW-OpenSource (but not ghostscript afaics :) ) | 14:51.09 |
tor8 | Robin_Watts: I've got a commit on tor/master which picks a (IMO) better default font. I took the Charis SIL font and stripped out all the opentype smarts for language alternates, smallcaps, etc so it's only got the basic glyph coverage | 14:51.33 |
| that got the size down from 1.5mb per face to 130k | 14:51.43 |
Robin_Watts | tor8: So that's an extra font? | 15:25.18 |
| Can't see that on tor/master | 15:25.54 |
sebras | Robin_Watts: I can't see that one either. I think he forgot to push it. | 16:32.48 |
neverpanic | The ghostscript-9.19.tar.gz tarball at https://github.com/ArtifexSoftware/ghostpdl-downloads/releases doesn't match the SHA1 in the SHA1SUMs file, and I could swear that the checksum was different three days ago | 21:02.46 |
| Is that a known issue? | 21:02.52 |
| funny, I take a look at the logs and work follows me everywhere⦠| 21:07.37 |
| jogux: It's AGPL, and -3 at that. Wouldn't be allowed to touch it with a ten foot pole :/ | 21:08.02 |
salman_ | hi? | 21:57.44 |
ghostbot | rumour has it, hi is there a way to include mupdf headers in c++ headers? I tried using extern "c" but im always getting "_pdf_obj_read_state_s already defined in ..." | 21:57.44 |
salman_ | send pclxl file to pritner | 21:58.20 |
| how to | 21:58.27 |
| are there humnas here? | 21:58.35 |
| Forward 1 day (to 2016/04/01)>>> | |