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

Make a new build tool: finn #23

Open
19 tasks
jparoz opened this issue Feb 25, 2023 · 0 comments
Open
19 tasks

Make a new build tool: finn #23

jparoz opened this issue Feb 25, 2023 · 0 comments
Labels
feature Adds a new feature to the language.
Milestone

Comments

@jparoz
Copy link
Owner

jparoz commented Feb 25, 2023

Separate out project management concerns into a build tool, which finds and prepares files according to some sort of project manifest, and then hands it all to huck. Similar to the separation between rustc and cargo.

Structuring this as a separate build tool means that different workflows can be customised as specifically as needed, but we can still provide a somewhat turnkey experience in general. The project manifest format should be able to be fairly flexible in the first place, but the build tool should technically be optional to use the language; i.e. the build tool should be replaceable without modifying the compiler.

Subcommands

  • finn new
    • .gitignore ignoring /output
    • src directory
    • finn.yaml with sensible defaults
  • finn build
  • finn repl REPL #22
    • Should automatically bring all modules from the manifest into scope (qualified)
  • finn test
  • finn add https://github.com/example/Module (adds a dependency to the manifest)
    • Need a version number?
    • Should this instead refer to some central package registry?

Features

  • Package management
    • Probably using git repos as the hosting method
  • Local file structure
    • Need to be able to specify (with sensible defaults) for each module:
      • input filepath (.hk file)
      • output filepath (generated .lua file)
      • input file directory (folder of .hk files)
      • output file directory (folder of generated .lua files)
    • Input file search strategies
      • All .hk files in a given subdirectory of the project folder
      • Every input filename specified manually
    • Output filename generation strategies
      • Each output next to its input file
      • All outputs in one big directory
      • Every output filename specified manually
  • Make it possible to have no prelude #21
@jparoz jparoz added the feature Adds a new feature to the language. label Feb 25, 2023
@jparoz jparoz added this to the 0.10.0 milestone Feb 25, 2023
@jparoz jparoz mentioned this issue Feb 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Adds a new feature to the language.
Projects
Status: Todo
Development

No branches or pull requests

1 participant