The documentation of DEFMFUN claims the following:
;; If the function name NAME starts with #\$ we check the number of
;; arguments. In this case, two functions are created: NAME and
;; NAME-IMPL (without the leading $).
However, actually the leading $ is not removed. This causes
$APROPOS to leak these details to the user. Observed in Maxima 5.44.0
See https://trac.sagemath.org/ticket/30063#comment:17
$ ./sage -maxima ;;; Loading #P"/Users/mkoeppe/s/sage/sage-rebasing/local/lib/ecl/sb-bsd-sockets.fas" ;;; Loading #P"/Users/mkoeppe/s/sage/sage-rebasing/local/lib/ecl/sockets.fas" Maxima 5.44.0 http://maxima.sourceforge.net using Lisp ECL 20.4.24 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) apropos("gcd"); (%o1) [ef_gcd, ef_gcd-impl, ef_gcdex, ef_gcdex-impl, ezgcd, ezgcd-impl, gcd, gcd-impl, gcdex, gf_gcd, gf_gcd-impl, gf_gcdex, gf_gcdex-impl, gcd]
Here's a patch to implement the suggested change. I'll check with the author of DEFMFUN (Raymond Toy) about it. Note that one has to say
make clean
beforemake
in order to remove any existing references to $FOO-IMPL functions.This change looks fine to me. I don't see any reason why the impl needs a leading $. It's an internal implementation detail that the user doesn't need to see.
Fixed by commit 54a22fb. Closing this ticket, thank you for the bug report, I appreciate it.