Re: Quantlib 3.12, Object Handler 1.3 and, Quantlib Addin3.12

Posted by Joe Byers-2 on
URL: http://quantlib.414.s1.nabble.com/Java-wrapper-test-program-using-Eclipse-3-1-1-tp4555p4568.html

Eric,

Thank you for your detailed response.  It helped my understanding of quantlibaddin and OH substantially.  I did get log4cxx and OH to compile (MSVC .net) without errors after reviewing the release compile configurations in more detail.  The Quantlibaddin xll file is a great new feature.  Sorry for not mentioning that previously.  Compiling Quantlib addin was also performed successfully after matching the correct configuration option.  The configuration options are mentioned in the documentation but not fully defined.  Previous versions of Quantlibaddin and OH had configurations that were self explanatory, now they are Release, CRTDLL, and release singlethread.  I did not understand the release and CRTDLL until I found the multi thread option selected in the properties of each of the projects. 

Defining Release/Debug, CRTDLL/Debug CRTDLL, and Release SingleThread/Debug Single Thread  in the documentation would be helpful, I think.  At least for some of us less than knowledgable programers.  The last one is a WELL DUH I know.


I have not compiled the OH and Quantlibaddins projects for my linux server as of yet but will tackle that later.  Also, I have to try the OpenOffice again with the new upgrade.

Again,  thank you for all the work.

Joe


eric ehlers <[hidden email]> wrote:
Hi Joe,

Sorry you're having trouble compiling QuantLibAddin. The build
process is complicated with lots of opportunities for problems.

Before responding to your specific points let me point out in case you
haven't seen already that QuantLibAddin is available as a binary
installation - download the file QuantLibAddin-0.3.12-bin.exe and
launch it and it should install the compiled XLL and example workbooks
to your machine.

On 4/12/06, Joe Byers wrote:
> I want to give failing marks to the developers on the new versions of Object
> handler and the Quantlib Addin. They have taken a project that required
> good knowledge of compiling and deploying the 3 applications (remember OO
> had to have log4cxx 9.7 as well) to a project that requires expertise for
> compiling and deploying.

In what way do you feel that the build/deployment process has become
more complex in the latest release of OH/QLA? The main change is that
we link to log4cxx statically rather than dynamically - so it's no
longer necessary to deploy the log4cxx DLL. This change was intended
to simplify the build/deployment process - do you feel it's had the
opposite effect? Or do you feel the process has been complicated in
other ways?

> The modifications of log4cxx 9.7 are a blasphemy.
> One log4cxx is 9.7 no longer under development by apache. A new version is
> scheduled.

Yes, log4cxx 0.9.7 is discontinued and a new version of log4cxx is on
the way. The log4cxx maintainers point out that 0.9.7 has many bugs
and advise users to grab the latest CVS snapshot of the upcoming
release.

Based on the following considerations ...

1) Whatever bugs exist in log4cxx version 0.9.7 don't seem to impact
its use in OH
2) I don't want to make OH dependent on a CVS version of log4cxx which
is subject to change at any time

... I've decided to continue using log4cxx 0.9.7 for OH until a stable
release of the new version of log4cxx is available.

Note that the new release of log4cxx seems permanently stalled in
pre-release - it's been under development for 2 years with little
signs of progress.

> Your version of log4cxx does not have the dll project in the
> msvc project file

The dll project is no longer required for ObjectHandler/QuantLibAddin.
OH/QLA depends on the log4cxx static build.

> and the compilation errors are horrendous to over come.

Please send details and I'll try to help you resolve them.

> The simplesocketserver I can not get to compile no matter what I do.

simplesocketserver is not required for OH/QLA.

> Quantlib addin is also poor. CPP get all kinds of C4530 error in the stock
> VC code, C3861 snprintf in log4cxx and c1083 alloca.h not found in tchar.h

I'd be happy to try and help you resolve the build problems. I'd
suggest working through the installation step by step - if you haven't
succeeded in building log4cxx then there's not much point in
proceeding to its dependents. Please also see the QuantLibAddin FAQ -
http://www.quantlib.org/quantlibaddin/faq.html - e.g. the section
'Build and Execute Prerequisite Examples.'

> The installation and help are not 'helpful' at all. A step by step
> installation with details to the project properties in MSVC or Eclipse or
> gcc would be nice. That way if anyone has some minor differences on their
> system, they can map to your defaults.

I believe the installation instructions are complete (if there's a
step missing please let me know and I'll update the docs). You're
talking about increasing the detail and scope of the documents. I'm
not in favor of that, the existing instructions are adequate in
guiding an experienced programmer to build OH/QLA, and I don't believe
its possible to extend the scope/detail of the document without
reducing its relevance. For example you'd like to see details of the
project properties with a view to cross-compiler usage - that info
might be irrelevant for a lot of other people - but then someone else
might be interested in some other angle which is equally detailed by
also lacking in general appeal... If we go down that road the docs
will be huge, without being correct for anyone. I prefer to keep the
document complete but succinct.

> Why are you using the logger? The software is complicated enough as it is.
> OO does not seem to provide any benefits but adding complexity. I
> understand the 'objectives' and goals of OO but not the reason for the
> complexity.

Not 100% sure what you're getting at... I guess you're concerned with
two related issues - the decision to use log4cxx, and the fact that
log4cxx is OO, as opposed to, say, procedural - ?

As for why we chose log4cxx - we need a logging capability of one
description or another. Our options were to implement this
functionality ourselves, or use an existing solution. log4cxx, for
all its faults, is 1) the best open-source logging framework available
and 2) seems adequate for our purposes - so we went with it.

As to the fact that log4cxx is OO... I guess you're saying that we
could have reduced the complexity of the overall build, by using a
non-OO (e.g. procedural?) logging framework? If that's what you're
saying, I disagree, I don't think that OO is necessarily synonymous
with complexity and anyway QL/OH/QLA are all OO so why shouldn't we
use an OO logging framework as well?

> It boils down to if you want Quantlib to be used it has to be as easy to
> install the various components as it is to install Financial Eng. Asso.
> www.fea.com, techhackers, or the any other proprietairy quantitative
> software.

OK. Firstly let me emphasize that QuantLibAddin is distinct from
QuantLib. QuantLibAddin offers one specific application of QuantLib,
and problems with QuantLibAddin's build process have no bearing on the
many other unrelated uses of the core QuantLib library.

I'd certainly like to complete with proprietary alternatives on all
fronts - functionality, performance, etc. If ease of installation is
your benchmark then I think you should look at the binary build
(mentioned above) rather than the source build.

> I am only tyring to provide constructive criticism here.

That's exactly how I've taken your comments and if this discussion
leads to improvements which spare others the frustrations you've
experienced then that's good.

> I would like to
> add that I am not a C programer or systems analysts. Only a meager
> professor of Finance and consultant trying to make life easier for myself,
> my students and colleagues with useful software.

Well, you definitely belong to the intended audience for the compiled
QuantLibAddin. If you're new to C++ then the QuantLibAddin build may
be an ambitious undertaking, as you've found, but as I said I'd be
happy to try and help you to resolve any issues.

Regards,
Eric



A man is not the center of his universe, rather those he loves are. So his focus should always be on them for they will provide him with love and happiness all of his life - Anonymous


Yahoo! Messenger with Voice. PC-to-Phone calls for ridiculously low rates.