idris-lang / Idris2

A purely functional programming language with first class types
https://idris-lang.org/
Other
2.53k stars 378 forks source link

jobserver unavailable #2152

Open xgqt opened 3 years ago

xgqt commented 3 years ago

if executed with: make SCHEME=chez -j8 bootstrap

the make process will complain:

/bin/sh ./bootstrap-stage1-chez.sh
Bootstrapping SCHEME=chezscheme IDRIS2_VERSION=0.5.1
Building idris2-boot from idris2-boot.ss
compiling idris2_app/idris2-boot.ss with output to idris2_app/idris2-boot.so
IDRIS2_CG="chez" /bin/sh ./bootstrap-stage2.sh
/home/xy/source/public/github.com/xgqt/Idris2/bootstrap-build
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

This bug is often caused by calling make directly.

More info: https://stackoverflow.com/questions/60702726/warning-jobserver-unavailable-using-j1-add-to-parent-make-rule

xgqt commented 3 years ago

I suspect this is because bootstrap shell script calls ${MAKE}.

attila-lendvai commented 2 years ago

note that PR https://github.com/idris-lang/Idris2/pull/1990 should also fix this.

benhormann commented 2 years ago

Parallel make isn't supported (currently): #864

The only eligible jobs are network / test-lib, and the sub-jobs of support. Since these are the smallest jobs it wouldn't be a big gain.

It'd likely be more beneficial to make the Idris2 compiler threaded. It could compile leaf nodes of the dependency graph in parallel, in theory.