Open ohad opened 2 years ago
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.
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.
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).
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:
Goal: discuss what's needed to make inigo backend independent, as the README states.
Example questions:
Required backend specific bindings:
We'll need chez/racket substitutes for some of the node FFI bindings in inigo.
[ ] `./Base/Extra/Extra/Buffer.idr
enc64__prim
dec64__prim
fromString__prim
indexOf__prim
[ ]
Inigo/Async/SubtleCrypto/SubtleCrypto.idr
encodeAlgorithm__prim
encodeKeyAlgorithm__prim
importKey__prim
exportKey__prim
generateKey__prim
sign__prim
verify__prim
getRand__prim
hash__prim
[ ]
Inigo/Async/FS.idr
fs_readFile__prim
fs_readFileBuf__prim
fs_writeFile__prim
fs_writeFileBuf__prim
fs_mkdir__prim
fs_rmdir__prim
fs_getFiles__prim
fs_isDir__prim
fs_exists__prim
[ ]
Inigo/Async/Base.idr
never__prim
reject__prim
log__prim
system__prim
systemWithStdIO__prim
[ ]
Inigo/Async/CloudFlare/KV.idr
read__prim
write__prim
writeTTL__prim
[ ]
Inigo/Async/Fetch.idr
fetch__prim
fetchBuf__prim
request__prim
[ ]
Inigo/Async/Compress/Brotli.idr
brotli_compress__prim
brotli_decompress__prim
Context:
In the Dec 2021 Idris Developers' Meeting, we're discussing choosing an official package manager.