I love the general idea. I think it's a great solution for copy/paste/run needs that a scripting language should have.
I do have a question about the caching packages across runs. What is the motivation? Is it to increase performance, or are there other reasons? My concern is that inevitably there will be issues with the cache. It reminds me of global pip requirements, global npm installs etc. Some issues I have personally run into with these solutions ( python and js) include: 1) the cache size increasing and needing to manually trim it. Consider popping a shell into a production environment to fix an issue. You wouldn'twant to leave stuff behind. 2) Managing dependencies across language upgrades (e.g. updating node to 15.5, what happens to the dependencies? What happens for sxs (side by side) 3. Inconsistencies due to caching, especially with node. E.g. Needing to blow away the cache and download fresh to fix an issue 4. Fire corruption due to other programs needing to nuke the cache 5. Issues that arise when backing up and then trying to restore to a different home folder (I had a python dependency hard code the path an install) 6. File permission changes, especially when switching between different users on chroot'd terminals Some of these issues are going to be a problem anyways, but I think that caching provides another avenue for things go wrong. My suggestion would be to either add explicit cache management functionality to elixir - including which path it lives, and blowing away the cache or to not use one for now. The former could look like this: ELIXIR_CACHE_DIR=/foo iex (eg set an environment var then call iex) or with parameters passed in iex --cache-dir iex --clear-cache The latter solution could most easily be solved by using /tmp and making a new folder each iex instance that calls mix install (possibly also respecting the cache dir flag options) -Anil On Jan 21, 2021, at 05:02, Felipe Stival <[email protected]> wrote: +1 for this proposal. On Thu, Jan 21, 2021, 09:54 Jon Rowe <[email protected] <mailto:[email protected]> > wrote: I plus one this proposal, it’s similar (for scripts at least) to what Ruby has with bundler inline mode, I like this because such techniques allow you to create single file reproductions of issues, which are great for bug reports in PRs. Cheers Jon ---------------- [email protected] <mailto:[email protected]> https://jonrowe.co.uk On 21 January 2021 at 12:18, eksperimental wrote: `Mix.install(:decimal)` should also work out of the box IMO. On Thu, 21 Jan 2021 03:18:44 -0800 (PST) "[email protected] <mailto:[email protected]> " <[email protected] <mailto:[email protected]> > wrote: -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]> . To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/dejalu-217-a7302266-156c-46d8-86f9-089e2065af2b%40jonrowe.co.uk. -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]> . To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAKC64%2ByRtG-XGWkSADPXHzOLZ8AJ4g73DxEjC_8Jp1b3-sHKAg%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/0100017725401617-8cdc5c5f-8434-42d6-a3b5-0272cbf65824-000000%40email.amazonses.com.
