<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Oh. Ouch. Oof. Defining ANY sort of custom code in an
      implementation package, such as CCL, is not a good idea unless you
      know what and why you are doing. My solution stands, but for even
      stronger reasons now.<br>
    </p>
    <div class="moz-cite-prefix">On 21.03.2022 22:24, Tim Bradshaw
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20E1EDA1-0C2C-4FA9-89F6-D8734638A569@tfeb.org">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">No, he's not: he's in CC (look at the value of
        *package*), in which DBG is defined but not exported.  So you're
        right, but it's worse...</div>
      <div dir="ltr"><br>
      </div>
      <div dir="ltr">--tim</div>
      <div dir="ltr"><br>
        <blockquote type="cite">On 21 Mar 2022, at 21:10, Michał phoe
          Herda <a class="moz-txt-link-rfc2396E" href="mailto:phoe@disroot.org"><phoe@disroot.org></a> wrote:<br>
          <br>
        </blockquote>
      </div>
      <blockquote type="cite">
        <div dir="ltr">
          <meta http-equiv="Content-Type" content="text/html;
            charset=UTF-8">
          <p>You're coding in package CL-USER which is allowed to
            contain imports from other packages, different across
            implementations; defining lots of code in CL-USER is
            generally a bad idea because of this.</p>
          <p>The solution is to fix up your modularity and create your
            own package that uses e.g. only CL. No naming conflicts this
            way.<br>
          </p>
          <div class="moz-cite-prefix">On 21.03.2022 22:00, Denis
            Lorrain wrote:<br>
          </div>
          <blockquote type="cite"
            cite="mid:48838338.1492325.1647896431814@mail.yahoo.com">
            <meta http-equiv="content-type" content="text/html;
              charset=UTF-8">
            <div class="ydp2224ebd2yahoo-style-wrap"
              style="font-family:courier new, courier, monaco,
              monospace, sans-serif;font-size:16px;">
              <div>
                <div>Hello all,<br>
                </div>
                <div><br>
                </div>
                <div>- Having updated from macOS 11.6.3 to 12.3, I had
                  to change from the old AppStore CCL 1.11.7 to CCL
                  1.12.1.</div>
                <div>- R. Matthew Emerson kindly gave me this last
                  build:</div>
                <div>   <a class="moz-txt-link-freetext"
                    href="http://setf.clozure.com/~rme/ccl-1.12.1-ide-big-sur.zip"
                    moz-do-not-send="true">http://setf.clozure.com/~rme/ccl-1.12.1-ide-big-sur.zip</a></div>
                <div>- Happily, CCL 1.12.1 runs seemingly very well with
                  macOS 12.3, whereas CCL 1.11.7 was very problematic
                  with macOS 11.6.3. So I'm globally very satisfied with
                  both changes.</div>
                <div><br>
                </div>
                <div dir="ltr" data-setdir="false">- Unfortunately CCL
                  1.12.1 now introduces a name conflict with my own
                  code, which did not occur before. Briefly summarized:</div>
                <div><br>
                </div>
                <div>===========================================================</div>
                <div>Clozure Common Lisp Version 1.12.1
                  (v1.12.1-3-g2ae800e1) DarwinX8664</div>
                <div>For more information about CCL, please see <a
                    class="moz-txt-link-freetext"
                    href="http://ccl.clozure.com" moz-do-not-send="true">http://ccl.clozure.com</a>.</div>
                <div>CCL is free software.  It is distributed under the
                  terms of the Apache</div>
                <div>Licence, Version 2.0.</div>
                <div>? (function DBG)</div>
                <div>#<Compiled-function DBG #x30000015DD1F></div>
                <div>? *package*</div>
                <div>#<Package "CCL"></div>
                <div>? (find-symbol "DBG")</div>
                <div>DBG</div>
                <div>:INTERNAL</div>
                <div>? (defmacro dbg (forme &optional fonction)</div>
                <div>    (if fonction</div>
                <div>        `(format *standard-output* "~4Tdbg-> ~S
                  : ~S = ~S~%"</div>
                <div>               (quote ,fonction) (quote ,forme)
                  ,forme)</div>
                <div>      `(format *standard-output* "~4Tdbg-> ~S =
                  ~S~%" (quote ,forme) ,forme)))</div>
                <div>; Warning: The function DBG is being redefined as a
                  macro.<br>
                </div>
                <div>; While executing: (SETF MACRO-FUNCTION), in
                  process Listener(4).</div>
                <div>DBG</div>
                <div>? (dbg a) => crash: AltConsole</div>
                <div>                    Lisp Breakpoint</div>
                <div>                    ? for help</div>
                <div dir="ltr" data-setdir="false">                   
                  [nnnn] Clozure CL kernel debugger:</div>
                <div dir="ltr" data-setdir="false"><span>===========================================================</span><br>
                </div>
                <div dir="ltr" data-setdir="false"><span><br>
                  </span></div>
                <div dir="ltr" data-setdir="false">- The conflict is
                  created by my definition of dbg as a macro-function.
                  You understand it's a simple developing help, inserted
                  for debugging, checking things on the fly, printing
                  internal values, etc.</div>
                <div><br>
                </div>
                <div>- The annoying point is that my dbg macro-function
                  is everywhere in my code, sometimes commented out, but
                  often not. I could change its name, but it would be
                  quite tedious to edit all my source files, written
                  over the last 15 or 20 years...</div>
                <div><br>
                </div>
                <div dir="ltr" data-setdir="false">=> Is there some
                  package trick which could solve this name conflict? So
                  called shadowing? Unfortunately, my knowledge about
                  packages doesn't extend further than the clumsy demo
                  above.</div>
                <div>=> Could anyone suggest a hopefully simple
                  solution?</div>
                <div><br>
                </div>
                <div>Sorry for this long message. Many thanks in
                  advance,</div>
                <div dir="ltr" data-setdir="false"><br>
                </div>
              </div>
              <div dir="ltr" data-setdir="false">   DLO</div>
              <div class="ydp2224ebd2signature">
                <div style="font-family:courier, monaco, monospace,
                  sans-serif;font-size:13px;">
                  <div>--</div>
                  <div>Denis Lorrain</div>
                  <div><a href="http://denislorrain.org" rel="nofollow"
                      target="_blank" moz-do-not-send="true">http://www.denislorrain.org</a></div>
                  <div dir="ltr">Recordings of selected piano works:</div>
                  <div dir="ltr">  <a
                      href="https://soundcloud.com/user-205054622"
                      rel="nofollow" target="_blank"
                      moz-do-not-send="true">http://w</a>orks.denislorrain.org</div>
                  <div dir="ltr">e-mail: <a
                      class="moz-txt-link-abbreviated
                      moz-txt-link-freetext"
                      href="mailto:dlo@denislorrain.org"
                      moz-do-not-send="true">dlo@denislorrain.org</a></div>
                  <div>--</div>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
      </blockquote>
    </blockquote>
  </body>
</html>