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

I/O Design Meta-Issue #7954

Open
4 of 16 tasks
mppf opened this issue Dec 6, 2017 · 7 comments
Open
4 of 16 tasks

I/O Design Meta-Issue #7954

mppf opened this issue Dec 6, 2017 · 7 comments

Comments

@mppf
Copy link
Member

mppf commented Dec 6, 2017

This issue is just meant to list and track I/O issues.

Priority Group 1

Priority Group 2

Priority Group 3

Priority Group 4

@bradcray
Copy link
Member

bradcray commented Dec 8, 2017

Related: @benharsh has been looking at I/O overheads in the context of the revcomp benchmark and expects to put together a list of I/O issues / wishes in response to that exercise, as I understand it.

@benharsh
Copy link
Member

benharsh commented Apr 6, 2018

Question: does anything in the release/examples/ directory rely on the functionality we intend to deprecate?

@benharsh
Copy link
Member

My take on a rough prioritization of these tasks (grouped by coarse prioritization):

  1. Improve/add channel formats
    Rationale: probably deprecates "%j", breaking existing code
  2. machine readable output
    Rationale: behavior-changing, possibly significantly
  3. IO plugins written in Chapel
    Rationale: deprecates HDFS, CURL from stdlib

  1. Return errors from writeThis
    Rationale: Future programs may break if they do not handle errors.
  2. Arrays resized when read (or, "how to read an unknown number of things")
    Rationale: Useful idiom. Note: May depend on whether we keep mutate-through-array functionality.

  1. Buffer/bytes/strings with channels
    Rationale: Useful idiom.
  2. Methods beginning with underscore
    Rationale: Solidify API
  3. DefaultRectangular and readBytes
    Rationale: may break existing code
  4. allocate-as-read classes
    Rationale: Useful idiom.
  5. class instance cycles
    Rationale: Annoying for users
  6. writeThis inheritance
    Rationale: Annoying default behavior, but can be overrided

  1. Remote file, local channel
    Rationale: correctness, productivity > performance. Though probably a common idiom.
  2. parallel file.lines()
    Rationale: correctness, productivity > performance. Though this may have design repercussions.
  3. Spinwaiting under qthreads
    Rationale: correctness, productivity > performance

@mppf
Copy link
Member Author

mppf commented Apr 12, 2018

thanks @benharsh - I've reordered the issue description to reflect your suggestion.

@e-kayrakli
Copy link
Contributor

It might be good to keep a record of code style issues with the IO module here. See #14646

@lydia-duncan
Copy link
Member

I recorded some documentation tasks related to IO on #14395, should I link them here as well?

@mppf
Copy link
Member Author

mppf commented Dec 13, 2019

I think this issue should focus on things that fit into the API stabilization topic. Also this particular issue has things to address in a sorted order, so it might not make sense to try to add a big variety of small things to it.

Perhaps linking other issues to the epic Stabilize core I/O routines #8639 is the right move.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants