This happens for all backends. AFAIU the reason is that we have a target 
"m-runner-default" (in the case of Moar) in our Makefile. This target is a 
dependency for target "all" and is therefore called when executing "make". But 
since there is no file "m-runner-default" this target is considered out of date 
by "make" and the commands are executed always. The relevant lines from 
Makefile:

all: m-all m-runner-default
[...]
m-runner-default: $(M_RUNNER)
        $(RM_F) perl6
        -$(CP) $(M_RUNNER) perl6
        -$(CHMOD) 755 perl6

I think we could get around this with using the actual executable "perl6" as 
the target:

M_RUNNER_DEFAULT = perl6
all: m-all $(M_RUNNER_DEFAULT)
[...]
$(M_RUNNER_DEFAULT): $(M_RUNNER)
        $(RM_F) perl6
        -$(CP) $(M_RUNNER) perl6
        -$(CHMOD) 755 perl6

But I don't know a) if there is a reason for curren behaviour and b) if it's 
worth the trouble. Looks like the functionality was added by moritz about a 
year ago (for Parrot and JVM): 
https://github.com/rakudo/rakudo/commit/af43daed4746b2c5678e3de82ca2926d254e6906

Reply via email to