# 4.0.3 Release Notes

June 21, 2011

This is a bug fix release, many done by Udo Borkowski. Download ST v4 here

* 	Major overhaul of template names: 
 * 	'/' allowed as starting ID letter like </a/b()>
 * 	getInstanceOf names must be fully qualified. If you don't put / on
front, one is added for you.
 * 	template refs in expr are relative to location of surrounding template
unless prefixed with /. In that case they are relative to root of group.
 * 	import statement no longer allows fully qualified file name.
 * 	Changed all unit tests to use fully qualified names and see results that way.
 * 	Also note that import statement no longer interprets fully qualified path to location on disk. A fully qualified path is now interpreted as relative to group root to be consistent.

* 	{} wasn't allowed as a template
* 	STGroup.unload() calls unload() on each group in the imports list
instead of clearing the list. (Thanks to Sam...wait, did Udo already
try this?)
* 	STRuntimeMessage got NPE upon ST.impl == null
* 	ctor ST() is protected; not for users. bad users!
* 	Removed warning (access static member through instance)
* 	Fixed and added tests
* 	Fixed test case for <\n> to handle different line.separator sizes
* 	BUG: On Windows wrapped lines are separated with \r\r\n
* 	made tests run on Windows and non-US locales
* 	STGroupDir.load(String name) no longer checks for (parent) group file when name specifies no parent (no '/')
* 	unload in STGroup now also unloads the import relationships
* 	Fixed test testRendererWithPredefinedFormat2 to also work in non-PDT timezones
* 	Fixed tests testArg1, testArg2 in TestGroupSyntaxErrors
* 	Fixed "URI is not hierarchical" issue when STGroupFile is imported from jar file
* 	Added getTemplateNames to STGroup
* 	passthru() didn't watch for empty formal args
* 	fixed bug raising a NullPointerException when a formalArg's default value has a syntax error.
Example: main(a={(<"")>}) ::= ""
* 	STGroupFile.getName() returns group name also for imported groups (was null before).

