2020-06-16 19:18:11 +03:00
|
|
|
[workspace]
|
2022-02-11 15:19:02 +03:00
|
|
|
# Listing only the "root" crates of each app/library. All path dependencies are included in the workspace automatically.
|
|
|
|
# If you want to add sub crate (like `app/gui/config` or `lib/rust/ensogl/example`), just add it as a path dependency
|
|
|
|
# where plausible.
|
2020-06-16 19:18:11 +03:00
|
|
|
members = [
|
2022-05-23 05:16:04 +03:00
|
|
|
"app/gui",
|
|
|
|
"app/gui/enso-profiler-enso-data",
|
|
|
|
"build",
|
|
|
|
"build/enso-formatter",
|
|
|
|
"build/rust-scripts",
|
|
|
|
"lib/rust/*",
|
|
|
|
"lib/rust/parser/src/syntax/tree/visitor",
|
|
|
|
"lib/rust/parser/src/syntax/tree/builder",
|
|
|
|
"lib/rust/profiler/data",
|
|
|
|
"integration-test"
|
2020-06-16 19:18:11 +03:00
|
|
|
]
|
2022-02-11 15:19:02 +03:00
|
|
|
# The default memebers are those we want to check and test by default.
|
|
|
|
default-members = ["app/gui", "lib/rust/*"]
|
|
|
|
|
Profiling batch mode (#3428)
Implement a command that launches the application, runs a series of steps (a "workflow"), writes a profile to a file, and exits.
See: [#181775808](https://www.pivotaltracker.com/story/show/181775808)
# Important Notes
- The command to capture run and profile is used like: `./run profile --workflow=new_project --save-profile=out.json`. Defining some more workflows (collapse nodes, create node and edit value) comes next; they are implemented with the same infrastructure as the integration-tests.
- The `--save-profile` option can also be used when profiling interactively; when the option is provided, capturing a profile with the hotkey will write a file instead of dumping the data to the devtools console.
- If the IDE panics, the error message is now printed to the console that invoked the process, as well as the devtools console. (If a batch workflow fails, this allows us to see why.)
- New functionality (writing profile files, quitting on command, logging to console) relies on Electron APIs. These APIs are implemented in `index.js`, bridged to the render process in `preload.js`, and wrapped for use in Rust in a `debug_api` crate.
2022-05-10 22:34:40 +03:00
|
|
|
# We are using a version with extended functionality. The changes have been PR'd upstream:
|
|
|
|
# https://github.com/rustwasm/console_error_panic_hook/pull/24
|
|
|
|
# Remove this patch when the issue is resolved.
|
|
|
|
[patch.crates-io]
|
|
|
|
console_error_panic_hook = { git = 'https://github.com/enso-org/console_error_panic_hook' }
|
|
|
|
|
2020-06-16 19:18:11 +03:00
|
|
|
[profile.dev]
|
2021-11-10 16:36:08 +03:00
|
|
|
opt-level = 0
|
|
|
|
lto = false
|
|
|
|
debug = true
|
2020-08-13 15:23:01 +03:00
|
|
|
debug-assertions = true
|
2020-06-16 19:18:11 +03:00
|
|
|
|
|
|
|
[profile.release]
|
2021-11-10 16:36:08 +03:00
|
|
|
opt-level = 3
|
|
|
|
lto = true
|
|
|
|
debug = false
|
2020-08-13 15:23:01 +03:00
|
|
|
debug-assertions = false
|
2020-06-16 19:18:11 +03:00
|
|
|
|
|
|
|
[profile.bench]
|
2021-11-10 16:36:08 +03:00
|
|
|
opt-level = 3
|
|
|
|
lto = true
|
|
|
|
debug = false
|
2020-08-13 15:23:01 +03:00
|
|
|
debug-assertions = false
|
2020-06-16 19:18:11 +03:00
|
|
|
|
|
|
|
[profile.test]
|
2021-11-10 16:36:08 +03:00
|
|
|
opt-level = 0
|
|
|
|
lto = false
|
|
|
|
debug = true
|
2020-08-13 15:23:01 +03:00
|
|
|
debug-assertions = true
|
2022-02-11 15:19:02 +03:00
|
|
|
|
|
|
|
[profile.integration-test]
|
|
|
|
inherits = "test"
|
2022-04-04 18:55:55 +03:00
|
|
|
opt-level = 2
|
2022-05-23 05:16:04 +03:00
|
|
|
|
|
|
|
[profile.buildscript]
|
|
|
|
inherits = "release"
|
|
|
|
opt-level = 2
|
|
|
|
lto = false
|
|
|
|
debug = false
|
|
|
|
debug-assertions = true
|
|
|
|
#[patch."https://github.com/enso-org/ci-build"]
|
|
|
|
#enso-build = { path = '../ci-build/build' }
|
|
|
|
#ide-ci = { path = '../ci-build/ci_utils' }
|