kyp0717
2021-7-9 11:57:57

Hello. I am getting the following error while trying to install racket packages echo "a" \| raco pkg install http-easy yaml rfc6455 web-server request relation open-input-file: cannot open module file module path: /home/root/user/.local/share/racket/8.1/pkgs/reprovide-lang/reprovide/test/example-directory/a.rkt path: /home/root/user/.local/share/racket/8.1/pkgs/reprovide-lang/reprovide/test/example-directory/a.rkt system error: no such file or directory; rkt_err=3 compilation context...: /root/.local/share/racket/8.1/pkgs/reprovide-lang/reprovide/test/other-subdir/indirect-glob-in.rkt context...: /usr/share/racket/collects/compiler/private/cm-minimal.rkt:610:0: compile-zo* /usr/share/racket/collects/compiler/private/cm-minimal.rkt:409:15 /usr/share/racket/collects/compiler/private/cm-minimal.rkt:398:12: build /usr/share/racket/collects/compiler/private/cm-minimal.rkt:374:0: maybe-compile-zo /usr/share/racket/collects/compiler/private/cm-minimal.rkt:208:0: compile-root /usr/share/racket/collects/compiler/private/cm-minimal.rkt:104:4 /usr/share/racket/collects/setup/parallel-build.rkt:332:9 /usr/share/racket/collects/setup/parallel-do.rkt:455:25 /usr/share/racket/collects/setup/parallel-do.rkt:441:20: loop


kyp0717
2021-7-9 11:58:21

Can anyone help with issue?


soegaard2
2021-7-9 11:59:55

Why echo "a" first?


sorawee
2021-7-9 12:00:15

Probably to install all. But there’s a better way: use --auto


soegaard2
2021-7-9 12:00:20

Ah.


kyp0717
2021-7-9 12:02:44

Yup. echo "a" just answer the question install y/n/a .." when you runraco pkg install`


kyp0717
2021-7-9 12:03:11

So I have isolated the problem to the package relation . When I remove this package, the installation went just fine.


kyp0717
2021-7-9 12:04:13

I did not know abut --auto . It is probably a better way to install


sorawee
2021-7-9 12:04:35

What happens if you raco pkg install --auto reprovide-lang?


kyp0717
2021-7-9 12:08:35

let me try


kyp0717
2021-7-9 12:12:58

Same issue arised!


kyp0717
2021-7-9 12:14:39

The pkg reprovide-lang installed correctly. Afterward, I installed pkg relation and hit the same error.


kyp0717
2021-7-9 13:33:57

I have submitted a bug report on github.



sorawee
2021-7-9 13:37:15

Looks like it only affects some systems


soegaard2
2021-7-9 13:42:58

A little progress: I have no separated the gui dependent parts of #lang sketching into a separate module.

The “main.rkt” file for #lang sketching behaves normally when it contains: #lang racket/base (require "exports-all.rkt") (provide (all-from-out "exports-all.rkt")) When I change it to: #lang racket/base (require "exports-no-gui.rkt" "exports-only-for-docs.rkt") (provide (all-from-out "exports-no-gui.rkt" "exports-only-for-docs.rkt")) Then raco setup can build and render the sketching-doc which consists of the file “manual-sketching.scrbl”.

But … how do I make the switch from “manual-sketching.scrbl” ? If I make a new language, say, sketching-no-gui wouldn’t that confuse Scribble, when it looks at the binding information?


mflatt
2021-7-9 13:54:48

Scribble follows require chains and uses the first (re-)providing module it finds that documents a binding.

On the documenting-bindings side, the defmodule form has a #:use-sources option to list preferred modules to counts as ones providing a binding (in cases where those modules are in the providing chain). When documenting the sketching module, you may need to specify the exports-no-gui module as the preferred source in that sense. Then, a traversal from sketching-no-gui will hit the provider exports-no-gui. (Or something like that.)


kyp0717
2021-7-9 13:57:30

I was also buiding inside docker. Perhaps it only affects build inside docker container. The image I am using is debian.


kyp0717
2021-7-9 14:00:04

Thanks again @sorawee. I have reported the issue to github and included the link to related issue.


shu--hung
2021-7-9 14:53:56

I sometimes need to add info.rkt in subdirectories to specify compile-omit-{files,paths}. But other than that I always have info.rkt at the root of each package.


greg
2021-7-9 16:10:01

Maybe there is some notion of “project” in Vim (or a popular Vim plugin) that you could ride on top of?

On the Emacs side I’ve found that to work well in practice. There’s a built-in “version control project” thing; there’s also a popular package called “projectile”. So you could delegate to them, just ask “what’s the project root for this file?”, and let them deal with the messy ways of defining that (including letting users tweak that). Often there’s some last resort escape hatch where e.g. a user could create a .projectile file in the project root, if there’s not otherwise something like .git or whatever to look for.


greg
2021-7-9 16:13:10

At the same time, I think you’re right that things like drracket/check-syntax are currently very much single-file, and you give them a complete/absolute path to that single file. So it probably won’t matter much if they’re part of a “project” or not, and also won’t matter what the Racket current-directory is (IIRC check-syntax will parameterize those as-needed from the file’s compete path).


ben.knoble
2021-7-9 16:30:05

Unfortunately the “project” world in vim is fairly limited. There are a number of plugins that give you different things. But no standard. (And of course, plugins cooperating happens, but it’s usually a side/after thought. They like to be independent. So I couldn’t ask ALE to exclusively define a project root via a plugin.) I thought about also looking for .git, but I figured I would stick with info.rkt and fall back to the pwd if not found (since I always open vim from the project root).

I might be able to look for the highest directory containing info.rkt, instead of lowest? And use pwd as fallback.


dan.ml.901
2021-7-9 16:31:50

We are using v7.9. We could try upgrading. This is on a non-technical developer machine so they install from the site.


lexi.lambda
2021-7-9 16:36:04

Out of curiosity: are there currently any plans for a RacketCon 2021? And if so, is it decided if it will be an in-person or virtual event?


mflatt
2021-7-9 16:49:41

Upgrading does make sense as a first step. The default v8.1 is CS (which is a very different beast, of course). Besides whether upgrading solves the problem, it would be interesting to know if there’s any difference between v8.1 CS and v8.1 BC. For example, a STATUS_HEAP_CORRUPTION error might have something to do with the way the BC implementation manipulates the C stack, and the CS implementation doesn’t do that..


mflatt
2021-7-9 20:07:46

Tentative plans: virtual in early October