IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2016/02/23)20160224 
ediee Robin : Hi05:33.27 
  Hi05:34.05 
ghostbot Welcome to #ghostscript, the channel for Ghostscript and MuPDF. If you have a question, please ask it, don't ask to ask it. Do be prepared to wait for a reply as devs will check the logs and reply when they come on line.05:34.05 
ediee can anyone will help me out for mupdf's reflow mode05:40.10 
  ?05:40.11 
  Hello everyone05:58.38 
  can i get any help for mupdf's reflow mode05:58.50 
  ?05:58.51 
  can anyone here?06:30.57 
  HI everyone09:34.12 
  Can i get help for mupdf's reflow mode09:34.27 
  ?09:34.31 
kens ediee as explained you are not a customer, so any support is entirely at our discretion, we do have other things to do. Right now you are too early (as you were 4 hours ago) for anyone much to be around. Please don't keep pinging pepole, this channel is logged an the logs *are* read by the engineers. If you stick around (or read the logs yourself) someone will answer.09:35.58 
  I thnk you will need to make an example file available before anyone can help you any further in any event, as I suggested yesterday.09:36.20 
ediee im ready to do that but nobody is replying then how can i ask questions??09:37.00 
kens Wiat.09:37.06 
  Wait.09:37.10 
ediee i was in conversation with robin yesterday09:37.19 
kens You are asking quesotns when nobody is around. SO don't. Ask once and wait09:37.24 
  As I said, the channel is logged (hence why I see you asking the same questions 4 hours ago), and the engineers do read the logs.09:37.50 
  So when someone turns up and is prepared to discuss ths with you, they will answer09:38.09 
ediee I understand.. as u said you have other things to do likewise I too have other things to do.. I cant wait upto 4 hrs right?09:38.37 
kens You can wait longer than that. THe poeple you need to speak to are in Europe (I odn't know where you are based) so you could wait a long time09:39.16 
ediee ok I have to wait now also09:39.35 
  or will u reply for the question?09:39.43 
kens I don't work on MuPDF so I cannot answer your question09:39.58 
ediee very well then09:40.20 
  thanks for ur commets09:40.23 
xd1le ediee: you don't have to wait continuously, you can ask your question and do other things, keep the irc client connected and check back later09:53.37 
  :)09:54.25 
  there are public logs at http://ghostscript.com/irclogs/, so you can even ask your question and disconnect, and then read the logs later to see if anyone answered09:55.58 
ediee xd1le : ok thank you09:59.27 
Robin_Watts ediee: Morning10:28.10 
ediee Robin : Morning 10:31.44 
  Robin : I tried ur yesterdays solution.. But the issue with the layout10:32.41 
  how can I solve it10:32.47 
  Can i share an example with u10:32.52 
  ?10:32.53 
Robin_Watts ediee: You can.10:33.10 
  Go to bugs.ghostscript.com, register, and then open a bug. Attach the smallest example file you can that shows the problem.10:33.32 
ediee Robin : i assigned the bug10:39.02 
  Bug 69661410:39.03 
Robin_Watts ediee: There are no images in that file.10:41.50 
  The diagrams are line art, not images.10:42.02 
  We can't carry line art into the HTML.10:42.15 
ediee u mean to say that the html is correct?10:43.13 
  as u can see the pdf and the html 10:43.25 
  its totally different10:43.28 
Robin_Watts ediee: I cannot be any clearer.10:43.48 
  There are no Images in the PDF. Therefore there are no images in the HTML.10:44.10 
  The diagrams in the PDF are NOT images.10:44.23 
ediee ok agreed10:44.38 
  then how to carry those diagrams into html10:44.46 
  ?10:44.47 
Robin_Watts We can't.10:44.53 
ediee then I think those diagrams can be converted into images then we can add those diagrams into images in html10:45.31 
Robin_Watts ediee: Sure. Go for it. I'll be interested to see what you come up with.10:46.27 
ediee can i get those diagrams as images in mupdf?10:46.48 
Robin_Watts edie:: MuPDF can be told to render any part of a page.10:49.02 
  but how do you know what part of the page to render ?10:49.12 
ediee Robin : thats only my question since from yesterday10:49.36 
  the diagrams / images are not extracted in reflow mode10:50.15 
Robin_Watts ediee: No.10:52.47 
  Yesterday you insisted that you had a file that had IMAGES in it, and that they weren't being extracted.10:53.08 
  We now see that the files have no images.10:53.20 
  NOW you are asking if there is a way to extract the diagrams as images.10:53.36 
ediee yess 10:53.44 
Robin_Watts and I am saying, "No, MuPDF does not support that."10:53.49 
  You then asked if MuPDF could draw those diagrams to images, and I said "Yes, MuPDF can draw any given area of the page to an image, but you need to somehow figure out what area of the page to draw"10:54.32 
  and that is NOT an easy thing to do.10:54.43 
  There is no marker in the PDF file to say "this bit of the page contains a diagram".10:55.00 
ediee then how can we achieve the reflow mode10:55.38 
  in all conditions10:55.42 
  like diagrams, images, formulaes, scientific notations and many more10:56.02 
Robin_Watts ediee: With current MuPDF, you cannot.10:56.05 
ediee can we expect this in future with mupdf?10:57.02 
Robin_Watts ediee: It's not on the immediate list of things to look at, no.10:58.41 
ediee ok10:59.34 
chrisl Note that there will *always* be aspects of PDF that cannot be represented in HTML10:59.57 
ediee Robin and Chrisl : Can we determine somehow or anyhow that the page contains the diagrams, images, notations etc..11:00.54 
  ?11:00.55 
Robin_Watts ediee: It would be possible to detect that a page has lineart on that won't translate, yes.11:01.45 
ediee can u tell me how can we get that?11:02.31 
Robin_Watts ediee: You'd need to modify the internals of MuPDF.11:11.10 
  Specifically, the stext device.11:11.21 
  It consists of various functions that get called for each different thing on the page (images, text, paths etc).11:11.44 
  You'd need to add some code that sets a flag when (say) a path was encountered.11:12.02 
tor8 Robin_Watts: cluster looks unhealthy on the dashboard11:12.03 
Robin_Watts tor8: I suspect miles' office just fell off the net :)11:12.51 
  It'll sort itself out in a few minutes.11:13.04 
tor8 Robin_Watts: I was seeing some odd time increases on my last run :/11:13.27 
  Robin_Watts: if you got a mo to look over tor/master I'd be grateful11:13.37 
  but something is causing it to run slower than before, which I did not expect11:13.52 
