llnl / llnl/rose

Frontend (command line) examples

Open
#265 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
688
Forks
144
PR merge metrics
No merged PRs in 30d

Description

The build setup generates and installs a myriad of frontend executables, some native, some scripts, et cetera.

However, nowhere in the wiki, or even the official documentation is ever given decent examples for their use. For instance:

  • identityTranslator is hinted at to be able to transpile source-to-source. I've not found any documentary that explains its use.
    I have of course studied the --help output, and while one might assume that the options -rose:Fortran_output_language (among others) would be the ones, they actually require input language to be the same as the output language.
    There is nothing, no --help text, no manual page, no documentation, that explains how this command is supposedly transpiling anything.
    Maybe it's actually just a sample program; but then, why is it installed globally?

  • rose-cc, and rose-c++, are, as far as I can surmise from the scarce documentation, drop-in replacements for gcc, clang, etc.
    Most frontend commands behave similar to how LLVM clang, or GCC frontends behave: they inherit common options, which little to no hinting at what options are specific to each frontend.

The documentation, scarce as it might be, does include what one could roughly consider examples for transpiling. And by roughly, I really do mean rough: None of them actually translate input source from language $INPUTLANGUAGE to output source language $OUTPUTLANGUAGE.
They appear to do what LLVM Clang's AST rewriting does. Feel free to correct me on this, though.

In short, documentation on these frontends would be useful. While I've been read, grepped, and disseminated the manual pages, documentation, even google to the furthest extend possible, I've yet to actually find anything that properly explains their use.


I know this seems I'm getting hung up on transpiling, and that's mostly because I am: the ROSE framework was recommended for its source-to-source transpiling ability, e.g., from C to Fortran, or vice versa (which, again, I haven't been able to locate).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing wiki, official documentation, manual pages, and --help output for identityTranslator, rose-cc, and rose-c++. Compare those materials with the existing rough transpiling examples and clarify which frontend uses are supported. Done means the documentation provides concrete command-line examples and explains expected input and output languages.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp, fortran
Domain
cli, compilers, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.