Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: SFNUL  (Read 51669 times)

0 Members and 1 Guest are viewing this topic.

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 10815
    • View Profile
    • development blog
    • Email
Re: SFNUL
« Reply #15 on: December 22, 2013, 12:19:14 am »
Maybe someone needs to repeat it in plain text:

You can not build SFNUL with Visual Studio 2012! ;D

SFNUL uses C++11 features that are not supported by the compiler of Visual Studio 2012. If you want the library you need a compiler that supports more or at best all C++11 features. MinGW GCC 4.8.1 and above should work fine. Visual Studio 2013 might work, haven't managed to build it yet though.
« Last Edit: December 22, 2013, 12:21:07 am by eXpl0it3r »
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #16 on: December 22, 2013, 12:39:35 am »
Maybe someone needs to repeat it in plain text:

You can not build SFNUL with Visual Studio 2012! ;D

SFNUL uses C++11 features that are not supported by the compiler of Visual Studio 2012. If you want the library you need a compiler that supports more or at best all C++11 features. MinGW GCC 4.8.1 and above should work fine. Visual Studio 2013 might work, haven't managed to build it yet though.

Yeah i know. But i didnt know any other way to compile a library. So my question is how compile it, without using visual studio?

At the moment
Quote
You can not build SFNUL with Visual Studio 2012!
means for me i cant compile it because i have no knowledge of compiling without visual studio. So the question is how to compile it without visual studio?
« Last Edit: December 22, 2013, 12:43:36 am by TypeOverride »

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: SFNUL
« Reply #17 on: December 22, 2013, 02:08:16 am »
means for me i cant compile it because i have no knowledge of compiling without visual studio. So the question is how to compile it without visual studio?
Sorry if this sounds offensive, but that question makes no sense whatsoever. If you want to use any library with Visual Studio, you must have compiled it with Visual Studio (yes... there are other ways but that is beyond the scope of this discussion). Simply put: You can't make use of SFNUL unless you compile it with Visual Studio. So asking how to compile it without so you can use it with makes no sense.

But really, it isn't that hard to install Visual Studio 2013, even side-by-side with 2012. After all it is a Microsoft product that runs on any modern Windows. You can just blindly click through the installer with all defaults and it will work for 99.99% of your projects.

As already stated before, it is known that SFNUL doesn't compile with 2012 or earlier, and there can be no "fix" for this because the library is C++11 code. Rewriting it so it compiles in 2012 would mean removing almost everything in SFNUL, and that obviously makes little sense.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #18 on: December 22, 2013, 02:36:44 am »
I have a Visual Studio 2012 Professional and know i have to use the Express Edition .. hmmm not so nice.

But this is the only way. I have to port all my applications to the next level. Ive did this before and it is always a mess.
« Last Edit: December 22, 2013, 02:47:59 am by TypeOverride »

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: SFNUL
« Reply #19 on: December 22, 2013, 02:47:47 am »
Do you really think I support such a non-conforming compiler with money? Of course not, not when GCC and clang are available for free and are fully conforming. I only use the Express versions of Visual Studio to test compatibility when there is any doubt. They were always free and could do almost everything you could possibly need in a non-professional environment.

And for those who wonder, I only make use of the compiler, not the IDE. So it is cl vs g++ vs clang++. cl loses in everything hands down.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #20 on: December 22, 2013, 02:51:15 am »
Do you really think I support such a non-conforming compiler with money? Of course not, not when GCC and clang are available for free and are fully conforming. I only use the Express versions of Visual Studio to test compatibility when there is any doubt. They were always free and could do almost everything you could possibly need in a non-professional environment.

And for those who wonder, I only make use of the compiler, not the IDE. So it is cl vs g++ vs clang++. cl loses in everything hands down.

Ok. I feel alot of anger against microsoft i think. But its ok. I hate their attitude too. So much nice technology they have but always bound on their systems.

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #21 on: December 22, 2013, 03:00:06 am »
Ive do this:

Install Git.
Install CMake.

Git:
make a folder for the project on C for example -> C:\SFNUL (RightMouse on folder -> Git Bash)
$ git clone https://github.com/binary1248/SFNUL.git

for C:\SFNUL\SFNUL (RightMouse on folder -> Git Bash)
$ git submodule update --init --recursive

CMake with Visual Studio 2013 config:
Where is the source code: C:/SFNUL/SFNUL
Where to build the binaries: C:/SFNUL/SFNUL

But its not working for Visual Studio 2013. Platform Toolset is v120 (latest) under Visual Studio 2013.

Error   2   error C2610: 'sfn::Thread::Thread(sfn::Thread &&)' : is not a special member function which can be defaulted   C:\SFNUL\Concurrency.hpp   28   1   sfnul


I know now from you that C++11 compiler standard maybe not be 100% in Visual Studio with the native compiler. But i dont want a different one because different compiler means different problems i think.

I only have to change the = default C++11 for autogenerate the constructor. Not a big change, but makes it run under the latest Visual Studio native Compiler.

So i think the only way is for me to downgrade the library to a standard that can Visual Studio Toolset v120 (latest compiler) read.

You've said
As already stated before, it is known that SFNUL doesn't compile with 2012 or earlier, and there can be no "fix" for this because the library is C++11 code. Rewriting it so it compiles in 2012 would mean removing almost everything in SFNUL, and that obviously makes little sense.

I dont know if i understand. You say you have to rewrite all of the code for VS2012 that it runs under the native compiler Toolset v110, because the library uses C++11 code. v110 in VS2012 is C++11 too. Perhaps not has all features of it. 

I see too there are a lot of dependencies like boost too -> # include <boost/array.hpp> or <boost/weak_ptr.hpp> <boost/shared_ptr.hpp> which are not included in the project. Most people like me dont like boost because of the overhead you get of using parts of boost.

At the moment i see only the = default (C++11) only as problem for VS2012 or VS2013. But i will see more when i removed the all boost dependencies from the project.

I think C+11 standard has shared pointer and other things so you can ignore boost. So boost is not necessary so heavy to use. A lot of things in C++11 comes from boost. So boost is not necessary anymore for the most cases.

So i can use std::shared_ptr instead of <boost/shared_ptr.hpp>.

I see that the boost depencency comes from ASIO and they have a newer build that works without Boost and fully with C++11 features called Asio Standalone: http://think-async.com/Asio/AsioStandalone

It would be great if the awesome binary1248 update his library to the latest version to run it without boost.
« Last Edit: December 23, 2013, 03:15:19 pm by TypeOverride »

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 10815
    • View Profile
    • development blog
    • Email
Re: SFNUL
« Reply #22 on: December 22, 2013, 11:50:54 pm »
Ok. I feel alot of anger against microsoft i think. But its ok. I hate their attitude too. So much nice technology they have but always bound on their systems.
This has nothing to do with anger, the only think you might read from in between the lines is frustration. It's a fact that Microsoft didn't really try to catch up with the latest standard (C++11) and unfortunately they can just do that, since Microsoft made many companies and private developers depend on VS, that way they don't have to fear any drop in user count/sales.
They were visionary with VS 2010, because that version had already a few features (e.g. smart pointers) before the new standard was finalized, but with VS 2012 they barely even tried to catch up and even with VS 2013 they rather started to implement C++14 features instead of pushing out a fully C++11 conformant compiler.
The other fact is, that VS costs a ton of money if you don't want the Express version.

On the other side, you have the two open source compilers GCC, which essentially has everything implemented for month, and Clang, which - now hold your breath - is already C++14 feature complete!

So the frustration is really not just based on nothing - you really have to think about, how a company as big as Microsoft is and the money they have, doesn't manage to push out a properly working compiler in time. And not to forget people actually pay a lot for such unfinished work.

Error   2       error C2610: 'sfn::Thread::Thread(sfn::Thread &&)' : is not a special member function which can be defaulted    C:\SFNUL\Concurrency.hpp        28      1       sfnul
Although this should've been fixed with the VS 2013 November CTP it seems like the toolchain is still bugged.
If you want to make it work, you can change stuff around on your own. The official source however won't get changed due to some compiler no conforming to the standard.