Robin_Watts ediee: Are you a competent C programmer?11:13.53 
  tor8: fetching now.11:14.09 
ediee Robin : No 11:14.56 
Robin_Watts tor8: I see 10 commits on robin/master. Have you had a clean run out of any of them ?11:15.15 
  ediee: Then you're in trouble :(11:15.23 
tor8 Robin_Watts: that's what I was trying to do when the cluster fell over11:16.17 
Robin_Watts tor8: I mean, is it just the last commit that's broken, or might it be any of them?11:16.43 
tor8 I suspect the first of them11:17.01 
  the clip function scissor one11:17.12 
Robin_Watts I can't see anything wrong with that offhand.11:21.38 
  Let's wait for the cluster to recover.11:21.48 
tor8 Robin_Watts: the wmode one, I don't know if you saw my ramblings about XPS having a BidiLevel annotation to text objects11:22.24 
Robin_Watts I did.11:22.33 
  Does that mean that XPS is expected to do shaping etc?11:22.41 
  XPS gives unicode, rather than glyphs, right?11:23.06 
tor8 XPS is expected to have had shaping done already, but it stores bidilevel and unicode "cluster map" information to recover the high level text11:23.10 
  XPS gives both11:23.17 
Robin_Watts Ah, gotcha.11:23.22 
tor8 so we could revert the wmode commit and add bidilevel as well as wmode to fz_text11:24.16 
Robin_Watts oh, wait, bidilevel.11:29.12 
  That's like the number of nestings within the bidi classification stuff?11:29.45 
tor8 yeah, looks that way from the XPS spe11:29.57 
  c11:29.58 
Robin_Watts I don't extract that from the bidi code at the moment, but could do if required.11:30.12 
  I sincerely hope we never need it.11:30.18 
tor8 I'd say we postpone that idea for a while11:30.37 
  the bidilevel in xps is mostly there to advance the pen position going left or right depending on whether it's odd or even11:32.03 
Robin_Watts oh, well, we can extract the bottom bit of that as left or right then ?11:54.16 
tor8 Robin_Watts: results came in for the clip commit ... 16 minutes slower than trunk11:54.25 
Robin_Watts ok, cluster looks back.11:54.27 
tor8 Robin_Watts: yes11:54.29 
Robin_Watts tor8: So, IIRC from looking at it, we are doing bounding operations in 1 more case than before...11:55.12 
  but no diffs?11:55.25 
tor8 zero diffs11:55.41 
  the only real changes are coping with null in clip_image_mask and adding the scissor to clipped text11:57.17 
Robin_Watts tor8: Yeah.11:57.32 
tor8 I have a hard time seeing how clipped text is common enough to add 17 minutes of runtime to the cluster...11:57.36 
Robin_Watts Indeed.11:57.50 
  Can we split those bits and test separately?11:58.01 
tor8 yeah, I'll do that11:58.11 
Robin_Watts actually, 17 minutes of runtime *may*be down to the fact that we only have a limited set of cluster nodes.11:58.30 
  If we've lost more "high power" cluster nodes, then that might explain it.11:58.48 
  kens: You here?11:59.47 
tor8 well, makes sense to split the commit anyway so I might as well try it.12:01.06 
Robin_Watts chrisl: Do you know anything about the gstype1.c code ?12:07.05 
tor8 Robin_Watts: yeah, now I'm getting a run time of 25 minutes slower12:11.02 
  I blame the cluster...12:11.05 
Robin_Watts tor8: So with the new code it's 8 minutes faster? :)12:11.27 
malc_ wow12:12.37 
tor8 Robin_Watts: with the text clip masks it's 8 minutes faster ... if anything can be trusted ;)12:13.11 
  Robin_Watts: did you look at the other commits as well? it would be nice to get sebras stuff to golden before I start digging into the pdf-create branch.12:15.23 
Robin_Watts tor8: Let me look again.12:15.37 
  I thought we were avoiding the wmode -> font move ?12:16.10 
tor8 I can't make up my mind. This makes sense for PDF but is slightly at odds with XPS.12:17.13 
Robin_Watts I've looked over sebras code several times and I'm happy.12:17.21 
  I don't understand the last 2 commits yet.12:17.32 
tor8 they are the final bits of polish to get whitespace handling done correctly12:17.48 
chrisl Robin_Watts: What about the gstype1.c code?12:18.04 
tor8 there were a few corner cases we'd get wrong, and we didn't handle all white-space css variants correctly12:18.19 
Robin_Watts chrisl: Can I come back to you in 5 mins please?12:18.38 
  (sorry)12:18.42 
chrisl I'm going to get some lunch, so after that12:18.52 
Robin_Watts (or later, at your convenience)12:18.56 
  Sure, thanks.12:18.59 
  tor8: Ok, the first of those commits looks plausible.12:21.21 
  and I'm going to nod sagely at the last one and pretend I understand it.12:23.41 
  So, all of those look fine, except for the wmode one, which I think we should leave out for now.12:23.56 
tor8 Robin_Watts: okay. I'll take that out for now then.12:25.07 
  Robin_Watts: reworked wmode commit on tor/master12:43.22 
Robin_Watts lgtm12:44.45 
chrisl Hmm, no bugzilla :-(12:44.59 
tor8 Robin_Watts: thanks.12:45.07 
chrisl Robin_Watts: back now, so whenever......12:52.17 
Robin_Watts chrisl: cool.12:52.29 
  I updated the code a while ago to catch a load of places where return codes were being ignored.12:52.52 
  One of the places I changed was pdfwrite.12:53.06 
  Now that turns out to have caused a problem in pdfwrite close down, resulting in a lack of content in the files.12:53.35 
  The exact problem is that a call to pdf_write_embedded_font gives a rangecheck error.12:54.48 
  That in turn is failing because psf_write_type1_font is failing.12:55.15 
  which is failing because of psf_get_type1_glyphs12:56.16 
  which is failing because of psf_get_outline_glyphs12:56.25 
  which is failing because of psf_check_outline_glyphs12:56.40 
  which is failing because of pfont->procs.glyph_info12:57.17 
  which is failing because of gs_type1_interpret (or type1_next, can't remember)12:58.17 
  and that is failing because of gs_type1_check_float12:58.33 
  specifically the if (c != cx_escape) clause there.12:58.54 
chrisl Well, clearly, psf_check_outline_glyphs() shouldn't return immediately on an error12:59.00 
  Hmm, and it doesn't but only special cases certain errors......13:02.06 
  Robin_Watts: The thing is, if it's one (potentially unused) glyph throwing the error, that probably shouldn't a) inhibit embedding the font, nor b) stop the output being written13:04.01 
Robin_Watts chrisl: Absolutely.13:04.25 
kens Hmm I did say at the time that I wasn't convinced all those uncaught errors were safe to catch :-)13:04.40 
Robin_Watts kens: yes, you did.13:04.53 
kens I'd look at it myself but I'm still thrashing around in the dark with ths performance nightmare13:05.04 
Robin_Watts my unspoken feeling at the time was that we should catch them and if they are a problem EXPLICITLY drop them.13:05.23 
kens Yes, there are places where I already do that13:05.39 
  Usually along with a comment13:05.53 
  But of course that only holds for places where I've changed the code myself13:06.15 
Robin_Watts My current fix here is to swallow rangecheck errors returned from pdf_check_outline_glyphs.13:06.31 
  That (I believe) solves the bug, but it may not be optimal13:06.51 
kens I'd say do that, and open a bug report for me to look at in the future13:07.03 
Robin_Watts kens: I'll do that, and then repoint the existing bug to you, with comments about what I know.13:07.42 
  Thanks.13:07.45 
kens NP13:07.48 
  I'd forgotten there was an existing bug13:08.10 
chrisl Robin_Watts: I'd have thought catching and ignoring the error *in* psf_check_outline_glyphs() so it continues to enumerate all the glyphs it can (and possibly doesn't increment good_glyphs for ones that error)13:09.14 
kens I'm reasonably sure psf_outline_glyphs is only used by pdfwrite, so yes, that's why I'd like to look at it :-)13:09.52 
chrisl It's in the pdfwrite code, so.....13:10.22 
kens Well the pdf_ prefix means its in the pdfwrite/ps2write family, its lower level than pdfwite itself13:10.47 
  psf_ I mean13:10.53 
chrisl Lordy, we have gs_imager_state_initial() *and* gs_imager_state_initialize()......13:13.47 
Robin_Watts chrisl: I could make psf_check_outline_glyphs continue on to the end, but I feel that we ought to *somehow* return the error.13:14.04 
kens And some _aux ones and some _impl ones to go with them ? :-D13:14.08 
  Robin_Watts : it depends on why we are callign the code, I'd need to look into it13:14.32 
Robin_Watts (i.e. swallowing the error seems wrong, but deferring the error seems reasonable).13:14.47 
  kens: indeed.13:14.55 
chrisl Robin_Watts: the worry there would be that we'd be skipping potentially valid glyphs13:15.22 
Robin_Watts chrisl: What I am suggesting is that we should try every glyph.13:15.52 
  but at the end we return the error if any one of them gave an error.13:16.04 
  hence we operate on every glyph, but still never drop any errors.13:17.01 
chrisl it doesn't look to me as though that's how the code was intended to work13:17.53 
Robin_Watts actually, it looks to me like maybe I should be ignoring the rangecheck error specifically in psf_check_outline_glyphs13:19.32 
  That already ignores gs_error_invalidfont errors for individual glyphs.13:20.05 
  but continues on through otherwise.13:20.14 
chrisl Wish I'd thought of that......13:20.34 
Robin_Watts chrisl: yeah, yeah, just catching up, sorry :)13:20.48 
  Ok, I'll swap to chrisl's way of working.13:21.18 
chrisl I'm assuming that's partly (at least) what the "good_glyphs" variable is for13:21.25 
Robin_Watts I'll still point the bug at ken so he can double check it all at his convenience.13:21.45 
kens OK13:22.32 
Robin_Watts I also spotted this: http://git.ghostscript.com/?p=user/robin/ghostpdl.git;a=commitdiff;h=4dac193243a94bd0baf32bb0e621562d38ce682713:22.45 
kens From the conversdation, and not having looked at the code, it sounds like you should ignore all errors for glyphs, but I can't be sure13:23.07 
  So you stopped checkign for errors when releasing objects ?13:23.54 
Robin_Watts kens: No.13:24.05 
  In those routines, we have:13:24.12 
  { int j, code = 0;13:25.10 
  for (j =0; j < n && code >= 0; j++)13:25.11 
  {13:25.13 
  some code that never alters the code variable.13:25.14 
  }13:25.16 
  }13:25.17 
kens Hmm, I guess its copy/paste code from the first one I wrote13:25.33 
  I probably meant to go back and check code13:25.46 
Robin_Watts kens: yeah. It's no biggy, but it had me hunting for what the magic macro that fiddled with code behind the scenes was :)13:26.14 
kens Ah well, if its my code it doesn't (as a general rule) use macros13:26.34 
  Of coruse, its not entrely my code......13:26.46 
Robin_Watts I do not dislike macros as much as most people, but I loathe macros that hide variables.13:27.43 
kens I'm fine with macros provided they are simple, clear and obviously a macro so I don't waste time trying to debug them.13:28.18 
Robin_Watts kens: I can put that in, or I can leave it - your call.13:29.04 
kens The code thing ? I don't mind either way13:29.24 
Robin_Watts I'll put it in then, ta.13:29.36 
kens OK13:29.40 
marcosw Robin_Watts: thx for the quick fix for <http://bugs.ghostscript.com/show_bug.cgi?id=696609>. Unfortunately it only fixed the 24 bit depth case, so I've reopened the bug.14:19.35 
Robin_Watts marcosw: Thanks.14:19.50 
  marcosw: For bug 696603, could you tell me how to actually build with address sanitizer please? :)14:20.19 
marcosw Sure, it's not pretty but I will send out an email.14:20.42 
kens I may need to know that as well14:20.49 
marcosw I'll send it to tech@14:21.07 
Robin_Watts make gpcl6 XCFLAGS="-fsanitize=address -fno-omit-frame-pointer" fails multiple times during the build as all our tools leak like sieves.14:21.13 
  if I keep rerunning it gets further, but the final link persistently fails.14:21.42 
marcosw yes, it involves editing the Makefile (and then editing the generated ldt.tr fiels).14:21.50 
  like I said, it's messy14:21.56 
Robin_Watts grabs lunch. Will look at mail afterwards - thanks.14:21.58 
HenryStiles marcosw: just build genconf and the romfs stuff separately then build with XCFLAGS and XLDFLAGS set to -fsanitize .... that's all.15:00.19 
  marcosw: reportedly chrisl has a fix a fix for the whole thing so we can just have a target once the release is done.15:01.08 
tor8 mvrhel_laptop: morning.15:07.38 
HenryStiles kens: obviously no priority, but we should get that simple indexed image right in pdfwrite, http://bugs.ghostscript.com/show_bug.cgi?id=69631415:08.54 
kens It will have to join the list15:09.09 
mvrhel_laptop Hi tor815:26.50 
  brb need to grab some breakfast15:27.49 
tor8 mvrhel_laptop: I'm going through your branch. I've got a list of questions and comments, and I figured I could get started on some of them :)15:28.25 
  so whenever you have time15:28.42 
mvrhel_laptop tor8: ok now is fine15:31.14 
tor8 apart from some name changes, which I easily do myself, most of it looks pretty good15:32.46 
  however, the pdf_res struct looks a bit pointless to me -- is there a reason we can't just use a pdf_obj which is an indirect reference?15:33.37 
mvrhel_laptop tor8: good question. I originally had it returning a indirect ref. But there was a problem. Give me a sec. to remember what it was15:34.33 
tor8 (btw, there was a lot of trailing whitespace throughout ... have you configured your git to remove it?)15:36.26 
  git config apply.whitespace fix15:36.56 
  I've wringed the branch through a git filter-branch to strip that; result is on tor/pdf_create15:37.23 
Robin_Watts chrisl: On unix, I've just done ./autogen.sh && make clean && make gpcl6 and it's whinging that it doesn't know to make mag16.dev15:38.47 
mvrhel_laptop tor8: So about pdf_res. The issue was that in pdf_write, we are creating the indirect referencing in the page resources using F0 F1 etc. for fonts or Im0 Im1 Im2 for images as they are added. # in F# and Im# needs to be associated with the pdf_obj so that we know how we are referencing the object and so that we can check if the page resources are already referencing it. Maybe I am...15:42.00 
  ...missing something with how to do that with a pdf_obj15:42.01 
  tor8: let me check my white space settings15:42.10 
tor8 mvrhel_laptop: oh, so the num in pdf_res is the # in the /Im# of a specific resource dictionary?15:43.52 
  that seems fragile15:43.55 
  different pages could easily use the same resource under a different name15:44.05 
mvrhel_laptop tor8: Yes and they do15:44.16 
  This only persists for the life of the page15:44.31 
  so page 1 can call image object Im0 and page 2 could ref it as Im215:45.10 
  or what ever15:45.13 
  it depends upon the order that the images are encountered15:45.23 
  no that is not true15:45.29 
tor8 well, the pdf_res is stored in the resource tables15:45.42 
mvrhel_laptop yes. so it is not the life of the page15:45.53 
tor8 I'd just make pdfwrite use /F# where # is the actual object number of the resource :)15:46.00 
mvrhel_laptop tor8: ah good point15:46.24 
  tor8: ok I will fix that15:46.44 
  I was making things more complicated than they had to be15:46.58 
tor8 mvrhel_laptop: I did some cleanups on the resource thing (removed some of the void* casting)15:47.04 
  you can find the commits on tor/pdf_create if you want to give it a quick review before carrying on from there?15:47.18 
mvrhel_laptop ok. that would work15:47.30 
tor8 next thing; the font resource creation takes a fz_buffer. I would have expected it to take a fz_font.15:48.10 
  I see you take the buffer, create a new font and create a resource from that, then discard the fz_font.15:48.27 
  I would like to see it take a fz_font directly, extract the data from there (it's stowed away somewhere in the fz_font struct)15:48.46 
mvrhel_laptop yes it is15:48.51 
  ok. that is an easy fix15:49.04 
tor8 pdf_fontdesc_init could be turned into a pdf_new_fontdesc_from_font (and from_simple_font) and you wouldn't have to do the freetype locking dance every time you call it15:49.47 
  the first_width, last_width entries don't really belong in fz_font15:50.02 
  and if we take a fz_font in, recreating the font_widths table is going to be a no-no15:50.18 
  you could create the widths array directly in ft_width_for_simple_table, and not go via the fz_font width_table15:50.58 
  getting StemV by rendering looks like overkill. I've done some investigation and it seems that InDesign just hardcodes the StemV value to 80 :)15:52.06 
  the italic_angle and cap_height can be extracted from the freetype headers; if you get the font format specific tables out the fields are in15:52.40 
  PS_FontInfoRec and TT_Postscript and TT_OS215:52.49 
  personally, I'd just nuke the stemv field and hard code it to 80 when writing the font descriptor15:53.14 
mvrhel_laptop tor8: ok15:53.20 
tor8 in fz_new_font_from_memory we already extract some info from the TT_OS2 table15:54.31 
  you may need to create a wrapping fz_buffer for fz_new_font_from_memory to be able to get ft_buffer out for some fonts15:56.46 
  hm, that reminds me; should add a fz_new_buffer_from_shared_data that doesn't free the underlying buffer15:57.46 
mvrhel_laptop tor8: ok trying to keep up. so on the width table15:59.25 
  right now it is filled in ft_width_for_simple_table16:01.11 
  oh but you are saying to do the allocation there too16:01.24 
tor8 well, it's going to be a very simple 256-entry array at most16:01.53 
mvrhel_laptop yes16:01.58 
tor8 I figure you can create the whole pdf array, as well as first and last char entries in one go there16:02.15 
mvrhel_laptop right. do you want first_width and last_width to be in fontdesc?16:02.52 
tor8 I don't think we need them to be anywhere at all16:04.23 
mvrhel_laptop The spec requires them I thought16:04.36 
tor8 other than in local variables16:04.38 
  they need to be set when creating the font descriptor PDF object16:04.49 
  but we shouldn't need to hold on to them in our pdf_fontdesc struct16:05.03 
mvrhel_laptop fair enought16:05.46 
tor8 if you want I can take a bash at fixing this stuff.16:07.04 
mvrhel_laptop I would have figured that if you had a value that was required to be written out you would want that value stored but I suppose we can recompute it16:07.18 
  tor8: if we are bumping against getting this in before the release, it may be fastest for you to do it16:08.05 
tor8 I just don't want to step on any toes if we're both going to be fixing stuff in this code16:08.36 
mvrhel_laptop right. I am really fine either way16:08.47 
tor8 then I shall take a stab at fixing the font stuff today16:09.00 
mvrhel_laptop tor8: ok sounds good16:09.12 
tor8 I'll also see if I can poke around the pdf_res stuff I mentioned16:09.57 
  I have however managed to make mutool create crash rather spectacularly16:10.32 
mvrhel_laptop tor8: really16:10.43 
Robin_Watts chrisl: http://git.ghostscript.com/?p=user/robin/ghostpdl.git;a=commitdiff;h=6755eb1f98105693ff02d168243807f421ef2275 ?16:10.47 
tor8 the cleanup segfaults if there are syntax errors in the content.txt file16:10.49 
  I made a simple file with two lines "/Pages 1" and "/Page 1 500 500" and that provoked the segfault16:11.22 
mvrhel_laptop tor8: ok. leave that for me16:11.38 
  tor8: if there is anything else left to do let me know16:11.53 
tor8 I wouldn't mind two more command line flags to mutool create: -a and -d16:12.24 
  -a to print ascii hex encoded binary streams16:12.31 
  and -d to print in non-tight syntax16:12.37 
  (and eventually -d would toggle the compression/decompression of buffers)16:13.01 
  oh, and you do a lot of sprintf() followed by fz_write_buffer16:13.39 
  we have fz_buffer_printf :)16:13.43 
mvrhel_laptop ah. good to know16:13.56 
HenryStiles Robin_Watts: I build gpcl6 regularly and haven't had that problem.16:14.38 
Robin_Watts HenryStiles: the mag16.dev thing was my fault.16:14.56 
HenryStiles okay16:15.07 
Robin_Watts I have a fairly small makefile change that enables easier address sanitizer builds though.16:15.44 
  Latest version: http://git.ghostscript.com/?p=user/robin/ghostpdl.git;a=commitdiff;h=d5e0b0c703bd197712de0a66160f5207ed643f5d16:16.17 
HenryStiles Be interesting to see what we get with the allocators rigged to go to malloc each time.16:18.21 
  Robin_Watts: thanks I'll grab that.16:19.21 
Robin_Watts make pcl6sanitize (and do that repeatedly until it builds)16:19.50 
  make gpcl6sanitize (and do that repeatedly until it builds)16:19.55 
  I think bug 696603 is bogus.16:23.02 
  mem_mono_copy_mono does cunning load/shift tricks to cope with copying unaligned data.16:23.39 
  as such it can read beyond the end of data, but won't actually use the data it reads.16:24.06 
HenryStiles Robin_Watts: well yes with repeating I can just do: make gpcl6debug XCFLAGS=-fsanitize=address XLDFLAGS=-fsanitize=address16:24.07 
Robin_Watts HenryStiles: Yes.16:24.30 
  All my change is is to add some new targets to basically do that.16:24.59 
  Except that with my change you can still specify XCFLAGS etc.16:25.12 
  It's not rocket science.16:25.28 
mvrhel_laptop tor8: so I fixed my git to remove the trailing white space. for those of you who use VS, found this https://visualstudiogallery.msdn.microsoft.com/a204e29b-1778-4dae-affd-209bea658a59. Also found that CTRL+k CTRL+d removes trailing white space 16:26.20 
Robin_Watts There *may* be a fix we can do to avoid the repeating problem, but it's more invasive.16:26.21 
  Ctrl-K/Ctrl-D reformats doesn't it?16:26.44 
  Nice find on that tool though I will add that now.16:27.05 
HenryStiles Robin_Watts: chrisl said he has a fix, he just doesn't want to muck with genconf now understandably16:27.06 
mvrhel_laptop Robin_Watts: hmm maybe16:27.08 
  anyway, the tool is nice to quickly see them16:27.41 
Robin_Watts HenryStiles: Ah, I was thinking of putting '-' before each tool invocation.16:28.01 
mvrhel_laptop bbiab16:28.15 
Robin_Watts possibly conditionally, if Make will support that.16:28.18 
  $(SAN_EXE)mkromfs .... etc16:28.38 
  where $(SAN_EXE) will be empty in non sanitizer builds, and "-" in sanitizer ones. So make will ignore the return value and continue.16:29.09 
HenryStiles Robin_Watts: right that will work, but I'd like everything to build cleanly. I hope we don't use that to get around fixing genconf and romfs16:30.21 
Robin_Watts HenryStiles: Oh yes, this would be a hacky fix.16:31.07 
kens HenryStiles : Did you mean to change the assignment of 696447 to me ?16:32.20 
  HenryStiles : also earlier you suggested I should look at 696314 for a simple indexed image, but that is a Staple PJL bug. THere is no test file there, so I'm kind of confused16:35.18 
HenryStiles kens: yes and you can close it, I just wanted to make sure you noticed the message FirstPage > LastPage thinking it might have been unintionally introducess with your device subclass project16:35.51 
kens Its always been there, the PDF interpreter doesn't use the subclass devices for FirstPage and LastPage, it does that iself.16:36.19 
  The file is so badly broken we can't find the Pages array I think.16:36.38 
HenryStiles kens: okay then just close it.16:36.49 
kens OK16:37.26 
HenryStiles kens: right I didn't mean staple I meant the XL -> PDF problem which I assigned to you16:37.41 
kens I don't see that16:38.00 
  What's the number ?16:38.09 
HenryStiles http://bugs.ghostscript.com/show_bug.cgi?id=69622416:38.30 
kens Ah OK its back in the list, behind all the latest sanitizer and Robin bugs16:38.56 
HenryStiles I have no idea why Hin-Tak goes on and on in the bug without simply looking at the XL code which he does understand well16:39.59 
kens possibly because he does that all the time......16:40.17 
  Oh good grief, I remember ths bug report.16:43.02 
  Did you try running the PXL to any other devices Henry ? WHen I did that I got incorrect results for many of them16:43.22 
HenryStiles x11 and ppmraw work16:46.13 
kens tiff32nc ?16:46.24 
Robin_Watts HenryStiles: haha, simpler fix is to make the recursive make invocation of the sanitize targets pass -i :)16:46.28 
kens HenryStiles : I see random miscolored text using the Windows display device, in particular a black character on page 216:48.03 
HenryStiles kens: pcl doesn't even "tiger" with a cmyk device16:48.09 
kens Well I see a problem with the Windows display device16:48.29 
HenryStiles kens: default color model?16:49.46 
kens yes16:49.50 
Robin_Watts HenryStiles: How do you feel about this as a "fix" for bug 696603 ? http://git.ghostscript.com/?p=user/robin/ghostpdl.git;a=commitdiff;h=1386dbd1ad0bef6b6264e198162d0b7c9abfce5416:50.44 
  And chrisl, when you return, how do you feel about: http://git.ghostscript.com/?p=user/robin/ghostpdl.git;a=commitdiff;h=b229184fdfa13b29ace5106bc34677a17c7da7f516:51.12 
kens Well I will look at it again, but I'm not convinced this is a pdfwrite problem16:51.13 
HenryStiles kens: I'll narrow it down some more if you like.16:51.59 
  Robin_Watts: yeah fine by me.16:52.08 
