-
Notifications
You must be signed in to change notification settings - Fork 63
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
Distribute scripts no longer work #329
Comments
We can add a step to the test framework that executes the generated distribute script (if one exists). |
With the merging of #449, distribute scripts should be functional, but only on Linux machines. This is because (if CMake is disabled) Enabling our CMake build system for remote machines fixes this issue because the generated CMakeLists.txt can detect the appropriate platform and add the appropriate support files on the remote machines automatically, without involving |
Why do we invoke the target compiler (or build tool) directly on the host machines? This always means that we need to have global knowledge about all our hosts (or make assumptions). In consequence, we need either a homogenous set of machines, or we have a very complex launcher script that allows for heterogeneity. Both are not ideal in my opinion. I think |
I'm not sure if there is an advantage in invoking |
I think the key advantage of using Another advantage would be that we don't need to generate code in a platform independent way. We can always generate code for the specific platform in use. This also reduces complexity in the generated code as well as in the code generators. Take for instance the path problem you mention: dealing with absolute paths is much simpler than worrying about relative paths and how to resolve them (that's why we use them, at least in the C++ target). I personally would rather run As long as we only run C federations, this probably doesn't matter much. But if we add more targets and features, the launcher script is likely to become too complex. |
I think @cmnrd makes a good point. I expect that an |
We could either make a selection of federates to generate code for based on instance names or by selecting a particular host. As a default, we could generate code only for federates mapped to |
I don't see what |
I suspect a docker image that can run lfc will be much larger than a docker image that only needs to run gcc, but I'm not sure. The current mechanism for docker images, as I recall, removes all the compiler dependencies after the compile completes. I suppose it might be possible to do that with lfc as well. I have to say, however, that this is not a priority for me. If someone else wants to fully explore this, have at it... |
But in this comment you point out things only work based on the assumption that remote hosts run on Linux, the reason being that its not knowable during code generation what platform remote hosts use. @cmnrd's point was that we don't need to know if, instead of having a script that executes target build commands, we have a script that invokes |
In our distribute scripts. An easy fix is to put all platform files on remote machines and let CMake figure out the exact dependencies needed. That is my current plan anyway. |
When generated a federated program, a distribute.sh script is generate to distribute and compile the generated code on remote servers. This no longer works, presumably as a consequence of the reorganization of project structure. Is there any way to add tests for this?
The text was updated successfully, but these errors were encountered: