chapel-lang/chapel — pull request #771 by bradcray (2014-11-07 07:44:55+00:00)
Title: Speed compilation by removing task table by default

This commit kicks off a	new category of	commits	--
the "one-light-rail-ride-fix (TM)."

While looking through generated	code for optimization
opportunities tonight and reflecting on	a user's comment about
compilation speeds this week, I started to realize that we could
remove a lot of complexity from the generated code if we required
users to enable the task tracking table	rather than always having
it on by default. This	particularly makes sense in a
Qthreads-by-default world since	the Qthreads tasking layer doesn't
even make callbacks into the Task Tracking module.

To that	end, I added a new flag,	--task-tracking, which	enables
the task tracking support that we've always compiled in, while
--no-task-tracking (the	default) disables it. To implement this,
I created a new	modules/internal/tasktable/ directory with on/
and off/ subdirectories	where the former contains the task
tracking code as always	and the	latter contains	stubs for the
routines, the print routine of which contains a	halt() telling you
to recompile with --task-tracking on if	you want that feature.

Because	only the fifo tasking layer uses the Chapel task tracking
table, the flag	also generates a warning when it is thrown in
non-FIFO mode.

For a hello world program on my	computer, this speeds compilation
from 6.79 seconds to 4.81 seconds. For	a --no-local compilation,
it reduces it from 8.35	seconds	to 5.58	secods.

TODO:
o still need to test
o if accepted by group,	need to	update man page