t1
t1 copied to clipboard
Request some helper scripts
we need some helper script for development, future plan is hide nix
command from developers.
- genConfig [someConfig(fall back if not exist)] to pwd.
- elaborate [ip, ipemu, ...] --config [some
config.json
by default from pwd]- use
mill elaborator.run
to generate the elaborator
- use
- setupScalaIDE {idea-community,metals(TBD)} --config[some
config.json
by default from pwd]-
nix develop .#t1.elaborator.editable
+nix shell .#espresso
; - post run
mill elaborator.assembly
for jar; - IDE should be opened under this environment;
- some idea to think about:
- add our chisel-plugin(not opensourced yet) for D/I macro hack, ScalaPlugin for Scala. this can be used to simple onboarding new contributors.
- In the future, we may add plugin for reading MLIR, HGLDD, FST to RPC surfer for debugging.(or RPC Verdi)
- add IDE target for
elaborator
:This is extremely useful for debug Scala, see:
This is basically added some line to
.idea/workspace.xml
-
<component name="RunManager" selected="JAR Application.Elaborate">
<configuration name="Elaborate" type="JarApplication" activateToolWindowBeforeRun="false">
<option name="JAR_PATH" value="$PROJECT_DIR$/out/elaborator/assembly.dest/out.jar" />
<option name="PROGRAM_PARAMETERS" value="ipemu -t . -c config.json " />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH" />
<method v="2">
<option name="RunConfigurationTask" enabled="true" run_configuration_name="assembly" run_configuration_type="ShConfigurationType" />
</method>
</configuration>
<configuration name="assembly" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="mill elaborator.assembly" />
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
<option name="SCRIPT_PATH" value="mill" />
<option name="SCRIPT_OPTIONS" value="elaborator.assembly" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="/nix/store/i2z9yfbv0akyk6ad0fl0z0msqs9gmj3m-fish-3.7.1/bin/fish" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="false" />
<envs />
<method v="2" />
</configuration>
<list>
<item itemvalue="JAR Application.Elaborate" />
<item itemvalue="Shell Script.assembly" />
</list>
</component>