[88e8b4]: RELEASE-NOTES Maximize Restore History

Download this file

RELEASE-NOTES    145 lines (107 with data), 5.0 kB

                      Series Version 2.0.2 RELEASE NOTES

                           Fernando D. Mato Mira
           CSEM (Centre Suisse d'Electronique et de Microtechnique)
                Jaquet-Droz 1, CH-2007 Neuchatel, Switzerland
                             matomira@acm.org


                              3rd March, 2000


                    Series created by Richard C. Waters
                    

   Copyright Massachusetts Institute of Technology, Cambridge, Massachusetts.

   Permission to use, copy, modify, and distribute this software and its
   documentation for any purpose and without fee is hereby granted,
   provided that this copyright and permission notice appear in all
   copies and supporting documentation, and that the name of M.I.T. not
   be used in advertising or publicity pertaining to distribution of the
   software without specific, written prior permission. M.I.T. makes no
   representations about the suitability of this software for any
   purpose.  It is provided "as is" without express or implied warranty.

   M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
   M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
   ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
   WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
   ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
   SOFTWARE.


                                CREDITS

                        Fostering by Raymond Toy
                   

                           Featuring Fixes by:

                              Tim Bradshaw    (Symbolics)
                              Bruno Haible    (CLISP)
                             Arthur Lemmens
                            Reginald S. Perry
                             Pekka Pirinen    (Liquid Common Lisp)
                             Paul Werkowski   (CMUCL)

 
                          Additional Tests by:

                            Arthur Lemmens


                          Special Effects by

                          Many unknown others


***NEW SPECIFICATION RESTRICTIONS***
------------------------------------

1. The consequences of using the gatherers introduced by GATHERING outside the dynamic scope of the form are now explicitly stated to be undefined, except for
   those declared INDEFINITE-EXTENT.
   
   If you need them to be indefinite extent by default,
   evaluate (pushnew :cltl2-series) before compilation (or interpreted load)

   After loading series :cltl2-series will indicate if backward-compatibility
   mode is enabled.

   Rationale for this change: 
    "Weird code must be the one escaping gatherers so created"
    "WHO EVER DID THAT???"


NEW FEATURES:
------------

- GATHER-NEXT
  A macro with the same effect as the NEXT-OUT function, but with result undefined.
- GATHER-RESULT
  A macro with the same semantics as the RESULT-OF function,
- FGATHER-NEXT
  Like GATHER-NEXT, but the gatherer argument must be a symbol denoting a gatherer bound by FLET.
- FGATHER-RESULT
  Like GATHER-RESULT, but the gatherer argument must be a symbol denoting a gatherer bound by FLET.
- FGATHERING
  Like GATHERING, but where the gatherers are bound by FLET instead of LET.
  Same extent rules as for GATHERING apply. Remember that where you would use
  (declare (indefinite-extent g)) inside GATHERING, you need to do 
  (declare (indefinite-extent #'g)) with FGATHERING.
- GATHERLET
  The basic construct upon which GATHERING rests. No automatic return
  of gatherer results. And no extent restrictions, of course. If you want
  something dynamic-extent, you'll have to declare it.
- FGATHERLET
  The `F' version of GATHERLET. Duh.
- COLLECT-PRODUCT
  Like COLLECT-SUM, but for #'*. How more obvious does it get?
- INDEFINITE-EXTENT
  Declaration exported.

IMPROVEMENTS:
------------
- MACROLETs or CLOS::VARIABLE-REBINDING declarations do not block optimization under LispWorks.
- Better code generation
  - Stricter typing.
  - Replaced some SETQs by initializations at LET binding time.
  - Removed global function namespace pollution.
  - Encapsulated series subfunctions.
- Source clean up.
  Local series functions are almost there (FLET extension)
  Bottom-up definition for improved compilation.
  Make source `FLET and LABELS ready'.
  Renamed old fragL *fragL. Used new `*type*-free' fragL whenever possible.
  `readability/documentation' release.
  Abstracted use of aux component of frags.
  Some work done towards multiple assignment support in PRODUCING.


BUG FIXES:
---------
- Does not unintern EXT:COLLECT and EXT:ITERATE anymore under CMUCL!!!
- GATHERING et al. are not bitten by CMUCL DEFSTRUCT bugs.


COMPILING
--------
(load "s-package")
(compile-file "s-package")
(compile-file "s-code")

LOADING
-------
(load "s-package")
(load "s-code")

TESTING
-------
Load SERIES, then:
(compile-file "s-test")
(load "s-test")
(user::do-tests)