scsh-users
[Top] [All Lists]

Re: Functional PostScript

To: scsh@zurich.csail.mit.edu
Subject: Re: Functional PostScript
From: stktrc <stktrc@yahoo.com>
Date: 23 Nov 2003 13:05:16 +0100
Sender: news <news@sea.gmane.org>
Michael Sperber <sperber@informatik.uni-tuebingen.de> writes:

> >>>>> "stktrc" == stktrc  <stktrc@yahoo.com> writes:
> 
> stktrc> Shouldn't the following two code snippets produce the same output in
> stktrc> Functional PostScript (1.0)?
> 
> I guess you're right.  I'll keep it in the queue as a test for FPS 2.0.

Now I've had a closer look at it, and believe I have found out what
causes the problem.  I believe it is a case of a cached value being
reused that isn't correct anymore.

The problem can be worked around by commenting out the line that uses
the cache so that the starting point is always recalculated.  See
patch below.  This makes all my test cases give the expected results.


*** fps.ask.scm.orig    Wed Nov 19 07:58:48 2003
--- fps.ask.scm Sun Nov 23 12:15:19 2003
***************
*** 313,319 ****
              ((stroke-outline-path? obj) (loop (stroke-outline-path:path obj)
                                                TM))
              ((composite?      obj) (loop (first-in-composite obj) TM))
!             ((instance?       obj) (or (instance:start-pt obj)
                                         (let ((start (loop (instance:obj obj) 
                                                            (matrix* 
                                                             (instance:TM obj) 
TM))))
--- 315,321 ----
              ((stroke-outline-path? obj) (loop (stroke-outline-path:path obj)
                                                TM))
              ((composite?      obj) (loop (first-in-composite obj) TM))
!             ((instance?       obj) (or ;(instance:start-pt obj)
                                         (let ((start (loop (instance:obj obj) 
                                                            (matrix* 
                                                             (instance:TM obj) 
TM))))


<Prev in Thread] Current Thread [Next in Thread>