Skip to content

Making rootsimcc actually work - #4

Open
Piccions wants to merge 2 commits into
developfrom
cplus
Open

Making rootsimcc actually work#4
Piccions wants to merge 2 commits into
developfrom
cplus

Conversation

@Piccions

Copy link
Copy Markdown
Contributor

A lot of stuff has been removed to make things work. Major changes:

  • setup a git submodule for the ROOT-Sim core library
  • our custom compiler is now written in a very simple C++ style
  • handmade vectors and dynamic strings removed
  • the basic llvm plugin that does function copy and substitution
    works with llvm 14, with both the legacy pass manager and the new one
  • CMake magic is now in place to be able to contextually build the core
    library and install it together with the compiler, the rootsimcc
    library and the llvm plugins

This thing incredibly works with a phold model.
TODO: make things ACTUALLY work

A lot of stuff has been removed to make things work. Major changes:
- setup a git submodule for the ROOT-Sim core library
- our custom compiler is now written in a very simple C++ style
- handmade vectors and dynamic strings removed
- the basic llvm plugin that does function copy and substitution
  works with llvm 14, with both the legacy pass manager and the new one
- CMake magic is now in place to be able to contextually build the core
  library and install it together with the compiler, the rootsimcc
  library and the llvm plugins

This thing incredibly works with a phold model.
TODO: make things ACTUALLY work

Criticism and suggestions are always welcome!

Signed-off-by: Andrea Piccione <piccione@diag.uniroma1.it>
@Piccions

Copy link
Copy Markdown
Contributor Author

Main things TODO (I'm forgetting something for sure):

  • add all ROOT-Sim APIs to the list of ignored and/or replaced symbol to substitute in the LLVM wrap plugin
  • code cleanup
  • REUSE compliance
  • tests, tests, tests

This was linked to issues Jul 27, 2022
We are concentrating the release actions in a single monorepo that
gathers together all the different projects.
For this to work, we need different unique target names across the
projects. This is already (mostly) true, except for the documentation
target. This commit prepends the name of the repo to the doc target,
for simplicity of management in the monorepo.

Signed-off-by: Alessandro Pellegrini <a.pellegrini@ing.uniroma2.it>
@alessandropellegrini

Copy link
Copy Markdown
Member

We should revamp this PR. It is functional to the release work that I am currently doing.

@Piccions
Piccions marked this pull request as ready for review October 15, 2023 15:24

@alessandropellegrini alessandropellegrini left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot!
As a minor note: the argparse library should go away from this repo, as we will be providing it as a separate library.

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

Successfully merging this pull request may close these issues.

Implement rootsimcc in C++ Make the compiler more robust

2 participants