From 85a833c784d65c6dad3504f23a75b93045b69696 Mon Sep 17 00:00:00 2001
From: "Robert P. Goldman" <rpgoldman@gmail.com>
Date: Tue, 5 Aug 2014 16:50:57 -0500
Subject: [PATCH] Remove compatibility stubs for old bundle op classes and
 document.

The compatibility stubs were not fully functional, so rather than
expend a lot of time fixing the stubs, we have done away with the old
names for the bundle ops.

Added documentation for this in the manual, as a new FAQ.

While indexing the class names, I found that we incorrectly used findex
for classes, instead of tindex.  Added syncodeindex so that we can use
the tindex command going forward without breaking everything.
---
 bundle.lisp                        | 25 +++++-----
 doc/asdf.texinfo                   | 75 +++++++++++++++++++++++-------
 interface.lisp                     |  1 -
 test/test-operation-classes.script |  5 +-
 4 files changed, 70 insertions(+), 36 deletions(-)

diff --git a/bundle.lisp b/bundle.lisp
index 5a119471..222d0e56 100644
--- a/bundle.lisp
+++ b/bundle.lisp
@@ -10,7 +10,6 @@
    #:bundle-op #:bundle-type #:program-system
    #:bundle-system #:bundle-pathname-type #:bundlable-file-p #:direct-dependency-files
    #:monolithic-op #:monolithic-bundle-op #:operation-monolithic-p
-   #:fasl-op #:load-fasl-op #:monolithic-fasl-op #:binary-op #:monolithic-binary-op
    #:basic-compile-bundle-op #:prepare-bundle-op
    #:compile-bundle-op #:load-bundle-op #:monolithic-compile-bundle-op #:monolithic-load-bundle-op
    #:lib-op #:monolithic-lib-op
@@ -530,15 +529,15 @@ Please report to ASDF-DEVEL if this works for you.")))
 
 
 ;;; Backward compatibility with pre-3.1.2 names
-(defclass fasl-op (selfward-operation)
-  ((selfward-operation :initform 'compile-bundle-op :allocation :class)))
-(defclass load-fasl-op (selfward-operation)
-  ((selfward-operation :initform 'load-bundle-op :allocation :class)))
-(defclass binary-op (selfward-operation)
-  ((selfward-operation :initform 'deliver-asd-op :allocation :class)))
-(defclass monolithic-fasl-op (selfward-operation)
-  ((selfward-operation :initform 'monolithic-compile-bundle-op :allocation :class)))
-(defclass monolithic-load-fasl-op (selfward-operation)
-  ((selfward-operation :initform 'monolithic-load-bundle-op :allocation :class)))
-(defclass monolithic-binary-op (selfward-operation)
-  ((selfward-operation :initform 'monolithic-deliver-asd-op :allocation :class)))
+;; (defclass fasl-op (selfward-operation)
+;;   ((selfward-operation :initform 'compile-bundle-op :allocation :class)))
+;; (defclass load-fasl-op (selfward-operation)
+;;   ((selfward-operation :initform 'load-bundle-op :allocation :class)))
+;; (defclass binary-op (selfward-operation)
+;;   ((selfward-operation :initform 'deliver-asd-op :allocation :class)))
+;; (defclass monolithic-fasl-op (selfward-operation)
+;;   ((selfward-operation :initform 'monolithic-compile-bundle-op :allocation :class)))
+;; (defclass monolithic-load-fasl-op (selfward-operation)
+;;   ((selfward-operation :initform 'monolithic-load-bundle-op :allocation :class)))
+;; (defclass monolithic-binary-op (selfward-operation)
+;;   ((selfward-operation :initform 'monolithic-deliver-asd-op :allocation :class)))
diff --git a/doc/asdf.texinfo b/doc/asdf.texinfo
index e4d8f726..17f9b7ac 100644
--- a/doc/asdf.texinfo
+++ b/doc/asdf.texinfo
@@ -2,6 +2,7 @@
 @c %**start of header
 @setfilename asdf.info
 @settitle ASDF Manual
+@syncodeindex tp fn
 @c %**end of header
 
 @c We use @&key, etc to escape & from TeX in lambda lists --
@@ -213,13 +214,13 @@ Miscellaneous additional functionality
 FAQ
 
 * Where do I report a bug?::
-* What has changed between ASDF 1 and ASDF 2?::
+* What has changed between ASDF 1 ASDF 2 and ASDF 3?::
 * Issues with installing the proper version of ASDF::
 * Issues with configuring ASDF::
 * Issues with using and extending ASDF to define systems::
 * ASDF development FAQs::
 
-``What has changed between ASDF 1, ASDF 2 and ASDF 3?''
+``What has changed between ASDF 1, ASDF 2, and ASDF 3?''
 
 * What are ASDF 1 2 3?::
 * How do I detect the ASDF version?::
@@ -232,6 +233,7 @@ FAQ
 * ASDF can be upgraded::
 * Decoupled release cycle::
 * Pitfalls of the transition to ASDF 2::
+* What happened to the bundle operations::
 
 Issues with installing the proper version of ASDF
 
@@ -4720,14 +4722,14 @@ mailing list
 
 @menu
 * Where do I report a bug?::
-* What has changed between ASDF 1 and ASDF 2?::
+* What has changed between ASDF 1 ASDF 2 and ASDF 3?::
 * Issues with installing the proper version of ASDF::
 * Issues with configuring ASDF::
 * Issues with using and extending ASDF to define systems::
 * ASDF development FAQs::
 @end menu
 
-@node Where do I report a bug?, What has changed between ASDF 1 and ASDF 2?, FAQ, FAQ
+@node Where do I report a bug?, What has changed between ASDF 1 ASDF 2 and ASDF 3?, FAQ, FAQ
 @section  ``Where do I report a bug?''
 
 ASDF bugs are tracked on launchpad: @url{https://launchpad.net/asdf}.
@@ -4736,8 +4738,8 @@ If you're unsure about whether something is a bug, or for general discussion,
 use the @url{http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel,asdf-devel mailing list}
 
 
-@node What has changed between ASDF 1 and ASDF 2?, Issues with installing the proper version of ASDF, Where do I report a bug?, FAQ
-@section ``What has changed between ASDF 1, ASDF 2 and ASDF 3?''
+@node What has changed between ASDF 1 ASDF 2 and ASDF 3?, Issues with installing the proper version of ASDF, Where do I report a bug?, FAQ
+@section ``What has changed between ASDF 1, ASDF 2, and ASDF 3?''
 
 We released ASDF 2.000 on May 31st 2010,
 and ASDF 3.0.0 on May 15th 2013.
@@ -4773,9 +4775,10 @@ Release ASDF 3.1.2 and later also define the @code{:asdf3.1} feature.
 * ASDF can be upgraded::
 * Decoupled release cycle::
 * Pitfalls of the transition to ASDF 2::
+* What happened to the bundle operations::
 @end menu
 
-@node What are ASDF 1 2 3?, How do I detect the ASDF version?, What has changed between ASDF 1 and ASDF 2?, What has changed between ASDF 1 and ASDF 2?
+@node What are ASDF 1 2 3?, How do I detect the ASDF version?, What has changed between ASDF 1 ASDF 2 and ASDF 3?, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection What are ASDF 1, ASDF 2, and ASDF 3?
 
 ASDF 1 refers to any release earlier than 1.369 or so (from August 2001 to October 2009),
@@ -4789,7 +4792,7 @@ and any development revision newer than ASDF 1 and older than 2.27 (Feb 1 2013).
 ASDF 3 refers to releases from 2.27 (Feb 1 2013) to 2.33 and 3.0.0 onward (May 15 2013).
 2.27 to 2.33 count as pre-releases to ASDF 3.
 
-@node How do I detect the ASDF version?, ASDF can portably name files in subdirectories, What are ASDF 1 2 3?, What has changed between ASDF 1 and ASDF 2?
+@node How do I detect the ASDF version?, ASDF can portably name files in subdirectories, What are ASDF 1 2 3?, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection How do I detect the ASDF version?
 @findex asdf-version
 @cindex *features*
@@ -4816,7 +4819,7 @@ If you are experiencing problems or limitations of any sort with ASDF 1 or ASDF
 we recommend that you should upgrade to the latest release, be it ASDF 3 or other.
 
 
-@node ASDF can portably name files in subdirectories, Output translations, How do I detect the ASDF version?, What has changed between ASDF 1 and ASDF 2?
+@node ASDF can portably name files in subdirectories, Output translations, How do I detect the ASDF version?, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection ASDF can portably name files in subdirectories
 
 Common Lisp namestrings are not portable,
@@ -4847,7 +4850,7 @@ must now be written with the @code{#p} syntax:
 @xref{The defsystem grammar,,Pathname specifiers}.
 
 
-@node Output translations, Source Registry Configuration, ASDF can portably name files in subdirectories, What has changed between ASDF 1 and ASDF 2?
+@node Output translations, Source Registry Configuration, ASDF can portably name files in subdirectories, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection Output translations
 
 A popular feature added to ASDF was output pathname translation:
@@ -4869,7 +4872,7 @@ and support for non-Unix platforms.
 
 @xref{Controlling where ASDF saves compiled files}.
 
-@node Source Registry Configuration, Usual operations are made easier to the user, Output translations, What has changed between ASDF 1 and ASDF 2?
+@node Source Registry Configuration, Usual operations are made easier to the user, Output translations, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection Source Registry Configuration
 
 Configuring ASDF used to require special magic
@@ -4904,7 +4907,7 @@ and also allows for new magic, simpler and more powerful magic.
 @xref{Controlling where ASDF searches for systems}.
 
 
-@node Usual operations are made easier to the user, Many bugs have been fixed, Source Registry Configuration, What has changed between ASDF 1 and ASDF 2?
+@node Usual operations are made easier to the user, Many bugs have been fixed, Source Registry Configuration, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection Usual operations are made easier to the user
 
 In ASDF 1, you had to use the awkward syntax
@@ -4917,7 +4920,7 @@ In ASDF 2, you can use shortcuts for the usual operations:
 similarly for @code{compile-system}, @code{test-system}.
 
 
-@node Many bugs have been fixed, ASDF itself is versioned, Usual operations are made easier to the user, What has changed between ASDF 1 and ASDF 2?
+@node Many bugs have been fixed, ASDF itself is versioned, Usual operations are made easier to the user, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection Many bugs have been fixed
 
 The following issues and many others have been fixed:
@@ -4966,7 +4969,7 @@ The documentation was grossly out of date.
 @end itemize
 
 
-@node ASDF itself is versioned, ASDF can be upgraded, Many bugs have been fixed, What has changed between ASDF 1 and ASDF 2?
+@node ASDF itself is versioned, ASDF can be upgraded, Many bugs have been fixed, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection ASDF itself is versioned
 
 Between new features, old bugs fixed, and new bugs introduced,
@@ -4983,7 +4986,7 @@ Use @code{#+asdf2} to detect presence of ASDF 2,
 to check the availability of a version no earlier than required.
 
 
-@node ASDF can be upgraded, Decoupled release cycle, ASDF itself is versioned, What has changed between ASDF 1 and ASDF 2?
+@node ASDF can be upgraded, Decoupled release cycle, ASDF itself is versioned, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection ASDF can be upgraded
 
 When an old version of ASDF was loaded,
@@ -5008,7 +5011,7 @@ There are still limitations on upgrade, though,
 most notably the fact that after you upgrade ASDF,
 you must also reload or upgrade all ASDF extensions.
 
-@node Decoupled release cycle, Pitfalls of the transition to ASDF 2, ASDF can be upgraded, What has changed between ASDF 1 and ASDF 2?
+@node Decoupled release cycle, Pitfalls of the transition to ASDF 2, ASDF can be upgraded, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection Decoupled release cycle
 
 When vendors were releasing their Lisp implementations with ASDF,
@@ -5027,7 +5030,7 @@ the practical consequence of which will mean faster convergence
 towards the latest version for everyone.
 
 
-@node Pitfalls of the transition to ASDF 2,  , Decoupled release cycle, What has changed between ASDF 1 and ASDF 2?
+@node Pitfalls of the transition to ASDF 2, What happened to the bundle operations, Decoupled release cycle, What has changed between ASDF 1 ASDF 2 and ASDF 3?
 @subsection Pitfalls of the transition to ASDF 2
 
 The main pitfalls in upgrading to ASDF 2 seem to be related
@@ -5122,8 +5125,44 @@ as detailed in a @pxref{FAQ,How do I create a system definition where all the so
 
 @end itemize
 
+@node What happened to the bundle operations,  , Pitfalls of the transition to ASDF 2, What has changed between ASDF 1 ASDF 2 and ASDF 3?
+@subsection What happened to the bundle operations?
+
+@tindex fasl-op (obsolete)
+@tindex load-fasl-op (obsolete)
+@tindex binary-op (obsolete)
+@tindex monolithic-fasl-op (obsolete)
+@tindex monolithic-load-fasl-op (obsolete)
+@tindex monolithic-binary-op (obsolete)
+@tindex compile-bundle-op
+@tindex load-bundle-op
+@tindex deliver-asd-op
+@tindex monolithic-compile-bundle-op
+@tindex monolithic-load-bundle-op
+@tindex monolithic-deliver-asd-op
+
+Some of the bundle operations were renamed after ASDF 3.1.3, and the old
+names have been removed.  Old bundle operations, and their modern
+equivalents are:
 
-@node Issues with installing the proper version of ASDF, Issues with configuring ASDF, What has changed between ASDF 1 and ASDF 2?, FAQ
+@itemize
+@item
+@code{fasl-op} is now @code{compile-bundle-op}
+@item
+@code{load-fasl-op} is now @code{load-bundle-op}
+@item
+@code{binary-op} is now @code{deliver-asd-op}
+@item
+@code{monolithic-fasl-op} is now @code{monolithic-compile-bundle-op}
+@item
+@code{monolithic-load-fasl-op} is now @code{monolithic-load-bundle-op}
+@item
+@code{monolithic-binary-op} is now @code{monolithic-deliver-asd-op}
+@end itemize
+
+
+
+@node Issues with installing the proper version of ASDF, Issues with configuring ASDF, What has changed between ASDF 1 ASDF 2 and ASDF 3?, FAQ
 @section Issues with installing the proper version of ASDF
 
 @menu
diff --git a/interface.lisp b/interface.lisp
index f637b3a8..35db8c4a 100644
--- a/interface.lisp
+++ b/interface.lisp
@@ -36,7 +36,6 @@
    #:component-load-dependencies #:run-shell-command ; deprecated, do not use
    #:bundle-op #:monolithic-bundle-op #:precompiled-system #:compiled-file #:bundle-system
    #:program-system #:make-build
-   #:fasl-op #:load-fasl-op #:monolithic-fasl-op #:binary-op #:monolithic-binary-op
    #:basic-compile-bundle-op #:prepare-bundle-op
    #:compile-bundle-op #:load-bundle-op #:monolithic-compile-bundle-op #:monolithic-load-bundle-op
    #:lib-op #:dll-op #:deliver-asd-op #:program-op #:image-op
diff --git a/test/test-operation-classes.script b/test/test-operation-classes.script
index 90816d20..163db3d2 100644
--- a/test/test-operation-classes.script
+++ b/test/test-operation-classes.script
@@ -17,20 +17,17 @@
     concatenate-source-op
     deliver-asd-op
     dll-op
-    fasl-op
     image-op
     lib-op
     load-bundle-op
     load-compiled-concatenated-source-op
     load-concatenated-source-op
-    load-fasl-op
     load-op
     load-source-op
     monolithic-compile-concatenated-source-op
     monolithic-concatenate-source-op
     monolithic-deliver-asd-op
     monolithic-dll-op
-    monolithic-fasl-op
     monolithic-lib-op
     monolithic-load-compiled-concatenated-source-op
     monolithic-load-concatenated-source-op
@@ -62,7 +59,7 @@
 (assert (make-instance 'my-good-operation))
 
 
-;; This test exercises the backward-compatibility mechanism of operation,
+;; This test exercises the backward-compatibiMlity mechanism of operation,
 ;; whereby traditional unqualified operations are implicitly downward and sideward
 (defclass trivial-operation (operation) ())
 
-- 
GitLab