:: Re: [Libbitcoin] Visual Studio Buil…
Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Amir Taaki
Ημερομηνία:  
Προς: libbitcoin
Αντικείμενο: Re: [Libbitcoin] Visual Studio Builds
OK, well I guess if it works with VC++ and gcc then we can let this slide
I guess. Especially if they'll be in C++14 anyway.

> 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
>>
>
>
>