⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 relnotes

📁 jam源码
💻
📖 第 1 页 / 共 3 页
字号:
==============================================================================================================================================================Release notes for Jam 2.5(aka Jam - make(1) redux)1.  Release info:	Jam 2.5	August 19, 2004	VERSION 2.5	(n.b. Jam 2.5 is merely Jam 2.5rc3 of April 2003 with the rc3	moniker removed.)2.  Compatibility	Jam 2.5 is upward compatible with Jam 2.4	The Jam 2.5 language is a superset of the 2.4 language;	Jamfiles, Jambase, and other rulesets used in 2.4 can be used	with the 2.5 language support.3.  Changes since 2.4.3.1.  Changes to Jam Language	The 'return' statement now actually returns, and there are now	break & continue statements for for & while loops.3.2.  Jambase Changes	MkDir now grists directories with 'dir', so that directory	targets can be distinguished from other targets.	SubDir now allows multiple overlapping roots (top level	directories): the first SubDir of a new root uses the CWD of	jam to set that root; subsquent SubDirs use the current SUBDIR	to set the new root.  New FSubDirPath to compute a path (given	SubDir arguments) and SubRules to include another root's	Jamrules.  Jamrules only included if present; no error issued	if no Jamrules file.	Using SubDir to include a subpart of an SubDir tree now works.	Previously, you could only include the root of another SubDir	tree.  This example includes the ../server/support/Jamfile,	without getting confused as to the current directory:		SubDir ALL src builds ;		SubInclude ALL src server support ;	$(RMDIR) has been defined for NT and defaulted to $(RM) 	everwhere else.  Not much tested.  For Michael Champigny.	GenFile actions (on UNIX) now put . in the PATH for the execution	of the command, so that (at least) when jam builds itself . does 	not need to be in the global path.  It is the rare case where a	target bound in the current directory can't be used directly,	so we fudge it by setting PATH.	Undocumented support for SUBDIRRULES, user-provided rules	to invoke at the end of the SubDir rule, and SUBDIRRESET,	SUBDIR variables to reset (like SUBDIRC++FLAGS, SUBDIRHDRS, etc)	for each new SubDir.3.3   'jam' Changes (See Jam.html)	The whole /MR of Jam's name has been dropped.  It was intended	to avoid trademark infringement of JYACC's JAM, but as far as	we can tell (a) it wasn't enough to avoid infringement and (b)	the trademark has lapsed anyhow.	If header dependencies cause an object to be recompiled and	the source file is a temporary, the temporary is now	reconstructed.  Previously, headers weren't considered when	deciding when to reconstruct a temporary.	-d has been reworked to make it easier to display more useful	tracing information separate from the debugging gunk:		-da - show all actions (formerly -d2)		-dc - show 'causes' for rebuilding (new output)		-dd - show dependencies (new output)		-dm - show make graph (aka -d3)		-dx - show executable text (formerly -d2)	-dd is new, and more display options are anticipated.	-n now implies -dax.	The message "...using xxx..." now only shows up with -da.	Jam.html was extensively updated, in an attempt at lucidity.3.4.  Jam internal code changes	Removed spurious search() in 'on' statement handling, thanks	(again) to Ingo Weinhold.	Fix 'includes' support so that included files aren't treated	as direct dependencies during the command execution phase.  If	an included file failed to build, make1() would bypass the	including file.  Now make0() appends each child's 'includes'	onto its own 'depends' list, eliminating 'includes'-specific	code in make0() and make1().	Rewrite of the past: updated all jam's source with comments to	reflect changes since about 2.3, very early 2001.4.  Fixed bugs	Fixed the description of the :E modifier in Jam.html.	Setting target-specific variables while under the influence of	the target's target-specific variables caused the _global_ values	to be modified.  This happened both during header file scanning	(HdrRule is called when target-specific variables are in effect)	and with the "on target statement" syntax.  Now setting	target-specific variables works again.  Thanks to Matt Armstrong.	Setting "var on target ?= value" now works as expected: if the	variable is already set on the target, it is left unchanged.	Previously, ?= was ignored and the variable was set anyway.	Thanks to Chris Antos.	Variable expansion in actions has always put an extra blank	space after the last list element, but the expansion is described	in the code as "space separated".  Now the last blank is suppressed	to match.  From Miklos Fazekas.	The temp file name used by jam for .bat files on NT now contains	jam's pid, so that multiple jams can run on the same system (with	the same $TEMP).  Thanks to Steve Anichini.	Several uninitialized memory accesses have been corrected in	var_expand() and file_archscan(), thanks to Matt Armstrong.5.  Porting	The Makefile now uses $(EXENAME) (./jam0 on UNIX, .\jam0.exe	on NT) instead of just "jam0", so that . doesn't need to be in	your PATH to bootstrap.	MACOSX updates: use 'ar' instead of libtool, as libtool can't	update a library and we archive too many things to do it in	one go; add piles of code to file_archscan() to handle new	BSD4.4 style "#1/nnnn" archive entry names, where the real	entry name follows the header and nnnn is the length of the	name.	The jam code underwent a const-ing, to work with compilers	that don't like "" being passed as a non-const char *.	Compiling on solaris w/ sparc now sets OSPLAT to "sparc".	Previously, it suppressed this, assuming (wrongly) that sparc	was the only solaris platform.  Thanks to Michael Champigny	<michael.champigny@intel.com>.	Jambase no longer announces the compiler it is using on	Windows.  It doesn't announce anything else, so why?	Jambase no longer refers to advapi32.lib on NT, as it isn't	needed for linking jam itself and it seems to move from	release to release (of MS Visual Studio).	Makefile/Jambase: BEOS updates from "Ingo Weinhold"	<bonefish@cs.tu-berlin.de>.	The NoCare rule can be used to suppress error messages when	an 'include' file can't be found.	AIX "big" archives are now supported, thanks to suggestions	from Randy Roesler.	MSVCDIR now works as well as MSVCNT for the Microsoft Visual C	compiler directory.  It changed names in VC 6.0.  Thanks to	Matt Armstrong.	Allow jam to build with BorlandC 5.5	For WinXP IA64; set MSVCNT to the root of the SDK and MSVCVer	to Win64; change handle type to long long (too much to include	windows.h?); bury IA64 in the library path in Jambase.	Mac classic MPW Codewarrior 7 upgrades: minor compiling	issues, new paths in Jambase for libraries and includes, and	separate out GenFile1 that sets PATH for UNIX only, as it	does't work under MPW (or anything other than with sh).	Minor Cray porting: make hashitem()'s key value unsigned so	we're guaranteed no integer overflows.	Remove NT FQuote rule, as, \" is required to pass quotes on	the command line.	Remove temp .bat files created on NT.  They used to all have	the same name and get reused, but with 2.5 the names were salted	with the PID and they would litter $TEMP.  Now they get removed	after being used.==============================================================================================================================================================Release notes for Jam 2.4(aka Jam - make(1) redux)1.  Release info:	Jam 2.4	March, 21, 2002	VERSION 2.42.  Compatibility	Jam 2.4 is upward compatible with Jam 2.3	The Jam 2.4 language is a superset of the 2.3 language;	Jamfiles, Jambase, and other rulesets used in 2.3 can be used	with the 2.4 language support.3.  Changes since 2.3.3.1.  Changes to Jam Language	The mechanism for calling rules that return values - "[ rule	args ...]", (and 'return' in the rule body), is now a	documented part of the language.	Add "on <target> <rulename> <field1> ..." syntax, to invoke a	rule under the influence of a target's specific variables.        Add "[ on targ rule ... ]" to call a rule returning a value,        under the influence of a target's specific variables.	New 'Glob' builtin that returns a list of files, given a list	of directories, and a list of filename patterns.	New 'while expr { block }' construct.	New :E=value modifier provides default value if variable unset.	New :J=joinval modifier concatenates list elements into single		element, separated by joinval.	\ can now be used to escape a space (or any single whitespace	character), so that you don't have to resort to quotes. 	New 'Match regexp : string' rule matches regexp against string	and returns list of results.	Rules can now be invoked indirectly, through variable names.	If the variable expands to an empty list, no rule is run.	If the variable expands to multiple entries, each rule is	run with the same arguments.  The result of the rule invocation	is the concatenation of the results of the rules invoked.	'Echo' and 'Exit' now have aliases 'echo' and 'exit', since it	is really hard to tell that these are built-in rules and not	part of the language, like 'include'.  Real rules continue to	start with a capital.3.2.  Jambase Changes	Support for YACCGEN, the suffix used on generated yacc output.        Fix ups to have jam and p4 build with borland C 5.5,        and minor win98 jam support for jam clean	SubDirHdrs now takes directory names in the same format as	SubInclude : one directory element per word.	More portable support for specifying includes and #defines:	New ASHDRS, CCHDRS, CCDEFS, DEFINES, ObjectDefines, FQuote,	FIncludes, FDefines.  Ordering of cc and c++ flags grossly	rearranged.	Jambase has been compacted by applying the new E: and J:	expansion modifiers.	New SoftLink rule, courtesy of David Lindes.  It currently	assumes you can pass a -s flag to $(LN).3.3   'jam' Changes (See Jam.html)	Added '-q' (quit quick) option; jam will exit promptly (as if it	received an interrupt), as soon as any target fails.	Added experimental '-g' (build newest sources first) option:	all things being equal, normally targets are simply built in	the order they appear in the Jamfiles.  With this flag, targets	with the newest sources are built first.   From an idea by Arnt	Gulbrandsen.  Undocumented (outside this note).3.4.  Jam internal code changes	jamgram.yy now defines YYMAXDEPTH to 10000, what it is on 	FreeBSD, for older yaccs that left it at 150 or so.  This is	needed for the right-recursion now used in the grammar.	Optimize rule compilation, with right-recursion instead of left.        Split jam's built-in rules out to builtins.c from compile.c,        so that compile.c only deals with the language.        Split jam's pathsys.h from filesys.h, since they are really        two different pieces.	evaluate_if(), which evaluated the condition tree for 'if' and	returned an int, has been replaced with compile_eval(), which does	essentially the same but returns a LIST.4.  Fixed bugs	Missing TEMPORARY targets with multiple parents no longer spoil one	parent's time with another.  The parents' time is used for comparison	with dependents, but no longer taken on as the target's own time.	'actions updated', not 'actions together', now protects targets	from being deleted on failed/interrupted updates.	Fixed broken $(v[1-]), which always returned an empty expansion.	Thanks to Ian Godin <ian@sgrail.com>.	Defining a rule within another rule, and invoking the enclosing	rule more than once, would result in giving the first rule a	null definition.  Fixed.	$(d:P) now works properly on the mac, climbing up directories.	Thanks to Miklos Fazekas <boga@mac.com>.        No longer (sometimes) treat \ as a directory separator on        UNIX.  It isn't supposed to be, but was due to bungled ifdefs.                Applying just :U or :D (or :E, :J) mods no longer causes the        variable value to be treated as a filename (parsed and rebuilt        using the OS specific pathsys routines). Previously, if _any_        mods were present then the value was parsed and rebuilt as if        a filename, and that could in certain cases munge the value.        Only the file modifiers (:GDBSM) treat the value as a        filename.	Four rules makeCommon, makeGrist, makeString, makeSubDir from	jam 2.2 missing in 2.3 have been re-added, with apologies to	dtb@cisco.com.	Return status more likely to be correct when using -d0, now that 	targets are could as being built even with no debugging output.	Thanks to Miklos Fazekas <boga@mac.com>.	yyacc now suffixes all terminals it defines with _t, so that they	don't conflict with other symbols (like RULE with the typedef	in rules.h).  Thanks to Michael Allard.	InstallInto now handles multiple sources properly, rather than	acting as if each installed target depended on all sources to	be installed.  $(INSTALLGRIST) is now the default grist for	installed targets, rather than the hardcoded 'installed'.  Thanks	to Stephen Goodson.5.  Porting	[MACINTOSH] Paths are now downshifted (internally) so as to	handle its case insensitivity.  Thanks to Miklos Fazekas	<boga@mac.com>.        [NT] MS changed the macro for the IA64 Windows NT 64bit        compiler.	[CYGWIN] Cygwin jam porting: dance around bison and yyacc.	Use bison's -y flag to use yacc's output file naming	conventions, and don't use yyacc on systems whose SUFEXE is	set.	[VMS] The Jambase itself was not formatting the CCHDRS and

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -