Issue #16772 has been updated by Eregon (Benoit Daloze).
@shyouhei maybe it was split in too many header files?
Agreed before ruby/ruby.h and intern.h were too big, but 186 headers vs 26 before seems the other extreme.
----------------------------------------
Bug #16772: Build becomes slow with CIFS mounted srcdir
https://bugs.ruby-lang.org/issues/16772#change-84981
* Author: ko1 (Koichi Sasada)
* Status: Open
* Priority: Normal
* Assignee: shyouhei (Shyouhei Urabe)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Recent 9e6e39c3512f7a962c44dc3729c98a0f8be90341 increases many include files and it makes slow build on my machine.
My build environment is not normal:
* srcdir is managed on Windows 10 host file system and edit it on windows native editors (xyzzy)
* Build on Linux (Ubuntu 18.04) by mounting srcdir with CIFS (samba)
```
# on e7128aa772787a9c9e95708e2d2534484861a765
# gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
# on Ubuntu 18.04
# on Hyper-V
# on Windows 10
# srcdir is mounted by CIFS (Samba) on Windows host file system
# without ccache
$ time make range.o
compiling /home/ko1/src/ruby/clean/range.c
real 0m17.662s
user 0m2.572s
sys 0m2.599s
# with ccache
$ time make range.o
compiling /home/ko1/src/ruby/clean/range.c
real 0m35.361s
user 0m4.628s
sys 0m5.283s
```
on 9e6e39c3512f7a962c44dc3729c98a0f8be90341~
```
# without ccache
$ rm range.o; time -p make range.o
compiling /home/ko1/src/ruby/clean/range.c
real 1.16
user 0.85
sys 0.06
```
Same machine, but srcdir on guest Linux (/dev/sda2 on / type ext4 (rw,relatime,data=ordered))
```
# on e7128aa772787a9c9e95708e2d2534484861a765
$ time make range.o
compiling /home/ko1/ruby/v2/src/trunk/range.c
real 0m1.207s
user 0m1.065s
sys 0m0.140s
```
Same machine, but compile on host Windows (mswin64).
```
$ time nmake range.obj
Microsoft(R) Program Maintenance Utility Version 14.14.26428.1
Copyright (C) Microsoft Corporation. All rights reserved.
generating id.h
id.h updated
compiling C:/ko1/src/ruby/clean/range.c
range.c
real 0m3.779s
user 0m0.000s
sys 0m0.046s
```
Another Linux box works fine.
```
# Linux box on another machine without ccache
$ time make range.o
compiling /home/ko1/ruby/v2/src/trunk/range.c
real 0m1.992s
user 0m1.858s
sys 0m0.123s
```
I recognize that using CIFS for build environment is not normal environment, so it is not a big issue.
But I filed it if there is a chance to solve it.
BTW, I tried to make simple .c files which includes 1000 simple files, but only a few seconds to build. So the file number is not a big issue.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>