00:05.22 Opened logfile log/20131001. 00:05.22 LOG: last message repeated 3 times 00:05.22 >>> join/#ghostscript Fandekasp (~Fandekasp@27-32-19-26.static.tpgi.com.au) 00:10.35 Seen: Flushed 1 entries. 00:11.07 --- Saved uptime records. 00:15.19 Chans: (ghostbot) in:#ghostscript 00:16.01 FORK(4653) --- fork starting for 'RSSFeeds', PID == 4653, bot_pid == 11990 --- 00:16.02 FORK(4653) !ERROR! cannot load my module: RSSFeeds 00:16.02 FORK(4653) fork: took 1s for RSSFeeds. 00:16.02 FORK(4653) --- fork finished for 'RSSFeeds' --- 00:36.49 ircCheck: possible lost in space; checking.Tue Oct 1 00:36:49 2013 00:36.49 >ghostbot< TEST 00:36.49 IRCTEST: Yes, we're alive. 00:46.06 FORK(5822) --- fork starting for 'RSSFeeds', PID == 5822, bot_pid == 11990 --- 00:46.07 FORK(5822) !ERROR! cannot load my module: RSSFeeds 00:46.07 FORK(5822) fork: took 1s for RSSFeeds. 00:46.07 FORK(5822) --- fork finished for 'RSSFeeds' --- 00:47.33 >>> Noldorin has signed off IRC (Quit: Computer has gone to sleep.) [#ghostscript] 00:47.33 Chans: (ghostbot) in:#ghostscript 00:49.27 >>> plinnell has signed off IRC (Ping timeout: 252 seconds) [#ghostscript] 00:56.02 >>> join/#ghostscript sojic (~sojic@92.55.124.155) 01:03.32 Chans: (ghostbot) in:#ghostscript 01:11.48 --- Saved uptime records. 01:16.22 FORK(10281) --- fork starting for 'RSSFeeds', PID == 10281, bot_pid == 11990 --- 01:16.23 FORK(10281) !ERROR! cannot load my module: RSSFeeds 01:16.23 FORK(10281) fork: took 1s for RSSFeeds. 01:16.23 FORK(10281) --- fork finished for 'RSSFeeds' --- 01:20.06 Chans: (ghostbot) in:#ghostscript 01:41.26 ircCheck: possible lost in space; checking.Tue Oct 1 01:41:26 2013 01:41.26 >ghostbot< TEST 01:41.26 IRCTEST: Yes, we're alive. 01:47.06 FORK(19555) --- fork starting for 'RSSFeeds', PID == 19555, bot_pid == 11990 --- 01:47.07 FORK(19555) !ERROR! cannot load my module: RSSFeeds 01:47.07 FORK(19555) fork: took 1s for RSSFeeds. 01:47.07 FORK(19555) --- fork finished for 'RSSFeeds' --- 01:51.50 Chans: (ghostbot) in:#ghostscript 01:52.32 >>> sojic has signed off IRC (Remote host closed the connection) [#ghostscript] 02:07.34 config (#ghostscript): backward-compatible option: found param{factoidDeleteDelay} (0) instead of chan option 02:08.04 Chans: (ghostbot) in:#ghostscript 02:08.26 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 02:08.26 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 02:11.58 --- Saved uptime records. 02:17.34 FORK(16363) --- fork starting for 'RSSFeeds', PID == 16363, bot_pid == 11990 --- 02:17.35 FORK(16363) !ERROR! cannot load my module: RSSFeeds 02:17.35 FORK(16363) fork: took 1s for RSSFeeds. 02:17.35 FORK(16363) --- fork finished for 'RSSFeeds' --- 02:23.50 Chans: (ghostbot) in:#ghostscript 02:45.18 LOG: last message repeated 3 times 02:45.18 ircCheck: possible lost in space; checking.Tue Oct 1 02:45:18 2013 02:45.18 >ghostbot< TEST 02:45.18 IRCTEST: Yes, we're alive. 02:48.02 FORK(1630) --- fork starting for 'RSSFeeds', PID == 1630, bot_pid == 11990 --- 02:48.03 FORK(1630) !ERROR! cannot load my module: RSSFeeds 02:48.03 FORK(1630) fork: took 1s for RSSFeeds. 02:48.03 FORK(1630) --- fork finished for 'RSSFeeds' --- 02:51.18 >>> join/#ghostscript jghali_ (~jghali@ADijon-157-1-103-86.w90-56.abo.wanadoo.fr) 02:51.19 >>> jghali has signed off IRC (Read error: Connection reset by peer) [#ghostscript] 02:55.48 Chans: (ghostbot) in:#ghostscript 03:01.21 >>> tkamppeter has signed off IRC (Read error: Operation timed out) [#ghostscript] 03:11.42 Chans: (ghostbot) in:#ghostscript 03:12.04 --- Saved uptime records. 03:14.44 >>> join/#ghostscript tkamppeter (~till@p5DDB8164.dip0.t-ipconnect.de) 03:18.28 FORK(4612) --- fork starting for 'RSSFeeds', PID == 4612, bot_pid == 11990 --- 03:18.29 FORK(4612) !ERROR! cannot load my module: RSSFeeds 03:18.29 FORK(4612) fork: took 1s for RSSFeeds. 03:18.29 FORK(4612) --- fork finished for 'RSSFeeds' --- 03:27.28 Chans: (ghostbot) in:#ghostscript 03:48.16 ircCheck: possible lost in space; checking.Tue Oct 1 03:48:16 2013 03:48.16 >ghostbot< TEST 03:48.16 IRCTEST: Yes, we're alive. 03:48.36 FORK(20247) --- fork starting for 'RSSFeeds', PID == 20247, bot_pid == 11990 --- 03:48.37 FORK(20247) !ERROR! cannot load my module: RSSFeeds 03:48.37 FORK(20247) fork: took 1s for RSSFeeds. 03:48.37 FORK(20247) --- fork finished for 'RSSFeeds' --- 03:59.00 Chans: (ghostbot) in:#ghostscript 04:12.34 --- Saved uptime records. 04:14.46 Chans: (ghostbot) in:#ghostscript 04:18.48 FORK(14972) --- fork starting for 'RSSFeeds', PID == 14972, bot_pid == 11990 --- 04:18.49 FORK(14972) !ERROR! cannot load my module: RSSFeeds 04:18.49 FORK(14972) fork: took 1s for RSSFeeds. 04:18.49 FORK(14972) --- fork finished for 'RSSFeeds' --- 04:33.08 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-50-159-85-185.hsd1.wa.comcast.net) 04:47.04 Chans: (ghostbot) in:#ghostscript 04:48.56 FORK(8696) --- fork starting for 'RSSFeeds', PID == 8696, bot_pid == 11990 --- 04:48.57 FORK(8696) !ERROR! cannot load my module: RSSFeeds 04:48.57 FORK(8696) fork: took 1s for RSSFeeds. 04:48.57 FORK(8696) --- fork finished for 'RSSFeeds' --- 04:49.41 rayjj: I can log into peeved just fine. Should I set it up as a cluster node? 04:54.34 Robin_Watts_ and rayjj: I've added peeved to bind; it will take another hour or so for the update to propagate. 05:03.20 Chans: (ghostbot) in:#ghostscript 05:11.58 Seen: Flushed 1 entries. 05:12.38 --- Saved uptime records. 05:18.08 >>> join/#ghostscript Robin_Watts (~chatzilla@109.176.179.128) 05:19.24 FORK(28545) --- fork starting for 'RSSFeeds', PID == 28545, bot_pid == 11990 --- 05:19.25 FORK(28545) !ERROR! cannot load my module: RSSFeeds 05:19.25 FORK(28545) fork: took 1s for RSSFeeds. 05:19.25 FORK(28545) --- fork finished for 'RSSFeeds' --- 05:20.27 >>> Robin_Watts_ has signed off IRC (Ping timeout: 260 seconds) [#ghostscript] 05:20.36 Chans: (ghostbot) in:#ghostscript 05:31.02 done for the night 05:31.05 >>> mvrhel_laptop has signed off IRC (Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]) [#ghostscript] 05:36.50 Chans: (ghostbot) in:#ghostscript 05:49.42 FORK(21526) --- fork starting for 'RSSFeeds', PID == 21526, bot_pid == 11990 --- 05:49.43 FORK(21526) !ERROR! cannot load my module: RSSFeeds 05:49.43 FORK(21526) fork: took 1s for RSSFeeds. 05:49.43 FORK(21526) --- fork finished for 'RSSFeeds' --- 06:09.10 LOG: last message repeated 3 times 06:09.10 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 06:09.10 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 06:10.00 Chans: (ghostbot) in:#ghostscript 06:12.22 Seen: Flushed 1 entries. 06:12.52 --- Saved uptime records. 06:19.48 FORK(20891) --- fork starting for 'RSSFeeds', PID == 20891, bot_pid == 11990 --- 06:19.49 FORK(20891) !ERROR! cannot load my module: RSSFeeds 06:19.49 FORK(20891) fork: took 1s for RSSFeeds. 06:19.49 FORK(20891) --- fork finished for 'RSSFeeds' --- 06:25.34 Chans: (ghostbot) in:#ghostscript 06:36.24 ircCheck: possible lost in space; checking.Tue Oct 1 06:36:24 2013 06:36.24 >ghostbot< TEST 06:36.24 IRCTEST: Yes, we're alive. 06:41.34 Chans: (ghostbot) in:#ghostscript 06:44.07 >>> join/#ghostscript sojic (~sojic@92.55.124.155) 06:45.59 >>> join/#ghostscript kens (~Miranda@87.113.186.27) 06:50.12 FORK(4617) --- fork starting for 'RSSFeeds', PID == 4617, bot_pid == 11990 --- 06:50.13 FORK(4617) !ERROR! cannot load my module: RSSFeeds 06:50.13 FORK(4617) fork: took 1s for RSSFeeds. 06:50.13 FORK(4617) --- fork finished for 'RSSFeeds' --- 06:50.32 >>> sojic has signed off IRC (Remote host closed the connection) [#ghostscript] 06:51.07 >>> join/#ghostscript plinnell (~mrdocs@opensuse/member/mrdocs) 06:57.15 >>> join/#ghostscript tor7 (~tor@h-94-176.a230.priv.bahnhof.se) 06:57.25 Chans: (ghostbot) in:#ghostscript 06:57.50 tor7, we're out of luck on premium economy 06:58.22 Delta say they can't book it on their systems, because they don't do PE, we need to tlak to Virgin. Virgin say they can't book it, we need to talk to Delta.... 06:58.40 My current planis to try and upgrade at the airport...... 07:00.01 damn. well, at least that should mean that nobody else can either. 07:00.17 I think if they have booked with Virgin direct they can 07:00.32 oh. yeah. :( 07:00.43 still early mornin' 07:00.43 I have no idea why this is so difficult. I can understand Delta's position, their system doesn't *do* PE, Virgin baffles me totally 07:01.45 incompetent clerks? 07:01.47 Of course, teh Virgin manager told Stella we could have booked the whole trip with them, I pointed out we couldn't because they don't fly to Maui after October 31st. Last I heard he was still trying to make the booking to prove me wrong 07:02.19 SO yes, incompetent staff (and this bunch are in the UK, they are only a few miles from here....) 07:09.03 kens: I also need to get flights to gatwick, still haven't decided on which day to fly back. given how early we arrive at LHR, I'm considering taking an afternoon/evening flight back out of gatwick. 07:09.24 tor7 that would work, we can get you to the airport in time for a afternoon flight 07:09.41 As long as you think you can stay awake long enough to get home :-) 07:09.55 that might be problematic :( 07:10.10 but it's easier to take brief naps on flights east than west, at least 07:10.17 OMG we arrive at 0635 07:11.06 Well, we should probably be back here by 9am so we could get you to Gatwick in time for a flight anytime after say 11 am 07:11.22 Afternoon would probably be safer though 07:11.44 afternoon would be less stressful, and allow for freshening up and lunch 07:11.57 :-) 07:12.47 Seen: Flushed 2 entries. 07:13.18 --- Saved uptime records. 07:13.28 Chans: (ghostbot) in:#ghostscript 07:15.45 kens: what time would be good to arrive on the 5th? 07:15.55 Any time is fine 07:16.17 Ah, before 5pm, we have to tkae Melanie riding I think that night 07:16.29 * kens/#ghostscript checks calendar 07:16.45 hm, they only have 3 flights on the 10th, 7:00, 12:50 and 19:50... 07:17.05 Oh well any of those work, we'll be home again by ~8pm 07:17.16 D'Oh! 07:17.25 Wrong way :-) 07:17.48 12:50 is probably possible, but a bit risky 07:18.01 I can take the flight arriving at 11:25 in that case, it's the most expensive (no wonder, best scheduled time, but the price diff is less than the train fare back and forth to the airport...) 07:18.11 :-) 07:18.18 11:25 is just fine 07:19.06 Flying out at 12:50 on the 10th should be OK I think 07:19.26 Allows 2 hours for any problems and the M25 isn't usually that bad 07:19.55 yeah, but missing that connection could be expensive if missed (since they probably won't hear of any excuses...) 07:20.18 still, the 19:50 flight gets me home at around midnight 07:20.27 Serously it should be fine, we'll be in a taxi coming home, if we get tight we'll go striaght to Gatwick 07:20.35 so not very tempting... 07:20.46 FORK(14645) --- fork starting for 'RSSFeeds', PID == 14645, bot_pid == 11990 --- 07:20.47 FORK(14645) !ERROR! cannot load my module: RSSFeeds 07:20.47 FORK(14645) fork: took 2s for RSSFeeds. 07:20.47 FORK(14645) --- fork finished for 'RSSFeeds' --- 07:21.14 Its only ~1 hour from Heathrow to home if the roads are OK, and about 30 minutes to get out of the airport 07:21.51 So we could be here by 8 am on a very good day, and shoud certainly be here by 9. Its 30 minutes from here to Gatwick airport. 07:22.08 And we need to get you there by 11:30'ish, so leave here at 11 am. 07:22.13 SO 2 hours leeway 07:22.25 right. easyjet sells one-way flights the same day for no more than the regular highest price they list 07:22.34 so that ought not be a significant issue 07:22.53 Seems reasonable then 07:23.16 their "business" pricing is still cheaper than economy flying BA or SAS :) 07:23.47 :-) I have no idea what business class on EasyJet woudl be, maybe a free cup of coffee ? 07:24.03 guaranteed space in the cabin for your hand baggage :) 07:24.26 it's one of the items on their "FLEXI" rate upgrade list 07:24.26 Ah! 07:24.39 Yes, we used that flyong to Berlin 07:24.42 but it also gets you the airport benefits of fast track and all that stuff 07:24.53 Yes, its actually worth it for us 07:25.08 and not very expensive either 07:25.09 and you get to put a bag in the hold... 07:25.15 no, it's still quite reasonable pricing 07:25.28 Oh didn't knwo that, we flew cabin bags only 07:25.36 I'll just remember to buy a new cabin bag, mine is good but annoyingly large at times 07:25.51 the wheels sometimes make it not fit on the small city hopper planes :( 07:26.00 I think I need a smaller laptop, the bag is fine.... 07:26.28 kens: You can take my laptop if you can stomach using a Mac ;) 07:26.37 Macs hate me 07:26.45 I used to be abl;e to break them by walking past 07:27.01 Admitteldy that was in the days of system 7 07:27.01 I've been looking (drooling) at the Asus Zenbook line of 13" laptops with 1920x1080 IPS panels 07:27.21 AH yes, there was a new Asus being reviewed hte other day 07:27.22 kens: well, system 7 was quite capable of breaking all on its own with no help from the user :) 07:27.27 :-) 07:27.46 shoe-horning multi-tasking into that OS, what were they thinking? 07:27.52 Also I saw a runour on the reg about a 280 dpi screen, the rumour was Apple were going to use it 07:28.31 http://www.theregister.co.uk/2013/09/30/sharp_hopes_to_wow_apple_with_igzo_4k_laptop_display/ 07:29.18 Chans: (ghostbot) in:#ghostscript 07:33.03 bah. dollar's plummeted again. it's not good, this bankrupt economy mess... 07:33.18 Its the guvmint this time. 07:33.28 Failing to agree a budget 07:33.49 My monies! They're trapped in a dollar account :( 07:33.55 Or at least, that's what caused Wall Street to drop 07:34.29 You should complain to your US senator, or congreeman :@) 07:34.30 if they can't pay their loans, will the banks of china take their homes? would be fun, if the white house turned into bank of china :) 07:38.23 Apparently air traffic control isn't one of the affected armsof government 07:38.59 kens: okay, flights to gatwick booked. coming in the 5th at 11:25 and departing the 10th at 12:50 07:39.11 Cool, we'll see you then 07:40.39 Sent myself an email so I won't forget 07:41.22 kens: I can forward the itinerary email if you like 07:41.37 Not a bad idea, then I'll have your flight number too 07:42.09 kens: sent. 07:42.13 THanks 07:43.20 Got it, thanks Tor 07:44.07 >>> join/#ghostscript chrisl (~chrisl@cpc9-ando5-2-0-cust95.15-1.cable.virginmedia.com) 07:44.16 Ah I was just wondering where chrisl was 07:44.52 Chans: (ghostbot) in:#ghostscript 07:45.34 What now, or over the last few days? 07:45.41 Just now 07:45.53 I knew you had holiday until today 07:46.09 I've got a weird problem I'd like to talk ove rwith you when you have a little time 07:46.43 Okay, let me finish my e-mail, then I'll be good 07:46.58 No problem, I'll fetch a coffee, brb. Also will send an email with an attachment 07:51.16 FORK(4666) --- fork starting for 'RSSFeeds', PID == 4666, bot_pid == 11990 --- 07:51.17 FORK(4666) !ERROR! cannot load my module: RSSFeeds 07:51.17 FORK(4666) fork: took 1s for RSSFeeds. 07:51.17 FORK(4666) --- fork finished for 'RSSFeeds' --- 07:58.21 kens: http://press.asus.com/asus-announces-zenbook-ux301-and-ux302-with-sleek-glass-finish/ these ones? 08:00.56 Chans: (ghostbot) in:#ghostscript 08:04.54 THat looks like it 08:05.36 The reviewer wasn't impressed with the Bang & Olufsen audio though,thought the sub-woofer was an irritiant and the regular speakers tinny 08:06.36 >>> jghali_ has signed off IRC (Quit: Quitte) [#ghostscript] 08:06.57 Good grief, someone actually using txtwrite 08:07.19 my only real gripe with that would be the 16:9 aspect ratio... 08:07.29 the chromebook pixel is oh so tempting 08:07.34 :-) 08:08.16 I can happily live without the touch screen.... 08:12.56 Seen: Flushed 3 entries. 08:14.08 --- Saved uptime records. 08:16.20 Chans: (ghostbot) in:#ghostscript 08:21.24 FORK(18319) --- fork starting for 'RSSFeeds', PID == 18319, bot_pid == 11990 --- 08:21.25 FORK(18319) !ERROR! cannot load my module: RSSFeeds 08:21.25 FORK(18319) fork: took 1s for RSSFeeds. 08:21.25 FORK(18319) --- fork finished for 'RSSFeeds' --- 08:21.51 kens: okay, I'm looking at the code now....... 08:21.57 chrils OK 08:22.41 The problem is that if I apply that block of code, japan-.ps works and the other one (activePDF file) doesn't. If I remove it the reverse is true. 08:23.05 Running the test suite wiht it removes shows a number of diffs, about half of which are greressions and half are progressions. 08:23.14 So clearly there's something really screwed up going on 08:23.22 So, this code is called in the context of a show operation? 08:23.43 Yes, in this case (I think) a regular show. It was an xshow but I changed it 08:24.08 We are modifying the current poitn before beginning to 'draw' the text, and I can't really figure out why. 08:24.51 It is, of course a complex case. Its a CIDFont where the font and descendant have different matrices, and its in teh context of a Windows job, so the y axis is flipped 08:25.01 and the active PDF file is rotated as well. 08:25.10 In that case, my first confusion is: during a show, IIRC, the gstate CTM already "includes" the font matrix. So why do the transform with the font matrix, and then the ctm? 08:25.35 I wouldn't count on the CTM including the font matrix, this is pdfwrite 08:26.05 But it looks like we are using those matrices to get the width of the glyph into the current space 08:26.17 and tehn 'add' it to the current point 08:27.02 I'm just trying to figure out where the rotation takes place in the activePDF file, to see if I can take it out tooo 08:27.03 >>> join/#ghostscript mupdf_noob (d5fa73fa@gateway/web/freenode/ip.213.250.115.250) 08:27.54 Good morning. Are there any MuPDF developers here? 08:29.20 I'm having difficulties in compiling the source on CentOS linux. It's a headless virtual machine and make fails dramatically with following error messages about X11: platform/x11/x11_main.c:3:22: error: X11/Xlib.h: No such file or directory 08:30.26 chrisl OK so I removed the rotation 08:30.44 Does, MuPDF require desktop environment or is it possible to compile it for a headless VM? All I need is the mudraw program. 08:31.37 kens: so, in both cases the the Type 0 font has rotation in the matrix, and so does the subfont. But in japan-.ps the ctm rotated, and in the other file it isn't 08:32.02 Correct. Except that I've now removed the rotation from the other file too 08:32.39 the CTM in the text state does not include the font matrices at this point 08:32.39 Chans: (ghostbot) in:#ghostscript 08:32.48 which is why (I guess) we apply them to the width 08:33.05 CTM now is [0.12 0 0 0.12 0 0] 08:33.13 I'm wondering if, in a composite font, we should only transform by the subfont matrix, and not the Type 0 matrix..... 08:33.23 >>> join/#ghostscript sojic (~sojic@92.55.124.139) 08:33.43 I think we've been round this loop with the rendering code, which is why I wanted to dicsuss it with you, I cannot remember the answer 08:34.09 FWIW with the CTM 'normalised' I get the same wrong answer 08:34.21 and if I remove that block of code , the correct result 08:35.11 >>> mupdf_noob has signed off IRC (Quit: Bye,,,) [#ghostscript] 08:35.12 I think it is required to apply the parent FotnMatrix, as that seems to contain the font scaling 08:35.47 I do a breakpoint on the if (v.x != 0... line 08:36.19 with the 'green' file I see subfont matrix is [0 1 -1 0 0 0] 08:36.49 parent FontMatrix is [0 75 75 0 0 0] 08:36.58 CTM is [0.12 0 0 0.12 0 0] 08:37.04 let me try the japan file. 08:37.40 mupdf_noob should have waited one more minute before losing patience... 08:37.46 tor7 agreed 08:37.54 chrisl subfont FontMatrix is the same 08:38.15 parent FontMatrix is [0 88 88 0 0 0] 08:38.47 CTM is [0.12 0 0 -0.12 0 0] 08:39.02 So essentially the same (ignoring the y flip, I'll just og put that back) 08:40.08 Oops putting the y fli pback in makes the content com out off the page.... 08:42.25 OK fixed that. So the CTM is the same, the font matrix is the same (barring scaling), the subfont matrix is the same and the result is incorrect. 08:43.04 So I'mkind of puzzled as to what the difference is and why one works and one doesn't (both render correctly of course) 08:44.14 It's possible that japan-.ps is actually "wrong", but just happens to look "correct" 08:44.29 No I compared it against the Distiller output, and its correct 08:44.36 WIth that block of code 08:45.06 What I mean is that it might be getting the right numbers for that case, but for the wrong reasonws 08:45.10 THere are other test files which are more obviously correct with the code and incorrect wihtout it, but they were more complicated examples 08:45.41 chrisl that's possible, one of the CET files is wrong with the code *and* without it, but in interestingly different ways 08:47.03 If you look at my last bmpcmp you can see 093-01.ps is one example 08:48.22 THat's a run with the code block removed by the way 08:49.20 Chans: (ghostbot) in:#ghostscript 08:50.46 Oh interesting. 08:51.04 093-01.ps is 'wrong' when rendered adn compared against distiller 08:51.54 FORK(3097) --- fork starting for 'RSSFeeds', PID == 3097, bot_pid == 11990 --- 08:51.55 FORK(3097) !ERROR! cannot load my module: RSSFeeds 08:51.55 FORK(3097) fork: took 1s for RSSFeeds. 08:51.55 FORK(3097) --- fork finished for 'RSSFeeds' --- 08:54.39 * kens/#ghostscript hates CIDFonts and Metrics 08:55.13 Yeh, 093-01.ps has always been wrong - IIRC, I think Jaws got it wrong, too..... 08:55.22 Ah, fair enough 08:55.30 THere musty be something crazy gong on there 08:56.00 I think so - I might even get to investigate it, at some point! 08:56.40 I guess I'm uzzled as to why pdfwrite is applying this offset to the curretn point, which appears to be calculated off the width returned by the CDevProc 08:56.55 I don't really see why it should be required. 08:59.19 Presumably it's because of the way pdfwrite "manually" positions glyphs, instead of leaving it to the font metrics? Although, I'd have expected it only when wmode == 1 09:00.01 pdfwrite usually does leave it up to the font metrics, it only positions glyphs individually when it has to 09:00.28 and in btoh these cases hte wmode is 1 09:01.17 Yes, I'd expect it both test cases, but I would expect the conditional to also check for wmode, as well as the offset being non-zero 09:01.39 Hmm, well possibly. the wmode 0 cases all seem to be OK as far as I know 09:02.29 The only thing I notice is that in the case of the incorrect file, real_width.v.y is > Wodth.v.y whereas in the other case its less 09:04.25 Oh, I wonder if v.x and v.y are always 0 when we have a wmode 0 font 09:05.06 In which case, it would be much simpler just to check the wmode, wouldn't it? 09:05.18 You would think so yes 09:05.39 I'm pretty sure I didn't write this code though 09:05.49 Chans: (ghostbot) in:#ghostscript 09:07.00 So, the subfont rotation is coming from the CMap...... 09:07.13 Ah, well it is a vertical cmap 09:07.25 I'm assuming this is using a horizontal font to do vertical writig 09:07.45 Yes, and forcing the vertical writing using the CMap 09:07.52 Hacky 09:08.02 Butits a TT font so not too surprising 09:09.20 It looks like v.x and v.y are the distance from origin 0 to origin 1 (definiition in setcachedevice2), presumably we have to add this manually since PDF doesn't *have* a\ setcachedevice2 or a CDevProc equivalent 09:09.31 So perhaps this is what the code here is all about. 09:10.21 >>> join/#ghostscript paulgardiner (~chatzilla@smtp.glidos.net) 09:10.30 But the origin movement should be handled by the interpreter when it encounters a wmode == 1 font 09:10.51 In PostScript yes, but not in PDF because there is no way to do so 09:10.56 I think 09:11.10 Its all a bit hazy still. But I think there is no CDevProc in PDF 09:11.42 I think there is an equivalent to setcachedevice 2,is it d1 ? 09:12.07 Hmm, but only type 3 fonts call d0/d1 explicitly 09:12.46 So that's probably what this all comes down to then. PostScript fonts can (and in this case do) have a CDevProc which potentially changes the metrics 09:12.56 Seen: Flushed 4 entries. 09:13.09 also d1 is equivalent to setcachedevice 09:13.27 Seems there is no equivalent to setcachedevice2 09:13.49 Can you (easily) force pdfwrite to position every glyph explicitly? 09:13.57 No 09:14.37 --- Saved uptime records. 09:15.16 If I'mright, we cna only get v.x and v.y set if we get a call to setcachedevice2 09:16.36 and indeed pdfwrite has a method for setcachedevice2 and does special stuff if we're in a CDevProc 09:19.12 I think the rendering one does special stuff there, too 09:19.47 We are definitely copying the 10 numbers and squirelling them away, we then seem to use them to set up the Widths values 09:20.26 The 10 parameters to setcachedevice2 or the results of teh CDevProc? 09:20.44 The 10 params to setcachedevice2 09:21.29 I'd have thought you'd want the values returned from the CDevProc...... 09:21.30 Chans: (ghostbot) in:#ghostscript 09:22.00 FORK(18494) --- fork starting for 'RSSFeeds', PID == 18494, bot_pid == 11990 --- 09:22.01 FORK(18494) !ERROR! cannot load my module: RSSFeeds 09:22.01 FORK(18494) fork: took 1s for RSSFeeds. 09:22.01 FORK(18494) --- fork finished for 'RSSFeeds' --- 09:22.06 But CDevProc has to call setcachedevice2 to set its values doesn't it ? 09:22.10 let me check 09:23.11 RIght, the 10 operands resulting from CDevProc are passed directly to setcachedevice2 09:23.32 page 365 of the plrm 09:24.08 So by catching setcachedevice2 we are getting the numbers which were returned byCDevProc, not the numbers passed into it 09:25.10 pdf_glyph_widths() returns those values 09:25.35 Okay, so confusion over our internal stuff, and the "real" world - never mind...... 09:25.47 I guess so 09:26.19 I think the code in that block is intended to duplicate the setcachedvice2 stuff where the origin is translated when in writing mode 1 09:29.26 Still baffled as to why it doesn't work in this case though 09:35.28 Hmm, doesn't seem to like my naive removal of the CDevProc :-( 09:36.14 There's an awful lot of CDevProc definitions, japan-.ps has a way of modifying the CDevProc if you look near the end of it 09:37.59 Hmm but that didn't work when I tried to use it in the other file 09:37.59 Chans: (ghostbot) in:#ghostscript 09:39.07 Removing the CDevProc from 8f6459-12.ps seems to result in consistent output between pdfwrite and rendering...... 09:39.36 I guess that's not surprising. It will cause v.x and v.y to be 0, and will therefore not perform that block of code 09:41.06 Nope, v.x and v.y are non-zero without the CDevProc 09:41.17 Interesting 09:41.18 >>> join/#ghostscript sojic_ (~sojic@95.180.243.176) 09:41.36 Possibly they work out to 0 whenapplied then ? 09:41.49 Because we are using the Metrics from teh font 09:42.21 ppts->values.matrix.tx = 1243.74158 09:42.37 ppts->values.matrix.ty = 3371.3999 09:42.46 that looks correct yes 09:44.25 Does the CDevProc in japan-.ps actually generate new metrics values, or do the returned values from the CDevProc work out the same (or close) the the "real" metrics? 09:44.36 >>> sojic has signed off IRC (Ping timeout: 252 seconds) [#ghostscript] 09:44.37 Good question 09:44.50 To which I don't know the answer 09:45.27 They are close but not the same 09:45.33 As far as I can see 09:47.53 I need to go look at the Metrics2 entries 09:48.51 No they are different 09:49.28 The last entry of the 10 differes significantly, 0.07 on input, 0.859 on output from CDevProc 09:52.16 FORK(7960) --- fork starting for 'RSSFeeds', PID == 7960, bot_pid == 11990 --- 09:52.17 FORK(7960) !ERROR! cannot load my module: RSSFeeds 09:52.17 FORK(7960) fork: took 1s for RSSFeeds. 09:52.17 FORK(7960) --- fork finished for 'RSSFeeds' --- 09:53.12 The CDevProc results from 8f6459...ps are basically the same, except that the 10th number is even larger 09:53.27 0.046 becomes 2.21 09:53.37 Chans: (ghostbot) in:#ghostscript 09:54.42 Hmm, here's something odd 09:55.16 japan-.ps dumps the Metrics2 for both the fonts in the FDepVector. I modified 8f6459 to do the same. 09:56.15 japan-.ps gets the Metrics2 entry form FepVector[0], 8f6459 gets the Metrics2 entry from FDepVector[1] 09:56.47 That is, those are the numbers passed into the CDevProc for the 10th value 09:57.27 So, 8f6459 has more than one descendant? 09:57.33 They both do 09:58.42 Of course that Metrics2 value doesn't seem to get used anywhere 09:59.00 >>> join/#ghostscript Noldorin (~noldorin@unaffiliated/noldorin) 09:59.04 Its just an interesting observation 10:02.46 kens: they both appear to one descendant font 10:03.18 THis gets different answers: 10:03.18 currentfont /FDepVector get 0 get dup /CDevProc get == 10:03.18 currentfont /FDepVector get 1 get dup /CDevProc get == 10:03.29 oops no, that didn't paste correctly 10:03.42 currentfont /FDepVector get 0 get dup /CDevProc get == 10:03.42 currentfont /FDepVector get 1 get dup /CDevProc get == 10:03.46 Grrr 10:03.53 "currentfont /FDepVector get 0 get dup /CDevProc get == 10:03.54 "/Metrics2 get {== ==} forall 10:03.54 "currentfont /FDepVector get 1 get dup /CDevProc get == 10:03.54 "/Metrics2 get {== ==} forall 10:03.59 Ignore the " 10:04.15 currentfont of course is the CIDFont at the time 10:04.45 tor7: ping 10:04.53 Robin_Watts: hi 10:04.57 tor7: hi. 10:05.02 So, various things... 10:05.11 1) There are some reviews on robin/master for you. 10:05.20 your second commit looks fine, still haven't brought myself to understand the details of the first one 10:05.31 2) Have you had a chance to look over the JNI bindings? 10:05.33 chrisl if I do "currentfont {== ==} forall" then I get /FDepVector [-dict- -dict-] 10:05.39 kens: okay, I see - more confusion about how the "fstack" crap works 10:05.49 Robin_Watts: the const part of the jni branch LGTM 10:05.50 oh its crap alright 10:06.26 still haven't looked at the JNI stuff, was hoping to take a look at that and mirroring them in Lua soon to see how things fall out 10:06.29 tor7: Have you looked at the "Disable image interpolation" one ? 10:06.37 but the stencil clipping is madness trying to debug 10:06.48 yeah, I can imagine. 10:07.04 and I was just looking at bug 692930 10:07.30 I *think* it's to do with xps not transforming the areas for tiles etc correctly. 10:07.33 Robin_Watts: disable image interpolation LGTM 10:07.33 chrisl I 'guess' that its simply the larger CID mapping the glyph to the second descendant 10:07.36 but it's hard to be sure. 10:08.02 I am having no luck cutting the file down any further, possibly because I don't speak xps. 10:08.24 Robin_Watts: hm, I'd forgotten all about bug 692930 10:08.50 yeah, it was something odd with the transforms IIRC. 10:09.07 tor7: The clipping strokes stuff; I've tried many many versions of the code under the cluster, and fallen down many holes. 10:09.13 kens: I made the mistake before: I thought we "flattened" the entire font "tree" into the fstack, but we don't, we only keep the "linear" path from composite font to base font 10:09.13 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 10:09.13 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 10:09.31 the version that's there now passes all the cluster tests (with just about 11 diffs due to antialiasing differences due to rounding). 10:09.54 Chans: (ghostbot) in:#ghostscript 10:09.57 I seem to recall that one being down to the order of the tiles as well, really hard to pin down 10:10.14 yeah. I hate tiling :( 10:10.16 Robin_Watts: well, if you're confident go ahead without my blessing 10:10.48 I am confident in the stroke clipping stuff (as much as you can ever be with such things). If you're happy with the overall structure, I'll go for it. 10:10.50 I just want to understand the code, I'm sure it ought to work well enough. and rounding differences are to be expected when you start adding clipping. 10:11.18 chrisl I just tried changing the CID and got the correct glyph, but rotated, I wonder what I did wrong.... 10:11.25 it's just so much code... I can't help but think it could be done simpler 10:11.27 tor7: essentially I find a bounding clipping rectangle at the start of the stroking process (from the gel). 10:12.27 Then for each line, if the start endpoint is off this rectangle, I move it up to the edge of the rectangle (allowing for the dash pattern/phase/on-off ness). 10:12.36 kens: could be you landed on an value not mapped by the cmap, and ended up with that crazy partial match nonsense? 10:12.50 Robin_Watts: yeah. getting the scissor from the gel feels ugly, but it's probably simpler than passing the scissor down through the entire path stroking pipeline. 10:12.56 It sort of looks like I ended up with a horizontal unrotated glyph. 10:13.06 Seen: Flushed 4 entries. 10:13.14 which is placed at the 'correct' point.... 10:14.12 tor7: it is more code than I'd hoped, but I couldn't trivially see how to reduce it's volume. 10:14.29 Robin_Watts: the basic idea of the moved_horizontally clauses is easy to grasp, and needs to be that big unless adding a lot of generic "clip" functions with a dozen arguments 10:14.40 At least is should pretty much all be skipped in non-clipping cases. 10:14.50 --- Saved uptime records. 10:15.01 tor7: yeah we'd need to pass in and get back lots of variables. Nasty. 10:15.12 adjust_for_tail is to forward the dash state when skipping an entire segment? 10:15.50 Suppose the line to be plotted is a to b. 10:16.08 then consider 2 new points A and B which are where that line intersects with the clipping rect. 10:16.12 Robin_Watts: hold that thought, I'm being called for lunch (I'll check the logs when I get back) 10:16.21 so we actually want to skip a to A, then draw A to B then skip B to b. 10:16.34 adjust_for_tail does the skipping of B to b. 10:16.41 ah, right. 10:16.46 move_horizontally and move_vertically together do skipping a to A. 10:17.01 and if the WHOLE line is off the rectangle, then adjust_for_tail doubles up duty and does both. 10:17.10 and if a to b lies outside entirely, that case is handled by adjust_for_tail as well 10:17.16 right. got it. 10:17.22 You go for lunch. I'll go for a run :) 10:22.18 Oh interesting, the CDevProc for the font looks to be crap, it removes teh CID< then uses the ury as the vy offset 10:22.18 FORK(27347) --- fork starting for 'RSSFeeds', PID == 27347, bot_pid == 11990 --- 10:22.19 FORK(27347) !ERROR! cannot load my module: RSSFeeds 10:22.19 FORK(27347) fork: took 1s for RSSFeeds. 10:22.19 FORK(27347) --- fork finished for 'RSSFeeds' --- 10:22.44 THat's where the numbers are coming from. I need to think about this a bit. 10:22.52 THanks for looking at it chrisl 10:23.13 >>> sojic_ has signed off IRC (Remote host closed the connection) [#ghostscript] 10:24.36 kens: okay, that's good - 'cause I'm just getting confused. I'll look again later, if you haven't got further 10:25.24 >>> join/#ghostscript sojic (~sojic@92.55.124.139) 10:25.55 Thanks, I think I need to go andwork out what the PostScript is doing with the value. I'm not convinced its sensible 10:26.15 Chans: (ghostbot) in:#ghostscript 10:53.12 FORK(27660) --- fork starting for 'RSSFeeds', PID == 27660, bot_pid == 11990 --- 10:53.13 FORK(27660) !ERROR! cannot load my module: RSSFeeds 10:53.13 FORK(27660) fork: took 1s for RSSFeeds. 10:53.13 FORK(27660) --- fork finished for 'RSSFeeds' --- 11:13.52 Seen: Flushed 4 entries. 11:15.12 --- Saved uptime records. 11:15.25 * kens/#ghostscript is still confused, and goes to lunch 11:16.04 Chans: (ghostbot) in:#ghostscript 11:23.40 FORK(22220) --- fork starting for 'RSSFeeds', PID == 22220, bot_pid == 11990 --- 11:23.41 FORK(22220) !ERROR! cannot load my module: RSSFeeds 11:23.41 FORK(22220) fork: took 1s for RSSFeeds. 11:23.41 FORK(22220) --- fork finished for 'RSSFeeds' --- 11:26.12 ircCheck: possible lost in space; checking.Tue Oct 1 11:26:12 2013 11:26.12 >ghostbot< TEST 11:26.12 IRCTEST: Yes, we're alive. 11:31.45 Chans: (ghostbot) in:#ghostscript 11:39.06 >>> chrisl materializes into chrisl_away 11:44.01 So, are we using jasper or openjpeg in gs now ? 11:47.19 Chans: (ghostbot) in:#ghostscript 11:51.03 I thought OpenJPEG 11:51.47 yeah, it's just not in the ghostscript.vcproj. Just added it. 11:52.01 openjpeg still calls malloc/free. 11:52.30 We can get around that by defining ALLOC_PERF_OPT when building it, and it'll call opj_malloc/calloc/free, and we can replace them. 11:54.15 FORK(32594) --- fork starting for 'RSSFeeds', PID == 32594, bot_pid == 11990 --- 11:54.16 FORK(32594) !ERROR! cannot load my module: RSSFeeds 11:54.16 FORK(32594) fork: took 1s for RSSFeeds. 11:54.16 FORK(32594) --- fork finished for 'RSSFeeds' --- 12:02.53 Chans: (ghostbot) in:#ghostscript 12:04.18 >>> Fandekasp has signed off IRC (Ping timeout: 252 seconds) [#ghostscript] 12:04.48 BUT... we'd need to replace them with versions of malloc that align to 16 bytes unless we perform some surgery. 12:06.19 >>> join/#ghostscript Fandekasp (~Fandekasp@27-32-19-26.static.tpgi.com.au) 12:06.55 But then again, maybe we should move gs to openjpeg 2. 12:07.46 Ah, but it's identical code in that :( 12:08.15 which means mupdf is similarly reliant on malloc/free :( 12:12.16 God, how can libraries get this basic stuff so wrong in this day and age? 12:14.13 Seen: Flushed 2 entries. 12:15.25 --- Saved uptime records. 12:18.27 Chans: (ghostbot) in:#ghostscript 12:24.23 FORK(16633) --- fork starting for 'RSSFeeds', PID == 16633, bot_pid == 11990 --- 12:24.24 FORK(16633) !ERROR! cannot load my module: RSSFeeds 12:24.24 FORK(16633) fork: took 1s for RSSFeeds. 12:24.24 FORK(16633) --- fork finished for 'RSSFeeds' --- 12:24.33 in this day and age, I think we should just be happy that we don't have to use javascript frameworks or piles of ruby spaghetti ;) 12:26.08 tor7: So, did you end up happy with the clippy stroky stuff? 12:26.18 Robin_Watts: yes. push push. 12:26.21 tor7: urgh, possibly, yes. 12:33.52 oh, gawd. There is no concept of 'context' in opj. 12:34.16 So we can't get a gs_memory_t or an fz_context * to the malloc functions. 12:34.43 Chans: (ghostbot) in:#ghostscript 12:35.11 Is it time to start using Luratech in mupdf, I wonder... 12:40.13 Must remember to bring that up at the meeting later. 12:50.47 Chans: (ghostbot) in:#ghostscript 12:51.17 >>> join/#ghostscript sebras2 (3b7380d9@gateway/web/freenode/ip.59.115.128.217) 12:51.33 Robin_Watts: hey! you fixed the fuzzes. 12:51.41 sebras2: I did. 12:51.50 Please don't do that again :) 12:52.15 Robin_Watts: :) 12:52.18 (actually, that's rubbish, it was much appreciated) 12:52.50 Robin_Watts: I know. It would probably be hard to find this problem without fuzzing. 12:53.03 Robin_Watts: though one should try to fuzz sufficiently simple files. 12:53.23 Robin_Watts: and only go for the big ones when we fail to find problems in the simple ones. 12:53.38 sebras2: yeah. 12:54.13 The problem with fuzzing large PDF files is that my standard techniques for making them small ones don't always work :( 12:54.31 FORK(22960) --- fork starting for 'RSSFeeds', PID == 22960, bot_pid == 11990 --- 12:54.32 FORK(22960) !ERROR! cannot load my module: RSSFeeds 12:54.32 FORK(22960) fork: took 1s for RSSFeeds. 12:54.32 FORK(22960) --- fork finished for 'RSSFeeds' --- 12:54.32 I don't mind cutting PDF files on the whole (pdfclean makes it much easier). 12:54.32 Robin_Watts: no pdfclean is all of a sudden not your friend... 12:54.42 but if pdfclean stops working... 12:55.07 mmm. btw, did I get it right if I belive that marcosw fuzzed your nightly test files as well? 12:55.23 in that case I think it really _was_ worthwhile to describe how to use zzuf. :) 12:55.32 sebras2: I think he has been experimenting with fuzzing, yes. 12:55.51 He's distributing headaches with an even hand now I believe 12:56.04 Starting with henry :-) 12:56.05 but we all have lots of outstanding "automatically generated bugs", so there is limited point in generating more and more and more of them. 12:56.11 lunchtime for me, bbs. 12:57.29 kens: :) alright, then I'll stay clear of fuzzing for some time. 12:57.47 Oh I don't mind if you fuzz MuPDF, just don't start on Ghostscript :-) 12:58.26 kens: how about jbig2dec? that would only affect henrys and possibly shelley..? >;-) 12:58.36 FIne by me :-D 13:01.49 Damn, bitten by evaluation order. Add more parentheses 13:06.31 Chans: (ghostbot) in:#ghostscript 13:14.39 Seen: Flushed 4 entries. 13:15.29 --- Saved uptime records. 13:21.45 Chans: (ghostbot) in:#ghostscript 13:24.57 FORK(30256) --- fork starting for 'RSSFeeds', PID == 30256, bot_pid == 11990 --- 13:24.58 FORK(30256) !ERROR! cannot load my module: RSSFeeds 13:24.58 FORK(30256) fork: took 1s for RSSFeeds. 13:24.58 FORK(30256) --- fork finished for 'RSSFeeds' --- 13:26.13 >>> willschm has signed off IRC (Remote host closed the connection) [#ghostscript] 13:27.13 >>> join/#ghostscript willschm (willschm@nat/ibm/x-vkwxrtxmezirzzcj) 13:37.49 Chans: (ghostbot) in:#ghostscript 13:43.17 >>> join/#ghostscript sojic_ (~sojic@95.180.243.176) 13:46.17 >>> join/#ghostscript manyglaciers (~user@95.104.90.162) 13:46.36 >>> sojic has signed off IRC (Ping timeout: 252 seconds) [#ghostscript] 13:53.45 Chans: (ghostbot) in:#ghostscript 13:54.06 kens: hmm, interesting pdfwrite conversion I spotted here when cooking up a test file with nested clips 13:54.19 :-( 13:54.32 If it has a form it may do strange things 13:54.48 ... clip ... gsave ... clip ... draw grestore draw 13:55.02 OK 13:55.13 FORK(605) --- fork starting for 'RSSFeeds', PID == 605, bot_pid == 11990 --- 13:55.14 FORK(605) !ERROR! cannot load my module: RSSFeeds 13:55.14 FORK(605) fork: took 2s for RSSFeeds. 13:55.14 FORK(605) --- fork finished for 'RSSFeeds' --- 13:55.26 I'm fairly certain we deal with that, its not terribly uncommon 13:55.26 turns into: ... clip clip draw grestore clip (first one repeated) draw grestore 13:55.40 the right results, but unexpected in duplicating the clip path 13:55.45 SHouldn't one of those be a gsave ? 13:55.55 tor7 If the result looks OK I won't worry abou tit 13:56.06 gsave clip gsave clip draw grestore draw grestore - full input 13:56.17 gsave clip clip draw grestore clip draw grestore - full output 13:56.45 kens: yeah, but I was hoping to recreate the original sequence of operators as pdf by cheating with pdfwrite :) 13:56.47 That looks bad, unbalanced save/restore 13:57.01 tor7 that's a really bad plan ;-) 13:57.09 sorry, gsave clip clip draw grestore gsave clip draw grestore 13:57.16 Ah now I'm happier 13:57.32 kens: for simple cases like this I would've hoped it might work :) 13:57.44 still, now I can hack the pdf file but first I ought to get even this case working 13:57.56 half of the clip masks are "inverted" in my opengl device :( 13:57.56 Given the nightmare that is pdfwrite, I'm just happy if the result looks OK 14:03.36 Robin_Watts: I think a mutool wrap command to take a command stream and pack it up in a pdf file (with the base14 fonts predefined as resources) would be awfully sweet to have 14:03.59 but. must. not. procrastinate. more. 14:04.27 tor7: A tool to insert a command stream into a PDF file as a page, I could see. 14:04.44 And then we'd "just" need an empty file to start from. 14:04.48 Robin_Watts: yeah. basically take a raw command stream text file and wrap it up as a page 14:05.03 an empty file to start from would be easily templated 14:05.36 I could easily script something up with bash and mutool clean, but a one stop shop would be nicer 14:06.55 * Robin_Watts/#ghostscript must not enable tor7's procrastination. 14:07.00 :) 14:09.09 Chans: (ghostbot) in:#ghostscript 14:09.39 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 14:09.39 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 14:14.43 Seen: Flushed 3 entries. 14:15.55 --- Saved uptime records. 14:25.23 Chans: (ghostbot) in:#ghostscript 14:25.43 FORK(3519) --- fork starting for 'RSSFeeds', PID == 3519, bot_pid == 11990 --- 14:25.44 FORK(3519) !ERROR! cannot load my module: RSSFeeds 14:25.44 FORK(3519) fork: took 1s for RSSFeeds. 14:25.44 FORK(3519) --- fork finished for 'RSSFeeds' --- 14:31.30 chrisl for the logs, the whole usage of Metrics/Metrics2 seems to be broken in at least some senses. If I limit the currentpoint adjustment to fonts where WMode == 1 then 3 files improve (16-09.ps, 093-01.ps and Bug687614.ps) but another one gets worse (16-03.ps). 14:32.12 Rendering seems to be incorrect when we have a WMode 0 font which has Metrics, and the glyphy Metrics are the 2 or 4 element forms. Single numbers work 14:32.18 WMode 1 rendering also works 14:32.39 But it always has the 4 element form anyway (Metrics2). 14:32.50 >>> chrisl_away materializes into chrisl 14:33.03 kens: just back 14:33.04 So tomorrow I'm going to start with the CET files and see if I can figure out what pdfwrite *should* be doing 14:33.08 oh welcome back 14:34.18 It's very unclear what that code is trying to do - it looks a bit like "I tried lots of stuff, and this seems to work for the tests I've got" 14:34.35 You mena the pdfwrite code ? I'm inclined to agree 14:35.18 But I think at least some of its problems may be that the interpreter isn't calling setcachedevice2 witrh the correct values, when Metrics has the 2 or 4 element form 14:35.36 Obviously that's nothing to do with the WMode 1 case 14:36.13 Yes, the pdfwrite stuff. I'll need to read up, there's a lot of strange stuff going on around the Metrics(2) stuff, that I don't remember very well 14:36.40 Yeah. I htink I may end up ripping up the current code in the pdfwrite case and rewriting it. 14:37.20 Having said that, I still don't understand the 2 test cases, but maybe I will after I work through the (simpler) CET tests 14:37.55 Well, the other point is, (some of?) that code might be remaining hacks from before when pdfwrite was changed to handle the cdevproc 14:38.17 Its possible of course. 14:38.57 The good thing about the CET tests is that they cover WMode 0 and 1, and the fonts are much easier to handle than complex rotated type 42 14:39.44 Indeed 14:41.37 Chans: (ghostbot) in:#ghostscript 14:47.45 Robin_Watts : am I misreading your openjpeg change, or did you put openjpeg at the same level as gs and Resource, rather than under gs ? 14:48.55 We also still seem to have jasper in there 14:51.39 >>> plinnell has signed off IRC (Ping timeout: 248 seconds) [#ghostscript] 14:52.13 meeting time in a few minutes 14:54.12 kens: It's under gs. 14:54.24 Hmmm.... 14:55.19 Guess I cut and pasted it wrong then 14:56.01 FORK(4950) --- fork starting for 'RSSFeeds', PID == 4950, bot_pid == 11990 --- 14:56.02 FORK(4950) !ERROR! cannot load my module: RSSFeeds 14:56.02 FORK(4950) fork: took 1s for RSSFeeds. 14:56.02 FORK(4950) --- fork finished for 'RSSFeeds' --- 14:57.31 Chans: (ghostbot) in:#ghostscript 14:59.07 >>> Fandekasp has signed off IRC (Ping timeout: 248 seconds) [#ghostscript] 15:00.16 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-50-159-85-185.hsd1.wa.comcast.net) 15:01.26 mupdfer's: i added an item to the agenda you may have missed under other - ray's point about JNI and GPL. 15:03.22 I don't really have anything today for mupdf meeting. I am hoping to wrap up knockout transparency in gs this week and then finally get back to mupdf 15:03.46 henrys: Can you expand on rays point ? 15:04.35 Robin_Watts: yes is JNI binding like a DLL gpl wise or is it like static binding with a library (not allowed) 15:04.40 henrys: yeah, I haven't seen anything ray has said (ghostbot was down most of the weekend it seems) 15:05.04 tor7:it is in the live agenda document under "other" 15:05.23 JNI bindings on MuPDF merely make MuPDF accessible direct from java. 15:05.38 I can see the bullet point, but no discussion or details 15:05.54 mvrhel_laptop: I did want to talk about mobile printing 15:06.02 oh ok 15:06.25 For people to call mupdf under android they have to write their own jni bindings at some point. 15:06.40 Robin_Watts: okay so I use the bindings in my app do I have to publish my code or not? 15:06.40 I don't think JNI would be any different to shared library linking, but if we ship the JNI bindings ourselves, the bindings would usually be statically linked or however java classes are bundled in an app 15:06.45 our app has them already for example, but they are app specific ones. 15:07.33 so with robin's new JNI bindings, that would be linking to/using GPL'd java code as well as dynamically linking to our C library 15:07.51 ALL uses of native code under android have mupdf in the form of a shared library, and jni is just how you call into that lib. 15:08.15 so us having new JNI bindings is no different to the existing android situation. 15:09.12 If you have an app that loads a GNU GPL'd DLL and calls into it, that app has to be GNU GPL too, right? 15:09.54 GPLv3. yes 15:09.59 Otherwise we'd have lots of people using gswin32.dll in their windows app, without needing a commercial license. 15:10.05 Robin_Watts: well I believe shared libraries are still fuzzy. 15:10.18 Well, then android falls into that same fuzzy area. 15:10.52 I didn't understand you were always going to a shared library and I don't think ray thought that either. 15:11.12 AIUI, linking against GPL code is viral, both shared and static libraries 15:11.31 >>> join/#ghostscript plinnell (~mrdocs@opensuse/member/mrdocs) 15:12.07 JNI is mentioned here: http://vark.me.uk/spanners.381 15:12.24 ... although I'm yet to make out if it relates to our case 15:12.37 Sorry wrong link 15:12.44 I was wondering about that 15:12.51 henrys: Android apps are APKs, which are zip files that contain java code in .class files, and any .so's required. 15:12.56 http://www.gnu.org/licenses/gpl-faq.html 15:13.43 ok. that clearly is in line with tor7 's comment 15:13.43 Chans: (ghostbot) in:#ghostscript 15:14.10 lawyers debate the issue hotly though, whether or not linking constitutes creating a derived work 15:14.48 tor7: if GPL code is not viral for dynamic/static libraries, then what is the point of LGPL..? 15:15.02 LGPL exists for creating libraries that are "allowed" to be used commercially, so I'm leaning towards the stricter GPL interpretation with regards to linking 15:15.02 Seen: Flushed 8 entries. 15:15.18 sebras2: exactly. 15:15.28 and it has the standard end-run that some ghostscript dependent software does which is require separate downloads of gs and their application 15:16.01 henrys: I just found out I have to run daughter to school. wife is out running and has not gotten back... 15:16.11 i will bbiab 15:16.13 okay 15:16.25 tor7: well, this is the intent of the licenses as I understand them, then we have unreliable lawyers how do crazy stuff. :) 15:16.35 --- Saved uptime records. 15:17.01 sebras2: yes. the intent of the GPL (in light of the existence of an LGPL) is pretty clear, IMO. 15:17.02 tor7: but then this means that anyone using mupdf in the android app will have to make their app GPLv3..? 15:17.22 unless they have a commercial license of course. 15:17.23 sebras2: yes, it does. at least I hope it does! 15:18.38 so there is not "exec" call on android? 15:18.49 s/not/no 15:19.16 henrys: Pass. 15:19.27 As mvrhel_laptop pointed out, the FAQ seems pretty clear on the issue 15:19.32 henrys: I think there's an equivalent of calling a separate "Activity" or whatnot 15:19.44 like the edroidbookreader plugin guys robin has been talking to are doing 15:19.52 so unlike the desktop there is no way to use mupdf and not be GPL 15:20.12 correct me if I'm wrong, but I believe that there is some kind of way to ask android itself, please handle this file. probably with a MIME-type or something. doesn't mupdf depend on this for handlign .pdf-files..? 15:20.28 sebras2: Driving things by "Intents", yes. 15:20.52 ok, and you refer to another apps intents how..?\ 15:20.59 tor7:okay so separate activity would be like exec and not subject to the GPL virus 15:21.03 by string? 15:21.19 henrys: yes. 15:21.32 anyway now that's beaten to death, anything else for the mupdf meeting? 15:21.35 sebras2: that's a good point. Thirdparty apps may be able to make use of our library via our app. 15:21.49 I believe some people have wrapped mupdf into a separate app, so that people can say "hey you over there, convert this PDF to a bitmap for me". 15:21.51 henrys: I believe so, if they're not calling our functions directly but going via some OS-mediated in-between protocol 15:22.06 like what robin just said 15:22.24 and I think people have been in touch with Miles about this and discussed it, and he's given them the OK. 15:22.38 Separate optional downloads etc. 15:24.28 I didn't have anything else for the meeting, except mobile printing and I wanted to wait for michael. 15:25.36 henrys: I have stencil buffered clipping almost working with the opengl device, it just needs a lot more debugging but it looks like my approach is going to work 15:26.09 tor7:great news any sense of performance improvement? 15:26.10 it's bending my mind a bit too hard figuring out how to juggle the stencil function and state machine 15:26.20 I've solved some hangs etc in MuPDF, but nothing earthshattering to report. Except to prod people to look at the JNI stuff. 15:26.26 henrys: image heavy pdf files seem quite a bit faster 15:26.26 FORK(17494) --- fork starting for 'RSSFeeds', PID == 17494, bot_pid == 11990 --- 15:26.27 FORK(17494) !ERROR! cannot load my module: RSSFeeds 15:26.27 FORK(17494) fork: took 1s for RSSFeeds. 15:26.27 FORK(17494) --- fork finished for 'RSSFeeds' --- 15:26.55 which is pretty much what we expect 15:27.29 henrys: I'm continuing with the iOS enhancements, currently adding partial update 15:27.51 I hope you guys can stick around for the mobile print stuff. We should all talk about it. 15:28.30 paulgardiner: have you added link following yet? 15:29.09 tor7: No. Only just noticed that it's not already there. Will look at that soon 15:29.40 paulgardiner: is it more like porting or new development, trying to get a sense of what we'll need to maintain all these platforms. 15:29.57 sebras2: your branch with inline form editing, how is that looking? on pause until you get back to europe? 15:30.20 tor7: most likely, yes. 15:30.29 tor7: Is that a problem? 15:30.33 Chans: (ghostbot) in:#ghostscript 15:30.42 sebras2: no, but it would be nice to have it before it rots too much :) 15:30.54 henrys: I'd say closer to new development. I'm borowing things here and there from Android, but generally the OSes work very differently 15:30.58 henrys: mobile printing, from the ios app, I guess means calling airprint somehow? 15:31.12 tor7: if I get bored in Shanghai (yes, that is a probability actually!) then I could give that branch prio over fiddling around with gstreamer. 15:32.38 tor7:yes I thought ray was doing something with AirPrint and ghostscript - I sent him my iPad so I assume it will be the same ... 15:35.49 but the mobile printing thing seems to need discussion. We now have a marketing piece where mupdf connect to a printer running ghostscript. What are we talking about here, mupdf can ftp a pdf to the printer? 15:36.31 don't ask me :) 15:36.41 >>> join/#ghostscript paulgardiner_ (~chatzilla@smtp.glidos.net) 15:37.01 I fell of the internet for a moment there 15:37.25 >>> paulgardiner has signed off IRC (Ping timeout: 256 seconds) [#ghostscript] 15:37.35 >>> paulgardiner_ materializes into paulgardiner 15:37.45 that's what I wanted to talk to mvrhel_laptop about. 15:37.50 henrys: Why ftp ? 15:38.17 Uploading a file using http is probably much easier. 15:38.27 and doing that with curl etc is dead easy. 15:38.39 why are we selling that as a product is the question? 15:38.48 >>> join/#ghostscript ray_laptop (~chatzilla@rrcs-64-183-45-163.west.biz.rr.com) 15:39.07 henrys: is that really what the marketing piece says? 15:39.25 henrys: you mentioned AirPrint to me at the meeting. I haven't looked at it yet, but I could up the priority on that if you like. On the other hand, if Ray is looking at it, it may be best to wait to see what he gets up to. 15:39.29 henrys: yes, I am going to get Bonjour up on the Raspberry Pi and see if I can get it to pretend to be a printer 15:40.03 If it's the thing that Miles was waving it at the meeting, I was interpretting that much more as "mupdf can output stuff that a printer using gs can print" 15:40.06 henrys: what we run to handle the PDF that comes over can be gs or mupdf 15:40.31 Robin_Watts: that doesn't make sense to me. 15:40.41 mupdf can output stuff ??? 15:40.56 rayjj: Yes. Load a PDF, fill in the form fields, save it out to be printed. 15:41.02 Robin_Watts: if you had gs on the printer presumably you'd send pdf. 15:41.11 oh, form filling. That makes sense 15:41.18 getting the ios mupdf app to print using airprint, and then having gs + bonjour accepting jobs on a raspberry pie, would be a way to make the graphic in our pamphlets come true 15:41.36 Robin_Watts: okay forms, that makes sense. 15:42.06 I believe we should not conflate supporting airprint for incoming jobs, and creating print jobs from mupdf apps 15:42.23 tor7: making our marketing literature be true is much more than we usually do ;-) 15:43.00 If this is the thing that Miles was waving around it was just a triangular diagram with arrows between cloud, printers and devices. 15:43.14 And I think it was just intended to show that we work (and interwork) between all the spaces. 15:43.26 I don't think anyone is going to try to hold us to any given product based upon it. 15:43.41 but if they did, we could knock something up without too much of a problem, I think. 15:45.08 The big disconnect is I think most customers thing of mobile printing as driverless printing, I can now print from my app with mupdf in some way and this not so at all. 15:45.22 s/this/that 15:45.41 henrys: but we CAN print from mupdf. 15:45.58 Robin_Watts: but first you have to have a PDF 15:46.08 Chans: (ghostbot) in:#ghostscript 15:46.09 Right. 15:46.37 So you're saying I need to finish mupdfwrite, yeah? :) 15:47.15 henrys: AirPrint does send PDF's, so I guess any app that prints via AirPrint has the ability to generate PDF's via iOS something. Whether you call it a "driver" or not 15:47.34 If I have a PDF I don't need mupdf because I can "ftp" it to the printer. It's like a comedy skit 15:47.44 Robin_Watts: well, you can generate a pdf-image file like a lot of scanner apps do 15:47.47 ray_laptop: I agree 15:48.19 paulgardiner: is iOS printing using Quartz2d like mac os x? 15:48.43 henrys: Again, it depends if you read the marketing piece as "MuPDF ENABLES this path" or "MuPDF can make use of this path" 15:49.02 henrys: Sorry, don't know. Really haven't looked at it at all yet. 15:50.59 mopria is pushing cups or they call it printer working group raster which I assume is cups http://www.mopria.org/Home.aspx 15:51.15 and something called M-PCL 15:51.18 If it's PDF based, I'd quess that adding AirPrint to the iOS app would be no harder than the addtion of Google Cloud Print to the Android app was 15:51.37 mupdf enables the part where a PDF from the cloud gets annotated or form-filled, then spit back out 15:52.21 back to the cloud or to a printer 15:53.01 henrys: Is there some "promise" made by this marketing piece that you feel we can't live up to? 15:54.16 Robin_Watts: I just want to clarify what we are saying when we draw a line labeled mupdf from a phone to a printer 15:55.14 henrys: Well, mupdf IS used in certain libraries from commercial customers that are shipped to app manufacturers specifically for them to be able to print from embedded devices. 15:56.54 FORK(8411) --- fork starting for 'RSSFeeds', PID == 8411, bot_pid == 11990 --- 15:56.55 FORK(8411) !ERROR! cannot load my module: RSSFeeds 15:56.55 FORK(8411) fork: took 1s for RSSFeeds. 15:56.55 FORK(8411) --- fork finished for 'RSSFeeds' --- 15:57.15 henrys: in some scenarios, if the printer needs raster data, mupdf can render a PDF from the cloud to enable printing to that class of printer 15:57.37 ray_laptop: We can produce PWG or PCL (mono) too. 15:58.05 Robin_Watts: was PWG the cloud raster format ? 15:58.16 PWG is cups format. 15:58.26 and it is one of the formats that the cloud accepts, yes. 15:58.45 which is one of the common options for IPP 15:58.58 yes if it is not a pdf printer, I get it… but if PDF is the PDL we are selling "cat" 15:59.12 which I don't get. 16:00.20 "cat" ??? 16:00.35 as in unix cat ? 16:00.36 the unix command. 16:00.49 henrys: if someone is willing to pay for "cat" then why not...? :) 16:00.55 henrys: Right. I understand what you are pointing out now. 16:01.18 henrys: well, yes, unless you annotated on the device and want to print that 16:01.36 henrys: Can you give a pointer to the marketing thing you are talking about please? 16:01.44 but lots of people open a PDF in a viewer (AR) then print it 16:01.46 Is it the sheet that Miles handed out at the meeting? 16:01.48 >>> manyglaciers has signed off IRC (Quit: ERC Version 5.3 (IRC client for Emacs)) [#ghostscript] 16:02.08 Chans: (ghostbot) in:#ghostscript 16:02.36 I wanted to discuss it with mvrhel_laptop because he and miles put it together in Japan, maybe there is something I don't understand. I don't have a copy of it now. 16:02.52 henrys: It's the triangular diagram, right? 16:02.57 onto ghostscript until mvrhel_laptop returns 16:03.10 AIUI we're selling the things at the corners of the triangle, not the things on the edges. 16:03.14 so mupdf is providing the viewing capability, and then also lets you print it if you want a hardcopy. True, your browser might be able to send a PDF to the printer as well, but it's not as nice of a viewer app 16:03.55 chrisl: sorry I didn't get to urw but will get to it this week. 16:04.45 henrys: okay, I haven't been nagged by the open source user folks about it, so if they pipe up, I'll fend the, off 16:04.50 them 16:05.31 chrisl: I'm doubting urw will lift a finger but we'll see. 16:06.13 henrys: Well, it is a regression, so...... 16:06.55 chrisl: I agree we'll see. 16:07.14 ray_laptop: you were going to contact 801? 16:07.29 ray_laptop: I can do it if you are busy. 16:07.45 oh, cr*p. I was working on cust 532's problems and it slipped my mind 16:07.57 I'll do that now. Sorry. 16:08.20 ray_laptop: thanks. 16:08.25 ray_laptop: Have you heard anything more about their new printer yet ? 16:09.26 Robin_Watts: should we discuss malloc and lcms? 16:09.40 malloc and openjpeg ? 16:09.57 Robin_Watts: cust 532's ? 16:10.07 ray_laptop: yes. 16:10.48 Robin_Watts: all I heard is that they introduced "improvements" in their device and it produces white lines in images under certain cases. 16:10.55 Robin_Watts: maybe I misread something I thought there was some problem using gs allocation in lcms. 16:11.15 henrys: Oh, OK. We have 2 issues here there. 16:11.42 lcms is fine if used as a statically linked lib. 16:11.47 Robin_Watts: AIUI, these improvements were intended to speed things up on images. Len asked me to look into it, but that they basically "own" the problem 16:12.28 Actually, even that's not true. 16:12.37 lcms is fine if we're the only caller of it. 16:12.50 and a related issue do we need to lock the actual malloc in heap_alloc_bytes or just the updates to the bookkeeping structures. Windows already locks mallocs I think linux does TLS. 16:12.53 ? 16:13.13 ugh finally back. traffic was horrific. 16:13.30 henrys: we shouldn't need to lock malloc 16:13.30 If someone builds gs + some code that calls lcms, then all the other callers calls will get the gs allocation functions and will probably crash. 16:13.50 The correct thing to do is to fix lcms, but that's an API change. 16:14.04 Robin_Watts: so the lcms one we're going to "solve" by leaving out the gs memory calls when using it "shared" - I'll get to that this week. 16:14.23 When we mentioned this at the meeting, mvrhel_laptop was going to bring it up with Marti when he saw him in November. 16:14.29 chrisl: That's only a partial solution. 16:14.32 Robin_Watts: so this is an app calling lcms after calling gs (which sets the allocator callbacks) ? 16:14.53 Robin_Watts: hence "solve" being in quotes 16:14.56 ray_laptop: After or at the same time. 16:15.22 chrisl: An app that statically links with gs and also calls lcms will still fail then. 16:15.24 mvrhel_laptop: could you have a look at the logs about mobile printing? 16:15.26 Robin_Watts: right, concurrently in a different thread 16:15.36 Seen: Flushed 10 entries. 16:15.52 Robin_Watts: even if both just let lcms use malloc/free? 16:15.52 kens:anything for the meeting? 16:15.53 henrys: so the mobile device to printer path in that marketing sheet is supposed to be something like airprint 16:15.56 ideally we want to 'hide' the lcms entrypoints from everyone except gs in a static link. And that's a bugger to do portably. 16:16.08 chrisl: If both just let lcms use malloc/free we're fine. 16:16.13 whereby artifex is supplying the viewer on the mobile device. 16:16.15 mvrhel_laptop: we are selling "cat" 16:16.16 If either one doesn't.... 16:16.22 and someone wants to print 16:16.36 and they send it using what ever protocol to their local printer 16:16.39 ray_laptop: Right. 16:16.46 which could have gs embedded in it 16:16.55 Robin_Watts: in the interim, just being able to say "we're not to blame" is a decent start - until lcms can be properly fixed 16:16.55 --- Saved uptime records. 16:17.01 chrisl: Indeed. 16:17.29 Robin_Watts: I am not going to see Marti now 16:17.36 but our plan for getting it fixed probably needs to involve 'persuading' Marti. Possibly with a baseball bat with nails in. 16:17.40 the ICC meeting occurs when I am in Japan 16:17.40 Chans: (ghostbot) in:#ghostscript 16:17.45 mvrhel_laptop: Oh, crap. 16:17.52 I think so anyway 16:17.55 let me double check the dates 16:18.12 OK, so the *second* problem of this ilk... 16:18.21 malloc and openjpeg. 16:18.23 henrys, nothign from me, I'm buried in CIDFonts 16:18.34 openjpeg routes all it's allocation through calls to opj_malloc/opj_free etc, but unfortunately these are just macros that end up calling malloc and free. 16:18.38 so lcms needs a 'context' that maintains separate callbacks for each context, right ? 16:18.43 I am not even 100% sure he would be their anyway 16:18.45 ray_laptop: Absolutely. 16:19.13 ray_laptop: And he's half heartedly added it, but in a broken way. 16:19.15 yes, the dates overlap 16:19.21 Robin_Watts: yes I think we have a bug about Luratech and openjpeg not using gs. 16:19.38 using gs malloc that is. 16:19.50 henrys: bug 693339 ? 16:20.02 I think openjpeg is the last criminal. 16:21.13 I looked at openjpeg today to see if it would be easy to fix. 16:21.41 Robin_Watts: I did too, and I recall it being a pain in the ass but I don't remember the details. 16:21.46 and it's a trivial headerfile change to make openjpeg rely on user supplied opj_malloc/free calls. 16:22.07 Robin_Watts: I thought something else was messed up with it. 16:22.08 BUT... there is no way to get a gs_memory_t * or a fz_context * to those calls. 16:22.16 henrys: so the purpose of the marketing piece was to show that Artifex has solutions for Mobile, Cloud and Printers 16:22.30 mvrhel_laptop: Right. We're selling the corners, not the edges. 16:22.34 right 16:23.02 That has been Miles' point at the meetings. 16:23.21 and we can't get a gs_memory_t etc to those things without changing api's all the way through openjpeg. 16:23.39 Now it turns out that some of the customers (or at least one of them) had no clue about Airprint and wanted help with that 16:23.40 Robin_Watts: yes now I remember the pain in the ass part. 16:23.44 For gs we might be able to fix it by using a static, and a lock around every opj_call 16:23.48 that is what prompted that in the meeting 16:24.06 For mupdf that's harder as we go to some lengths to be threading agnostic. 16:24.15 if we had some way to show a simple demo doing it, it would be a useful sales tool 16:24.18 Robin_Watts: what about if we make it a bug, assign it to Shelly, and he can sound the OPJ devs about fixing it properly? 16:24.29 mvrhel_laptop: I just see a pdf being pushed around. 16:24.35 yes 16:24.37 I agree 16:24.39 chrisl: Would they accept a wholesale change to their API? 16:25.01 but to the customer they see a solution to their problme 16:25.39 Robin_Watts: I don't know, but they've already taken a change that breaks the ABI (which was surprising). That's why I think it's at least worth asking 16:25.46 until an engineer tells them they don't have a problem. 16:26.04 chrisl: OK, I'm more than happy to create a bug with the description in and lob it at shelly. 16:26.48 henrys: If you want to print from an embedded device to a printer, stage 1 is to do a print preview on the device. 16:26.49 henrys: anyway that was one customer who for what ever reason was unable to read a spec about Airprint and get it working 16:26.57 Robin_Watts: I figure he has some kind of relationship there now, and he can always punt it back to us if they're not keen 16:26.57 FORK(27026) --- fork starting for 'RSSFeeds', PID == 27026, bot_pid == 11990 --- 16:26.58 FORK(27026) !ERROR! cannot load my module: RSSFeeds 16:26.58 FORK(27026) fork: took 1s for RSSFeeds. 16:26.58 FORK(27026) --- fork finished for 'RSSFeeds' --- 16:27.05 But it would be a big customer 16:27.13 chrisl: Sure. I'll do that then unless henrys says different. 16:27.14 and if it is easy to do then why not do it 16:28.11 mvrhel_laptop: I'm really just trying to flesh out "mobile printing" and seeing where we have opportunities. 16:28.33 henrys: message to cust 801 sent 16:29.44 henrys: right. I would like to review what is going on in this space myself. it really is what the customers are focused upon. they all want their own app to do it too 16:29.47 mvrhel_laptop: possibly on iOS mupdf could be a printer driver - if the printing framework is the same as the mac. 16:30.21 mupdf would produce the printer format postscript or pwg raster or the like. 16:30.29 right 16:31.04 there still are many printers not doing pdf natively. 16:31.23 >>> sebras2 has signed off IRC (Ping timeout: 250 seconds) [#ghostscript] 16:31.25 absolutely. 16:31.57 Let's not go over the 1/2 hour but I'll be around if anyone wants to talk. 16:32.32 henrys: It would be possible to build a printer driver out of mupdf even if you didn't get a PDF in. 16:32.52 ray_laptop: I can log into peeved and have added peeved.ghostscript.com to bind. Shall I set it up as a cluster node? 16:32.58 Robin_Watts: what *would* be the input ? 16:33.07 Robin_Watts: you mean with graphics calls? 16:33.18 ray_laptop: You can open a device, and then do graphics calls to that device. 16:33.22 marcosw: please do. Let me know if I need to do anything local 16:33.43 Robin_Watts: I see -- just calling the mupdf lib as a graphics lib for an app 16:33.45 marcosw: if there are many more fuzzing problems can you turn off the email? 16:34.09 henrys: that's it for fuzzing (at least for GhostPCL). 16:34.17 ray_laptop: Right. And we'd get preview from that. And PWG and PCL output. 16:34.31 Chans: (ghostbot) in:#ghostscript 16:34.32 And if I finish pdfwrite/svgwrite, PDF and SVG too. 16:35.03 Robin_Watts: I assume that is what cairo does with it's clients, we've discussed getting that a bit more usable and documented. 16:35.16 s/it's/its 16:35.17 english 16:35.20 ray_laptop: since I have sudo access and can run apt-get install I shouldn't need any help. 16:36.22 marcosw: OK. And as I mentioned, you should have fast connection to peeves since they are both on the same subnet 16:36.26 henrys: Right. The JNI stuff should be a step towards that I hope. 16:37.04 unfortunately, the TW cable router is only 100 not gigabit ethernet 16:37.11 ray_laptop: yes, I'll rsync the tests and tests_private repositories over from peeves instead of installing them from casper. 16:37.45 I am thinking about getting a gigabit switch for the local subnet and only go to the router for "outside" 16:38.30 but that probably won't be today 16:44.31 I'm seeing rsync speeds of 11.1 MB/s between peeves and peeved, so pretty much at the limit of 100baseT 16:44.52 still better than dowloading from casper :-) 16:45.21 marcosw: yeah. my downlink is 7 Mbits 16:47.03 marcosw: I put a new patch up that should fix the blue tiger thing thing. 16:47.22 on bug 693070. 16:48.04 Robin_Watts: yes, saw that. Already downloaded and it does work. I've run the files and am now comparing the subset that doesn't produce an error. 16:48.16 Ah, perfect, thanks. 16:50.55 Chans: (ghostbot) in:#ghostscript 16:51.39 What proportion gives errors? 16:51.53 marcosw is short-addressing ghostbot 16:51.53 ~75% 16:51.53 Loaded Math 16:51.53 math: 75% => 0.75 16:51.53 0.75 16:52.05 ghostbot! ? 16:52.09 that was weird 16:52.10 crumbs, that's huge. 16:52.25 robin_watts is short-addressing ghostbot 16:52.25 ~10*20+30*4 16:52.25 Loaded Math 16:52.25 math: 10*20+30*4 => 320 16:52.25 320 16:52.29 it's all the same error message, so presumably one bug :-) 16:52.43 robin_watts is addressing ghostbot 16:52.43 ghostbot does sums! 16:52.43 Loaded Math 16:52.56 great, now I don't need to fire up the google machine to do maths anymore. 16:53.00 sqrt(12) 16:53.08 robin_watts is short-addressing ghostbot 16:53.08 ~sqrt(12) 16:53.08 Loaded Math 16:53.14 robin_watts is short-addressing ghostbot 16:53.14 ~sqr(12) 16:53.14 Loaded Math 16:53.18 12+2 16:53.21 marcosw is short-addressing ghostbot 16:53.21 ~12+2 16:53.21 Loaded Math 16:53.21 math: 12+2 => 14 16:53.21 14 16:53.28 marcosw is short-addressing ghostbot 16:53.28 ~sin(90) 16:53.28 Loaded Math 16:53.36 okay, maybe I still need google. 16:56.27 robin_watts is /msg'ing ghostbot 16:56.27 [Robin_Watts] help 16:56.27 cmdhooks: help matched 'help' '' 16:56.27 >robin_watts< I learn mainly by observing declarative statements such as "x is at http://www.xxx.com", and then reply when people ask things like "where can i find x?" 16:56.27 >robin_watts< 36 topics: action, addressing, alternation, author, babelfish, banadd, bandel, botmail, chanadd, chandel, chaninfo, chanset, chanunset, chattr, chnick, chpass, contents, cookie, corrections, cpustats, crypt, cycle, dauthor, dbugs, ddesc, dfind, dict, dns, do, dollar variables, dstats, factinfo, factstats, flags, forget, freshmeat 16:56.27 >robin_watts< 39 topics: hex, hex2ip, hostadd, hostdel, httpdtype, ignore, ircstats, join, karma, kernel, kick, lart, lc, listauth, listkeys, listvalues, literal, lobotomy, lock, main, math, md5, mode, news, news add, news del, news mod, news set, news set expire, nickometer, onjoin, ord, page, part, piglatin, quote, redirection, rename, reply 16:56.28 >robin_watts< 30 topics: reverse, rot13, rssfeeds, say, scramble, search, seen, slashdot, spell, status, tell, topic, topic add, topic del, topic mod, topic mv, topic restore, uc, unforget, unlobotomy, unlock, upsidedown, uptime, useradd, userdel, verstats, wantnick, whois, wikipedia, wtf 16:56.56 robin_watts is /msg'ing ghostbot 16:56.56 [Robin_Watts] help math 16:56.56 cmdhooks: help matched 'help' 'math' 16:56.56 >robin_watts< Desc: math expresions can be evaluated. This uses Perl syntax. 16:56.56 >robin_watts< Example: 1+1 16:56.56 >robin_watts< + - add 16:56.57 >robin_watts< - - subtract 16:56.57 >robin_watts< * - multiply 16:56.57 >robin_watts< / - division 16:56.57 >robin_watts< ** - to the power 16:56.58 >robin_watts< pi - pi 16:56.58 >robin_watts< & - and 16:56.58 >robin_watts< | = or 16:56.58 >robin_watts< ^ - xor 16:56.59 FORK(17961) --- fork starting for 'RSSFeeds', PID == 17961, bot_pid == 11990 --- 16:57.01 FORK(17961) !ERROR! cannot load my module: RSSFeeds 16:57.01 FORK(17961) fork: took 2s for RSSFeeds. 16:57.01 FORK(17961) --- fork finished for 'RSSFeeds' --- 16:57.10 robin_watts is /msg'ing ghostbot 16:57.10 [Robin_Watts] help wtf 16:57.10 cmdhooks: help matched 'help' 'wtf' 16:57.10 >robin_watts< Desc: Interface to the BSD wtf command 16:57.10 >robin_watts< Usage: wtf 16:57.10 >robin_watts< Example: wtf iirc 16:57.16 robin_watts is /msg'ing ghostbot 16:57.16 [Robin_Watts] wtf iirc 16:57.16 cmdhooks: wtf matched 'wtf' 'iirc' 16:57.17 FORK(21942) --- fork starting for 'wtf', PID == 21942, bot_pid == 11990 --- 16:57.18 FORK(21942) Loaded wtf 16:57.18 FORK(21942) >robin_watts< no binary found. 16:57.18 FORK(21942) fork: took 2s for wtf. 16:57.18 FORK(21942) --- fork finished for 'wtf' --- 16:57.24 robin_watts is /msg'ing ghostbot 16:57.24 [Robin_Watts] wtf echo 16:57.24 cmdhooks: wtf matched 'wtf' 'echo' 16:57.24 FORK(24886) --- fork starting for 'wtf', PID == 24886, bot_pid == 11990 --- 16:57.25 FORK(24886) Loaded wtf 16:57.25 FORK(24886) >robin_watts< no binary found. 16:57.25 FORK(24886) fork: took 1s for wtf. 16:57.25 FORK(24886) --- fork finished for 'wtf' --- 16:57.37 OK off to cook, goodnight all 16:57.52 robin_watts is /msg'ing ghostbot 16:57.52 [Robin_Watts] help news 16:57.52 cmdhooks: help matched 'help' 'news' 16:57.52 >robin_watts< Desc: News functions 16:57.52 >robin_watts< Usage: news [chan] 16:58.03 >>> kens has signed off IRC (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org) [#ghostscript] 17:02.32 what mac osx doesn't have dc ? 17:03.08 >>> sojic_ has signed off IRC (Remote host closed the connection) [#ghostscript] 17:04.27 I *know* linux does (but bc is a lot easier to use) 17:06.52 >>> join/#ghostscript sojic (~sojic@95.180.240.118) 17:07.12 Chans: (ghostbot) in:#ghostscript 17:10.55 oh good the government is shutdown so IRS is going to stop collecting until we open again ;-) ? 17:11.51 henrys: NPR said that one of the things that would be shutdown is IRS audits 17:14.58 just so long as they don't pay those yahoos in congress 17:15.43 in CA, when they don't pass a budget on time the legislatures have their pay docked. 17:15.53 Seen: Flushed 7 entries. 17:15.57 ray_laptop: Sadly, congressmen continue to be paid. 17:16.22 oh, it's just their staff that don't get paid? 17:16.31 I hadn't looked into that 17:17.21 --- Saved uptime records. 17:17.30 Robin_Watts: apparently a lot of outrage on the web today about that 17:18.17 ray_laptop: Indeed. 17:23.02 Chans: (ghostbot) in:#ghostscript 17:27.26 FORK(21395) --- fork starting for 'RSSFeeds', PID == 21395, bot_pid == 11990 --- 17:27.27 FORK(21395) !ERROR! cannot load my module: RSSFeeds 17:27.27 FORK(21395) fork: took 1s for RSSFeeds. 17:27.27 FORK(21395) --- fork finished for 'RSSFeeds' --- 17:27.44 so we've shutdown everything except defense and entitlements - so 5% of the government is closed 17:32.05 >>> sojic has signed off IRC (Remote host closed the connection) [#ghostscript] 17:38.56 Chans: (ghostbot) in:#ghostscript 17:50.40 >>> join/#ghostscript namingway (cc55022c@gateway/web/freenode/ip.204.85.2.44) 17:54.17 >>> namingway has signed off IRC (Client Quit) [#ghostscript] 17:55.07 Chans: (ghostbot) in:#ghostscript 17:57.54 FORK(10330) --- fork starting for 'RSSFeeds', PID == 10330, bot_pid == 11990 --- 17:57.55 FORK(10330) !ERROR! cannot load my module: RSSFeeds 17:57.55 FORK(10330) fork: took 1s for RSSFeeds. 17:57.55 FORK(10330) --- fork finished for 'RSSFeeds' --- 18:09.44 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 18:09.44 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 18:11.36 Chans: (ghostbot) in:#ghostscript 18:16.10 Seen: Flushed 3 entries. 18:17.42 --- Saved uptime records. 18:27.50 Chans: (ghostbot) in:#ghostscript 18:27.50 ircCheck: possible lost in space; checking.Tue Oct 1 18:27:50 2013 18:27.50 >ghostbot< TEST 18:27.50 IRCTEST: Yes, we're alive. 18:28.00 FORK(6045) --- fork starting for 'RSSFeeds', PID == 6045, bot_pid == 11990 --- 18:28.01 FORK(6045) !ERROR! cannot load my module: RSSFeeds 18:28.01 FORK(6045) fork: took 1s for RSSFeeds. 18:28.01 FORK(6045) --- fork finished for 'RSSFeeds' --- 18:28.12 >>> ray_laptop has signed off IRC (Ping timeout: 252 seconds) [#ghostscript] 18:29.35 bah. ray just dropped off. 18:30.31 He probably saw the mail from Len, and ran screaming into the hills...... 18:30.44 6th gen is 600dpi mono? 18:30.48 or color? 18:31.07 I'm not sure, sorry 18:43.56 Chans: (ghostbot) in:#ghostscript 18:49.57 >>> tor7 has signed off IRC (Remote host closed the connection) [#ghostscript] 18:50.01 >>> join/#ghostscript ray_laptop (~chatzilla@108-225-78-61.lightspeed.irvnca.sbcglobal.net) 18:57.59 >>> chrisl materializes into chrisl_away 18:58.30 FORK(18754) --- fork starting for 'RSSFeeds', PID == 18754, bot_pid == 11990 --- 18:58.31 FORK(18754) !ERROR! cannot load my module: RSSFeeds 18:58.31 FORK(18754) fork: took 2s for RSSFeeds. 18:58.31 FORK(18754) --- fork finished for 'RSSFeeds' --- 19:00.20 Chans: (ghostbot) in:#ghostscript 19:11.03 >>> ray_laptop has signed off IRC (Ping timeout: 256 seconds) [#ghostscript] 19:16.14 Seen: Flushed 2 entries. 19:16.36 Chans: (ghostbot) in:#ghostscript 19:18.06 --- Saved uptime records. 19:18.37 >>> join/#ghostscript saper_ (saper@wikipedia/saper) 19:21.09 >>> join/#ghostscript jghali (~jghali@84.127.239.172.static.user.ono.com) 19:22.43 >>> xymox has signed off IRC (Disconnected by services) [#ghostscript] 19:22.48 >>> join/#ghostscript _Zaister (zaister@shell2.powershells.de) 19:23.06 >>> join/#ghostscript xymox (lechuck@unaffiliated/contempt) 19:24.07 http://plasmasturm.org/log/6debug/ 19:27.16 >>> Zaister has signed off IRC (*.net *.split) [#ghostscript] 19:27.19 >>> saper has signed off IRC (*.net *.split) [#ghostscript] 19:27.20 >>> deleet has signed off IRC (*.net *.split) [#ghostscript] 19:28.56 FORK(22273) --- fork starting for 'RSSFeeds', PID == 22273, bot_pid == 11990 --- 19:28.57 FORK(22273) !ERROR! cannot load my module: RSSFeeds 19:28.57 FORK(22273) fork: took 1s for RSSFeeds. 19:28.57 FORK(22273) --- fork finished for 'RSSFeeds' --- 19:33.10 Chans: (ghostbot) in:#ghostscript 19:57.24 LOG: last message repeated 3 times 19:57.24 Robin_Watts: so are you seeing the same issues with their file that the trans. on the one page is the timing issue? 19:59.04 FORK(23613) --- fork starting for 'RSSFeeds', PID == 23613, bot_pid == 11990 --- 19:59.05 FORK(23613) !ERROR! cannot load my module: RSSFeeds 19:59.05 FORK(23613) fork: took 1s for RSSFeeds. 19:59.05 FORK(23613) --- fork finished for 'RSSFeeds' --- 20:05.05 >>> join/#ghostscript deleet (~deleet@chronos.andreferreira.com) 20:05.15 >>> plinnell has signed off IRC (Ping timeout: 260 seconds) [#ghostscript] 20:05.46 Chans: (ghostbot) in:#ghostscript 20:16.20 Seen: Flushed 2 entries. 20:18.22 --- Saved uptime records. 20:21.14 Chans: (ghostbot) in:#ghostscript 20:29.22 FORK(4119) --- fork starting for 'RSSFeeds', PID == 4119, bot_pid == 11990 --- 20:29.23 FORK(4119) !ERROR! cannot load my module: RSSFeeds 20:29.23 FORK(4119) fork: took 1s for RSSFeeds. 20:29.23 FORK(4119) --- fork finished for 'RSSFeeds' --- 20:35.28 >>> join/#ghostscript plinnell (~mrdocs@opensuse/member/mrdocs) 20:37.08 Chans: (ghostbot) in:#ghostscript 20:59.08 ircCheck: possible lost in space; checking.Tue Oct 1 20:59:08 2013 20:59.08 >ghostbot< TEST 20:59.08 IRCTEST: Yes, we're alive. 20:59.48 FORK(13373) --- fork starting for 'RSSFeeds', PID == 13373, bot_pid == 11990 --- 20:59.49 FORK(13373) !ERROR! cannot load my module: RSSFeeds 20:59.49 FORK(13373) fork: took 1s for RSSFeeds. 20:59.49 FORK(13373) --- fork finished for 'RSSFeeds' --- 21:09.25 Chans: (ghostbot) in:#ghostscript 21:18.33 --- Saved uptime records. 21:24.27 >>> plinnell has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 21:25.17 Chans: (ghostbot) in:#ghostscript 21:30.03 FORK(18937) --- fork starting for 'RSSFeeds', PID == 18937, bot_pid == 11990 --- 21:30.04 FORK(18937) !ERROR! cannot load my module: RSSFeeds 21:30.04 FORK(18937) fork: took 1s for RSSFeeds. 21:30.04 FORK(18937) --- fork finished for 'RSSFeeds' --- 21:33.13 >>> jghali has signed off IRC (Quit: Leaving) [#ghostscript] 21:41.55 Chans: (ghostbot) in:#ghostscript 22:00.21 FORK(25096) --- fork starting for 'RSSFeeds', PID == 25096, bot_pid == 11990 --- 22:00.22 FORK(25096) !ERROR! cannot load my module: RSSFeeds 22:00.22 FORK(25096) fork: took 1s for RSSFeeds. 22:00.22 FORK(25096) --- fork finished for 'RSSFeeds' --- 22:02.33 ircCheck: possible lost in space; checking.Tue Oct 1 22:02:33 2013 22:02.33 >ghostbot< TEST 22:02.33 IRCTEST: Yes, we're alive. 22:10.18 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 22:10.18 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 22:13.40 Chans: (ghostbot) in:#ghostscript 22:18.36 --- Saved uptime records. 22:29.16 Chans: (ghostbot) in:#ghostscript 22:30.26 FORK(18440) --- fork starting for 'RSSFeeds', PID == 18440, bot_pid == 11990 --- 22:30.27 FORK(18440) !ERROR! cannot load my module: RSSFeeds 22:30.27 FORK(18440) fork: took 1s for RSSFeeds. 22:30.27 FORK(18440) --- fork finished for 'RSSFeeds' --- 23:00.34 FORK(10666) LOG: last message repeated 4 times 23:00.34 FORK(10666) --- fork starting for 'RSSFeeds', PID == 10666, bot_pid == 11990 --- 23:00.35 FORK(10666) !ERROR! cannot load my module: RSSFeeds 23:00.35 FORK(10666) fork: took 1s for RSSFeeds. 23:00.35 FORK(10666) --- fork finished for 'RSSFeeds' --- 23:05.48 LOG: last message repeated 4 times 23:05.48 ircCheck: possible lost in space; checking.Tue Oct 1 23:05:48 2013 23:05.48 >ghostbot< TEST 23:05.48 IRCTEST: Yes, we're alive. 23:07.12 mvrhel_laptop: 532? 23:08.05 I haven't tried the new simulator yet, but on the old one the transparency was a big hunka time. 23:08.30 Now, I put some optimisations in for 1bpp output. 23:08.53 and those won't be being triggered cos they want 2bpp output, so I may just redo the optimisations for that case. 23:16.35 Chans: (ghostbot) in:#ghostscript 23:16.55 Seen: Flushed 1 entries. 23:18.47 --- Saved uptime records. 23:23.00 >>> join/#ghostscript Fandekasp (~Fandekasp@27-32-19-26.static.tpgi.com.au) 23:26.17 Robin_Watts: oh I thought you had previously said on the file that transparency was only on page 2 and was a tiny bit of time esp. since everything is in gray 23:26.30 but perhaps I was mistaken Robin_Watts 23:26.38 Indeed, page 2 is the only transparent bit. 23:27.22 and on the timings for the previous simulator, it was a fairly low percentage of time, partly cos it was going through code that I'd already optimised. 23:27.33 For this target the time looks higher. 23:27.46 possibly because it's not hitting the optimised cases. 23:27.48 i see 23:28.00 I've got the simulator downloaded now, so I'll give it a whirl in the morning. 23:28.44 page 2 in this set is 6.6 seconds, compared to 2.2 ish for the other pages. 23:31.13 >>> join/#ghostscript ray_laptop (~chatzilla@108-225-78-61.lightspeed.irvnca.sbcglobal.net) 23:31.23 FORK(14351) --- fork starting for 'RSSFeeds', PID == 14351, bot_pid == 11990 --- 23:31.24 FORK(14351) !ERROR! cannot load my module: RSSFeeds 23:31.24 FORK(14351) fork: took 1s for RSSFeeds. 23:31.24 FORK(14351) --- fork finished for 'RSSFeeds' --- 23:32.31 Chans: (ghostbot) in:#ghostscript 23:35.07 ok so I have some progressions and some areas that I see are wrong (still) with the clusterpush 23:35.38 one isolated now... 23:37.36 >>> paulgardiner has signed off IRC (Quit: ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]) [#ghostscript] 23:47.32 >>> join/#ghostscript plinnell (~mrdocs@opensuse/member/mrdocs) 23:48.25 Chans: (ghostbot) in:#ghostscript