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

Tidying of idrisMain #1454

Closed
jfdm opened this issue Aug 4, 2014 · 4 comments
Closed

Tidying of idrisMain #1454

jfdm opened this issue Aug 4, 2014 · 4 comments

Comments

@jfdm
Copy link
Contributor

jfdm commented Aug 4, 2014

Idris is a library that has a single front-end. However, Idris actually has several different front-ends that can be used to interact with Idris code. A nominal list is:

  • The REPL
  • The iPKG build tool
  • The documentation builder.
  • The IDESLAVE

Issue #1126 has introduced the idea that these different front ends should be wrapped in their own separate executables. That is, there should be different cabal projects for the front ends. How much of the logic for each of the different frontends should be extracted (or left in) from the idris library to these executables is a problem for whoever tackles issue #1126.

However, related to this problem is idrisMain. It has been mentioned on the IRC channel that idrisMain is a little convoluted and requires some attention. If the right sort of attention is given to idrisMain it might make tackling issue #1126 easier...it may also help improve how the rest of the Idris frontend works.

Feel free to discuss what attention needs to be given to idrisMain.

@Helkafen
Copy link
Contributor

Helkafen commented Oct 9, 2014

Hi, I'm working of this. idrisMain is indeed quite convoluted. My local copy builds a idrisc compiler, and I am trying to isolate the other stuff into new executables.

  • REPL : idris
  • Package builder : idrispkg
  • IDE Slave : idrisslave
  • Doc builder : idrisdoc

Are the names ok? Do you have more requirements?

@edwinb
Copy link
Contributor

edwinb commented Oct 9, 2014

I’m not sure having multiple executables is necessary, but splitting idrisMain into separate functions or even modules with a clearly defined purpose is desirable.

The problem with multiple executables at this level of granularity is purely pragmatic for me at the moment: it makes the edit-compile-test cycle take far too long, because linking each executable takes ages. Also, every executable statically links everything, making the binary packages grow enormously for every new executable.

That’s not a problem for users of course, and bandwidth and disk space are less of an issue these days, but it is a bit of a pain for developers.

Edwin.

On 9 Oct 2014, at 10:16, Helkafen notifications@github.com wrote:

Hi, I'm working of this. idrisMain is indeed quite convoluted. My local copy builds a idrisc compiler, and I am trying to isolate the other stuff into new executables.

• REPL : idris
• Package builder : idrispkg
• IDE Slave : idrisslave
• Doc builder : idrisdoc
Are the names ok? Do you have more requirements?


Reply to this email directly or view it on GitHub.

@jfdm
Copy link
Contributor Author

jfdm commented Oct 9, 2014

For now, I have to agree with @edwinb on this one. Our priorities at the moment, and certainly for this issue, should be on refactoring idrisMain and improving its modularity. Untangling each of the separate functions into small more maintainable chunks is better for the long term maintenance of the project. However, that doesn't mean that Issue #1126 should be closed, once idrisMain has been refactored, revisiting Issue #1126 seems natural.

@jfdm
Copy link
Contributor Author

jfdm commented Aug 9, 2016

Will be looking at this over the next couple of evenings.

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

No branches or pull requests

4 participants