I dont know if i understand. You say you have to rewrite all of the code for VS2012 that it runs under the native compiler Toolset v110, because the library uses C++11 code. v110 in VS2012 is C++11 too. Perhaps not has all features of it.
Visual Studio 2012 only supports some of the features C++11 defines in the standard. SFNUL however makes use of features that are not implemented for VS 2012. So regardless whether VS 2012 supports some features, it's still not a fully conforming C++11 compiler and it can't compile SFNUL ever - not with some simple tweak, not with some ugly hack, not with ..., it just won't compile with VS 2012 and you should deal with that.

I see too there are a lot of dependencies like boost too -> # include <boost/array.hpp> or <boost/weak_ptr.hpp> <boost/shared_ptr.hpp> which are not included in the project. Most people like me dont like boost because of the overhead you get of using parts of boost.

I see that the boost depencency comes from ASIO and they have a newer build that works without Boost and fully with C++11 features called Asio Standalone: http://think-async.com/Asio/AsioStandalone

It would be great if the awesome binary1248 update his library to the latest version to run it without boost.
No idea what you're looking at, but SFNUL is already based on a standalone version of ASIO, boost is not required.

Summary
  • You can't use SFNUL with VS 2012.
  • You might be able to use SFNUL with VS 2013, by applying your own modifications.
  • What you really want, is to move away from VS and start using standard conforming compilers.
  • This library is for advanced developers, you should know your tool chains good and should understand basic concepts of library comparability.
« Last Edit: December 22, 2013, 11:55:11 pm by eXpl0it3r »
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6286
  • Thor Developer
    • View Profile
    • Bromeon
Re: SFNUL
« Reply #23 on: December 23, 2013, 12:43:13 am »
Of course it's frustrating that Microsoft is lacking behind, but simply saying "I don't care about VS" while a significant part of people use it is too narrow-minded. Saying "know your tool chains and just use gcc/clang" is even more so, considering that there can be other reasons to choose one product over another, and a small part of people may even be bound to a specific IDE at work.

In my opinion, a library developer should at least try to support the most recent versions of all major compilers. Visual Studio 2013 has made a big step forward compared to 2012 concerning C++11 support, so the porting effort should be kept in reasonable bounds. That's just my point of view and the attitude I used while developing Thor -- and it's not a sole problem of VS, even if people like bashing Microsoft. I had to implement several workarounds for g++ and clang over time, for example I rewrote a significant part of TR1 random functionality, and I could not use lambda expressions in specific situation on clang because of a compiler bug.
Zloxx II: action platformer
Thor Library: particle systems, animations, dot products, ...
SFML Game Development:

FRex

  • Hero Member
  • *****
  • Posts: 1845
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: SFNUL
« Reply #24 on: December 23, 2013, 02:01:20 am »
In 10(and possibly in next ones but that I don't know) c++ is labelled as 'Visual C++' so I don't know what you guys want, it's just a terribly unfortunate syntax and name coincidence. :P You thought you were buying an ISO c++ compiler or something? ::)

Seriously now:

Quote
simply saying "I don't care about VS" while a significant part of people use it is too narrow-minded
He didn't say exactly that originally, this suggests 2013 will work:
Quote
This already rules out Visual Studio 2012 and earlier, so if you haven't hopped on the Visual Studio 2013 train, well this could be another reason to consider if you want to try SFNUL.

Also you(or one of the very very numerous, as you point out, VS users) are free to port it back to Visual 2012 and 2010.

Quote
people like bashing Microsoft
The f**king idiocy I often run into online about GL, c++ and Linux(thanks to DX, C#/Java and Windows/Mac OS X respectively)  is unbelievable compared to this 100% technically sound 'bashing' of Microsoft about Visual. Also don't make them sounds like innocent victim that can't keep up with their work. It's a company that earns and deals in BILLIONS. It should NOT have its products(VS + MFC) compare unfavourably with gratis, cross platform, FOSS ones like GCC, Clang, GTKmm, Qt and own ones for competing C#(.NET, WPF).
« Last Edit: December 23, 2013, 02:05:45 am by FRex »
Back to C++ gamedev with SFML in May 2023

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: SFNUL
« Reply #25 on: December 23, 2013, 02:19:27 am »
It's not really about Microsoft bashing... it's about their attitude towards their users and their policies on choosing which features to prioritize over others.

Implementing C++14 features before even making sure that all C++11 core language features are done and work sounds to me like some evil lobby doing their work behind the scenes. I always thought that they prioritized some C++14 features over C++11 features because they were much simpler to implement and thus would mean pushing out more new features instead of making everybody wait for a certain highly complex to implement feature of C++11. Looking at the list of stuff they already implemented for C++14 (which isn't even a finalized standard yet) and even proposed C++17 feature(s) I can't help but ask myself: Were those features really much easier to implement than the missing C++11 features? It seems to me like it is just an excuse they thought of to hide the opaque decision making of their management that obviously have certain interests in mind (certainly not standards conformance).

If nobody knew yet, I'm not a fan of using IDE features too excessively. Most of the work I do is through various text editors, and the only time I might actually use an IDE is either during testing or a heavy debugging phase. As such, my opinion might be skewed regarding Visual Studio, as I compare it to other toolchains at a compiler level, and quite frankly, it isn't even fair to compare them because the VC compiler has no apparent advantages over the others that make it worthwhile using outside of the IDE.

Don't get me wrong, the people that we see in public, the "faces of Visual Studio", like Sutter, Lavavej and Brewis are all nice guys. The problem is that they are not the ones making the decisions, those are higher up in management and we will never be able to see them.

For me Visual Studio development is on the outside like a headless chicken, you have no idea where it is going and even if you did know, you wouldn't understand why certain decisions were made. Producing a C++ compiler without standards conformance in mind goes against all my philosophies and is the total opposite of what GCC and LLVM are showing. We know Microsoft earns money off Visual Studio, and if doing what they do makes them more money than doing something else, then so be it. They sure aren't doing the language a favour, just themselves.

As for SFNUL, I am aware that it doesn't build because of that compiler bug, and that is the point. It is a bug, and unless enough people care about it and make noise do you think it will get high priority? Microsoft have already shown how well they prioritize development of the compiler. And my guess is that this bug won't get taken care of as fast as others because it is not something many people even are aware of, considering it is one of the new features of C++11 and we know how many programmers make full use of it already...

You have to look at it like this: Every time Visual Studio (or any proprietary software) has an advantage over GCC (or any other open source software) they tend to sway people over into using the proprietary product just because of those advantages. The better product wins because in this case there wasn't any "pulling force" from the open source software. It is open source, free, use if you want, so they aren't hurt if people stop using it. On the other hand, if the open source software had an advantage, or as in this case isn't bugged in some way, naturally people would flock towards it, if it wasn't for the pulling force from the people making the proprietary software. In this case, it actually does hurt if they lose customers, so they try to make it as painless as possible to use their deficient product although the opposite side has the objectively better product. This "making as painless as possible" can have many manifestations, from the obvious "we'll give you 50% off" to the not so obvious "here are some other features that the other side doesn't have but you might not need". I even go so far as to say that the community influences people into working around obvious deficiencies on their own just so they benefit from the win-win situation.

Honestly, if Visual Studio were able to build ELF binaries and support more features than either GCC or LLVM, I would have no problem using it. I am purely opportunistic, you have to convince me of the real advantages that it would have, and not some marketing ploy.

Put simply: I am just being fair towards the open source community. Every compiler has its advantages and disadvantages, and only implementing workarounds for a specific compiler that doesn't even contribute back to the community isn't fair if you ask me.

Would it be painful for Visual Studio users if every library adopted this way of thinking? Yeah, it sure would. But that is a good thing, because there would be real competition, and Microsoft wouldn't be able to afford treating their customers like suckers any more. There would be progress. And that would be good for everyone and the language itself independent of compiler.

I am a person driven by morals. And this is one of the times when I have to say: Not with me. SFNUL is a very young library, with barely any userbase one could speak of. As such I am not breaking it for existing long time users (SFGUI implemented workarounds... yes) because there are none. And if anybody is wondering, I am not going to pollute SFNUL code with workaround after workaround just to grow the userbase. Standards exist for a reason, and if you use non-standard tools/OS/whatever, then it is your responsibility to make it work for yourself. Besides, as I already said above, SFNUL is aimed at the more advanced developers who are just looking for a way to make themselves more productive. You can see this as an unintended "entry exam" if you want.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #26 on: December 23, 2013, 02:14:11 pm »
Quote from: eXpl0it3r
No idea what you're looking at, but SFNUL is already based on a standalone version of ASIO, boost is not required.

but with
Git:
make a folder for the project on C for example -> C:\SFNUL (RightMouse on folder -> Git Bash)
$ git clone https://github.com/binary1248/SFNUL.git

for C:\SFNUL\SFNUL (RightMouse on folder -> Git Bash)
$ git submodule update --init --recursive

he downloads a Asio Version with Boost. Perhaps i do something wrong, but i get a version with a few Boost
references.

Quote from: Nexus
but simply saying "I don't care about VS" while a significant part of people use it is too narrow-minded.
I understand him when he says that he dont want to support from state of the art old compilers. I hate
non-state-of-the-art things too. I dont realized it that microsoft's compiler are not comform to the latest
standard. But avoid Visual Studio is surely bad for the distribution of the product.

And using a new compiler for my whole project for example, brings new problems for sure. I drive good with
the native Visual Studio compiler and would rather change this library instead of changing my whole application to
a new compiler.

Quote from: Nexus
so the porting effort should be kept in reasonable bounds
I think too. There will not much to change.

Im a little bit sad about this. The library seems to be very awesome, like the developer of it.
At the moment its there are a lot of problems for me to implement it in my visual studio 2012 project (at the moment i try to get it run under visual studio 2013, to see where are the big difference of the state-of-the-art compiler and the latest native visual studio compiler),
but i hope it will be a matter of time until i get it run.

But the two task are standing in the room for me:

A) Making it working under Visual Studio 2013 native compiler(better for me would be Visual Studio 2012)
B) Removing all the Boost-Relations from ASIO (Or to figure out why he downloads not the standalone version)


Quote from: Nexus
Standards exist for a reason, and if you use non-standard tools/OS/whatever, then it is your responsibility to make it work for yourself.

But for the most the standard is microsoft. You are a minority to avoid it. I fully understand you, its your decession, its your library. But you exclude people that are not willing to make a lot of research and a lot of effort to get your library working.

Im bound on Visual Studio. Visual Studio is making all for me. I dont want to know more low-level compiling and other things around advanced compiling. I dont want to get more advanced in building my projects.

But i have huge interest of implement it. So i have to make workarounds. I think the most people who wants to use it, have to make workarounds.

And there i am and i have the another problem i have to solve, for that i need help from you.
I hope you can help me.


You've said that you use the Standalone Version of ASIO. But Git donwloads automaticly a version with Boost-references. What do i wrong?

Git:
make a folder for the project on C for example -> C:\SFNUL (RightMouse on folder -> Git Bash)
$ git clone https://github.com/binary1248/SFNUL.git

for C:\SFNUL\SFNUL (RightMouse on folder -> Git Bash)
$ git submodule init
$ git submodule update
« Last Edit: December 23, 2013, 03:15:41 pm by TypeOverride »

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: SFNUL
« Reply #27 on: December 23, 2013, 02:37:32 pm »
but with
Git:
make a folder for the project on C for example -> C:\SFNUL (RightMouse on folder -> Git Bash)
$ git clone https://github.com/binary1248/SFNUL.git

for C:\SFNUL\SFNUL (RightMouse on folder -> Git Bash)
$ git submodule init
$ git submodule update

he downloads a Asio Version with Boost. Perhaps i do something wrong, but i get a version with a few Boost
references.
As stated in the README, git submodule update --init --recursive (which is what those 2 commands do, except recursive as well) pulls in all the required submodules. The maintainer of ASIO made it so that it interacts with boost, yes. But he also provided the possibility to use it without boost if you have a C++11 compiler, which is why the non-boost version is also known as the c++11 version. Sure, there will be references to boost in the files, but they are disabled with the defines that SFNUL defines for you.

At the moment its there are a lot of problems for me to implement it in my visual studio 2012 project,
but i hope it will be a matter of time until i get it run.
Let me guess... the other libraries you use are either precompiled for Visual Studio 2012 by rocket-scientist-grade developers, or simply don't work on other compilers because of broken non-portable code... Either way, this is exactly what I referred to in my long post above. If you want to rely on libraries that you can't port to another compiler whenever you wish, that is your choice. I am not going to backport SFNUL because of that, as it doesn't fit my philosophy. All the libraries I use are first of all cross-platform, and second of all, self-compiled so I know I can choose whatever compiler I want to use instead of letting libraries dictate that for me.

A) Making it working under Visual Studio 2013 native compiler(better for me would be Visual Studio 2012)
Writing a workaround for Visual Studio 2013 is simple if you understand why the error occurs. Less than 10 lines of extra code. Visual Studio 2012... good luck, you will need it.

B) Removing all the Boost-Relations from ASIO (Or to figure out why he downloads not the standalone version)
You really want to remove every single occurrence of the term "boost" from the asio code? As I already said, they do absolutely nothing with the provided defines, so removing them just so you feel better is a waste of time at best and might even break asio if you mess up somewhere. Don't touch the extlib code.

@binary1248
I will read it soon. A lot of text.
Must be the first time I've seen someone admitting they posted without reading prior posts. It is long yes, and maybe not all relevant to you, but really, in the time you took to write your post, you could have read it 3 times over.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #28 on: December 23, 2013, 03:01:48 pm »
Git Bash:

for F:\GIT\PROJECTS\SNUFL (RM -> Git Bash)
$ git clone https://github.com/binary1248/SFNUL.git

for F:\GIT\PROJECTS\SNUFL\SFNUL (RM -> Git Bash)
$ git submodule update --init --recursive

This is the whole command. I have not much experience in Git. And had to to much research to get it working.
Now its easier yes.

"--init" and "--recursive" are the parameters?

---
Quote from: binary1248
Let me guess... the other libraries you use are either precompiled for Visual Studio 2012 by rocket-scientist-grade developers, or simply don't work on other compilers because of broken non-portable code
Is this a joke, that i dont understand? Sry im not a native english speaker. rocket-scientiest-grade developers i dont understand. My application depends on a lot
of submodules. The most written by me but there are two other good libraries i use. I study a little bit them. I can refactor every library, but this is not good, when newer versions come out of the libraries.
I have to make the changes again and again. Same with your library. But its better with one library, then making all the changes to 20 libraries, maybe.

