I haven't done a breakdown on usage of C++11 vs. C++14. I ran into a
break on a templated lambda. The CTP_Nov2012 compiler has a limitation
in its support of this C++14 feature, but it was easily worked-around
(still templated/14). We might be able to disable C++14 on the
compilation to find out what else might be in there.
If you replace my madvise() exclusion with a Windows noop then we are in
a state where everything is verified as ported. Keeping it that way mat
be more of a challenge. We're going to need to take on continuous
integration tooling at some point.
Thanks for the updates, all sounds good to me.
e
-----Original Message-----
From: Libbitcoin [
mailto:libbitcoin-bounces@lists.dyne.org] On Behalf Of
Amir Taaki
Sent: Saturday, March 29, 2014 4:14 PM
To: libbitcoin@???
Subject: Re: [Libbitcoin] Visual Studio Builds
Thanks for this epic work Eric. I use C++11, but what features of C++14
am I using?
For portability I should probably avoid direct use of madvise() and
instead have an "inline" replacement which does nothing on Windows:
http://stackoverflow.com/questions/1201168/what-is-fadvise-madvise-equival
ent-on-windows
Anything more seems complicated based on that post but it would get
functionality operating and we could recommend Linux for deployment
setups.
I plan to rearchitect and remodularise the blockchain component in
libbitcoin. Before I had this idea of a generic blockchain interface for
multiple backend drivers but now I'm dropping that idea in favour of a
blockchain interface optimised for a single backend with the possibility
to add others. This will enable better code modularisation and are my
steps to a new highly optimised + performant blockchain architecture.
I'll be splitting the repos soon too. Just waiting until we've reached a
kinda stable plateau for DarkWallet before I start swinging the wrecking
ball :)
On 29/03/14 21:45, Eric Voskuil wrote:
> I've added Visual Studio solutions for libbitcoin, libwallet, obelisk
> and sx. Because of the use of C++11/14 features in much of the code the
> projects require the CTP_Nov2013 compiler, which can be downloaded here:
>
> http://www.microsoft.com/en-us/download/details.aspx?id=41151
>
> There are static (default as well as LTCG) LIB and dynamic (DLL)
> configurations for x86 and x64 in each project. All compile and link
> error/warning free with the exception of a number of warnings on numeric
> conversion in the 64 bit builds. I've fixed a number of these. Those
> that remain are legitimate issues that also affect Linux builds and
> should be dealt with.
>
> There are a few things not yet integrated:
>
> * libbitcoin examples
> - haven't gotten to it
>
> * One line of code in libbitcoin::stealth_database::advise_kernel
> - deferred non-portable code because of ongoing work in that area
>
> * sx builds the lib and the wallet executable only
> - I verified all of the executables but deferred making projects for all
> 40 of the others.
>
> * libsodium is not linked
> - its optional but important to have
>
> Currently it is possible to build and link all of the projects, but I am
> linking four dependencies against NuGet packages that were build with
> the v110 compiler (VS2012 default). So the current status is proof of
> concept only.
>
> Dependencies must be built with either the v120 or compiler (default
> VS2013) of the CTP_Nov2013. The necessary boost v120 builds are
> published to NuGet, but none of the others are. I will eventually have
> all of the dependencies published to NuGet.
>
> Here's the current status of each dependency:
>
> libzmq, czmq, czmqpp
> --------------------
> I've created the necessary updates and pushed them into the zeromq repo.
> I just need to add NuGet packaging for each.
>
> ncurses (sx/wallet)
> --------------------
> I've forked pdcurses, created builds, packaged and pushed to NuGet.
> https://github.com/evoskuil/pdcurses
>
> libconfig (sx/wallet)
> --------------------
> I've created a repo/builds for libconfig, packaged and pushed to NuGet.
> https://github.com/evoskuil/libconfig
>
> boost
> --------------------
> The various binary dependencies are packaged on NuGet as v120. The
> source dependencies are published via NuGet as well.
>
> leveldb, crc32c, snappy
> --------------------
> These source dependencies are published via NuGet.
>
> libssh2, curl, openssl, zlib
> --------------------
> These have NuGet packaging for v100 and v110, but not yet v120. If these
> are not updated by the time I'm done with the others I'll repackage them
> for v120.
>
> libsodum
> --------------------
> Haven't done anything yet, but I'll incorporate a fork of:
> https://github.com/jedisct1/libsodium
>
> The project that I'm working on is shipping on Linux only, but I'm
> fairly adept in Windows and Visual Studio. I'm using this as an
> opportunity to learn the code base and expand the reach of this
> important project.
>
> e
>
>
>
> _______________________________________________
> Libbitcoin mailing list
> Libbitcoin@???
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/libbitcoin
>