kens I've never tried to debug it, because it didn't work 'orrectly'when I viewed it on Windows.16:52.38 
HenryStiles kens: does the windows device show the first characters as black?16:52.50 
kens No, but it shows a black character on page 216:53.03 
  which is apparently supposed to be all red16:53.17 
HenryStiles kens: baffling this is very simple stuff.16:55.36 
  no rops or transparency16:55.48 
kens Not a lot I can say16:55.49 
  Well pdfwrite is producing a page for page 1 where the4 Indexed space has a base space of DeviceGray. I would imagine that's why its black16:56.50 
HenryStiles I'll take it back and take the file apart now I'm curious16:58.03 
kens I've started looking at it16:58.12 
  While I wait for something else16:58.28 
HenryStiles be back in a bit need some food17:00.01 
kens HmmI may see what's going on with pdfwrite.17:04.44 
  Well the colour space I'm getting is an Indexed space with an ICC base space, and the base space of the ICC space is DeviceGray. So not unsurprisingly, that's what get's written to the output. THat's why the 'text' on page 1 is black.17:08.55 
chrisl Robin_Watts: it seems a bit pointless putting in a new target for just a month or so17:18.05 
kens HenryStiles : In pldraw.c pl_begin_image the gs_image_t *pim has a ColorSpace which does not match the current colour space, and is an Indexed DeviceGray17:18.08 
Robin_Watts chrisl: Well, the targets would stay after the moment. Just the -i would go.17:18.28 
  s/moment/month/17:18.34 
  My fingers have a life of their own.17:18.41 
  actually, we could commit just the targets and leave the -i out, and we could use -i manually for now.17:19.41 
kens HenryStiles : Ths is set up by px_imaeg_color_space in pxgstate.c That sets the pim->ColorSpace by doing a switch on params->color_space, and that is set to eGray17:20.17 
chrisl Robin_Watts: Just doing "make XCFLAGS=-fsanitize=address -fno-omit-frame-pointer" seems easy enough17:20.50 
Robin_Watts chrisl: Except that doesn't work.17:21.01 
kens I'm not at all certain how that comes out coloured in other devices, but its not going to come out in anything except DeviceGray with pdfwrite.17:21.01 
Robin_Watts At best you need to fiddle with LDFLAGS too17:21.14 
  But if you're against it, fair enough.17:21.33 
  I prefer the option of having this stuff build into a separate dir.17:21.50 
