| <<<Back 1 day (to 2017/05/21) | 20170522 |
tor8 | sebras (for the logs): we already ship mupdf-gl for windows | 08:46.23 |
sebras | tor8: oh, I wasn't aware. | 09:19.21 |
tor8 | must be because you don't ever use windows ;) | 09:19.44 |
| mupdf-gl has been cross platform since day one | 09:19.54 |
| it's one of the reasons for making it... | 09:20.06 |
| sebras: the jsdtoa.c thing is curious ... it implies there's a buffer overflow in plan9's libc | 09:22.13 |
sebras | yeah. | 09:24.34 |
| I just moved the mujs fix into mupdf, assuming that we would hit the same issue there. | 09:24.54 |
tor8 | sebras: might be worth looking into https://git.musl-libc.org/cgit/musl/tree/src/internal/floatscan.c ? | 09:27.27 |
sebras | tor8: did you try to reproduce the issue yourself? I tried with valgrind, but it didn't work. | 09:27.36 |
| only ASAN found the issue. | 09:27.47 |
| tor8: seems like that file does similar things wrt to KMAX. but perhaps their boundary checking is better. | 09:29.08 |
tor8 | sebras: I have not, I just checked my mail and saw you mentioned it | 09:29.40 |
sebras | ok, while looking into this I did see that you have been fixing a boundary bug before. | 09:30.12 |
| and I didn't ensure that I caught all of them either. | 09:30.30 |
electrolex | sebras: thanks for your help yesterday (I was able to compile a Linux Mint version) | 10:24.09 |
| I went to school for "Computer Science" but I'm also an artist | 10:25.19 |
| This is my deviantart page: http://lexsupernova.deviantart.com/ | 10:25.36 |
Robin_Watts | tor8: Did you look at the patch from baskerville? https://gist.github.com/baskerville/2f883303bb81c3ecd68d1478a9a8394e | 11:25.02 |
| looks reasonable on the face of it. | 11:25.06 |
| The SVG spec he linked does imply that commas are optional. | 11:25.24 |
tor8 | Robin_Watts: yes, I have a commit for that on tor/master | 11:25.35 |
Robin_Watts | cool. | 11:25.51 |
avih | tor8: did you try to compare perf with the new grisu2? are you still considering my patch? | 15:34.20 |
sebras | avih: the new grisu2 is about 10x faster. | 15:43.03 |
avih | sebras: that's great. though my small patch probably makes at least 2x faster yet. | 15:44.38 |
| (for plain ints) | 15:44.54 |
| (i'm assuming) | 15:45.49 |
| my measurements on few systems show at least 20x compared to the old code. | 15:46.31 |
| (with my patch) | 15:46.40 |
sebras | ok, I have no idea what you are patch is. | 15:59.09 |
| or where it is. | 15:59.25 |
| Robin_Watts: ping? | 16:46.43 |
Robin_Watts | pong | 16:46.57 |
sebras | Robin_Watts: I'm looking at how we use hb_buffer_set_language(). | 16:47.02 |
| Robin_Watts: we call it sometimes in html-mode if there's a lang attribute on our tag I think. | 16:47.22 |
| Robin_Watts: but if there is no lang attributes then we never call it. | 16:47.37 |
Robin_Watts | sounds plausible. | 16:47.45 |
sebras | in this case harfbuzz will use locale to try to determine what language is used. | 16:47.54 |
Robin_Watts | I think it's used for the han unification mess. | 16:47.59 |
sebras | is the correct behaviour in our opinion? | 16:48.02 |
Robin_Watts | sebras: I might prefer a system wide 'default' setting to a locale, personally. | 16:48.28 |
sebras | Robin_Watts: yes, and this is what harfbuzz defaults to in the absence of any lang attributes. | 16:49.10 |
Robin_Watts | sebras: Have at it. | 16:49.23 |
sebras | Robin_Watts: I just wasn't convinced that this is what we wanted. | 16:49.24 |
| Robin_Watts: also I'm seeing memory leaks in harfbuzz. | 16:49.46 |
| Robin_Watts: it allocates a bunch of stuff which are either never freed or freed by registering atexit() callbacks. | 16:50.23 |
Robin_Watts | HarfBuzz uses static inited buffers, so yes, it leaks. | 16:50.28 |
sebras | Robin_Watts: we can't use the callbacks because ctx is invalid at that point. :-P | 16:50.34 |
Robin_Watts | Yes. | 16:50.38 |
| Given that it's a constant sized leak per library instance, I count it as the cost of doing business. | 16:51.06 |
| To fix it properly would require us to alter harfbuzz to pass a context around, I believe. | 16:51.31 |
sebras | Robin_Watts: not really, they could provide their own static list of atexit() like callbacks which can either be triggered by a single atexit() callback or by the app at any convenient time. | 16:53.01 |
Robin_Watts | sebras: Urgh, yes, I guess. | 16:53.23 |
| I'm more inclined not to worry about it, because it's the safest class of leak. | 16:53.51 |
avih | sebras: https://github.com/ccxvii/mujs/pull/40 | 16:56.00 |
sebras | Robin_Watts: the reason I'm looking at this is because I noticed that the language setting saved inside harfbuzz is allocated using strdup() and freed using free(). | 17:00.21 |
| this is fine as long as we don't provide any allocator. | 17:00.31 |
| but we do. | 17:00.33 |
Robin_Watts | Ah. | 17:00.43 |
| How are we hooking free? | 17:00.57 |
sebras | #define free hb_free | 17:01.10 |
| but I think this is not a real problem. | 17:01.17 |
| because we never register the exist handlers so finish() is never called on the object and thus fz_free() is never called for those settings. | 17:01.42 |
Robin_Watts | #define strdup hb_strdup then | 17:01.55 |
sebras | yeah. | 17:02.58 |
| Forward 1 day (to 2017/05/23)>>> | |