Skip to content
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

Closed
wants to merge 1 commit into from

Conversation

nevi-me
Copy link
Contributor

@nevi-me nevi-me commented Jun 10, 2020

It does not compile under the wasm target

It does not compile under the wasm target
@github-actions
Copy link

@houqp
Copy link
Member

houqp commented Jun 13, 2020

It's odd that a pretty print library would be have target specific issues :P

@sergeyt
Copy link

sergeyt commented Jun 14, 2020

@houqp prettytable-rs depends on term which depends on dirs which is causes error.

actually dirs has a code for wasm32, but it seems it is broken

Copy link
Member

@andygrove andygrove left a 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.

@nevi-me nevi-me closed this in 6299c25 Jun 16, 2020
jorgecarleitao pushed a commit that referenced this pull request Oct 8, 2020
… 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>
@nevi-me nevi-me deleted the ARROW-9088 branch November 7, 2020 06:28
alamb added a commit to apache/arrow-rs that referenced this pull request Apr 20, 2021
… 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>
GeorgeAp pushed a commit to sirensolutions/arrow that referenced this pull request Jun 7, 2021
… 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants