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

📄 relnotes

📁 jam源码
💻
📖 第 1 页 / 共 3 页
字号:
        CCDEFS properly: on VMS they can't be appended to, because        multiple /define or /include directives don't work.  Instead        now CCHDRS and CCDEFS is reformatted from HDRS and DEFINES        anytime those latter two change.  This requires the recent        change to jam to allow access to target-specific variables        when setting other variables.        [VMS] Remove exception call when file_dirscan() can't, for        some reason, scan a directory.  Use a better set of #ifdefs to        determine if we're on a vax, rather than relying on the C        compiler being a specific version: we're able to build with        the C++ compiler now.	[VMS] Port new jam to run with just cxx compiler.        (The C compiler being a extra-cost item).        [NT] Add entry for DevStudio when the settings are already in the        system environment.        [NT] default $(MV) to "move /y" in Jambase.	[MINGW] Mingw port by Max Blagai.==============================================================================================================================================================Release notes for Jam 2.3(aka Jam - make(1) redux)0.  Bugs fixed since 2.3.1	PATCHLEVEL 2 - 3/12/2001	NOCARE changed back: it once again does not applies to targets	with sources and/or actions.  In 2.3 it was changed to apply to	such targets, but that broke header file builds: files that are	#included get marked with NOCARE, but if they have source or	actions, they still should get built.1.  Release info:	Jam 2.3	November 16, 2000	VERSION 2.3	PATCHLEVEL 12.  Compatibility	Jam 2.3 is upward compatible with Jam 2.2.	The Jam 2.3 language is a superset of the 2.2 language;	Jamfiles, Jambase, and other rulesets used in 2.2 can be used	with the 2.3 language support.3.  Changes since 2.23.1.  Changes to Jam Language	Rules now can have values, which can expanded into a list with	the new "[ rule args ... ]" syntax.  A rule's value is the value	of its last statement, though only the following statements have	values: if (value of the leg chosen), switch (ditto), set (value	of the resulting variable), return (its arguments).  Note that	'return' doesn't actually return.  This support is EXPERIEMENTAL	and otherwise undocumented.  (2.3.1)	Because of the new way lists are processed, if a rule has no	targets a warning message is no longer issued.	NOCARE now applies to targets with sources and/or actions,	rather than just those without.3.2.  Jambase Changes	The HDRPATTERN variable now allows for leading blanks before	the #include, to keep up with ANSI.  By john@nanaon-sha.co.jp	(John Belmonte) (2.2.3).	HDRPATTERN has been adjusted to avoid mistaking cases like:		# include <time.h> /* could be <sys/time.h> */	MkDir now NOUPDATE's $(DOT), so that there are no dependencies	on the current directory's timestamp.  By john@nanaon-sha.co.jp	(John Belmonte).	The old mock functions like makeDirName, which assigned their	results to the variable named as their first argument, have	been replaced with real functions using the new [] syntax.	E.g. "makeDirName foo : bar ola" is now "foo = [ fDirName bar ]"	Install now always does a cp/chmod/etc, rather than using	the system's install(1), which invariably seems broken.3.3.  Jam internal code changes	$JAMUNAME is set on UNIX.  (2.2.4).	Jam ANSI-fied (2.3.0).	jam.h now defines a bunch of symbols used by the other source	files, so as minimize compiler- and platform-specific ifdefs.	OSVER is no longer set by jam.h (it was only set for AIX).	Jam does not depend on this variable at all, except to set	$(OSFULL), which is used to determine jam's build directory.	If the user needs to distinguish between various revs of 	OSs, he must set OSVER in the environment.4.  Fixed bugs	Redefining a rule while it was executing could cause jam to	crash.  Reference counts are now used to prevent that, thanks	to Matt Armstrong.	Logic for computing chunk size when executing PIECEMEAL rules	has been reworked to be a little more accurate, without danger	of overflow, at the cost of being a little more compute intensive.	Instead of computing an estimate chunksize in the (now gone)	make1chunk(), make1cmds() now just goes full bore and tries to	use all args.  When that fails, it backs off by 10% of the source	args until the command fits.  It takes a little bit more compute	time compared to the old logic, but when you're executing actions	to build all of Shinola it's still pretty small in the scheme	of things.	The NT handle leak in execunix.c has been fixed, thanks to	Gurusamy Sarathy.  (2.2.1).5.  Porting	Platforms newly supported or updated:	    AmigaOS (with gcc), courtesy of Alain Penders (2.2.2).	    Beos	    CYGWIN 1.1.4, courtesy of John Belmonte <john@nanaon-sha.co.jp>.	    IBM AS400 via Visual Age on NT (primitive)	    IBM OS/390 Unix System Services	    Linux SuSE on OS390	    Linux Mips, ARM	    Lynx	    HPUX 11, IA64	    Mac OS X Server, courtesy of Jeff_Sickel@sickel.com (2.2.5).	    Mac Rhapsody	    MPE IX 6.0	    NetBSD	    QNX RTP (QNX 6.0)	    Siemens Sinix	    UNICOS	    VMS 6.2, 7.1	    Windows NT IA645.1.  NT Porting Notes	Always create tmp .bat file for actions if JAMSHELL is set.	That way, if JAMSHELL is a .bat file itself, it can handle	single-command actions with more than 9 cmd line args.	COMSPEC is no longer examined: cmd.exe is always used	instead.  Only cmd.exe can execute the Jambase rules anyhow.	Jam can be built with Borland C++ 5.5.	OS2 fixes: InstallBin now works.  Filenames are now downshifted,	so mixed case works better there, too.  file_dirscan() can now scan 	the root ("c:\" or "\") directory, which it couldn't handle before.	var_defines now ignores OS=Windows_NT, because it conflicts	with Jam's setting of OS (to NT).5.2. Mac OS 8/9 Notes	The support for Mac is curious at best.  It runs under MPW.	It requires CodeWarrior Pro 5, but no longer requires GUSI.	Use Build.mpw to bootstrap the build.	The Mac specific definitions in the Jambase are not intended	to be of general purpose, but are sufficient to have Jam build	itself.==============================================================================================================================================================Release Notes for Jam 2.21.  Release info:	Jam 2.2	October 22, 1997	VERSION 2.2	PATCHLEVEL 12. Compatibility	Jam 2.2 is a roll-up of 'Jam - make(1) redux' release 2.1+.	Most of the changes described below were available before this,	in the jam.2.1.plus.tar ball.	The Jam 2.2 language is a superset of the 2.1 language;	Jamfiles, Jambase, and other rulesets used in 2.1 can be used	with the 2.2 language support.	See 'Jambase Changes', below, to see if your Jamfiles need any	changes to work with the 2.2 Jambase.3. Changes Since 2.1	New product name: Jam. (Executable program is still named 'jam'.)	Documentation rewritten; HTML versions supplied.3.1 Changes to Jam Language 	Rules may now have more fields than just $(<) and $(>).	Local variables are now supported.	The expression 'if $(A) in $(B)' is now supported.	New variable modifiers :U and :L result in uppercased or lowercased	values.	New variable modifier :P reliably results in parent directory	of either a file or directory. (Previously, :D was used, but on VMS	:D of a directory name is just the directory name.)	The :S variable modifier now results in the _last_ suffix if a 	filename has more than one dot (.) in it.	New predefined $(JAMDATE) variable is initialized at runtime for 	simple date stamping.	New predefined variables $(OSVER) and $(OSPLAT) are used to 	distinguish among operating system versions and hardware platforms,	when possible.	New 'bind' qualifier on action definitions allows variables	other than $(<) and $(>) to be bound with SEARCH and LOCATE paths.	Action buffer size is no longer limited by MAXCMD. Instead, each 	line in an action is limited by MAXLINE, defined for each OS, and 	the entire action size is limited by CMDBUF.3.2 Jambase Changes (See Jamfile.html)	Jambase has been reworked to incorporate new language features.	A handful of new utility rules has been added: makeString,	makeDirName, etc.	New HDRGRIST variable in Jambase allows for headers with the same	name to be distinguished.	LOCATE_TARGET now has a new flavor, LOCATE_SOURCE, that is used by	rules that generate source files (e.g., Yacc and Lex).	Header file includes now happen in the proper order. The limit of	10 include files has been eliminated.	The old "Install" rule is no longer available.  Use InstallBin, 	InstallFile, InstallLib, InstallMan, or InstallShell instead.3.3 'jam' Changes (See Jam.html)	'jam' can now be built as a stand-alone program, with Jambase 	compiled into the executable. An external or alternate Jambase can 	still be referenced explicitly with -f.	On command failure, 'jam' now emits the text of the command that 	failed.  This is a compromise between the normal -d1 behavior (where 	commands were never seen) and -d2 (where commands are always seen).	'jam' now exits non-zero if it doesn't have a total success.  A parse	error, sources that can't be found, and targets that can't be built	all generate non-zero exit status.		The debugging levels (-d flags) have been slightly redefined.	The supplied Jamfile now builds 'jam' into a platform specific 	subdirectory. This lets you use the same source directory to	build 'jam' for more than one platform.	The supplied Jamfile does not rebuild generated source files by 	default. (They are supplied with the distribution.) See Jamfile	for more information.4.  Fixed Bugs	The 'include' bug has finally been fixed, so that include	statements take effect exactly when they are executed,	rather than after the current statement block.  This also	corrects the problem where an 'include' within an 'if'	block would wind up including the file one token after the	'if' block's closing brace.  Credit goes to Thomas Woods	for suggesting that the parse tree generation and parse	tree execution be paired in their own loop, rather than	having the parser execute the tree directly.	The setting and extracting of grist has been regularized:	normally, if you set a component of a filename (using the	:DBSMG= modifiers), you are supposed to include the delimiters	that set off the component:  that is, you say "$(x:S=.suffix)",	including the ".".  But with grist it was inconsistent	between setting and getting: setting grist required no	<>'s, while getting grist included them.   Getting grist	continues to return the <>'s, but now setting grist can	either include them (the new way) or not (the old way).	'actions together' now suppresses duplicate sources from	showing up in $(>).	Accessing variables whose names contained ['s (as happens with	MkDir on VMS) wasn't working, because it treated the [ as an	array subscript. Now [ and ] are, like :, handled specially so 	that they can appear in variable values.	The 'if' statement now compares all elements in expressions;	previously, it only compared the first element of each list.	If a command line in an action is longer than MAXLINE (formerly	MAXCMD), 'jam' now issues an error and exits rather than dumping 	core.	If a Jamfile ended without a trailing newline, jam dumped core.	This has been fixed.5.  Porting	See jam.h for the definitive list of supported platforms.	Since 2.1, support has been added for:	    Macintosh MPW	    Alpha VMS	    Alpha NT	    NT PowerPC	    BeOS	    MVS OE	    UNIXWARE	    QNX	    SINIX (Nixdorf)	    OS/2	    Interactive UNIX (ISC), courtesy of Matthew Newhook5.1 NT Support Fixes	The NT command executor now handles multiple line actions, by writing	multi-line actions to a batch file and executing that.		Targets are universally lowercased on NT. (Matthew Newhook)

⌨️ 快捷键说明

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