Ptolemy 0.7.2devel Release Notes

  • Main Ptolemy 0.7.2 Page
  • http://ptolemy.eecs.berkeley.edu/pt0.7.2/ptolemy0.7.2/html/ contains a list of bugs and other issues found after the release.
  • Release notes

  • Changes between 0.7.1p1 and 0.7.2devel
  • 0.7.1 and 0.7.2devel Compatibility
  • EGCS and GCC-2.8
  • Pxgraph
  • Ptcl with Tk
  • Detailed list of changes
  • Changes between 0.7.1p1 and 0.7.2devel

    The 0.7.2devel release includes changes for the Adaptive Computing System domain developed by Eric Pauer's group at Sanders, A Lockheed-Martin Corporatio.

    This release also provides support for Itcl3.0.1/Tcl8.0.4/Tk8.0.4. Ptolemy 0.7.1p1 used Itcl2.2/Tcl7.6/Tk4.2.

    Most of the Itcl 3.0 changes are in Tycho.

    In addition, Ptolemy 0.7.2devel provides better support for the NT platform.

  • Changes to the FSM domain to support the valued FSM syntax (Bilung Lee)
  • Pxgraph has been upgraded to Ptplot 2.0, which includes support for the AWT 1.1 event model and many code cleanups.
  • The GNU tools have been upgraded to
    gcc-2.95.1
    make-3.77
  • The HP only GNU tools have been upgraded to:
    binutils-2.9.1
    bison-1.28
    flex-2.5.4
  • Windows NT4.0 support is more complete, 0.7.2devel support building under Cygwin32 b20.1 See $PTOLEMY/doc/html/nt or http://ptolemy.eecs.berkeley.edu/~cxh/ptpub/nt/index.html
  • Microsoft Visual C++ 6.0 can be used to compile ptcl.ptiny, which includes most of the SDF and DE domains. This port is included for demonstration purposes only. In theory, it should be possible to compile all of Ptolemy under MSVC++ 6.0, though we have not tried. See $PTOLEMY/mk/config-nt4.vc.mk.vc
  • 0.7.1 and 0.7.2devel Compatibility

  • The NT platform has problems with filenames that contain % and files or directories named gcong. As a result, we had to rename several directories under $PTOLEMY/lib and then run gptfixtreeg on the entire Ptolemy tree to adjust for these changes. If you have any custom Ptolemy facets, you will need to run $PTOLEMY/bin/ptfixtree on your facets so that your facets will be able to find the newly renamed files.
    The script $PTOLEMY/bin/fixntpaths is what we used to rename the files. $PTOLEMY/bin/ptfixtree.tcl was modifies so that the changes we made are automatically loaded.
  • A major feature of Ptolemy 0.7.2devel is that Itcl was upgraded from Itcl 2.2 to Itcl3.0. Any stars that use Tcl or Tk will definitely need to be recompiled.
    We are not that confident of the Tycho part of the port to Tcl8.0. The main problem seems to be in menu traversals, though there are problems with search and replace as well. It is usable with Ptolemy, but it is not very polished. This could present a problem to you, depending on how much you are using Tycho in your product. You might be better off sticking with Itcl2.2
    Between Itcl2.2 and Itcl3.0, the directory structure changed, so I've made changes to 0.7.2devel to reflect that change. The biggest changes are that
    $PTOLEMY/tcltk/itcl is now $PTOLEMY/tcltk/tcl $PTOLEMY/tcltk/tcl.$PTARCH is now $PTOLEMY/tcltk/tcl.$PTARCH
    The location of the libraries in the subdirectories has also changed.
    As a result, many of the scripts in $PTOLEMY/bin and the makefiles in $PTOLEMY/mk have changed.
    We could have probably forced Itcl3.0 to install in the same directories as Itcl2.2, but it would have required rewriting some of the makefiles that ship with Itcl/Tcl/Tk.
    There were a few changes in the code itself, but we left those #defined so that Itcl2.2 should be usable without too many changes.
    The version of Tycho that is shipped with 0.7.2devel is not at all backward compatible with Itcl2.2. To use Itcl2.2, it would be best to drop in the version of Tycho that shipped with Ptolemy 0.7.1p1
  • Ptolemy 0.7.2devel also includes an upgrade of the compiler from egcs-1.0.2 to gcc-2.95.1 In general, .o files built under Ptolemy 0.7 will need to be recompiled for use with Ptolemy 0.7.2deel
  • The Synchronous Reactive Itcl stars have been removed in 0.7.2devel. The problem is that the changes to Itcl are sufficiently complex that a complete rewrite of these stars would be necessary.
  • gcc-2.8 and gcc-2.95.1

    Ptolemy 0.7.2devel should compile with gcc-2.7.2.2, but the default compiler we build the binaries with is gcc-2.95.1

    Note that under gcc-2.8.2, compiling with -O -fPIC causes an internal compiler error when compiling Block.cc, so we are shipping with gcc-2.95.1

    For more information about egcs, see http:/egcs.cygnus.com.

    The most common problem with using egcs is that libg++ is no longer used, so certain include files, such as std.h are not found at compile time and certain symbols, such as ACG::ACG(unsigned int, int) are missing at link time.

    Usually, doing a make clean; make install will solve the problem.

    The way we work around this is by defining -DPT_EGCS in config-egcs.mk and then including that makefile in the config-$PTARCH.mk file instead of config-g++.mk.

    Note that egcs does not need libg++, so the SYSLIBS makefile variable is set to not include -lg++

    Ptcl with Tk

    Olaf Lenzmann provided patches to Ptolemy that allow ptcl to be used with Tk. This functionality is experimental, and primarily for use with the Microsoft Visual C++ port.
    1. Recompile src/kernel/Star.cc so that the Tk event loop is called from within Star::run()
      cd $PTOLEMY/obj.$PTARCH/kernel
      rm -f Star.o
      make USERFLAGS="-DPT_PTCL_WITH_TK -I$PTOLEMY/tcltk/tcl/include -I/usr/openwin/include" install
      
    2. Create the following override.mk file as $PTOLEMY/obj.$PTARCH/ptcl/override.mk
      # Override.mk file to create a Ptcl with Tk binary.
      # You may need to modify the /usr/openwin/include path
      # to point to your X11 include files
      GPP_FLAGS += -DPT_PTCL_WITH_TK -I../../src/ptklib -I$PTOLEMY/tcltk/tcl/include -I/usr/openwin/include"
      PTCL_WITH_TK = 1
      TK = 1
      # If you are building under Unix,
      # copy src/tcltk/tk8.0.5pt/generic/tkConsole.c to src/ptcl and then
      # uncomment the next two lines:
      #LIBS += tkConsole.o
      #LIBFILES += tkConsole.o
      
    3. Rebuild ptcl
      cd $PTOLEMY/obj.$PTARCH/ptcl
      make clean
      make
      

    Pxgraph

    Pxgraph has been converted to Java. See the troubleshooting guide at. $PTOLEMY/tycho/java/ptolemy/plot/doc/internals/troubleshooting.html If you don't have Java, see ftp://ptolemy.eecs.berkeley.edu/pub/misc/xgraph/index.html for pxgraph X11 binaries and sources. See $PTOLEMY/src/pxgraph/README.txt for details.

    To run the Java version of pxgraph, you must do one of the following:

    1. Set the JAVAHOME environment variable to point to the directory where the Java Development Kit is installed. For example, your .cshrc might contain
      setenv JAVAHOME /opt/jdk1.1.7B
      
    2. If you do not set JAVAHOME, then the pxgraph script will search your path for the javac binary. If javac is found, then the directory above it is used for the value of JAVAHOME
    3. You can also edit $PTOLEMY/bin/pxgraph directly and adjust the JAVADEFAULT variable.

    Detailed list of changes

    Below we discuss the various changes that were made between 0.7.1p1 and 0.7.2devel before 2/6/99. For changes after 2/6/99, see $PTOLEMY/ChangeLog.

    Changes present in the 0.7.2devel src tar file made before 2/6/99

    	* .cshrc
    	* ptolemy.faq:
    	Updated for this patch
    	
    	* makefile:
    	Added ntbuild rule that builds everything but xv and the GNU tools
    
    	* bin/checkextra:
    	Fix for long files.
    	
    	* bin/fixntpaths:
    	Script to fix % chars and other problems in pathnames so
    	that Ptolemy works under NT.
    
    	* bin/g++-setup
    	egcs version change and Itcl3.0 upgrade.
    	
    	* bin/mkarch
    	Removed this /bin/csh script which was only called from
    	MAKEARCH
    
    	* bin/ptarch
    	Return sol7 if we are on a Solaris 7 machine (untested)
    
    	* bin/ptfixtree.tcl
    	Added catch around calls to octls.
    	Added pftPreLoadMap proc that preloads the conversion map
    
    	* bin/mkPtolemyTree:
    	Fixed itclsh path (Brian Evans)
    
    	* bin/installColors
    	bin/optfir
    	bin/masters
    	bin/pattache
    	bin/ptgdb
    	bin/ptcl
    	bin/xwdtogif
    	bin/wfir
    	bin/ptfixtree
    	bin/esterel2pl
    	nt4: Converted from /bin/csh to /bin/sh scripts
    
    	* mk/compile.mk:
    	Updated optimization error message
    	Added .obj .dll .lib to files removed by make clean
    		
    	* mk/config-alpha.mk:
    	Don't include Matlab and Mathematica
    	
    	* mk/config-default.mk:
    	Itcl3.0 upgrade
    	Added OBJSUFFIX variable for use with nt4.vc
    	
    	* mk/config-g++.shared.mk:
    	* mk/config-hppa.cfront.mk:
    	* mk/config-irix5.cfront.mk:
    	* mk/config-irix6.cfront.mk:
    	* mk/config-sol2.cfront.mk:
    	* mk/config-sun4.mk:
    	Itcl3.0 upgrade
    	
    	* mk/config-linux.debug.mk:
    	Now debug version will be built with
    	DLLs otherwise statically linked debug binaries produced with
    	egcs will occupy 1.2GB (!) disk space. This is ten (!) times
    	more than with good old gcc-2.7.2.3. I regard this as an egcs
    	bug. (Wolfgang Reimer)
    
    	* mk/config-linux.mk:
    	Lots of changes (Wolfgang Reimer)
    		
    	* mk/config-sol7.mk:
    	Untested initial cut at Support for Solaris 7.
    	
    	* mk/config-nt4.mk:
    	Support for Itcl3.0 and Cygwin b20 (Christopher Hylands)
    
    	* mk/config-nt4.vc.mk.vc:
    	* mk/matlab.mk.vc
    	* mk/common.mk.vc
    	* mk/compile.mk.vc
    	* mk/config-default.mk.vc
    	* mk/stars.mk.vc
    	Support for Itcl3.0 and MSVC++ 6.0
    	Currently, only ptcl.ptiny compiles.  (Christopher Hylands)
    	
    	* mk/ptbin.mk:
    	* mk/ptbin.mk.vc:
    	Set version number to 0.7.2devel
    	
    	* mk/stars.mk:
    	Added SiP (SPIN in Ptolemy), which is a protocol simulator
    	by Shang-Pin Chang
    	Fixes for ptclInvokeInterp
    
    	* mk/tycho.mk:
    	Itcl3.0 changes		
    
    	* mk/tycho.mk:
    	Various minor Java changes
    
    	* mk/tydir.mk:
    	Added rules to run Java code coverage tools		
    	
    	* mk/scratch-srcs.mk:
    	xv_install:  HPUX strip will fail if we have already stripped
    	
    	* src/domains/bdf/stars/BNFNot.pl:
    	nt4.vc: Modified << statement to avoid
    	ambigous << operator complaints (Olaf Lenzmann)
    
    	* src/domains/cgc/tcltk/lib/ptolemy-cgc.tcl:
    	* src/domains/sdf/targets/CompileTarget.cc
    	Updated for Tcl8.0/Tk8.0/Itcl3.0
    
    	* src/domains/cgc/tcltk/lib/CGCTychoTarget.cc:
    	Itcl3.0: frameCode should call initProcedure such that the new
    	tcl proc we are registering ends up in the ::tycho namespace
    	
    	* demo/whats_new/whats_new0.7.1/newwork.html:
    	minor C50 text change
    	
    	* lib/Vem
    	* lib/Vem-8.1
    	* lib/Vem-8.2
    	These files are not shipped with 0.7.2devel because the
    	lib/Vem file was interfering with the lib/vem directory
    	when extracting under NT.		
    
    	* lib/makefile:
    	Split SCRIPT_SRCS off EXTRA_SRCS
    	If tech and technology do not exist, then create them by linking
    
    	* lib/oct2ps.pro:
    	Added 0 setgray in two places
    	
    	* lib/tcl/pigilib.tcl:
    	Itcl3.0
    	
    	* lib/tcl/ptk.rc:
    	New file for Ptcl with Tk. (Olaf Lenzmann)
    
    	* lib/tcl/ptkParams.tcl: (FIXME: check the log)
    	Fixed copyright
    	
    	* src/compat/ptolemy/compat.h
    	sol7: don't declare bind
    
    	* src/compat/cfront/ACG.h:
    	Added #defined(linux)
    	
    	* src/compat/cfront/Random.h:
    	Added #defined(linux)
    	nt4.vc: Include stdlib.h appropriately
    	nt4.vc: The problem was that the great MSVC's rand() function seems to
    	produce 16bit random numbers: this in turn produces an endless loop in
    	Normal.h:line 62. (Olaf Lenzmann)
    
    	* src/compat/nt.vc/sys/time.h:
    	nt4.vc: Problems compiling DERealTimeStar.cc
    	The fix is to redefine far as ptfar here.
    		
    	* src/domains/c50/dsp/stars/C50LMS.pl:
    	Added int i inside for loop
    
    	* src/domains/c50/dsp/stars/C50IIR.pl:
    	Declare int i outside for loop
    	
            * src/domains/c50/stars/C50ACos.pl:
    	src/domains/c50/stars/C50ASin.pl:
    	Generalized the star so that it can work with either the C50 DSK
    	or the C50 EVM (Brian Evans)
    
    	* src/domains/c50/stars/C50ReadFile.pl
            Removed the A_NOINIT attribute for the inVal state (Brian Evans)
    
            * src/domains/c50/stars/C50WrtFile.pl
    	Removed the A_NOINIT attribute for the outVal state (Brian Evans)
    
            src/domains/c50/dsp/stars/C50RaisedCosine.pl
    	Minor change: cast excessBW to double (Brian Evans)
    
    	* src/domains/fsm/kernel/FSMTarget.cc:
    	hppa.cfront: Moved 'int i' to top of initCode. Error was:
    	line 82: error: two declarations of i (1031)
    	
    	* src/domains/ddf/kernel/DDFWormhole.h:
    	* src/domains/ddf/kernel/DDFWormhole.cc:
    	New files (Bilung Lee)
    	
    	* src/domains/ddf/kernel/DDFDomain.cc:
    	include DDFWormhole.h, refer to DDFWormhole everywhere
    	
    	* src/domains/ddf/kernel/make.template:
    	Added DDFWormhole.cc
    	
    	* src/domains/de/contrib/stars/make.template:
    	Workaround EGCS optimizer error
    	
    	* src/domains/de/contrib/stars/DECIR_uldl.pl
    	hppa.cfront: Include iostream.h before iomanip.h
    
    	* src/domains/sdf/matrix/stars/SDFUnPkInt_M.pl
    	addStopSymbol and stopSymbol params added
    	
    	* src/domains/sdf/contrib/stars/SDFPipeOpen.pl:
    	nt4.vc: call _popen() and _pclose()
    	(Olaf Lenzmann)
    
    	* src/domains/sdf/kernel/SDFCluster.cc:
    	nt4.vc: near and far are reserved keywords
    	
    	* src/domains/sdf/kernel/make.template:
    	* src/domains/sdf/stars/make.template:	
    	* src/domains/sdf/dsp/stars/make.template:	
    	nt4.vc: Added DLLDEPS makefile variable so that we
    	can build .dlls		
    	
    	* src/domains/sr/kernel:
    	removed SRItclStar.h, it does not compile with Itcl3.0
    	* src/domains/sr/stars/make.template:
    	Removed SRItcl*.pl files and *.itcl files
    	* src/demos/rolodex:
    	Removed this Itcl demo, SRItcl stars don't work with Itcl3.0
    	
    	* src/domains/sr/stars/SRConst.pl:
    	Add functionality to emit constant in every "interval" instants. 
    	(Bilung Lee)
    	
    	* src/kernel/Display.cc:
    	If the system() call returns non-zero, print an error message
    	
    	* src/kernel/Display.cc:
    	#include stdio
    	
    	* src/kernel/PortHole.h
    	setPortIndices returns an int
    	
    	* src/kernel/Star.h
    	setStarIndices returns an int
    	
    	* src/kernel/State.h:
    	If PTNT is defined, then include errno.h
    	various methods are not void, they actually return an int
    	
    	* src/kernel/Linker.sysdep.h:
    	If PT_NT4VC is defined, then don't include dlcfn etc.
    	
    	* src/kernel/Message.cc
    	Add #include 
    	
    	* src/kernel/Star.cc
    	If PT_PTCL_WITH_TK is defined, then we call Tcl_DoOneEvent()
    	everytime a star is fired.  This is currently only used by the nt4.vc
    	port (Olaf Lenzmann)
    
    	* src/kernel/isa.h:
    	nt4.vc: ptcl starts up, but there are no commands
    	The fix is to edit isa.h and modify the quote macro to 
    	use the ansi cpp syntax:
    
    	* src/kernel/miscFuncs.h
    	nt4.vc: DERealTimeStar.cc fails to compile, the fix
    	The fix is to modify miscFuncs.h so that when we include
    	stdlib.h, we undef min and max
    
    	* src/kernel/miscFuncs.cc
    	Increase the size of the tempFileName buffer
    	nt4vc: Read the TEMP variable to determine what directory to use
    	(Olaf Lenzmann)
    
            * src/kernel/paths.cc:
    	ptcl.ptiny fails to start with messages about not being able
    	to find the binary.
    	The fix is to modify kernel/paths.cc so it searches for backslashes
    	under nt4.vc
    	However, a problem persists unless we call ptcl.ptiny.exe.
    	This is because pathSearch does not look for .exe files
    
    	* src/pxgraph/README.txt:
    	Added message about running the X11 pxgraph from the Java version
    	
     	* src/pxgraph/makefile:
    	Location of ptplot changed
    	
    	* src/pxgraph/pxgraph/configure.in:
    	nt4: Added /usr/X11R6.4 in two places.
    	
    	* src/pxgraph/pxgraph/install-sh
    	nt4: If the .exe file exists, use that instead. 
    
    	* src/pxgraph/pxgraph/makefile.in:
    	added rule for config.status
    
    
    	* src/pigilib/pigiMain.cc
    	If we are compiling under TK 8, then call Tcl_FindExecutable()
    	
    	* src/pigilib/POct.cc:
    	* src/pigilib/PVem.cc:
    	* src/pitcl/PITcl.cc:
    	* src/ptcl/PTcl.cc:
    	redefine #define ENTRY and #define ENTRY2 to fix warnings
    	(Wolfgang Reimer)
    	
    	* src/pigilib/local.h:
    	Mention OCT_EXTERN in comment
    	nt4: Fixes for % in pathnames.
    
    	* src/pigilib/octIfc.c
    	* src/pigilib/mkIcon.c
    	nt4: Fixes for % in pathnames.
    
    	* src/pigilib/pigiLoader.cc:
    	de stars may need sip files
    	
    	* src/pigilib/ptkConsoleWindow.cc:
    	Tcl8: deal with channels properly
    	
    	* src/pigilib/ptkTkSetup.c:
    	Itcl3: do the proper package initializations and import namespaces
    	
    	* src/pitcl/displayFile.c:
    	* src/ptcl/displayFile.c:
    	If Tk is not present, start up Tycho as a separate process
    	
    	* src/ptcl/PTcl.h
    	* src/ptcl/PTcl.cc
    	* src/ptcl/ptclAppInit.cc:
    	nt4.vc: Various changes for building ptcl with TK (Olaf Lenzmann)
    
    	* src/ptcl/ptclInit.cc:
    	* src/pitcl/ptclInit.cc:
    	Include unistd.h to pick ups isatty()
    	
    	* src/pitcl/make.template:
    	Use ITCLSH, moved ptclInvokeInterp.cc
    	
    	* src/ptcl/make.template:
    	Added ptclInvokeInterp.cc
    	
    	* src/ptklib/ptkPicture.c:
    	* src/ptklib/ptkPlot.c
    	Tk8.0 changes
    	
    	* src/ptklib/ptk.h:
    	nt4.vc: avoid unresolved symbol ptkInterp in HOFBaseHiOrderFun
    	(Olaf Lenzmann)
    
    	* src/ptlang/makefile:
    	Use $(YACC) instead of yacc.
    	Reported by Olaf Lenzmann 
    
    	* src/ptlang/ptlang.y: (FIXME: check log)
    	Added # line 1 "Foo.pl" directive after pragma code. (James Lindblad)
    	Don't read the PWD variable, not all shells have it set.
    	Use getcwd instead. (Wolfgang Reimer)
    	
    	* src/tysh/SigHandle.cc:
    	nt4: If SIGIOT is not defined, then use SIGABRT
    	* src/tysh/TyTcl.cc:
    	Tcl8.0 font change
    	redefine #define ENTRY and #define ENTRY2 to fix warnings
    

    Changes present in the pt0.7.devel other.src tar file

    	* src/octtools/include/ansi.h:
    	* src/octtools/include/errtrap.h:
    	* src/octtools/include/fang.h:
    	* src/octtools/include/harpoon.h:
    	* src/octtools/include/oct.h:
    	* src/octtools/include/oh.h:
    	* src/octtools/include/options.h:
    	* src/octtools/include/pep.h:
    	* src/octtools/include/rpc.h:
    	* src/octtools/include/st.h:
    	* src/octtools/include/symbolic.h:
    	* src/octtools/include/symlib.h:
    	* src/octtools/include/tap.h:
    	* src/octtools/include/th.h:
    	* src/octtools/include/timer.h:
    	* src/octtools/include/tr.h:
    	* src/octtools/include/uprintf.h:
    	* src/octtools/include/vov.h:
    	* src/octtools/Packages/oct/oct-big-id.h 
    	* src/octtools/Packages/oct/oct.h
    	* src/octtools/Packages/pep/pepint.h
    	* src/octtools/Packages/tr/tr.h
    	* src/octtools/Packages/utility/csystem.c
    	* src/octtools/Packages/utility/utility.h
    	* src/octtools/Xpackages/rpc/appNet.c
    	* src/octtools/vem/main/ansi.h
    	* src/octtools/vem/rpc/rpc.c
    	Change define of EXTERN to OCT_EXTERN for Tcl8.x
    	
    	* src/octtools/tkoct/top/tclMain.c:
    	Tcl8.0
    	* src/octtools/tkoct/top/memCore.c:
    	nt4: Added extern for end
    	
    	* src/octtools/tkoct/oct2ptcl/make.template:
    	nt4: use BINARY_EXT
    
    	* src/octtools/tkoct/oct2ptcl/oct2ptcl.c:
    	In Ptolemy 0.7.1 and earlier, some of the facets in
    	$PTOLEMY/lib/ptolemy had the % character in their names, which
    	causes no end of trouble under NT4.0 with Cygwin 20.1.
    	In Ptolemy 0.7.1 and later, we changed the name of these
    	files and substituted in the string "percent" for the character
    	"%".
    
    	* src/octtools/vem/utility/colors.c:
    	vuWhite(): Don't call WhitePixel here, instead, get the color
    	by name. The value for WhitePixel apparently is the value for
    	the default colormap.  If we have a TrueColor map, then the
    	value of WhitePixel will be out of range if we use it with
    	a PseudoColor map
    
    	* src/octtools/lib/make.template:
    	Don't install the 'Vem' file, we don't use it anyway, and it
    	causes problems when extracting the tar files under NT
    
    

    Changes to the pt0.7.2devel gnu.src tar file

    	* Upgrades
    	binutils-2.8.1 -> binutils-2.9.1 (Used only under HPUX)
    	egcs-1.0.2 -> egcs-1.1.1
    	make-3.76.1 -> make-3.77
    	
    	* src/gnu/README:
    	Updated version numbers
    	
    	* src/gnu/makefile:
    	GCC_VERSION updated for egcs1.1