
@aronzvi has joined the channel

@ggtr1138 has joined the channel

@sebastien.faucou has joined the channel

a shorter answer to your original question is “yes, that’s the standard way to write transpose on lists-of-lists”

:slightly_smiling_face:

Yes, require
is unhygenic (the names that it binds aren’t listed) and so you have the same issues expanding to it as expanding to other unhygenic macros. And your solution is the correct one.

I’ve got a raco
question and I can’t quite parse out the answer from the docs

I maintain a package, and I have a script that downloads and runs it nightly to check tests etc

Since the package has dependencies I’d like my script to automatically install dependencies of the package

But raco pkg install --auto --link
doesn’t work, since the package is already installed!

And I’m not convinced raco pkg upgrade --auto --link
works either (reading the docs)

In fact what I really want is raco pkg install --deps-only
or similar, since I have no interest in the package itself being registered on the system

(It’s running nightlies, they often break, etc! But no one uses that machine for much else so it’s not a big problem)

I think raco pkg update --auto <pkg>

will do what you want.

That works, for example, after building the runtime system on Windows from a source bundle that has racket-lib
installed, but not with the dependencies that it needs on Windows. The update
command with --auto
pulls in the dependencies.

Is there an update-or-install
?

raco pkg install --skip-installed

I guess that’s not quite update-or-install
, but it’s install-or-not
.

So raco pkg install --skip-installed
followed by raco pkg update --auto <pkg>
would always make sure you had the latest and greatest <pkg>
, if you didn’t know ahead of time if it was installed or not? Or is there something like port list installed
where you can see what’s already installed? Oh wait, I think that would be raco pkg show [<pkg>]
?

Yes, I think that’s right.

I think both install-or-update
and install --deps-only
would be great to have and would not be that hard to implement