chrisl Robin_Watts: Your commit doesn't touch LDFLAGS17:21.59 
Robin_Watts Does too.17:22.06 
  (assuming you're looking at the latest one)17:22.21 
chrisl Oh, you use a CFLAGS in LDFLAGS.....17:22.40 
Robin_Watts I use CFLAGS_SANITIZE, yes.17:22.53 
  If you'd rather not take it on, I understand. I can just keep it kicking around in my git history.17:23.36 
chrisl Give me a few minutes17:24.14 
kens HenryStiles : if I hack the code so that params->color_space is eRGB then the text is no longer in black. Its not right either mind you.17:25.23 
chrisl Robin_Watts: well, "make XCFLAGS="-fsanitize=address -fno-omit-frame-pointer" XLDFLAGS="-fsanitize=address -fno-omit-frame-pointer" works.17:28.25 
Robin_Watts chrisl: It does, yes.17:28.44 
  (if you run it several times, and if don't mind it trampling over the bin dir, and if you don't want debug info)17:29.11 
  make XCFLAGS="-fsanitize=address -fno-omit-frame-pointer" XLDFLAGS="-fsanitize=address -fno-omit-frame-pointer" debug -i17:29.41 
chrisl I'm using my branch with the genarch and mkromfs fixes17:30.09 
Robin_Watts That version *should* work without retrying and with debug info.17:30.17 
  but personally I'd prefer the sanitizer builds go into sanbin/sanobj etc.17:30.37 
  It's all a question of convenience.17:30.47 
  But seriously, don't worry if you don't like it. I can keep it in my git repo.17:31.07 
chrisl Robin_Watts: No, it's fine. The only thing I'd prefer is to have a separate LDFLAGS_SANITIZE rather than reuse the CFLAGS_SANITIZE (even if, in the top Makefile, LDFLAGS_SANITIZE=$(CFLAGS_SANITIZE)17:34.34 
Robin_Watts chrisl: I have no problem with that.17:34.48 
  Want me to do that, or would you rather ?17:35.25 
chrisl Robin_Watts: you go ahead, since you have it pretty much done17:35.50 
Robin_Watts chrisl: ta.17:35.57 
chrisl Robin_Watts: I guess ideally we *ought* to check in configure if the compiler actually supports those options <sigh> - but not today, I think17:38.23 
HenryStiles kens: this isn't possibly related to the changing indexed color space that we visited in PCL?17:42.39 
kens I don't thnk so, at least not directly17:42.58 
  THe PXL interpreter is sending an image with a ColorSpace which boils down ot /Indexed /DeviceGray, there's no way pdfwrite will ever produce anything except black output for that17:43.42 
  I don't understnd how anything else does either mind you17:43.56 
  Unless, of course, the PXL interpreter was to change the base space of the colour space *after* begin_typed_image and before rendering the image17:44.44 
  Which would be braodly a similar problem to the palette changing of course17:45.18 
tor8 mvrhel_laptop: pdf_add_cid_font_widths can't possibly work... you read the glyph->metrics.horiAdvance without loading the glyph...17:48.43 
mvrhel_laptop tor8: hold on 17:50.50 
  let me look I tested all of this17:50.56 
tor8 font->width_table is most likely never NULL on pdf inputs17:51.32 
mvrhel_laptop tor8: ok so are we in pdf_create_cid_widths?17:53.14 
  I am a little confused where you are17:53.41 
tor8 yes (I renamed it, but that's the function)17:53.44 
mvrhel_laptop tor8: hmm. I think where I had tested that part of the code, was from mutool create17:55.07 
  which is no longer being done17:55.18 
  since we went to using the simple font only for that case17:55.27 
  and that would explain the spacing issues I was having 17:55.54 
  :)17:55.59 
  in that case17:56.04 
  so we can probably remove that17:56.23 
tor8 mvrhel_laptop: okay, I've got a half dozen commits on tor/pdf_create if you could give them an eye?17:56.34 
mvrhel_laptop ok17:56.40 
tor8 I tried to split them up so to one change per commit.17:57.24 
mvrhel_laptop wow. ok. this will take a minute.... or two17:59.48 
  tor8: ok. well you did that all about 10x faster than I could have18:15.44 
  I feel a little silly about the misspell of descendant and not thinking of using pdf_to_num instead of the res structure that I made18:16.21 
  The only comment I had was should fz_new_buffer_from_shared_data call fz_new_buffer_from_data to reduce code?18:16.41 
  Also, wondering why not deflate the font stream?18:17.17 
  or do you have another plan for that18:17.26 
Robin_Watts I'm not sure we ever deflate anything in mupdf :)18:18.09 
  oh, we do.18:18.40 
tor8 mvrhel_laptop: I'd rather see the pdf writing code deflate streams automatically than have the users do it everywhere18:27.07 
mvrhel_laptop tor8: sounds good18:27.29 
Robin_Watts tor8: The only problem with that is if we want to hold the file open for a while before writing it.18:28.09 
  (I don't disagree with you though, just noting the downside)18:28.32 
tor8 pdf_write_options.do_deflate?18:28.41 
Robin_Watts yeah.18:28.59 
tor8 Robin_Watts: well, in this case the buffer will just be a refcounted pointer to the buffer already in the fz_font or image18:29.42 
Robin_Watts fair enough.18:29.57 
tor8 so compressing it would actually make memory use worse :)18:30.01 
  biab, dinner18:30.11 
Robin_Watts ah, hell. bug 696611 is back to a problem I thought I'd solved already.18:30.50 
  When the image enumerators call around to say "who can handle this image", I have to look to see if it's an imagemask, and if so, if I want to offer to interpolate it.18:31.42 
  I can't back out of that decision later, so I need to get it right.18:32.14 
  In order to be able to interpolate an imagemask, I need to have a device that can copy_alpha.18:32.38 
  Unfortunately, if I'm going to a clist device, it always offers a copy_alpha entrypoint, even if the underlying device does not.18:34.09 
  In this case, the underlying device is a 1bpp image, which does not offer copy_alpha.18:34.33 
  or rather, it offers default_copy_alpha, which relies on getbits and/or getbits_rectangle, both of which are default.18:36.26 
  so it won't work.18:36.33 
rayjj Robin_Watts: so will a spec_op that the clist device forwards to its target work ? 18:39.46 
  Robin_Watts: 'can_copy_alpha'18:40.11 
Robin_Watts rayjj: Yes, that would work, except it means that we need to retrofit that to every device.18:40.34 
rayjj Robin_Watts: every device that does support real copy_alpha18:41.12 
Robin_Watts If we're going down that route, then I have 'nointerpolateimagemasks' param already defined.18:41.29 
  and I can get_param that.18:41.37 
rayjj Robin_Watts: yeah, except get_params can be slow18:41.52 
Robin_Watts get_param, not get_params.18:41.59 
  but yes.18:42.11 
rayjj Robin_Watts: yeah, getting a single param is probably no more overhead than spec_op18:42.41 
Robin_Watts ken implemented a gxdso that does a get_param.18:42.59 
  And it requires nasty duplication of code, but it's faster than get_params.18:43.23 
  It's also unsafe by design, but that's another argument.18:43.37 
rayjj Robin_Watts: the nointerpolate could be moved to the dev structure so you can interrogate it directly, 18:43.42 
Robin_Watts It could.18:44.02 
rayjj or color_info where the anti_alias values are carried18:44.28 
  either one requires it to be set in compositor devices.18:46.15 
Robin_Watts yeah.18:46.51 
  I have an alternative way to work, but I dislike that just as much.18:47.15 
rayjj Robin_Watts: all this is to add an optional feature to interpolate masks as Adobe does (that the spec doesn't require), right ?18:48.08 
Robin_Watts (namely that we should only populate device_procs with the clist_copy_alpha if the underlying device was copy_alpha capable.18:48.14 
  rayjj: Yes.18:48.17 
  I think I may just update the image1 device to nointerpolateimagemasks.18:48.39 
rayjj Robin_Watts: I see, so that places the burden on the clist device setup., which is infrequent, and already complex 18:48.56 
Robin_Watts rayjj: Yes.18:49.11 
  I vaguely like the idea of "wrapping devices shouldn't offer functions that the underlying device didn't offer"18:49.39 
  but then that goes against the principle that "all procs will be filled in, by gs offering defaults if necessary"18:50.16 
rayjj well, yes, but that's the whole point of something like the pdf14 compositor -- to provide transparency that other devices don't18:50.26 
Robin_Watts rayjj: I may have expressed that badly.18:51.00 
rayjj and if the wrapper is the pdf14 device, then it _can_ support real copy_alpha, even if the target is 1bpp18:51.07 
Robin_Watts yeah. OK, so "wrapping devices shouldn't offer functions that the underlying device didn't offer, unless it's the wrapping device that's offering those functions"18:51.45 
rayjj Robin_Watts: better18:51.54 
Robin_Watts Essentially, I'd be taken with the idea of a proc being NULL meaning "don't call this, I can never cope", but that goes directly against the existing stuff.18:52.44 
rayjj Robin_Watts: for the most part. Like English, most "rules" in gs have exceptions. put_image comes to minf18:53.22 
  s/minf/mind/18:53.29 
  we (mvrhel) could have refactored the pdf14_put_image to move the "construct an image and feed it to the device" code for the put_image proc == NULL case to a gx_default_put_image proc18:55.00 
  and for better consistency, we probably should18:55.23 
Robin_Watts Of course, maybe 1bpp devices *should* support copy_alpha these days.19:00.27 
rayjj Robin_Watts: the problem is painting gray (halftoned) data over existing data on the page that may have been painted 19:07.01 
Robin_Watts rayjj: Not sure I follow.19:09.07 
rayjj Robin_Watts: will it reasonably match what is gotten by rendering gray, then post-halftoning19:09.08 
Robin_Watts I'm running a cluster test now. We can see when it completes :)19:09.32 
rayjj if you paint an black with 50% alpha on white, you get 50% gray, if you have a background that was already painted with 50% gray then halftoned, then how do you compute the result from19:11.13 
malc_ rayjj: you'd get 100% gray perhaps?19:11.39 
rayjj malc_: more likely 50% gray since the halftone bits "line up"19:12.04 
malc_ uhm.. okay, sounds weird though... black 0/0/0 white 1/1/1 blend 50%, .5/.5/.5 == gray, but i clearly don't know anything about colours19:13.18 
rayjj the 1bpp operation would compute the halfoned bits it wants to paint, using the source alpha+color, get 50%, then halftone it, and "or" the bits, so no new bits would appear19:13.26 
Robin_Watts rayjj: I hope it would work out on average.19:14.17 
rayjj essentially you'd get the darker of the source and destination 19:14.18 
  Robin_Watts: it might if the halftone patterns were not correlated19:14.59 
  but they usually are19:15.10 
  Robin_Watts: unless you are deriving a gray value from the bits that are on by examining an area, and that breaks if the contents were painted as small black features (i.e., lines)19:18.08 
  this element with small black features would be preserved on a gray device, but any derivation of "local gray" would result in them being (partially) erased when painted over by an alpha paint operation.19:20.02 
  Just or-ing the bits preserves the underlying small features, but then the alpha blending doesn't work19:20.39 
  Robin_Watts: if by "works out on average" you mean files that look worse vs. files that look better, well, maybe...19:24.22 
Robin_Watts ok, so that bmpcmp is fairly convincing :)19:26.39 
  I may just disable interpolation of imagemasks for 1bpp output devices.19:27.06 
rayjj Robin_Watts: 1 bit per component. Actually, I recommend *ANY* device that need halftoning (we use < 4 bits per component for that elsewhere(19:30.05 
  Robin_Watts: there is a gx_device_must_halftone19:31.24 
  (macro, of course) ;-/19:31.48 
Robin_Watts We enable copy_alpha for any device with more than 1 bit, as far as I can tell.19:31.50 
rayjj once previously painted data has been halftoned, any alpha blending will be wrong (most of the time)19:33.02 
  Robin_Watts: in that it won't match what would come from rendering to contone, then halftoning the page19:35.33 
Robin_Watts indeed not.19:36.12 
  I'll try it both ways and we can compare.19:36.22 
  rayjj: So, the bmpcmp there now is for "don't interpolate imagemasks to 1bpc"20:04.52 
  Given that we allow copy_alpha to pkmraw, I'm not sure I see the harm in allowing interpolation.20:13.25 
  If we simple "don't interpolate imagemasks when going to 1bpp" we get no bitmap differences at all (but it solves the bug).20:14.20 
  Trying the "don't interpolate when halftoning" now.20:15.21 
tor8 Robin_Watts: mvrhel_laptop (for the logs): terribly sorry, but I couldn't resist rewriting pdfcreate.c into something a bit more suited as an example of how to use the code20:28.31 
  mvrhel_laptop: code is on tor/pdf_create20:28.55 
  mvrhel_laptop: I must say, this new font resource creation, and how it automatically finds duplicates is awesome!20:29.46 
  this should definitely make it into the release, IMO20:30.16 
Robin_Watts rayjj: Ha! For the purposes of cluster testing, "don't interpolate when halftoning" == "don't interpolate to 1bpc" :)20:42.12 
  tor8: "Always write a newline after pdf_print_obj"20:44.23 
  Why then do you print "\nstream\n" in expandstream?20:44.44 
  and in writeobject?20:45.05 
  oh, sorry, I misread what you meant. Ignore that.20:45.39 
  tor8: For the "Skip the newline" commit, shouldn't we test buf->len > 0 ?20:47.18 
  Other than that, the first 3 commits look good.20:47.31 
sebras http://xkcd.com/1647/ pÃ¥rtäble döcument förmÃ¥t!21:18.15 
malc_ tù mâny dïâçrîtïcs21:21.46 
sebras malc_: as I read the wikipedia page on diacritics either slovakian or livonian appears to win the contest. perhaps welsh, but it was a bit unclear.21:23.05 
malc_ sebras: wrong - vietnamese!21:23.47 
  ï·½21:23.55 
  is unbeatable though21:24.02 
sebras malc_: that was my first idea, but wikipedia didn't really describe it very well.21:24.26 
  malc_: I'm surprised that this is a single ligature in unicode!21:25.51 
malc_ i think theres a shahadah ligature in there somewhere too21:26.18 
  Arabic supplement A i think covers it21:26.28 
sebras malc_: arabic presentation forms-a wikipedia told me.21:26.55 
malc_ yep, that's it21:27.01 
sebras malc_: not that I know the difference (yet).21:27.04 
malc_ sebras: and vietnam wins the contest simply due to tonal nature (7 i think)21:27.44 
  all the cedilias, tremas, umlauts etc are just kids21:27.57 
  now tones!21:28.06 
rayjj Robin_Watts: I saw the comments about "must_halftone" vs. 1 bpc. I'm not surprised, but still recommend the (somewhat more consistent) gx_device_must_halftone. AFAICT, that works whether or not we are in clist mode, and also with the pdf14 compositor since it is based on color_info21:36.02 
  and the clist device uses the target's color_info, while the pdf14 device has its own color_info21:36.48 
  malc_: so, what we need is unicode for music _and_ choreography (or does that already exist?)21:46.15 
malc_ rayjj: music - certainly, choreography.. PUA :)21:47.10 
  1D14DMusical Symbols1D10021:48.24 
  1D24FAncient Greek Musical Notation1D200 might come in handy too21:48.57 
  to please the olympians or something21:49.06 
sebras rayjj: with the recent color font standards I wonder if we'll get codepoints that define color usage in the glyphs.21:51.41 
malc_ emojii already made it into unicode, colours are the next logical step, with le déluge following shortly21:53.36 
terry__ Is there an iOS based library that can convert old-fashioned PostScript files into PDFs? I want to build the functionality of ps2pdf into my iOS app.23:41.34 
Robin_Watts malc_: There are already 'modifiers' in unicode that change the color of emoji.23:42.29 
  terry__: postscript -> pdf requires a postscript interpreter.23:42.51 
  thus something like ghostscript (for the general case at least).23:43.06 
  You can build gs on ios.23:43.15 
  as a lib.23:43.22 
tor8 Robin_Watts: yeah, we should test buf->len. fixed commit up now.23:43.33 
terry__ Robin_Watts: Thank you. Do you know if someone has packaged that up nicely somewhere, or would I have to start from scratch?23:44.06 
Robin_Watts terry__: You'd have to start from scratch. but it shouldn't be too hard (other than having to deal with the usual xcode shite)23:44.41 
  tor8: The first 3 commits look good to me then.23:44.58 
  I haven't looked at michaels, but I assume you have.23:45.09 
tor8 Robin_Watts: thanks.23:45.12 
terry__ Robin_Watts: OK, thanks23:45.39 
tor8 yes; I've gone through and done a tor-style-filter pass and that's the stuff after michael's so if one or both of you could review that would be swell23:45.48 
Robin_Watts tor8: probably best for michael to review that.23:46.04 
  I'll try to squash the entire branch tomorrow and look over the squashed version.23:46.16 
tor8 Robin_Watts: yeah. I haven't looked at the pdf-device changes in all that much detail.23:46.34 
 Forward 1 day (to 2016/02/25)>>> 
ghostscript.com
Search: