eo icon indicating copy to clipboard operation
eo copied to clipboard

EO compiler does not work without internet access

Open dours opened this issue 4 years ago • 21 comments

(because files like seq.eo are downloaded each time)

dours avatar Dec 15 '21 23:12 dours

@dours good point. I think we should implement a local cache of .eo objects, similar to what we have in ~/.m2/repository directory. Maybe it should be ~/.eo directory.

yegor256 avatar Dec 17 '21 06:12 yegor256

@andreoss can you implement this? I think the only class this should affect is the PullMojo. It will try the local cache first and if the .eo file is not found, it should go to Objectionary. Maybe we can just create a decorator for Objectionary object, which will do this type of caching.

yegor256 avatar Dec 17 '21 06:12 yegor256

@andreoss also, would be great to listen to the --force option of Maven and if it's provided, enforce from-Internet downloading. I'm not sure whether it's possible though.

yegor256 avatar Dec 17 '21 07:12 yegor256

@dours good point. I think we should implement a local cache of .eo objects, similar to what we have in ~/.m2/repository directory. Maybe it should be ~/.eo directory.

Why not make the environment variable EOPATH (for example) in which to store the path to the folder in which to store the runtime .eo files and the compiled eo-runtime-vX.Y.Z.jar? This is probably similar to what you are suggesting.

Then we don't need to download anything every time, and the files along the EOPATH will be managed by the eo.jar part (for example).

It will be able to download the required runtime version and compile it into a jar file. For example:

eo update-runtime
# downloads runtime files to EOPATH
# compile them to jar

And the compiler itself will be able to pull up all the necessary files and runtime. At the very least, we will get rid of the need to build the runtime every time, as well as not download the source code of this runtime.

i582 avatar Dec 20 '21 03:12 i582

@andreoss I like the idea of EOPATH, which should be ~/.eo by default. Keeping .jar files there is also a good idea, on top of keeping there .eo files. Maybe like this:

.eo/
  binaries/
    org.eolang/
      eo-runtime-0.21.2.jar
  sources/
    org/
      eolang/
        txt/
          sprintf.eo

yegor256 avatar Dec 20 '21 06:12 yegor256

@andreoss you take this?

yegor256 avatar Dec 24 '21 07:12 yegor256

@yegor256 Yes.

andreoss avatar Dec 28 '21 00:12 andreoss

@dours 2 puzzles #561, #562 are still not solved.

0pdd avatar Jan 02 '22 06:01 0pdd

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar Jan 16 '22 18:01 0crat

@dours 2 puzzles #562, #586 are still not solved; solved: #561.

0pdd avatar Feb 02 '22 09:02 0pdd

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar Feb 20 '22 08:02 0crat

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar Feb 25 '22 08:02 0crat

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar Mar 12 '22 10:03 0crat

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar Mar 17 '22 11:03 0crat

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar Mar 22 '22 14:03 0crat

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar May 01 '22 23:05 0crat

@yegor256/z everybody who has role DEV is banned at #490; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

0crat avatar May 06 '22 23:05 0crat

@dours the puzzle #625 is still not solved.

0pdd avatar May 09 '22 08:05 0pdd

@dours the puzzle #unknown is still not solved.

0pdd avatar Jul 04 '22 15:07 0pdd

@dours the only puzzle #unknown is solved here.

0pdd avatar Jul 29 '22 12:07 0pdd

@dours the only puzzle #625 is solved here.

0pdd avatar Jul 31 '22 05:07 0pdd

@yegor256 I believe this one can be closed

andreoss avatar Aug 29 '22 04:08 andreoss

@dours indeed, I'm closing this. We keep .eo files in ~/.eo directory. They won't be downloaded again, if Internet access is lost. Of course, for the first time you will have to have Internet access to download them.

yegor256 avatar Aug 29 '22 08:08 yegor256