CLIM mail archive

[Prev][Next][Index][Thread]

Re: reducing time overhead of text display (in 1.1) (now 2.0)



    Date: Tue, 21 Dec 1993 19:13 EST
    From: Colin Meldrum <colin@franz.com>

      Date: Tue, 21 Dec 1993 16:42 -0500
      From: Scott McKay <SWM@stony-brook.scrc.symbolics.com>
      Subject: Re: reducing time overhead of text display (in 1.1) (now 2.0)
      To: tk@research.att.com, SWM@stony-brook.scrc.symbolics.com
      Cc: clim@BBN.COM
      In-Reply-To: <19931221213843.1.tk@petzl.research.att.com>
      Message-Id: <19931221214238.8.SWM@SUMMER.SCRC.Symbolics.COM>

	  Date: Tue, 21 Dec 1993 16:38 EST
	  From: Thomas Kirk <tk@research.att.com>

	      Date: Tue, 21 Dec 1993 16:13 EST
	      From: Scott McKay <SWM@STONY-BROOK.SCRC.Symbolics.COM>
	      Subject: Re: reducing time overhead of text display (in 1.1) (now 2.0)
	      To: tk@research.att.com, SWM@STONY-BROOK.SCRC.Symbolics.COM
	      cc: clim@BBN.COM
	      In-Reply-To: <19931221205517.0.tk@petzl.research.att.com>
	      Message-ID: <19931221211312.7.SWM@SUMMER.SCRC.Symbolics.COM>

		  Date: Tue, 21 Dec 1993 15:55 EST
		  From: Thomas Kirk <tk@research.att.com>

		      Date: Tue, 21 Dec 1993 12:31 EST
		      From: Scott McKay <SWM@stony-brook.scrc.symbolics.com>
		      Subject: Re: reducing time overhead of text display (in 1.1)

		      That doesn't cost much, really.  The time-consuming parts are the
		      measuring of text size and keeping parent output records and scroll
		      bars up to date.

		  Scroll bar updating can indeed be expensive. There's an internal macro
		  in 2.0, clim-silica:inhibit-updating-scroll-bars, which can reduce output 
		  time by >25%. However, it's not an external/documented macro, and the
		  Symbolics and Franz implementations aren't compatible.

	      Huh?  I wrote this macro myself before Franz split away from everyone
	      else.  How are they not compatible?  What does the Franz one do now?

	  It takes a stream argument (from which it gets the viewport).

      Boo!  It doesn't even need one!

      I guess you should simply write

	(inhibit-updating-scroll-bars #+Franz (stream)
	  ...)

      since all the other implementations don't require a stream argument.

    I cannot comment on any of the other vendor's CLIM 2.0 implementations.
    However, Allegro CLIM 2.0 provides:

    silica:inhibit-updating-scroll-bars (stream) &body body

    This causes <body> to be executed with no updating of scroll bars after which
    any scroll bars associated with <stream> are then updated. The idea being
    that those scroll bars are updated only once after all the output is
    performed rather than several times during the ouput.

		  So, is there a supported way to do this? If not, it would be useful if this 
		  or something like it could be made part of CLIM's external interface.

    The above function is not mentioned in the current CLIM spec but I think
    that this should be part of the CLIM API. In the meantime you can assume
    that the this will work on all Allegro CLIM 2.0 releases as described above.

Except for the fact that the the Genera CLIM 2.1 release just went out
to be mastered on Monday, I would have no particular objection to any of
this.  I think that including INHIBIT-UPDATING-SCROLL-BARS as part of
the API is reasonable and, even though it is unnecessary, I have no
object to a stream argument either.

But as things stand, the following will have to do:

  (silica:inhibit-updating-scroll-bars #+Franz (stream)
    ...)

References:

Main Index | Thread Index