This repository has been archived by the owner. It is now read-only.

Consolidation of git repos (post Homestead) #251

Closed
bobsummerwill opened this Issue Feb 22, 2016 · 6 comments

Comments

Projects
None yet
2 participants
@bobsummerwill
Contributor

bobsummerwill commented Feb 22, 2016

Following on from #250, post-Homestead I would like to propose that we consolidate our actual repositories as well.

That will be work, which has a disruptive cost, but should reduce our ongoing maintenance costs, make refactoring easier (because they will no longer span multiple repos), and make it easier for new contributors to get involved.

Possible boundaries (to be discussed and refined here):

  • cpp-ethereum (consolidation of webthree-helpers, libweb3core, webthree, libethereum and alethzero repositories, optionally depends on evmjit). Some decoupling of solidity will be required for that to be feasible.
  • solidity (depends on cpp-ethereum)
  • mix (depends on cpp-ethereum and solidity)
  • evmjit (hopefully depends on nothing)

See http://doublethinkco.github.io/cpp-ethereum-cross/images/target_dependency_graph.svg

@chriseth

This comment has been minimized.

Show comment
Hide comment
@chriseth

chriseth Feb 24, 2016

Contributor

The most complicated thing to do here is that we need a build system that can be run from e.g. the solidity repository and also configure cpp-ethereum correctly. If we have that, we can actually move the code.

Contributor

chriseth commented Feb 24, 2016

The most complicated thing to do here is that we need a build system that can be run from e.g. the solidity repository and also configure cpp-ethereum correctly. If we have that, we can actually move the code.

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Feb 24, 2016

Contributor

Yes. And I think those build-system improvements likely fall on me (which is fine).

Also, some solidity <-> cpp-ethereum dependency cleanup required.

So @chriseth Looking back through the solidity repo history, I think that earlier versions of that repo DID NOT depend on libethereum. Is that true?

Contributor

bobsummerwill commented Feb 24, 2016

Yes. And I think those build-system improvements likely fall on me (which is fine).

Also, some solidity <-> cpp-ethereum dependency cleanup required.

So @chriseth Looking back through the solidity repo history, I think that earlier versions of that repo DID NOT depend on libethereum. Is that true?

@chriseth

This comment has been minimized.

Show comment
Hide comment
@chriseth

chriseth Feb 24, 2016

Contributor

Solidity and the EVM both have a dependency on the instruction set and the gas cost for the instructions. But I think it is fine to copy those, something similar was done for evmjit.
For testing, we can probably remove a link-dependency once we have some way to start the backend node in "testing mode", i.e. both hash verification and timestamp dependency removed. This testing mode is also important for mix.

Contributor

chriseth commented Feb 24, 2016

Solidity and the EVM both have a dependency on the instruction set and the gas cost for the instructions. But I think it is fine to copy those, something similar was done for evmjit.
For testing, we can probably remove a link-dependency once we have some way to start the backend node in "testing mode", i.e. both hash verification and timestamp dependency removed. This testing mode is also important for mix.

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Feb 24, 2016

Contributor

"But I think it is fine to copy those, something similar was done for evmjit."

Right. Those costs are already going to be redundantly specified across every single EVM implementation anyway, aren't they, and will change very rarely.

"For testing, we can probably remove a link-dependency once we have some way to start the backend node in "testing mode"

Please could you explain to me exactly how the tests depend on the runtime? Are we actually running the EVM, and then exporting JSON from its state? And then that is the data for future regression tests? (across all clients).

Contributor

bobsummerwill commented Feb 24, 2016

"But I think it is fine to copy those, something similar was done for evmjit."

Right. Those costs are already going to be redundantly specified across every single EVM implementation anyway, aren't they, and will change very rarely.

"For testing, we can probably remove a link-dependency once we have some way to start the backend node in "testing mode"

Please could you explain to me exactly how the tests depend on the runtime? Are we actually running the EVM, and then exporting JSON from its state? And then that is the data for future regression tests? (across all clients).

@chriseth

This comment has been minimized.

Show comment
Hide comment
@chriseth

chriseth Feb 24, 2016

Contributor

Yes, a lot of the tests just have solidity code, compile and deploy it, then call functions on the code and see that the contract behaves as written in the source. The plan is to perform these via rpc.
Just created an issue for eth to support that: #260

Contributor

chriseth commented Feb 24, 2016

Yes, a lot of the tests just have solidity code, compile and deploy it, then call functions on the code and see that the contract behaves as written in the source. The plan is to perform these via rpc.
Just created an issue for eth to support that: #260

@bobsummerwill bobsummerwill changed the title from Proposal - Consolidation of git repos (post Homestead) to Consolidation of git repos (post Homestead) Feb 24, 2016

@bobsummerwill bobsummerwill added this to the bieti milestone Mar 8, 2016

@chriseth chriseth modified the milestones: colocolo, bieti Mar 14, 2016

@bobsummerwill bobsummerwill modified the milestones: domesticus, colocolo Apr 11, 2016

@chriseth chriseth modified the milestones: Backlog, domesticus Apr 11, 2016

@bobsummerwill bobsummerwill added in progress and removed planned labels May 9, 2016

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Aug 25, 2016

Contributor

Done.

Contributor

bobsummerwill commented Aug 25, 2016

Done.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.