After almost three months in the “restart” of the C ++ team, I would like to give an update on the team itself, which we have done and what we plan to do.
Team update
The so-called C ++ team is currently made up of Paweł by Bylica (@chfast), Greg Colvin (@gcolvin), Liana Husikyan (@lianahus), Dimitry Khokhlov (@winsvega), Yann Leleveau (@yann300), Bob Summerwill (@Bobsumdadwill) (@Chriseth) and (Kinlyd “Eris Industries) RJ (@ vor0220).
Paweł is the original author of the EVM-to-Time compiler based on LLVM, taken up in April and will continue to improve JIT.
Greg joined in February and has already reached substantial accelerated for the C ++ implementation of the Ethereum virtual machine, using its experience of implementing the Java virtual machine for its former Oracle employer.
Liana and Yann work on solidity and its ideas (yes, plural, see below!).
Dimitry is in charge of consensus tests and also works on the C ++ nucleus.
Bob joined in February (having been part of the community for longer) and currently leads the ambitious effort to unravel the C ++ code base. He was also a major contributor to the family property guide.
RJ joined Eris Industries in March and works on the Solidity compiler.
In addition, coordination and cooperation between C ++ and Go teams are at a level completely different from that before. One of the reasons why we improve the interpreter is to obtain a brand of water for the Go-Etage interpreter and the lessons learned during this process will directly feed the GO interpreter, to name just one example.
Remix announcement
Developing solidity itself and providing resources and tools for people who write smart contracts and DAPPs are one of the largest work areas for the C ++ team. Such an essential tool is a debugger for the solidity and the Ethereum virtual machine so that the developers can “look inside” the virtual machine and find the exact task of their code which does not do what they expect to what it does. Our IDE Mix is a wonderful software that provides exactly that. Unfortunately, most people do not use it and prefer browser Or just a few unit test tools.
This is understandable, people do not want to change writing (I guess that is also why we have obtained a large number of solidity plugins for existing FDI in recent months) or install additional software. In addition, the relative quantity of external contributions that we have received for the minimalist solidity of the IDE browser based on HTML5 + JS compared to the mixture based on C ++ / QT is just overwhelming.
Because of this and also in order to increase modularity, reusction and openness, we have decided to rethink the way we want to provide developer tools: with the Remix project We are going to create a set of reusable HTML5 + JS modules to develop and debug smart contracts.
This means that it will be possible to integrate a debugger for the EVM and the solidity in the solidity of the browser (which will also move in a more important place in the future), but also in the Visual Studio code, the atom, the sublime, essentially any IDE which is based on HTML5 + JS. You can even draw the debugger inside the mist, also for transactions in the past!
It is probably a little too early to try the remix, but if you wish, follow the instructions in the repository, but be sure to use the latest development version of CPP-Ethereum as a backend node.
For everyone: here is a screenshot of an early version of concept proof:
Other tasks
Regarding current accent for other projects, we improve the performance of the virtual machine. Greg has already made great progress in this area and still has a lot of ideas. We are currently creating general benchmarks, so that we can compare the performance of different implementations and the difference between performers and compilers just in time. We plan to put the compiler just in time available to other implementations such as Py-Ethereum and of course Go-Ethereum.
For solidity, the main areas of work are currently the types of fixed points, the structures within the framework of the ABI and the extension of the utility of libraries via “unlivable” functions and models. In addition, we would like to invite the community to write and publish useful libraries. A special thank you to Alex Bergszzzi (@Axic), Nick Johnson (@Arachnid) and Andreas Olofsson (@androlo) for taking an excellent start!
Finally, we want to reduce the pain that is currently caused when you work with the C ++ code base, especially due to external dependencies and intra-dependencies. We are already almost to the point where solidity can be compiled in isolation and the objective is to return to our old house, the Ethereum / CPP-Ethereum repository, to separate the parts only where it is logical, namely mix, solidity and evmjit.