I dont precompile libraries. I bind it directly in my solution, because maybe i make changes in that library. But then i talk to the developer most and ask him for making these changes i made for me in his library nativly.
But only if he wants it and he likes the new changes.

Quote from: binary1248
Writing a workaround for Visual Studio 2013 is simple

i will try it first. Than i give Visual Studio 2012 a chance.

Quote from: binary1248
You really want to remove every single occurrence of the term "boost" from the asio code?

No no, you told me that i initalized the git download wrong. I make a new try today to get the ASIO standalone version with your library.
Edit: I see i got it already and the library has cases for the C+11 standard.

Quote from: binary1248
Must be the first time I've seen someone admitting they posted without reading prior posts.

Ive readed it and updated the text. I thought you wouldnt read so fast my post.



Edit:
Quote
#if defined(ASIO_HAS_STD_ARRAY)
# include <array>
#else // defined(ASIO_HAS_STD_ARRAY)
# include <boost/array.hpp>
#endif // defined(ASIO_HAS_STD_ARRAY)

he chooses boost again.... (but its the ASIO library. So i have to see where the problem is why ASIO wants to use boost because http://www.cplusplus.com/reference/array/array/ should be there with Visual Studio 2013. Or not?)

Only for the completness , ive downloaded the project now in this way:
for C:\SFNUL
$ git clone https://github.com/binary1248/SFNUL.git

for C:\SFNUL\SFNUL
$ git submodule update --init --recursive

Edit2:
Dont missunderstand me. Im very thankfull for your help. I learn every day new things!

Edit3:
Ok i see i has to set ASIO_HAS_STD_ARRAY for getting the support, i think!
Visual Studio: properties -> c/C++ > Preprocessor -> Preprocessor Definitions ->
ASIO_HAS_STD_ARRAY
ASIO_HAS_STD_ADDRESSOF
ASIO_HAS_STD_SHARED_PTR
ASIO_HAS_VARIADIC_TEMPLATES
« Last Edit: December 23, 2013, 03:52:46 pm by TypeOverride »

TypeOverride

  • Newbie
  • *
  • Posts: 14
    • View Profile
    • Email
Re: SFNUL
« Reply #29 on: February 22, 2014, 12:08:07 am »
    I can not believe that such a briliant piece of code is not buildable in windows. I dont want to believe it.

Of course it's frustrating that Microsoft is lacking behind, but simply saying "I don't care about VS" while a significant part of people use it is too narrow-minded. Saying "know your tool chains and just use gcc/clang" is even more so, considering that there can be other reasons to choose one product over another, and a small part of people may even be bound to a specific IDE at work.

In my opinion, a library developer should at least try to support the most recent versions of all major compilers. Visual Studio 2013 has made a big step forward compared to 2012 concerning C++11 support, so the porting effort should be kept in reasonable bounds. That's just my point of view and the attitude I used while developing Thor -- and it's not a sole problem of VS, even if people like bashing Microsoft. I had to implement several workarounds for g++ and clang over time, for example I rewrote a significant part of TR1 random functionality, and I could not use lambda expressions in specific situation on clang because of a compiler bug.

Its a shame :( .  binary1248 is very resolut.

Current state:

BOTAN_DLL is marked red and causing an error. First of the 19497 errors is:

Error   1   error C3861: 'visibility': identifier not found   C:\SFNUL\extlibs\botan\include\botan\assert.h   18   1   sfnul

Edit:
First i recognize that "Replaced TropicSSL by Botan (20 days ago)".

Notice:
Versions 1.11.0 and later require a mostly-compliant C++11 compiler such as Clang 3.1 or GCC 4.7.

Thoughts: Perhaps first try the 1.10.0 to get to the goal !?

Edit:
-Botan compiling-
1) Download Pyhton >2.6 (http://www.python.org/downloads/)
2) open dos-prompt (shell)
3) <C:\SFNUL\extlibs\botan>c:\Python27\Python configure.py --cc=msvc

Than there is a "Makefile"-file now. (i see too there is a build.h file now that defines the BOTAN_DLL).
It getting better.

Thoughts: I think i have to go with "nmake" of Windows now to get a VisualStudio project !?

4) <C:\SFNUL\extlibs\botan>C:\"Program Files (x86)"\"Microsoft Visual Studio 12.0"\VC\bin\nmake

writing ERROR:
NMAKE : fatal error U1077: 'cl' return code '0x1' [/list]

next try --- goto 3)
3) <C:\SFNUL\extlibs\botan>c:\Python27\Python configure.py --cpu="i386"

4) <C:\SFNUL\extlibs\botan>C:\"Program Files (x86)"\"Microsoft Visual Studio 12.0"\VC\bin\nmake

writing ERROR:
makefile(1408) : fatal error U1001: syntax error : illegal character '.' in macro

Thoughts: Perhaps try to use "mingw" !?
Or going back to the Introduction -> - make install (as root) !?!? ->nmake ? but there is no makefile in the root. What is the CMake's module directory !? Im stuck.
« Last Edit: February 23, 2014, 12:55:21 am by TypeOverride »