apoch / epoch-language

Home of the Epoch Programming Language Project
Other
72 stars 3 forks source link

Patch to enable epoch-language to build against Visual Studio 2010 #100

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
This will enable the current source as of r203 to build against visual studio 
2010.

Original issue reported on code.google.com by ryoohki@gmail.com on 5 Feb 2012 at 8:44

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
This is against revision rfe570a8e5c0b3da3a0f10e413cb2064410f013d6:

This patch makes several changes that will allow epoch to be built against 
visual studio 2010. These changes should not affect visual studio 2005 or 2008 
adversely.

The changes are as follows:
EpochCompiler/pch.h:
    Add #pragma warning(disable : 4503). This is to disable the warnings about the truncation of decorated names. This was primarily being caused by std::vectors using OneWayAlloc allocators. Decorated names cannot exceed 1024 characters in length. An example of one such decorated name is: (Memory::OneWayAlloc<boost::variant<AST::Undefined,AST::Deferred<AST::Structure,boost::intrusive_ptr<AST::Structure> >,AST::Deferred<boost::variant<AST::Undefined,boost::variant<AST::Undefined,AST::Deferred<AST::Entity,boost::intrusive_ptr<AST::Entity> >,AST::Deferred<AST::PostfixEntity,boost::intrusive_ptr<AST::PostfixEntity> >,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>,AST::Deferred<AST::Assignment,boost::intrusive_ptr<AST::Assignment> >,boost::variant<AST::Undefined,AST::Deferred<AST::PreOperatorStatement,boost::intrusive_ptr<AST::PreOperatorState _Al)

EpochLibrary/Library Functionality/Function Tags/Constructors.cpp
    Changed the registration method to take the address of the helper function to fix ambiguity error.

EpochLibrary/Library Functionality/Function Tags/Externals.cpp
    Changed the registration method to take the address of the helper function to fix ambiguity error.

EpochVM/Virtual Machine/Marshaling.cpp
    Removed reference to std::stack internals for InvokedFunctionStack, changed to use .at method of std::deque.

EpochVM/Virtual Machine/VirtualMachine.cpp
    Changed InvokedFunctionStack to use deque methods push_back instead of push, pop_back instead of pop, and back instead of top.
    Changed GlobalFunctions insertion to use address of FunctionInvocationHelper to fix ambiguity error.

EpochVM/Virtual Machine/VirtualMachine.h
    Changed InvokedFunctionStack to deque

Shared/Utility/Files/Files.cpp
    Added iterator header include, as that's where istream_iterator is defined.

Shared/Utility/Memory/OneWayAllocator.h
    Removed explicits on constructors. This is necessary due to vector (and other containers) propensity to create copies of the allocator in ways that cause errors with explicit.

Original comment by ryoohki@gmail.com on 6 Feb 2012 at 9:23

Attachments:

GoogleCodeExporter commented 9 years ago
Patch merged and committed - thanks!

Original comment by don.ap...@gmail.com on 7 Feb 2012 at 5:15