<commit_before>(cl:in-package #:common-lisp-user)

(asdf:defsystem :sicl-clos-phase2
  :depends-on (:sicl-clos-phase1)
  ;; We use :SERIAL T so as to reduce the clutter with respect to the
  ;; dependencies, and to make the order completely predictable.
  :serial t
  :components
  (;; The symbol MAKE-INSTANCE is shadowed in the SICL-CLOS package,
   ;; but now, we need for MAKE-INSTANCE to do the same thing as
   ;; CL:MAKE-INSTANCE, so we define SICL-CLOS as a function that just
   ;; calls CL:MAKE-INSTANCE.
   (:file "make-instance")
   ;; The symbol COMPILE is shadowed in the SICL-CLOS package, but
   ;; now, we need for COMPILE to do the same thing as CL:COMPILE, so
   ;; we define SICL-CLOS as a function that just calls CL:COMPILE.
   (:file "compile")
   ;; The symbols INITIALIZE-INSTANCE, REINITIALIZE-INSTANCE, and
   ;; SHARED-INITIALIZED are shadowed in the SICL-CLOS package.  But
   ;; we still need for the :AFTER methods on INITIALIZE-INSTANCE
   ;; defined here to be called as :AFTER method on
   ;; CL:INITIALIZE-INSTANCE.  We solve this problem by 1: Defining
   ;; SICL-CLOS:INITIALIZE-INSTANCE as a host generic function (this
   ;; happens when we load "initialize-defgenerics"), 2: Defining a
   ;; primary unspecialized method on SICL-CLOS:INITIALIZE-INSTANCE
   ;; that does nothing (so that there is always a primary applicable
   ;; method), and 3: Defining an :AFTER method on
   ;; CL:INITIALIZE-INSTANCE specialized to SICL-CLOS:METAOBJECT that
   ;; calls SICL-CLOS:INITIALIZE-INSTANCE (this is done in
   ;; "initialize-instance")
   (:file "initialize-instance-defgenerics")
   (:file "reinitialize-instance-defgenerics")
   (:file "shared-initialize-defgenerics")
   (:file "initialize-instance")
   ;; Although we do not use the dependent maintenance facility, we
   ;; define the specified functions as ordinary functions that do
   ;; nothing, so that we can safely call them from other code.
   (:file "dependent-maintenance-support")
   (:file "dependent-maintenance-defuns")
   ;; The symbol FIND-CLASS is shadowed in the SICL-CLOS package, but
   ;; now, we need for FIND-CLASS to do the same thing as
   ;; CL:FIND-CLASS, so we define SICL-CLOS as a function that just
   ;; calls CL:FIND-CLASS.
   (:file "find-class")
   ;; Define the specified ordinary function
   ;; SET-FUNCALLABLE-INSTANCE-FUNCTION to set the discriminating
   ;; function of the bridge generic function. 
   (:file "set-funcallable-instance-function")
   ;; Define :AFTER methods on INITIALIZE-INSTANCE that implement the
   ;; generic function initialization protocol
   (:file "generic-function-initialization-support")
   (:file "generic-function-initialization-defmethods")
   (:file "bridge-generic-function")
   (:file "generic-function-database")
   (:file "fmakunbound-defgeneric")
   (:file "defgeneric-defmacro")
   (:file "specializerp")
   (:file "method-initialization-support")
   (:file "method-initialization-defmethods")
   (:file "ensure-generic-function")
   (:file "slot-value")
   (:file "add-remove-direct-method-support")
   (:file "add-remove-direct-method-defuns")
   (:file "class-of")
   (:file "compute-applicable-methods-support")<commit_msg>Use new method for defining INITIALIZE-INSTANCE in phase 2.<commit_after>(cl:in-package #:common-lisp-user)

(asdf:defsystem :sicl-clos-phase2
  :depends-on (:sicl-clos-phase1)
  ;; We use :SERIAL T so as to reduce the clutter with respect to the
  ;; dependencies, and to make the order completely predictable.
  :serial t
  :components
  (;; The symbol MAKE-INSTANCE is shadowed in the SICL-CLOS package,
   ;; but now, we need for MAKE-INSTANCE to do the same thing as
   ;; CL:MAKE-INSTANCE, so we define SICL-CLOS as a function that just
   ;; calls CL:MAKE-INSTANCE.
   (:file "make-instance")
   ;; The symbol COMPILE is shadowed in the SICL-CLOS package, but
   ;; now, we need for COMPILE to do the same thing as CL:COMPILE, so
   ;; we define SICL-CLOS as a function that just calls CL:COMPILE.
   (:file "compile")
   ;; The symbols INITIALIZE-INSTANCE, REINITIALIZE-INSTANCE, and
   ;; SHARED-INITIALIZED are shadowed in the SICL-CLOS package.  But
   ;; we still need for the methods on INITIALIZE-INSTANCE defined
   ;; here to be called as methods on CL:INITIALIZE-INSTANCE.  We
   ;; solve this problem by setting the fdefinition of the symbol
   ;; SICL-CLOS:INITIALIZE-INSTANCE to the fdefinition of the function
   ;; CL:INITIALIZE-INSTANCE.
   (:file "initialize-instance")
   ;; Define host generic functions for the other initialization
   ;; functions.
   (:file "reinitialize-instance-defgenerics")
   (:file "shared-initialize-defgenerics")
   ;; Although we do not use the dependent maintenance facility, we
   ;; define the specified functions as ordinary functions that do
   ;; nothing, so that we can safely call them from other code.
   (:file "dependent-maintenance-support")
   (:file "dependent-maintenance-defuns")
   ;; The symbol FIND-CLASS is shadowed in the SICL-CLOS package, but
   ;; now, we need for FIND-CLASS to do the same thing as
   ;; CL:FIND-CLASS, so we define SICL-CLOS as a function that just
   ;; calls CL:FIND-CLASS.
   (:file "find-class")
   ;; Define the specified ordinary function
   ;; SET-FUNCALLABLE-INSTANCE-FUNCTION to set the discriminating
   ;; function of the bridge generic function. 
   (:file "set-funcallable-instance-function")
   ;; Define :AFTER methods on INITIALIZE-INSTANCE that implement the
   ;; generic function initialization protocol
   (:file "generic-function-initialization-support")
   (:file "generic-function-initialization-defmethods")
   (:file "bridge-generic-function")
   (:file "generic-function-database")
   (:file "fmakunbound-defgeneric")
   (:file "defgeneric-defmacro")
   (:file "specializerp")
   (:file "method-initialization-support")
   (:file "method-initialization-defmethods")
   (:file "ensure-generic-function")
   (:file "slot-value")
   (:file "add-remove-direct-method-support")
   (:file "add-remove-direct-method-defuns")
   (:file "class-of")
   (:file "compute-applicable-methods-support")
{'fraction_non_alphanumeric': 0.10954642213852955, 'fraction_numerical': 0.0013099721630915344, 'mean_word_length': 3.945748987854251, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4543066', 'n_tokens_mistral': 1960, 'n_tokens_neox': 1842, 'n_words': 629}