Comments (5)
Fascinating. Does it reproduce with --stdknl
instead of --expk
? (I'll be super-surprised if it doesn't.)
I guess there's an error still lurking in the way Holmake prints its little display of running processes to the screen (see an earlier one at b51b4f1). If you run with a smaller -j
number but a narrower terminal screen can you also reproduce?
from hol.
I can confirm that it reproduces on --stdknl
. It will also fail faster if you build with -t
because the degree of parallelisation possible in tools/Holmake/tests/parallel_tests
is enough to prompt the problem.
from hol.
The problem is definitely with the display: if you run
build -t --stdknl -j12 | tee logit
the pretty displaying doesn't happen because it doesn't think it's writing to a terminal and the build goes fine.
from hol.
I tried to build HOL with a terminal 1/3rd as wide (with -j12
) and it also failed, but I'm not sure if that's actually doing anything because there are many layers of abstraction in-between the build and the actual terminal.
To be more precise, I'm running the build inside of a local tmux session, and furthermore the build is going through a local daemon (nix-daemon), which connects over ssh to another nix-daemon on a remote machine, which actually does the build inside a sandbox and captures the output log of the build (and in this specific case, it also sends it in real-time to my terminal).
So I heavily suspect that my actual terminal size has no effect on the build behavior and I would be slightly disappointed if it did (since it would interfere with all the efforts that NixOS has made to make builds as reproducible as possible, even though it still has countless limitations).
EDIT: sorry, I misread your question. I will try reproducing with a narrower terminal and with -j11
.
EDIT 2: I can now confirm that in my setup, it succeeds with a terminal 1/3rd as wide and with -j11
. In other words, the terminal width doesn't seem to have a difference in my environment.
But as I mentioned before, that's probably to be expected given my setup. So the bug might still be related to the terminal width, it's just that it seems that I have no easy way of changing it due to how the build is being done.
from hol.
Holmake explicitly makes shell calls to stty size
and tput cols
to try to figure out its "terminal" width (after first determining if the output stream is a tty at all). [I appreciate that this is gross.]
If you can resize your terminal so as to affect the numbers it gets out of those calls (it tries stty
first and then falls back to tput
), you might reproduce with a smaller -j
. Of course, the error may well be quite dependent on things like width % j
too, so simply making it narrower may mask the bug we're seeing at 80 columns.
It's still clearly a bug, and I think/hope it should be easy to fix.
from hol.
Related Issues (20)
- Alpha turns into a by accident
- Tools should report config files' location
- Building HOL4 will crash with latest Apple update of Xcode HOT 3
- Remove/Name Anonymous Rewrite for NUM_CEILING HOT 1
- Allow "reduced" info printing in emacs HOT 1
- Use rule-names instead of conjunctions in Inductive definitions HOT 1
- Limits on the number of jobs for Holmake? HOT 2
- SAT_ORACLE gives wrong answers HOT 11
- "intLib.ARITH_PROVE ``0n = x * Num 0i``" fails unexpectedly HOT 1
- intLib.{ARITH,COOPER}_PROVE can't prove certain goals HOT 5
- intLib.ARITH_PROVE raises exception `NotFound` HOT 1
- Ignore assumption directive for simplifier
- Add spec form to cover both `INST` and `SPEC` of theorems
- Add a q.subpat_{x_,}assum
- A broken generated HTML theory in non-Unicode mode HOT 2
- Moscow ML builds broken after `cv_translator` HOT 1
- General modern "quotation" syntax support
- Q.PAT_X_ASSUM returns bad errors
- C++ compilation failure of `src/HolSat/sat_solvers/zc2hs` on macOS HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hol.