Welcome to Newton Toolkit 1.6 NTK 1.6 provides the following new functionality: ¥ PowerPC-native. NTK is a fat file and will work on either 68K or PPC machines. ¥ Support for both the Newton 1.0 and 2.0 platforms. ¥ Debugging tools to help you debug your Newton applications. ¥ Memory tools to help you analyze your heap usage. Differences between NTK 1.5.1 and NTK 1.6 Constant and locals with the same name generate an error in NTK 1.6. NTK 1.5.1 allowed a constant and a local visible in the same scope to have the same name, although the local was not accessible because all occurrences of the name were treated as references to the constant. Limitations and Restrictions in NTK 1.6 The largest package that you can build with NTK 1.6 is 16 megabytes. The following global constant names are reserved by NTK 1.6: extras i one p partFrame rFrame NTK 1.6 memory usage For a detailed description of how to determine the best main heap and build heap sizes, read the "Q&A's Newton 2.0" document found in the "Newton Developer CD #8" folder. Known NTK 1.6 bugs The "Use stepChildren" preference must be checked. Unchecking it is only used by the Newton software group to build the Newton ROMs. Unchecking it will result in your package not being able to be loaded. The following is not a bug although it has confused some people. Several project preferences remain checked even though they are grayed out. For instance, if "Newton 2.0 Platform Only" is unchecked the "Faster Functions (2.0 only)" will be grayed out even though it may be checked. The names of functions which were compiled for profiling do not appear in a stack trace. This is true regardless of whether or not a profiling run is in progress at the time. NTK may crash when trying to compile NewtonScript code containing very large if-then-else statements. NTK 1.6 is more likely to suffer than 1.5.1 due to new compiler code which nests deeper while parsing if-then-else statements, causing the stack to overflow into the application heap. The problem and several suggested workarounds are described in the "Q&A's Newton 2.0" document. The serial connection between NTK and the Newton times out in 30 seconds if the connection is broken. Under the same circumstances AppleTalk will take 2 minutes to time out. While this is not really a bug, most people give up after about 45 seconds and reboot. NTK will display a "Disk is full" error message when trying to write to a write-protected volume. Clicking on the "Stop On Throws" button in the Inspector does not give any feedback that it is in effect. In other words, the button doesn't change to say "Go on Throws". You should not print to the Inspector from a viewQuitScript. If the print happens while NTK is downloading a newer version of the package then the Newton can hang. Moving a layout window between two monitors with different bit depths can cause the layout window to display improperly. Known NTK 1.6 native compiler bugs If the right-hand side of an assignment to an int-typed variable is one of the following, the compiler will signal "Expected array, integer, or symbol, got NIL": - A complex frame accessor ("a.(b).c") - A conditional send ("a:?msg()") - A conditional loop expression (while, repeat, for, or foreach) Workaround: Assign to a temporary untyped variable, then assign that to the int-typed variable. Loops containing no effective statements compile incorrectly and may crash the compiler. (This sort of code is very unlikely to appear in a real program!) Examples: func native () loop nil func native () begin local x := 1; loop 1; 2; end; end Known Newton 2.0 ROM bugs Throwing an |evt.ex.msg| exception causes 8 bytes of NewtonScript heap space to be lost.