On Tue, Nov 24, 2009 at 7:53 PM, David Creelman <firstname.lastname@example.org>
On Tue, Nov 24, 2009 at 04:13:35PM -0800, Bhaskara Marthi wrote:
> On Tue, Nov 24, 2009 at 3:50 PM, David Creelman <email@example.com
> > Hi,
> > I have a small utility I've written, cl-reminders that runs nicely in SBCL.
> The specific error seems to be caused by sbcl not knowing that
> with-smtp-connection is a macro, therefore treating (socket server) as a
> function call. The likely causes are either 1) the macro definition of
> with-smtp-connection has not been loaded 2) the symbol with-smtp-connection
> is in a different package, and is not present in the package where your
> unetwork-sendmail is defined.
unetwork exports with-smtp-connection in its package.lisp.
The package that uses unetwork has a :uses :unetwork clause in it.
I thought this would mean that :unetwork exported symbols could be used
within the package I've created.
Yes it should mean that. One way to check this is in the repl, switch to the package, let's say it's called :sendmail, in which unetwork-sendmail is defined, then do (symbol-package 'with-smtp-connection). It should say unetwork, as opposed to sendmail. If not, then the symbol has not been imported into the package. If it does return unetwork, but with-smtp-connection still gives the error, that means the macro definition has not been seen, so sbcl thinks with-smtp-connection is a function (the default assumption). That means either that the file containing the definition was not loaded, or perhaps that file didn't contain an (in-package :unetwork), so that with-smtp-connection was interpreted as belonging to the cl-user package or something. If you could post 1) the asdf file, 2) the files containing the respective defpackage's 3) the files containing the two function definitions, that would help. I don't know what the convention is, but I'm guessing attaching them as individual source files is fine.
> It's hard to diagnose further without seeing the code and system
> definitions. Btw, the way you used the word "package" in your message makes
> me suspect you might be confusing the role of a package and an asdf system.
> In case you aren't sure about the difference, you should look at the
> documentation further.
I think I understand the difference between asdf systems and CL packages.
I threw in the explanation of .asd file just to show that the asdf dependency
was pulling in the unetwork.
Is it okay to throw my code into a .tar.gz and attach it to an email here?
> - Bhaskara
> > The version of SBCL I'm using is 1.0.25.Debian.
> > Regards
> > David
> > ------------------------------------------------------------------------------
> > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> > trial. Simplify your report design, integration and deployment - and focus
> > on
> > what you do best, core application coding. Discover what's new with
> > Crystal Reports now. http://p.sf.net/sfu/bobj-july
> > _______________________________________________
> > Sbcl-help mailing list
> > Sbclfirstname.lastname@example.org
> > https://lists.sourceforge.net/lists/listinfo/sbcl-help
> Bhaskara Marthi
> Research Scientist
> Willow Garage Inc.