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

Support for non-nodeJS backends #41

Open
42 tasks
ohad opened this issue Dec 6, 2021 · 4 comments
Open
42 tasks

Support for non-nodeJS backends #41

ohad opened this issue Dec 6, 2021 · 4 comments

Comments

@ohad
Copy link

ohad commented Dec 6, 2021

Goal: discuss what's needed to make inigo backend independent, as the README states.

Example questions:

  1. Which parts of the project currently rely on which parts of nodeJS?
  2. Which parts of the project can easily be made to run on the other backends? (especially Scheme / Racket).

Required backend specific bindings:

We'll need chez/racket substitutes for some of the node FFI bindings in inigo.

Context:

In the Dec 2021 Idris Developers' Meeting, we're discussing choosing an official package manager.

@Z-snails
Copy link

Z-snails commented Dec 6, 2021

First of all, we can ditch concurrency completely, as many tasks are currently being performed sequentially anyway.

We have various options when it comes to resolving this:

  1. implement all the functions @ohad has said in scheme/c
    This is probably the easiest solution to this specific problem

  2. remove central repo support from inigo
    This will eliminate pretty much all the foreign functions current used

  3. start afresh, with only the features we want (IMO git and local deps only)
    This could be in a new repo on idris-community (name to be decided if we choose this)

Feel free to add feedback on discord or here.

@ohad
Copy link
Author

ohad commented Dec 7, 2021

Re. 3: Can we easily identify a subset of the configuration file language/fields that would be definitely supported by such future rewrite?
Complete rewrites tend to take longer than expected, and we want to have a solid package manager now.

@ohad
Copy link
Author

ohad commented Dec 7, 2021

Re. 2: is it easy to implement 2?
I think the current central inigo server is not something we have access to, right?
So we should probably remove that functionality (for the time being?) and in the future support multiple repos (perhaps even publishing the package to multiple repos).

@Z-snails
Copy link

Z-snails commented Dec 7, 2021

Re 2:
I don't have access to the central repo.
I don't think it would be too hard to remove that functionality, here's what would need to go:

  • record defining a package
    • remove deps field
  • fetch/build/etc modules - generally this is already cleanly split.
  • Server/ subdir can be ignored for now
  • ffi functions can be left in place so long as they aren't called by any 'live' code.

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

2 participants