NG Delayed compiling. Normal?

BlitzMax Forums/Brucey's Modules/NG Delayed compiling. Normal?

GW(Posted 2015) [#1]
On my system,(win7,64: NG_0.66.3.07) compiling takes a really long time. I just want to find out if it's normal or abnormal.
Regardless of build option or architecture, when I hit the build button (verbose:on) the output will show 'Building <filename>' and nothing for about 20-30 seconds. After that time the ide will start to show the verbose output "C:/Dev/Lang/BlitzMaxNG/bin/bcc.exe" -g x86 -v -r -t gui -p win32 -o" ....

This delay happens even if the source file has not been altered since the last compile.
Ex:
"Building <filename>"
{wait 20 seconds}
"Executing:<filename>.exe"

Another thing I noticed is that If I watch taskmanager during this delay, I see what appears to be bcc.exe loading and unloading from memory repeatedly.
Is this normal behavior?


Derron(Posted 2015) [#2]
Do you use Bruceys version of MaxIDE ?

Why am I asking? BMK-NG allows for the "quick" param which skips checking if a (imported) module needs a recompilation.

So if you do not use "framework" for your code, it imports every available "standard" module - which is not lightweight - and this leads to some hundred of file checks.

if you see the bmk-command used, copy paste it - and inject "quick" - and check then, if it changes something.


bye
Ron


GW(Posted 2015) [#3]
Ya, sorry for not making it clear, I'm using the ide contained in the lastest binary release on bmx-ng.com, but it's been present in all the binary releases.
It occurs on everything, regardless of the content of sourcecode or compiling options.
even:
SuperStrict
Framework brl.basic
Print "Hello"

Result:
Building untitled1

-=[ ~20 SEC DELAY ]=- 

[ 98%] Processing:untitled1.bmx
"C:/Dev/Lang/BlitzMaxNG/bin/bcc.exe"  -g x86 -v -r -f brl.basic -t gui -p win32 -o "C:/Dev/Lang/BlitzMaxNG/tmp/.bmx/untitled1.bmx.gui.release.win32.s" "C:/Dev/Lang/BlitzMaxNG/tmp/untitled1.bmx"
Parsing...
Semanting...
Generating interface...
Generating header...
Generating source...
[ 99%] Compiling:untitled1.bmx.gui.release.win32.x86.c
C:/Dev/Lang/BlitzMaxNG/MinGW32/bin/gcc.exe -I"C:/Dev/Lang/BlitzMaxNG/mod" -DNDEBUG -I"C:/Dev/Lang/BlitzMaxNG/mod/brl.mod/blitz.mod" -I"C:/Dev/Lang/BlitzMaxNG/mod/brl.mod/appstub.mod" -I"C:/Dev/Lang/BlitzMaxNG/mod/brl.mod/basic.mod" -w -DBMX_NG -m32 -ffast-math -fno-exceptions -c -O2 -s  -o "C:/Dev/Lang/BlitzMaxNG/tmp/.bmx/untitled1.bmx.gui.release.win32.x86.o" "C:/Dev/Lang/BlitzMaxNG/tmp/.bmx/untitled1.bmx.gui.release.win32.x86.c"
[100%] Linking:untitled1.exe
"C:/Dev/Lang/BlitzMaxNG/MinGW32/bin/ld.exe" -s -stack 4194304 -subsystem windows -o "C:/Dev/Lang/BlitzMaxNG/tmp/untitled1.exe"  -L"C:/Dev/Lang/BlitzMaxNG/MinGW32/lib/gcc/x86_64-w64-mingw32/5.1.0/32" -L"C:/Dev/Lang/BlitzMaxNG/MinGW32/x86_64-w64-mingw32/lib32" -mi386pe "C:/Dev/Lang/BlitzMaxNG/tmp/ld.tmp"
Executing:untitled1.exe
"C:/Dev/Lang/BlitzMaxNG/tmp/untitled1.exe"
Hello


After the delay, everything else happens very quickly.
I don't recall ever seeing bmk referenced in the verbose output.


Derron(Posted 2015) [#4]
So you did not try "quick" (do not mix that up with the other existing param "-q") ?

$ time ./bmk makeapp -a -quick tests/hello.bmx
[ 90%] Processing:hello.bmx
[ 95%] Compiling:hello.bmx.console.debug.linux.x86.c
[100%] Linking:hello

real	0m0.269s
user	0m0.175s
sys	0m0.072s

$ time ./bmk makeapp -a tests/hello.bmx
[ 98%] Processing:hello.bmx
[ 99%] Compiling:hello.bmx.console.debug.linux.x86.c
[100%] Linking:hello

real	0m0.329s
user	0m0.252s
sys	0m0.060s


This might be even more / longer for you.

Nonetheless 20seconds is a bit long. Maybe you have an AV tool active which slows down file accesses.


edit:
Building untitled1

-=[ ~20 SEC DELAY ]=- 

[ 98%]


Means, it took 20sec to do the first 0-97% ... which is the module scan (I assume so).


bye
Ron


Dabhand(Posted 2015) [#5]
Just checked over here... Works as per-usual!

Very peculiar! :/

Dabz


GW(Posted 2015) [#6]
I tried with the -quick flag and that seems to eliminate the delay.
I guess I need to patch and recompile the NG maxide.
Is the ide built with vanilla bmax or with NG?


Brucey(Posted 2015) [#7]
I'll add the option to MaxIDE for the next release.


Derron(Posted 2015) [#8]
Further going details about the delay:

https://github.com/bmx-ng/bmk/issues/10

https://github.com/bmx-ng/bmk/issues/8


The second/last one also contains some potential ideas how to circumvent the lag (module-info-cache).


bye
Ron


Brucey(Posted 2015) [#9]
The -quick option gets around the issue...


Derron(Posted 2015) [#10]
But "-quick" removes the convenience of an auto-rebuild-all-needed-modules functionality.

Best would be the mix of both worlds.

bye
Ron