BeTcl: Tcl for BeOS
This page contains my attempts to port Tcl to BeOS. Both a simple Posix-based port and a BeOS-native port are presented. Please let me know if you have any questions or comments.
The Quick Posixie Port
Tcl can be ported to BeOS as if BeOS was Unix.
Download: betcl8.3.0.tar.gz (2.9 MB - PPC and x86)
The archive contains the source code and binaries for PPC and x86. The source is derived from the Tcl 8.3.0 release with the minimal changes added to get tclsh running under the BeOS Posix-emulation system. The following patch file describes the changes in detail: betcl8.3.0.patch
The builds were performed in the betcl8.3.0/unix folder under BeOS PPC 4.5. The binaries reside in the same folder with the names tclsh-PPC tclsh-x86.
Note that this release is not complete or correct, since many tests fail. See the test suite output for a list of which tests fail. Many of the failures are related to tilde expansion for user home directories, which is a minor posix-emulation issue.
Several tests cause hangs because they involve fileevents on file channels which are not supported by BeOS's sockets-only select() call. These tests are not run, but are listed at the end of the output.
The Slow Native Port
Tcl can also be ported to BeOS using the native BeOS API. This is a work-in-progress.
Download: nbetcl8.3.0-2000-3-8.tgz (3.4 MB - PPC only)
The archive contains the source code and binaries for PPC. The source is derived from the Posix BeTcl 8.3.0 release (see above).
The builds were performed in the nbetcl8.3.0/be folder under BeOS PPC 4.5. Currently the BeIDE is used to build the binaries - the makefile is only used for reference at the moment.
This release is simply a snap-shot of the native port. Only a small fraction of the platform specific code has been converted - the bulk of it is still the unix code.
The following changes have been made:
- The command "info nameofexecutable" now uses the Kernal API to determine the executable path.
- The native encoding is now set to utf-8.
- Tcl extension loading is now implemented. Examples can be found in the dltest directory.