[Openmcl-devel] CCL Win32 confuses equally named functions

Wimpie Nortje wimpie at selectiveshare.com
Mon Jun 8 11:03:05 UTC 2015


Hi everyone,

I am porting my application from linux 64b to windows 32b. On windows
CCL calls the wrong function while it works fine in linux.

In principle the code looks like this

(in-package :b)
(defun fn (par1 par2 &optional (out *standard-output*))     [3]
      (do-stuff))

(in-package :a)
(defun fn (par1 par2)                        [2]
      (b:fn par1 par2 *some-global*))   [1]

(in-package :main)
(a:fn Val1 Val2)


When I run this I get the following error:
Too many arguments in call to #<Compiled-function B:FN #xE0A390E>:
3 arguments provided, at most 2 accepted.
   [Condition of type CCL::TOO-MANY-ARGUMENTS]

It seems that the function call at [1] is calling the definition at [2]
instead of the one at [3]. Also, when I do M-. (slime-edit-definition)
at [1] it jumps to [2].

If I rename b:fn to something else without any other code changes, it
works.

This code works unmodified on linux 64b. I have not yet tried on windows
64b

Is this a bug or am I doing something wrong?

I am running CCL Version 1.10-r16196  (WindowsX8632) on Windows XP SP3.


--
Wimpie Nortje
Strongroom - Host-proof notepad
Selective Share - Encryption-as-a-Service
https://www.selectiveshare.com


More information about the Openmcl-devel mailing list