Skip to content

Add WSL recommendation to top-level README.md documentation.#526

Merged
martinholmer merged 1 commit into
masterfrom
windows-wsl
Jun 10, 2026
Merged

Add WSL recommendation to top-level README.md documentation.#526
martinholmer merged 1 commit into
masterfrom
windows-wsl

Conversation

@martinholmer

@martinholmer martinholmer commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Strongly recommend using Microsoft's Windows Subsystem for Linux to use Ubuntu Linux for all work with the code in this repository.

The reasoning behind this recommendation is laid out in this private communication from @donboyd5:

I think trying to make TMD work properly on Windows, and continue to
work properly on Windows, is potentially a labor-intensive and
quality-limiting task. I have found that many things that "just work"
on Linux and Mac don't work on Windows, or work only with difficult
workarounds. For example some optimization routines written in C or
Fortran (and called from a higher-level language) are easily
installable on Linux but hard to install in Windows - several years
ago I spent days trying to get optimization software compiled on
Windows that install easily on Linux. (This happened with Ipopt, a
great nonlinear optimizer, and with LEMON, an excellent minimum cost
network flow optimizer. It also happened with the Harwell Subroutine
Library (HSL), a well-known library of large-scale scientific
computing routines that among other things can solve linear systems
(needed in nonlinear programs) quickly and robustly.)

All of this changed after Windows ramped up development of the Windows
Subsystem for Linux (WSL, now WSL2). It seems to allow installation of
a complete Linux system running under Windows. I did this about 2
years ago and never looked back. Everything works. It is fast, and
getting faster. You can read Windows files from the Linux side of your
machine, and vice versa, and these have gotten fast. You can use Linux
terminal commands to copy files from one file system to the other. You
can't really use GUI programs in WSL2 (e.g., don't run open office or
whatever the Linux version is) but you don't need to -- many of these
programs will run on Windows and access Linux files on WSL2. This is
particularly true for vscode-based IDEs - vscode itself, or positron
(which I use), or, I believe, Cursor. I use positron in Windows to
edit my Linux python files. And I run Claude Code in a Linux terminal
on WSL2, where it works with my TMD codebase, or anything
else. Anthropic seems to think that Claude Code works better in Linux
(or WSL2) than in Windows, so as a result, I am doing all new projects
in WSL2. Finally, Microsoft seems committed to rapid development of
WSL2 and just released a preview version of WSL3.

Given that (I suspect) we have very few Windows users of TMD, and they
likely are technically adept, I suggest that in the short term we
encourage them to use WSL2 (or WSL3), at least until there is money to
ensure it can be maintained on Windows (and I think improvements in
data quality would be a better investment than native-running on
Windows, given that there's a good workaround). Even if we got TMD
working properly on Windows now, we might find periodically that some
new change breaks it.

@martinholmer martinholmer merged commit 66f6137 into master Jun 10, 2026
1 check passed
@martinholmer martinholmer deleted the windows-wsl branch June 10, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant