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
ARROW-9088: [Rust] Make prettyprint optional #7400
Conversation
It does not compile under the wasm target
It's odd that a pretty print library would be have target specific issues :P |
@houqp actually |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. We should probably plan on removing prettyprtint at some point.
… builds This PR makes `array_value_to_string` available to all arrow builds. Currently it is only available if the `feature = "prettyprint"` is enabled which is not the default. The full `print_batches` and `pretty_format_batches` (and the libraries they depend on) are still only available of the feature flag is set. The rationale for making this change is that I want to be able to use `array_value_to_string` to write tests (such as on #8346) but currently it is only available when `feature = "prettyprint"` is enabled. It appears that @nevi-me made prettyprint compilation optional so that arrow could be compiled for wasm in #7400. https://issues.apache.org/jira/browse/ARROW-9088 explains that this is due to some dependency of pretty-table; `array_value_to_string` has no needed dependencies. Note I tried to compile ARROW again using the `wasm32-unknown-unknown` target on master and it fails (perhaps due to a new dependency that was added?): <details> <summary>Click to expand!</summary> ``` alamb@ip-192-168-0-182 rust % git log | head -n 1 git log | head -n 1 commit d4cbc4b alamb@ip-192-168-0-182 rust % git status git status On branch master Your branch is up to date with 'upstream/master'. nothing to commit, working tree clean alamb@ip-192-168-0-182 rust % alamb@ip-192-168-0-182 rust % cargo build --target=wasm32-unknown-unknown cargo build --target=wasm32-unknown-unknown Compiling cfg-if v0.1.10 Compiling lazy_static v1.4.0 Compiling futures-core v0.3.5 Compiling slab v0.4.2 Compiling futures-sink v0.3.5 Compiling once_cell v1.4.0 Compiling pin-utils v0.1.0 Compiling futures-io v0.3.5 Compiling itoa v0.4.5 Compiling bytes v0.5.4 Compiling fnv v1.0.7 Compiling iovec v0.1.4 Compiling unicode-width v0.1.7 Compiling pin-project-lite v0.1.7 Compiling ppv-lite86 v0.2.8 Compiling atty v0.2.14 Compiling dirs v1.0.5 Compiling smallvec v1.4.0 Compiling regex-syntax v0.6.18 Compiling encode_unicode v0.3.6 Compiling hex v0.4.2 Compiling tower-service v0.3.0 error[E0433]: failed to resolve: could not find `unix` in `os` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:41:18 | 41 | use std::os::unix::ffi::OsStringExt; | ^^^^ could not find `unix` in `os` error[E0432]: unresolved import `unix` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:6:5 | 6 | use unix; | ^^^^ no `unix` in the root Compiling alloc-no-stdlib v2.0.1 Compiling adler32 v1.0.4 error[E0599]: no function or associated item named `from_vec` found for struct `std::ffi::OsString` in the current scope --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:48:34 | 48 | Some(PathBuf::from(OsString::from_vec(out))) | ^^^^^^^^ function or associated item not found in `std::ffi::OsString` | = help: items from traits can only be used if the trait is in scope = note: the following trait is implemented but not in scope; perhaps add a `use` for it: `use std::sys_common::os_str_bytes::OsStringExt;` error: aborting due to 3 previous errors Some errors have detailed explanations: E0432, E0433, E0599. For more information about an error, try `rustc --explain E0432`. error: could not compile `dirs`. To learn more, run the command again with --verbose. warning: build failed, waiting for other jobs to finish... error: build failed alamb@ip-192-168-0-182 rust % ``` </details> Closes #8397 from alamb/alamb/consolidate-array-value-to-string Lead-authored-by: alamb <andrew@nerdnetworks.org> Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org> Signed-off-by: Jorge C. Leitao <jorgecarleitao@gmail.com>
… builds This PR makes `array_value_to_string` available to all arrow builds. Currently it is only available if the `feature = "prettyprint"` is enabled which is not the default. The full `print_batches` and `pretty_format_batches` (and the libraries they depend on) are still only available of the feature flag is set. The rationale for making this change is that I want to be able to use `array_value_to_string` to write tests (such as on apache/arrow#8346) but currently it is only available when `feature = "prettyprint"` is enabled. It appears that @nevi-me made prettyprint compilation optional so that arrow could be compiled for wasm in apache/arrow#7400. https://issues.apache.org/jira/browse/ARROW-9088 explains that this is due to some dependency of pretty-table; `array_value_to_string` has no needed dependencies. Note I tried to compile ARROW again using the `wasm32-unknown-unknown` target on master and it fails (perhaps due to a new dependency that was added?): <details> <summary>Click to expand!</summary> ``` alamb@ip-192-168-0-182 rust % git log | head -n 1 git log | head -n 1 commit d4cbc4b alamb@ip-192-168-0-182 rust % git status git status On branch master Your branch is up to date with 'upstream/master'. nothing to commit, working tree clean alamb@ip-192-168-0-182 rust % alamb@ip-192-168-0-182 rust % cargo build --target=wasm32-unknown-unknown cargo build --target=wasm32-unknown-unknown Compiling cfg-if v0.1.10 Compiling lazy_static v1.4.0 Compiling futures-core v0.3.5 Compiling slab v0.4.2 Compiling futures-sink v0.3.5 Compiling once_cell v1.4.0 Compiling pin-utils v0.1.0 Compiling futures-io v0.3.5 Compiling itoa v0.4.5 Compiling bytes v0.5.4 Compiling fnv v1.0.7 Compiling iovec v0.1.4 Compiling unicode-width v0.1.7 Compiling pin-project-lite v0.1.7 Compiling ppv-lite86 v0.2.8 Compiling atty v0.2.14 Compiling dirs v1.0.5 Compiling smallvec v1.4.0 Compiling regex-syntax v0.6.18 Compiling encode_unicode v0.3.6 Compiling hex v0.4.2 Compiling tower-service v0.3.0 error[E0433]: failed to resolve: could not find `unix` in `os` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:41:18 | 41 | use std::os::unix::ffi::OsStringExt; | ^^^^ could not find `unix` in `os` error[E0432]: unresolved import `unix` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:6:5 | 6 | use unix; | ^^^^ no `unix` in the root Compiling alloc-no-stdlib v2.0.1 Compiling adler32 v1.0.4 error[E0599]: no function or associated item named `from_vec` found for struct `std::ffi::OsString` in the current scope --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:48:34 | 48 | Some(PathBuf::from(OsString::from_vec(out))) | ^^^^^^^^ function or associated item not found in `std::ffi::OsString` | = help: items from traits can only be used if the trait is in scope = note: the following trait is implemented but not in scope; perhaps add a `use` for it: `use std::sys_common::os_str_bytes::OsStringExt;` error: aborting due to 3 previous errors Some errors have detailed explanations: E0432, E0433, E0599. For more information about an error, try `rustc --explain E0432`. error: could not compile `dirs`. To learn more, run the command again with --verbose. warning: build failed, waiting for other jobs to finish... error: build failed alamb@ip-192-168-0-182 rust % ``` </details> Closes #8397 from alamb/alamb/consolidate-array-value-to-string Lead-authored-by: alamb <andrew@nerdnetworks.org> Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org> Signed-off-by: Jorge C. Leitao <jorgecarleitao@gmail.com>
… builds This PR makes `array_value_to_string` available to all arrow builds. Currently it is only available if the `feature = "prettyprint"` is enabled which is not the default. The full `print_batches` and `pretty_format_batches` (and the libraries they depend on) are still only available of the feature flag is set. The rationale for making this change is that I want to be able to use `array_value_to_string` to write tests (such as on apache#8346) but currently it is only available when `feature = "prettyprint"` is enabled. It appears that @nevi-me made prettyprint compilation optional so that arrow could be compiled for wasm in apache#7400. https://issues.apache.org/jira/browse/ARROW-9088 explains that this is due to some dependency of pretty-table; `array_value_to_string` has no needed dependencies. Note I tried to compile ARROW again using the `wasm32-unknown-unknown` target on master and it fails (perhaps due to a new dependency that was added?): <details> <summary>Click to expand!</summary> ``` alamb@ip-192-168-0-182 rust % git log | head -n 1 git log | head -n 1 commit d4cbc4b alamb@ip-192-168-0-182 rust % git status git status On branch master Your branch is up to date with 'upstream/master'. nothing to commit, working tree clean alamb@ip-192-168-0-182 rust % alamb@ip-192-168-0-182 rust % cargo build --target=wasm32-unknown-unknown cargo build --target=wasm32-unknown-unknown Compiling cfg-if v0.1.10 Compiling lazy_static v1.4.0 Compiling futures-core v0.3.5 Compiling slab v0.4.2 Compiling futures-sink v0.3.5 Compiling once_cell v1.4.0 Compiling pin-utils v0.1.0 Compiling futures-io v0.3.5 Compiling itoa v0.4.5 Compiling bytes v0.5.4 Compiling fnv v1.0.7 Compiling iovec v0.1.4 Compiling unicode-width v0.1.7 Compiling pin-project-lite v0.1.7 Compiling ppv-lite86 v0.2.8 Compiling atty v0.2.14 Compiling dirs v1.0.5 Compiling smallvec v1.4.0 Compiling regex-syntax v0.6.18 Compiling encode_unicode v0.3.6 Compiling hex v0.4.2 Compiling tower-service v0.3.0 error[E0433]: failed to resolve: could not find `unix` in `os` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:41:18 | 41 | use std::os::unix::ffi::OsStringExt; | ^^^^ could not find `unix` in `os` error[E0432]: unresolved import `unix` --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:6:5 | 6 | use unix; | ^^^^ no `unix` in the root Compiling alloc-no-stdlib v2.0.1 Compiling adler32 v1.0.4 error[E0599]: no function or associated item named `from_vec` found for struct `std::ffi::OsString` in the current scope --> /Users/alamb/.cargo/registry/src/github.com-1ecc6299db9ec823/dirs-1.0.5/src/lin.rs:48:34 | 48 | Some(PathBuf::from(OsString::from_vec(out))) | ^^^^^^^^ function or associated item not found in `std::ffi::OsString` | = help: items from traits can only be used if the trait is in scope = note: the following trait is implemented but not in scope; perhaps add a `use` for it: `use std::sys_common::os_str_bytes::OsStringExt;` error: aborting due to 3 previous errors Some errors have detailed explanations: E0432, E0433, E0599. For more information about an error, try `rustc --explain E0432`. error: could not compile `dirs`. To learn more, run the command again with --verbose. warning: build failed, waiting for other jobs to finish... error: build failed alamb@ip-192-168-0-182 rust % ``` </details> Closes apache#8397 from alamb/alamb/consolidate-array-value-to-string Lead-authored-by: alamb <andrew@nerdnetworks.org> Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org> Signed-off-by: Jorge C. Leitao <jorgecarleitao@gmail.com>
It does not compile under the wasm target