Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate the dependence on certain boost modules that require linking. #216

Closed
vinniefalco opened this issue Dec 1, 2013 · 7 comments
Closed

Comments

@vinniefalco
Copy link
Contributor

rippled relies on a small number of boost modules that are not header-only, and require linking against a library. They are:

boost_date_time
boost_filesystem
boost_program_options
boost_regex
boost_system
boost_thread
boost_random

We need to change the rippled code to eliminate the use of these modules one by one. There are simple alternatives for all of them, someone just needs to do the work (one module at a time).

A benefit of not requiring linking is that it will no longer be necessary to build boost (running bjam) but the bigger benefit is that we can insert the entire boost distribution directly in the rippled repository, so that everyone will be using the same version and there will be no hassle of install or configuration issues for boost.

@ghost ghost assigned Wolfgang-Spraul Dec 2, 2013
@Wolfgang-Spraul
Copy link
Contributor

Vinnie confirmed that adding C++11 dependencies carefully is OK. Testing is currently done only with 'npm test' - not sure whether this is enough.

boost_random: Was able to remove the dependency and everything still built and ran. https://github.com/Wolfgang-Spraul/rippled/commit/780b65f6556065deb9f452a440205402c03c9f21

boost_date_time: Couldn't find dependency in ripple_app_pt3.o yet.

@vinniefalco
Copy link
Contributor Author

Wow!!! How did you remove this dependency? By changing it to use std::random? Just an FYI...I believe Visual Studio 2012 implementation of has bugs. I'm not entirely sure.

@MarkusTeufelberger
Copy link
Collaborator

Yeah, please be VERY careful with modifying anything in regards to randomness, make sure you don't accidentially create a "Debian style" disaster! ;-)

@vinniefalco
Copy link
Contributor Author

What a surprise...we didn't even need the library! That's great news. I will be integrating this soon.

@Wolfgang-Spraul
Copy link
Contributor

Yes true. And also saw the earlier poster about being careful with random - definitely! Very careful! I am really sorry about my slowness, too many daytime tasks. Issue 216 is totally great for me as it allows me to read through the rippled sources in a productive way. I will definitely continue, hopefully more things to come in the future.

@vinniefalco
Copy link
Contributor Author

Merged.

@rec
Copy link
Contributor

rec commented Aug 10, 2015

We can't fix this - we're hooked on boost::coroutine now, there's no replacement, and it looks as if none of the other boost libraries are easily removable.

Sorry!

@rec rec closed this as completed Aug 10, 2015
rec pushed a commit to rec/rippled that referenced this issue Sep 9, 2015
mvadari pushed a commit to mvadari/rippled that referenced this issue Nov 5, 2024
* Refactor Testcases (XRPLF#216)

* remove unused function

* add offer id tests

* add escrow id tests

* clang-format

* fix offer

* fix escrow

* fix offer test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants