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.

Reply via email to