[Openmcl-devel] Currency Converter Example

Gary Byers gb at clozure.com
Thu Jan 1 16:30:13 PST 2009

On Thu, 1 Jan 2009, B Rannode wrote:

> Hello,
>  I just did a fresh install of the 64bit Mac Clozure .dmg and am
> having a few issues with the Currency Converter Cocoa example.
> First, I cannot get it to build the application when strictly
> following the instructions or using the attached example files at: http://trac.clozure.com/openmcl/wiki/AppleCurrencyConverterMakingaProject

The tutorial's instructions say that you should "launch Clozure CL by
double-clicking on it."  The "Clozure CL" that one would double-click
on in order to get an environment that matches the screenshots in
the tutorial is an OSX application bundle ("Clozure CL.app"), which
is sometimes referred to as "the IDE"; see


for information about building and using the IDE.  The symptoms
that you describe suggest that you double-clicked on something
else (possibly just the lisp kernel, "dx86cl64", which is just
a command-line tool that's not at all Cocoa-aware.)

Once you've created the "Clozure CL" application, double-clicking on
it when the Currency Converter tutorial suggests doing so should make
a bit more sense

Mikel's admonitions about a flurry of development activity breaking
things are more likely to be true of the trunk than of the 1.2 
release that you're using.  (I'm not aware of any specific activity
in the trunk that breaks the CurrencyConverter example, but it's true
that that kind of activity is certainly more likely to occur there.)

> When I use my own or the included files I get:
>> ? (load "currency-converter")
>>> Error: Reader error on #<BASIC-FILE-CHARACTER-INPUT-STREAM
>> ("example_files/currency-converter.lisp"/4 ISO-8859-1)
>> #x300040EC013D>, near position 94, within "(ns:ns-obj":
>>>        Reference to unknown package "NS".
>>> While executing: SIGNAL-READER-ERROR, in process listener(1).
>> ...
> I have found that adding (require "COCOA") to the head of currency-
> converter.lisp gets me beyond this step. Is that acceptable? Is my
> installation flawed or is the tutorial out of date?

All of files (.nibs, .lisp sources) that're used in the CurrencyConverter
example are distributed in "ccl:examples;cocoa;currencyconverter;"

The bug that led to this error was fixed in the currencyconverter.lisp
source file in <http://trac.clozure.com/openmcl/changeset/10236>, but
the tutorial on the Trac wiki still had the old/bad definition of
the #/convert: method, as did the copies of the tutorial distributed
in the lisp itself.  I just fixed that; if you apply the change to
your copy of the #/convert: method and re-build the application, you
should find that you no longer get this error.

> Next, when building the application:
>> ? (require "build-application")
>> "build-application"
>> ("builder-utilities" "build-application")
>> ? (ccl::build-application :name "CurrencyConverter"
>> 	:main-nib-name "CurrencyConverter"
>> 	:nibfiles '(#P"CurrencyConverter.nib"))
>> ;; Clozure terminates
>> $
> I can run the Application bundle and it does convert, but I get a
> console with the error message found at: http://paste.lisp.org/display/72922

> Does anything stick out here to anyone? I have programmed in Obj-C++ w/
> Cocoa before but it is not immediately clear to me what needs
> correction here.
> Thanks for any insight into these issues.
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list