Darren J Moffat wrote: > Vladimir Kotal wrote: > > Getting nightly.sh faster will not make the nightly *build* noticeably > > faster. > > > >> Do any of these changes mean that nightly no longer works with ksh88 ? > > > > I'm afraid it is the case - e.g. the builtin stuff will prevent it from > > working with ksh88. > > > > In general I think there needs to be a consensus whether to rewrite old > > ksh scripts to ksh93 if there is no clear reason for it. > > In that case I see no benefit from the changes being proposed and I > don't think this should be integrated. If there is more to come that > will speed up nightly to a point where it is actually noticable (I > really doubt it some how) I'd like to see a least an overview of that.
1. Please read http://opensolaris.org/jive/thread.jspa?messageID=407842#407842 2. With the retirement of SXCE and the switch to Indiana we will get the switch from ksh88 to ksh93 implicitly. However I would prefoer to do the switch _now_ in a controlled and tested way instead of running into problems like CR #6872747 ("nightly's total build time calculation is b0rked") repeatedly. 3. bldenv.sh already uses ksh93 and it may be nice to use ksh93 constructs in opensolaris.org (for example the default calculation for the DMAKE_MAX_JOBS value needs to be adjusted to include a limit for available memory to avoid that the machine runs out of memory or starts swapping because the value is too high (see [1])) [1]=AFAIK it should similar like this: -- snip -- function get_memory_size { set -o errexit nameref result=$1 float mem typeset s s="$(/usr/sbin/prtconf 2>&1)" # extract value in MB from "Memory size: 2048 Megabytes" s="${s/~(E).*(Memory size: )(.*)( Megabytes).*/\2}" # convert value (( mem=${s} )) # boundary checks (( (mem < 0.) && (mem < 2.**64) )) && return 1 # write result back (( result=mem )) return 0 } function calcutale_max_parallel_jobs { integer num_online_cpus integer max_parallel_jobs float system_memory=-1. num_online_cpus="$(getconf NPROCESSORS_ONLN)" || \ (( num_online_cpus=3 )) get_memory_size system_memory if (( system_memory > 0 )) ; then float memjobs # calculate the maximum number of jobs which fit # into memory before we start swapping/paging # we use 256MB for the base OS and 256 per compiler # instance (( memjobs=(system_memory-256.)/256. )) (( max_parallel_jobs=int(fmin(num_online_cpus, memjobs)) )) else (( max_parallel_jobs=num_online_cpus )) fi print "max_parallel_jobs=${max_parallel_jobs}" } calcutale_max_parallel_jobs -- snip -- ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.ma...@nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;) _______________________________________________ opensolaris-code mailing list opensolaris-code@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/opensolaris-code