Skip to content

Instantly share code, notes, and snippets.

@faultyserver
Last active February 25, 2018 21:10
Show Gist options
  • Save faultyserver/16130f0b1cfbe2eb51c51ba0323005fa to your computer and use it in GitHub Desktop.
Save faultyserver/16130f0b1cfbe2eb51c51ba0323005fa to your computer and use it in GitHub Desktop.
Myst 0.5.0 Roadmap

Myst 0.5.0 Roadmap

These are the features I'd like to see for Myst 0.5.0 (ideally releasing 2018-02-28). This list will be updated as new ideas and suggestions come in.

  1. Make IO a Type rather than a Module.
  2. Consider adding Type inheritance (see #142).
  3. Work on a protocol/implementation system.
  4. Improve Spec to provide better failure output and continue execution after a failure (see #139, #140, #141).
  5. Work on a soft matching construct (see #96)
  6. Re-implement File on top of IO.
  7. Implement Socket on top of IO.
  8. Standardize error structures in the Native Library (see #103).

Future goals

These are features that have come up and had some initial discussion, but are either incomplete or would be difficult to implement in the release timeline for 0.5.0.

  1. Add ability to mark function parameters as const. This would require "type finalization" to emulate static dispatch at runtime and enable analysis of function calls. const would be added as a type restriction modifier, and would cause an error if the value would be modified anywhere within a function (either by assignment or mutation from another function). An initial example might look like this:
# This function would cause an error, as `a` is being re-assigned within the function.
def increment(a : const Integer)
  a += 1
end

# This function would also fail, because `list` is mutated by the `push` function.
def append(list : const List, value)
  list.push(value)
end

# This function would succeed, because neither `a` nor `b` are mutated.
def add(a : const Integer, b : const Integer)
  a + b
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment