IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/06/10)2013/06/11 
kens Its obviously been down for a while, I notice some stuff form yesterday is not in the logsd07:53.13 
chrisl It's annoying that the process is usually still running, so a simple cron job to check for the process won't work :-(07:54.11 
kens THat is annoying yes.07:54.23 
chrisl Maybe we should just reset it every 12 hours, regardless07:55.41 
kens That's not a bad idea, I only noticed it wasn't working because the logs for the last 2 days were empty07:56.09 
chrisl I'll give it some thought, there may be some other way to spot when it's not functioning07:57.03 
vtorri Robin_Watts, so to do to catch the error ? I want to exit my function in that case08:01.18 
  so what*08:09.41 
Robin_Watts vtorri: It's possible the code didn't think there was an error.08:55.50 
  vtorri: cAn we see the file in question?09:05.23 
tor8 Robin_Watts: the nvidia path extension does all its rasterization using the stencil buffer09:09.08 
  then it draws triangles that cover the bbox of the path, and use the stencil buffer to mask09:09.33 
  so no AA09:09.39 
Robin_Watts tor8: but supersampling, right?09:09.59 
tor8 yes, multisampling should work IIRC09:11.55 
  the depth, stencil and color buffers are all supersized09:12.09 
  but the fragment shader only runs once per pixel, irregardless of how many samples there are per pixel09:12.32 
Robin_Watts tor8: I could be wrong on this ,but I assumed that the stencil buffer was an 8 bit thing, with 'coverage' measurements, effectively.09:13.50 
tor8 no, it can be any number of bits (8 being most common)09:14.10 
  but each bit plane can be tested separately09:14.21 
Robin_Watts Right, so we use the 8 bit thing, and treat it as coverage.09:14.33 
tor8 the rendering extension uses the bits to count winding09:14.33 
  so there's a max limit to how many overlaps a non-zerowinding filled path can have depending on the stencil buffer depth09:15.41 
  the stencil buffer can also be used to clip the paths with another path, recursively up to some limit09:19.40 
  Robin_Watts: worse news; it depends on compatibility profile for parts of the fixed function pipeline to do the glPathCover step :(09:24.33 
  but I think the approach of using the stencil buffer to do path rendering can be re-implemented trivially09:25.03 
Robin_Watts tor8: What's "compatibility profile" ?09:28.13 
tor8 an opengl context can have different profiles when you create it09:28.45 
  to target specific versions of opengl09:28.54 
  usually either a forward compatible core profile context (which only does opengl 3.0, no fixed function allowed)09:30.02 
  or compatibililty profile, which supports all the garbage from the 80's and onward09:30.19 
  GLES 1.1 is based on fixed function (no shaders allowed)09:30.48 
  GLES 2.0 is based on shaders (no fixed function allowed)09:30.59 
  so it only applies to desktop opengl09:31.05 
Robin_Watts tor8: OK, so I understand what a compatability profile is.10:05.07 
  Which type does the nvidia code require? forward or backwards?10:05.25 
tor8 it needs the backward compatible profile for fixed function features10:17.16 
  like setting the colors and transform10:17.23 
  stuff which is in a 3.0 / gles2 handled by the shaders10:17.39 
Robin_Watts tor8: Can we do the stencil step using their extension, and then just do the cover step using our own (non compatibility profile using) code ?10:23.53 
tor8 Robin_Watts:I don't think so, looking at it the stencil step also uses fixed function stuff for the path transform10:24.30 
  so if we use their extension, we'll have to use backwards compatible opengl on the desktop only10:24.57 
  I think it'd probably be better to reimplement their algorithm outside of the driver10:25.13 
Robin_Watts urgh.10:25.29 
tor8 it should be fairly simple to do what they do, but with triangles and rendering to the stencil buffer manually.10:25.39 
Robin_Watts tor8: If you're interested, I have the email address of a couple of people at NVidia that I spoke to at AnDevCon.10:26.20 
  They said they could put me in touch with the papers author.10:26.33 
  We might be able to get a non-compatability requiring version from him? Or at least a copy of some code to avoid having to reimplement everything.10:27.38 
tor8 a copy of some code to make it work on GLES2 would be useful10:28.23 
  but it's probably tied into their super secret proprietary driver10:28.37 
tor8 lunches.10:28.59 
Robin_Watts Hmm. I have a business card here. Usual name, title, address, email, web etc. Then I have "T <phone number>" (fair enough)10:37.19 
  Then I have "C <what looks like a phone number>"10:37.29 
  C ? What's C mean ?10:37.33 
kens Clacks ?10:41.19 
Robin_Watts Unlikely. Clacks is "Anthill Inside", right? :)10:44.52 
kens Yep :-)10:44.59 
Robin_Watts tor8: Introduction mail sent.10:55.10 
paulgardiner Morning... just about10:57.23 
Robin_Watts Morning10:57.40 
sebras vtorri: some PDF files with errors in they mupdf can handle. e.g. the PDF spec mentions that the PDF version-marker at the beginning of the PDF might be anywhere within the first 1KB of file contents IIRC.11:51.38 
sebras doesn't have pdfref at hand, so this is from memory.11:52.03 
Robin_Watts kens: I suspect bug 691729 may need to come to me when it's reopened.11:57.38 
kens Yes I think so RObin, I just wanted to test it first, but before the files were there I couldn't11:58.05 
  IAs you can probably tell I've been grabbing/reassigning some of Alex's bugs (and closing a few)11:58.40 
Robin_Watts kens: yeah, seems sensible.11:58.53 
kens I did find at least one case which works with current code, so testing seems important ;-)11:59.13 
henrys kens:I take it you want to go through Alex list first.12:43.02 
kens henrys I didn't feel up to do anythign complicated today so I thought I would take a quick look. Many can be reassigned to me very easily (all those relating to pdfwrite ;-)12:43.51 
  It was easy enough to do some others at teh same time, so I did.12:44.25 
henrys kens:fine by me.12:46.12 
  kens:please refer javascript/forms folks to mupdf.12:51.04 
kens Good point, yes I'll do that.12:51.16 
henrys probably have some down time over the next hour or so cable company is replacing my modem (end of life for the current model).12:55.39 
kens Oh what fun :-(12:55.52 
henrys so the only interesting thing I've seen at WWDC from apple is a trash can, http://www.anandtech.com/Gallery/Album/2859#4 is the next generation of mac pro. Looks like it is not built for expandability13:00.21 
kens Well, not internal expandability13:00.40 
henrys I guess the new MacBooks announcement will be today13:01.06 
  impressive that it is 1/8 the size of the current Mac Pro and about 2x faster.13:05.45 
kens Robin_Watts : ping13:32.46 
  Robin_Watts : ping13:51.39 
sebras Robin_Watts: Cellphone number?13:53.28 
  Robin_Watts: there are still wired devices you know...13:53.39 
Robin_Watts Cellphone!13:59.01 
  Normally, I expect M for Mobile.13:59.14 
  kens: pong14:00.34 
tor8 henrys: less impressive when you consider how absurdly out of date the current macpro is...14:10.54 
  and ios7 apparently looks like windows 8...14:11.19 
  and they're moving to a "auto layout" scheme with constraints rather than everything being pixel based fixed layouts! that's a first for apple.14:11.45 
Robin_Watts kens: pong14:16.42 
  tor8: Ah. Are they adopting Athena widgets then?14:16.55 
kens Robin_Watts : how hard would it be to write a tiffscaled32 that does CMYK ?14:16.59 
Robin_Watts kens: Urm... use a planar device, and the downscaler will work on that already.14:18.03 
kens The user is already using tiff32nc14:18.24 
  So presumably they want TIFF output14:18.43 
Robin_Watts kens: The answer is that it's just a cut/paste job.14:19.25 
kens OK thanks robin14:20.19 
Robin_Watts kens: And whether we use a planar device or not internally, doesn't affect whether they get tiff out at the end.14:20.32 
  All the tiff devices that cope with spot colors are planar internally.14:20.48 
  oh. tiff32nc does MinFeatureSize stuff.14:21.41 
  I guess we do that in the downscaler too though, so it's probably still Ok.14:22.00 
kens I was just wondering if its worth making a tiffscaled32 device, to macth the regular tiff array14:30.35 
  bug 691729 works 'as expected' with tiffscaled devices, but not with -dGraphicsAlphaBits14:31.18 
Robin_Watts OK, I'll do that.14:32.05 
  I can probably do that in a bit.14:32.16 
  tor8: ping!14:33.17 
tor8 Robin_Watts: yes?14:39.43 
Robin_Watts I'm looking at zenikos comments on bug 69430314:40.12 
  Can I check stuff with you?14:40.19 
  In pdf/pdf_repair.c14:40.23 
  In pdf_repair_obj14:40.33 
  we read a token in. (which will hopefully be a dictionary object)14:41.01 
  If it is a dictionary object ,we then parse it.14:41.23 
  Then (unless we've hit 'stream' or 'endobj' or error or eof or an int) we try to read another object.14:42.34 
  Normally that should be 'endobj', right?14:43.08 
  or 'stream'14:43.26 
kens Robin_Watts : thanks, I'll put that in the bug thread14:43.27 
Robin_Watts kens: feel free to assign me the bug with a note saying "robin will code tiffscaled32"14:43.50 
kens OK I'll do that thanks14:43.57 
tor8 Robin_Watts: yes. so, the check for naked dictionaries (if we see a << outside of the X Y obj ... endobj context) is to find encryption dictionaries and the trailers14:44.49 
paulgardiner Robin_Watts, tor8: Did we decide that my fz_interactive-removal commit (the version on Robin_Watts' repo) was good to go?14:44.52 
Robin_Watts tor8: Right. The problem that zeniko is showing up is that he's constructed a file where 'endobj' is missing.14:45.31 
  So the next thing read is the integer that starts the next object.14:45.48 
tor8 shouldn't that end up in the atobjend: case? oh wait, that's only for streams14:46.26 
Robin_Watts So we go into the if (tok == PDF_TOK_INT) thing and we 'unread' the bytes to try to backtrack over the integer.14:46.27 
tor8 Robin_Watts: right. I think I see what we're doing. I'm being forgetful.14:47.11 
  it's a premature optimization14:47.20 
  we only parse dictionaries as complete objects, because we can ignore everything else14:47.33 
  if we run the normal object parser, we should be able to catch it14:47.47 
  just read one "object" as in the array parsing code14:47.54 
Robin_Watts You've lost me.14:48.12 
  The problem that I can see here is that we no longer set 'buf->len' as part of the number parsing code.14:48.53 
  hence the backtracking we do is for the wrong number of chars.14:49.07 
tor8 when we see the 'obj' keyword, we call pdf_repair_obj which is supposed to parse one full object14:49.08 
Robin_Watts tor8: Right.14:49.16 
tor8 we try to be smart and only parse dictionaries completely14:49.22 
Robin_Watts and that makes sense, I think.14:49.32 
tor8 if we parsed properly, we'd parse one object, see that the next token isn't a stream or endobj and could just continue at the top level and not have read too much14:49.56 
  more reliably than we do now14:50.05 
Robin_Watts tor8: I think we can fix this as is.14:50.33 
tor8 we could make it return the last token it parsed to the top level14:50.37 
  anyway, I'm needed elsewhere so I'm afraid I have to go away again14:50.51 
  I'll check in later tonight. the repair code isn't very well thought through so feel free to rip it apat.14:51.19 
  apart*14:51.23 
Robin_Watts Ok. I shall code up a fix. Yell when you get back.14:51.23 
tor8 will do.14:51.43 
henrys tor8:I'm thinking about a switch back to linux14:51.53 
  oops missed him14:52.11 
Robin_Watts henrys: burning your polonecks?14:53.44 
henrys slowly I see expandability slipping away. I have had many machines that I would have tossed if I couldn't speed them up with and upgrades ssd, graphics etc. Apple wants to see you a toaster that lasts 3 years and you buy another, appealing to them not to me. 15:04.30 
  s/see/sell15:04.42 
Robin_Watts henrys: Right. Apple has driven the "computer as unexpandable consumer good" thing for years.15:06.13 
vtorri Robin_Watts, how do i send it ? mail ?15:29.33 
Robin_Watts mail is fine. or put it online and paste the link.15:29.50 
vtorri i'm not sure that the paste site will hold it completely15:30.36 
Robin_Watts henrys: I've always built my own PCs with an eye on expandability, but increasingly, it becomes hard to change too much without building a whole new machine.15:31.19 
  motherboard/CPU/RAM are pretty much tied together these days.15:31.36 
  but being limited in adding HDs/PSUs/Graphics cards is something I would find very hard to swallow.15:32.08 
vtorri Robin_Watts, http://www.speedyshare.com/sqkcS/sample.ps15:32.10 
Robin_Watts vtorri: Got it. Let me finish what I'm doing now - mupdf is in pieces - then I'll look.15:34.03 
vtorri thank you15:34.17 
Robin_Watts vtorri: OK, so when we try to open that file, we spot that it's not a well formed PDF file.16:04.45 
  so we try to 'repair' it.16:04.51 
vtorri postscript and pdf are closed file format ? (at least for the header)16:05.36 
chrisl vtorri: no, PS and PDF file formats are nothing alike16:06.08 
vtorri so the mupdf behavior is quite strange16:06.27 
ray_laptop vtorri: If I understand what you mean by 'closed', then PS is NOT closed16:06.28 
vtorri not 'clsoed' as 'closed source'16:06.49 
ray_laptop PS is actually a programming language16:06.50 
vtorri i know what PS is :)16:07.00 
ray_laptop vtorri: OK.16:07.06 
chrisl vtorri: why is mupdf's behaviour strange?16:07.14 
vtorri close as 'similar'16:07.20 
Robin_Watts With careful programming you can set PS up so that a PDF file is a valid PS program.16:07.33 
vtorri chrisl, i can't detect that it is not a PDF file16:07.45 
  at least I don't know how to do that with the mupdf API16:08.13 
  Robin_Watts told me that my code seems good16:08.33 
Robin_Watts vtorri: As soon as you try to load the first page, it will complain to you.16:08.42 
vtorri ho16:08.51 
  ok16:08.56 
  so i have to also call fz_load_page(doc,0) ?16:09.38 
chrisl vtorri: mupdf will assume you're passing it a file it can understand, and will try to interpret it as such - seems reasonable to me16:09.50 
vtorri i don't know what mupdf does, so... My first guess was : fz_open_document would return NULL or throw an exception if the document was not a PDF file16:11.13 
  but i was wrong16:11.20 
Robin_Watts We *could* make mupdf bale out if it fails to find a header in the first 1024 bytes.16:11.24 
  but then we risk giving up on files which we could repair perfectly well.16:11.46 
vtorri understandable16:12.28 
Robin_Watts Possibly we could update the code so that in cases where we've repaired, we try to check that there is a first page to load?16:12.52 
vtorri so i have to also call fz_load_page(doc,0) in the same 'try' block than fz_open_document() ?16:12.54 
Robin_Watts but then that might make us bale on cases where only the first page of a document is damaged.16:13.08 
  vtorri: That would be one solution, yes.16:13.41 
vtorri ok16:13.51 
  and is it possible to redirect the messages that mupdf writes in the terminal ?16:14.11 
Robin_Watts vtorri: We write error messages to stderr.16:14.59 
  You can do what you want with stderr.16:15.08 
vtorri hmm16:15.26 
  ok, thanks16:15.28 
kens In the absence of a meeting this week, I'd like to talk about bug #687796, especially with henrys16:16.36 
henrys okay I'll be ready in 5 or so minutes16:17.04 
kens OK let me know16:17.15 
Robin_Watts kens: I think you're right.16:17.18 
kens :-)16:17.25 
Robin_Watts I reckon we should take on all Sags patches, pay the bounty, then think about deleting the file entirely.16:17.51 
chrisl <sigh> that means I'll have to try to remember how to use mupdf......16:18.05 
kens I'm inclined that way as well16:18.09 
  I always use MuPDF for decompressing PDF files, its faster and works better (IMO)16:18.30 
  Trying to actually adopt all of SaGS patches might be difficult, as I think some things have changed16:19.04 
chrisl Yeh, it's just another tool - I do feel that maintaining a solution in C rather than PS is the right way16:19.09 
Robin_Watts chrisl: I copy "mutool" to be "pdfclean". That way I can call "pdfclean -difggg in.pdf out.pdf" rather than doing "mutool clean ...."16:21.08 
chrisl Robin_Watts: yes, I just mean I've to remember the command line params etc16:21.47 
Robin_Watts -d for decompress is the only really important one.16:22.04 
kens Its about the only one I remeber (because I use it a lot of course)16:22.27 
Robin_Watts Unless you want images and fonts decompressed you can add i and f too.16:23.02 
  and the g's are for garbage collection.16:23.16 
kens I usually do want those decompressed :-)16:23.18 
Robin_Watts kens: yeah, but you're odd :)16:23.28 
kens cannot argue that one16:23.41 
chrisl Well, I generally want fonts decompressed, too16:23.47 
Robin_Watts assert(setOfOddPeople.includes("chrisl") == true);16:24.54 
kens One suspects Artifex engineers are a subset of the set of odd people16:25.20 
chrisl :-) also can't argue with that - although I think it's fairly logical that debugging fonts is easier when the data is uncompressed......16:25.50 
henrys kens:I'd rather point folks to mupdf also16:28.10 
  and the bounty is fine16:29.21 
kens OK henrys, then I'll close the bug and suggest to SaGS he claim the bounty16:30.32 
vtorri Robin_Watts, would it be possible to consider sending messages to something else than stderr ?16:32.15 
  Robin_Watts, like storing them for example16:32.25 
  then it's up to the user to do whatever he wants with them16:32.40 
  or adding a callback which sends by default the message to stderr16:33.17 
Robin_Watts vtorri: We could probably add something in the context, yes16:37.16 
vtorri Robin_Watts, we do that in our log library16:37.39 
  a user defned callback which by default sends messages to stderr16:38.02 
  defined*16:38.07 
kens OK I'm off, night all16:54.32 
henrys chrisl, marcosw: maybe russel can set put his stuff on casper and one of you propagate it to the download area?17:08.19 
  does that make sense.17:08.41 
  ?17:08.49 
chrisl henrys: that would be an option - do we expect much bandwidth from it?17:08.56 
henrys I have no idea but it could be high and that's why we got the new download site17:09.38 
  chrisl:let me know if you want me to contact him.17:10.04 
chrisl henrys: okay, we can do that. If it gets to be a pain, we can probably create a cron job to check for updates, and do the uploads17:10.47 
  henrys: I'll see about pulling all the current stuff off wisc this week17:11.17 
henrys presumably he can stage it in his public_html account make sure it looks okay then one of us will propagate it.17:11.22 
chrisl Yeh, that's what I'd expect17:11.51 
marcosw_ henry: we can do either that or give ghost gum permission to edit the whatever directory we set up for him to use in /var/www.17:12.48 
chrisl marcosw_: this is for the actual downloads, rather than for the pages17:13.35 
marcosw_ right, than henrys' suggestion is the correct solution.17:14.29 
chrisl marcosw_: for the web pages we can either do as you suggest, or have something like the setup that the mupdf.com currently uses17:15.14 
marcosw_ I believe mupdf.com is currently hosted out of tor's directory, but that's on my list of changes to fix (i.e. move it to /var/www)17:16.01 
chrisl Exactly, we could point to files in Russell's user area - just an option17:16.45 
marcosw_ henrys et.al.: I have a serious deadline for a paper submission later today, so I'm going to sign off irc to avoid being distracted. I'll try to check my email a couple of times during the day, but if something urgent comes up (i.e. the cluster catches fire) please text me.17:20.05 
henrys okay17:20.21 
Robin_Watts Anyone got a program capable of viewing cmyk tifs ?17:33.07 
  S'OK. Fixed.18:00.31 
  tor8: hey.20:24.13 
  proposed fix on robin/master20:24.18 
  Also, were you happy with pauls commit?20:24.28 
tor8 *reading the irc logs*20:24.39 
  paul's commit was fine. there came in a bug report about strncpy being used in some of paul's code.20:25.15 
  we should be using fz_strlcpy (as strncpy does the wrong thing... strncpy is for filling out fixed size records, it always pads with zeroes to the length and doesn't necessarily zero terminate)20:26.01 
  Robin_Watts: ick. your solution is too hacky for my taste.20:35.19 
  why does the startxref == 0 cause a SEGV?20:36.21 
Robin_Watts tor8: when we read the xrefs in, we do:20:36.44 
  while (startxref != 0) { read an xref and reset startxref to where the next one is }20:37.05 
  if we enter that code with startxref = 0, we never read any xref.20:37.14 
tor8 ah!20:37.19 
Robin_Watts the code that looks up objects assumes that we've always read at least one xref.20:37.27 
tor8 that part of the patch looks good then20:37.40 
Robin_Watts I didn't think my solution was hacky.20:37.42 
  When we're doing a repair, if we hit a number, we previously lexed it, only to have to jump through hoops to unlex it again.20:38.25 
  (hoops that would not really ever have been entirely reliable)20:38.36 
tor8 the shortcut special behaviour flag to the lexer for one specific case20:38.37 
Robin_Watts with my new code, we stop as soon as we encounter a number without parsing it.20:38.57 
  The lexer is already partly a combined lexer/parser for numbers.20:39.13 
tor8 I'd prefer if we don't jump through hoops to be able to lex it twice, why can't we just return the previously lexed int in the calling code?20:39.15 
Robin_Watts tor8: maybe we could.20:39.42 
  it would make pdf_repair_obj a nastier signature though.20:40.06 
tor8 it doesn't even lex, the repair flag should be called peek_for_int_and_return_early20:40.13 
Robin_Watts dinner time. I'll try reworking it a bit tomorrow.20:42.04 
vtorri ok, fz_load_page gives an error20:53.16 
  (with the postscript file)20:53.24 
  is there a better way to check if the doc is a pdf or not ?20:53.42 
sebras vtorri: not using mupdf. at least not right now.21:08.56 
vtorri ok21:10.40 
  thanks21:10.45 
  tor8, what about adding a function that sets the callback for printing messages21:11.57 
  tor8, hence a user can choose whatever he wants to display messages21:12.15 
  tor8, by default, messages are printed to stderr21:12.26 
sebras vtorri: doing so sounds reasonable to me. if you attach a patch in bugzilla we'll certainly take a look at it.21:13.10 
vtorri sebras, ok, thanks21:13.23 
  i want that because we have our own log system and it would be nice to catch mupdf messages and display them with that log system21:14.14 
sebras vtorri: some dependencies, like libopenjpeg, does this too.21:15.42 
vtorri really ?21:15.54 
  in 2.0 then21:15.57 
  i can't remember something like that in 1.*21:16.14 
sebras vtorri: has done so since 1.3 IIRC.21:16.30 
vtorri damn21:16.38 
  in libopenjpeg ?21:16.47 
  or the apps ?21:16.51 
  sebras, here is our output with the log system21:18.06 
  http://www.maths.univ-evry.fr/pages_perso/vtorri/files/log.png21:18.08 
sebras vtorri: see fz_opj_error_callback() in fitz/image_jpx.c21:18.18 
vtorri ok21:18.59 
  indeed21:19.02 
  sebras, and you would want the same kind of system ?21:19.43 
sebras vtorri: we already have a rate-limiting in e.g. fz_warn(). I'd assume we want to keep that and just replace the calls to fprintf() and fflush() in fitz/base_error.c with some function pointers stored in fz_error_context.21:22.50 
  vtorri: that's what I'd start with myself.21:23.16 
vtorri and an enum to tell if it's a warning, an error or an info21:24.16 
  ?21:24.18 
sebras vtorri: I think it would be easier for the receipient to have multiple callbacks (as libopenjpeg).21:25.08 
vtorri ok21:25.41 
  i'll try to write something this week21:26.37 
  sebras, only error and warning ?21:26.55 
sebras vtorri: and something replacing flush.21:28.43 
vtorri ok21:28.53 
sebras vtorri: if it makes sense.21:29.05 
vtorri i'll begin with something simple21:29.23 
  i've never touched mupdf code21:29.30 
 Forward 1 day (to 2013/06/12)>>> 
ghostscript.com
Search: