BUG/PROBLEM REPORTS This file is http://www.cs.bham.ac.uk/research/poplog/bugfixes/BUGREPORTS or ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/BUGREPORTS Maintained by Aaron Sloman. http://www.cs.bham.ac.uk/~axs/ NOTE TO USERS: If you have a bug report please post it to the comp.lang.pop news group and to pop-forum AT cs.bham.ac.uk Please be as specific as possible when you report a problem: Specify version of poplog, machine, operating system, what you did (give code rather than simply describing it, if possible), what should have happened, what actually happened, etc. If possible show actual print out. (Select and paste into your message.) Alternatively save the information in a web page and provide a link to it. Do not expect your helpers to be mind-readers. Thank you! ======================================================================= BUGREPORTS Note: this file and other files in this directory are included in http://www.cs.bham.ac.uk/research/projects/poplog/bugfixes/poplog-bugfixes.tar.gz NOTE: 21 Jun 2009 In recent versions of poplog, i.e. version 15.63 and later, there are 'change lists' included, e.g. $usepop/CHANGES.txt Changes, apart from changes in the packages in $usepop/pop/packages $usepop/CHANGES-PACKAGES.txt Other changes Also available on the web: http://www.cs.bham.ac.uk/research/projects/poplog/latest-poplog/CHANGES.txt http://www.cs.bham.ac.uk/research/projects/poplog/latest-poplog/CHANGES-PACKAGES.txt All major system bugs and fixes are listed below (at least that is the intention.) Small changes to libraries and documentation, are listed in the above two files, and may or may not be mentioned here. ======================================================================= Entries are listed latest first. CONTENTS -- 72. 7 Aug 2009 Bug in LIB SUPER (superdatabase) -- 71. 7 Aug 2009 Bug in Ved/XVed handling of syntactic errors -- 70. 20 Feb 2009 Bug in updater of sunrasterfile for linux fixed -- 69. 04 Dec 2008 Poplog version 15.62: startup problems fixed -- 68. 07 Feb 2008 New Minor version number and Ved bug fixed -- 67. 01 Oct 2007 New Minor version number -- 66. 29 Sep 2007 New version of unix_dir.p -- 65. 11 Sep 2007 Further changes to startup scripts -- 64. 10 Sep 2007 Startup scripts in $usepop/bin needed fixing -- 63. 10 Sep 2007 Need to change 'sh' to 'bash' in $popsys/poplink_cmnd -- 62. (7 Jan 2007) Problems with latest version of Lesstif [Patch available] -- 61. (6 Jan 2007) Problems with latest version of Lesstif -- 60. (6 Jan 2007) mklibpop does not work in 32 bit poplog (problem fixed) -- 59. (6 Jan 2007) X Window (motif) bug remains in AMD64 Linux Poplog -- 58. (29 Mar 2006) Minor changes installed in v15.6 package -- -- 29 Mar 2006 (vedlockfile) -- -- 29 Mar 2006 (linking in popvision) -- -- 29 Mar 2006 (Added rc_get_coords_from to RCLIB) -- -- 29 Mar 2006 (Fixed REF objectclass) -- -- 1 Jan 2006 tidying up -- 57. (11 Jul 2005) vedmail package -- 56. (27 Jun 2005) Varargs problem in $popexternlib [NOW FIXED] -- 55. (27 Jun 2005) Varargs problem in Xpw sources -- 54. (23 Feb 2005) Removed restrictions for Lesstif -- 53. (20 Feb 2005) New installation script for V15.6 -- 52. (12 Feb 2005) Check for too many lvars introduced -- 51. (18 Jan 2005) Trial version of Poplog v15.6 installed -- 50. (16 Jan 2005) popuseslist extended and packages introduced -- 49. (16 Jan 2005) problem with vedscreendown fixed -- 48. (13 Jan 2005) pattern_instance recommended to replace instance -- 47. (12 Jan 2005) ved_indexify presupposes ved_g -- 46. (11 Jan 2005) vedgenshell changed to enable ved_tcsh to work on linux -- 45. (6 Jan 2005) Bug accessing external procedures in Linux Poplog -- 44. (4 Jan 2005) Fixes to poplog linking process -- 43. (3 Jan 2005) Bug in LIB make_indexes used by $popcom/makeindexes -- 42. (1 Jan 2005) Problem getting single float results from Fortran -- 41. (1 Jan 2005) Script for checking linux system before installation -- 40. (1 Jan 2005) Fixes to Ved, XVed and Ved documentation -- 39. (1 Jan 2005) Pop11 compiler bug optimised conditions wrongly -- 38. (1 Jan 2005) sysfileok loses information in file names -- 37. (1 Jan 2005) Default popmemlim increased -- 36. (1 Jan 2005) Function keys not working in XVed in linux poplog -- 35. (1 Jan 2005) External symbols not accessible in linux poplog -- 34. (1 Jan 2005) 'errno' no longer supported -- causes unix_sockets problem -- 33. (19 Feb 2004) Serious memory bug in RCLIB -- 32. (18 Feb 2004) Bug in current_directory under Linux (and Unix?) -- 31. (3 Jan 2004) Bug in REF POPCOMPILE/pop11_comp_expr_seq_to -- 30. (9 Mar 2003) Problem with pdnargs in objectclass updater methods -- 29. (7 Jan 2003) Array subscript out of bounds crashes poplog in PC poplog -- -- WARNING: not fixed in Windows Poplog -- 28. (28 Nov 2002) Objectclass wrappers do not work as expected (part 2) -- 27. (4 Oct 2002) Objectclass wrappers do not work as expected -- 26. (9 May 2001) Missing motif library on linux (libXm.so) -- 25. (9 May 2001) Problem running Ved without X on linux (console) -- 24. (23 Jan 2001) Monika Sester & Peter Buchlovsky: libtermcap.so.2 missing -- -- NOTE Termcap not used Since 15 Mar 2004 -- 23. (16 Sep 2000) Robert Duncan and Aaron Sloman: systime on linux poplog -- 22. (31 Jan 2000) Rod Chapman and Aaron Sloman: Linking problem -- 21. (27 Dec 1999) Aaron Sloman: RCLIB problems with moving objects -- 20. (27 Dec 1999) Aaron Sloman: popvision works only in 8 bit colour -- 19. (10 Dec 1999) Aaron Sloman and Catriona Kennedy: Bug in sim_agent -- 18. (10 Dec 1999) Aaron Sloman: Lesstif Problems and RedHat 6.1 -- 17. (6 Nov 1999) Aaron Sloman and Julian Clinton: Lesstif Problems -- 16. (30 Oct 1999) Aaron Sloman: square slider bug fixed in rclib -- 15. (18 Oct 1999) David Young: bug fixed in popvision library -- 14. (1 Oct 1999) Aaron Sloman: problems with rcmenu library -- 13. (1 Oct 1999) Aaron Sloman: problem with popvision under linux -- 12. (19 Sep 1999) Aaron Sloman: problem with pipein under Linux -- 11. (6 Sep 1999) Aaron Sloman: out of date HELP files -- 10. (30 Aug 1999) Aaron Sloman: out of date TEACH PRIMER -- 9. (30 Aug 1999) Aaron Sloman: Bugfixes directory structure changed. -- 8. (27 Aug 1999) Aaron Sloman: Bug in LIB LOGIC -- 7. (27 Aug 1999) Aaron Sloman: LISP and OBJECTCLASS -- 6. (24 Aug 1999) Terry Dartnall and David Young: TEACH file bug -- 5. (28 Jul 1999) Aaron Sloman: identifier clash in LIB WINDOWS -- 5a. (12 Jul 1999) Aaron Sloman: pop/ved/src/vdwindows changed -- 4. There is a new compiler bug since Poplog Version 15.52. -- 3. System bug in PC Windows version of poplog -- 2. Installation of PC windows Poplog using Winzip fails. -- -- NEW FIX: 27 Jul 1999 -- 1. The library LIB int_parameters could cause a mishap ======================================================================= -- 72. 7 Aug 2009 Bug in LIB SUPER (superdatabase) Hakan Kjellerstrand reported a compilation error when trying to use LIB SUPER. ;;; MISHAP - ILLEGAL REDECLARATION OF LEXICAL IDENTIFIER ;;; INVOLVING: tmp_lvar_1 It turned out that this was a result of incorrect conversion of the library to use new virtual machine facilities, probably around 1989. The fix was simple: In the definitions of foreach and forevery, remove uses of sysVARS(x,0); after sysNEW_LVAR() -> x; -- 71. 7 Aug 2009 Bug in Ved/XVed handling of syntactic errors A problem with Ved's error handling has been fixed. At one point Ved was altered to print syntactic (compile time) errors only on the status line. To get round this a library newvederror was added, allowing syntactic errors to go into the current ved buffer. However subsequent changes in poplog caused that not to work properly -- it produced spurious mishaps. The following changes have now been made 1. $usepop/pop/com/mkstartup has been changed so that it no longer compiles newvederror. 2. The file $usepop/pop/ved/src/vddoit.p has been altered. A new global variable vederrs_on_status controls whether syntactic (compile time) error messages are put on the status line or in the output file when compiling from a ved buffer. The default is false, i.e. don't put error messages on the status line. The problem with messages on the status line is that they disappear as soon as you type anything. 3. The file vddevio.p has been altered. The updater of the active variable ved_chario_file accepts true as a value instead of causing an error. The file $usepop/pop/packages/vedutils/lib/newvederror.p has never worked properly and is to be withdrawn. Meanwhile it prints a warning message if compiled. -- 70. 20 Feb 2009 Bug in updater of sunrasterfile for linux fixed (Compare Bug 13 below) Jack Hollingworth, at Reading University wrote on 17 Feb 2009 The sunrasterfile support methods in the popvision package do not work properly when trying to write images in the Sun .ras format. The header is written incorrectly due to being generated by a bitcopy from an int-filled struct, which on little-endian systems will have the wrong byte order. He provided a patch, which, after some discussion on the poplog-dev mailing list was installed by A.Sloman, in $usepop/pop/packages/popvision/lib/sunrasterfile.p Available in recent versions of 32 bit and 64 bit Poplog v15.62 (64 bit version not tested) -- 69. 04 Dec 2008 Poplog version 15.62: startup problems fixed Problems were previously experienced concerned with running saved images as described in http://www.cs.bham.ac.uk/research/projects/poplog/freepoplog.html#sysctl Various users of Linux Poplog have found problems installing and running Poplog on Fedora Core 4, 5 and 6, CentOS 5, and other recent versions of Linux. The symptom may include pop11 or xved not starting at all or intermittently producing 'segmentation fault', 'access violation' or 'stack empty' errors. A partial, temporary solution, is mentioned in bug 65. 11 Sep 2007 Further changes to startup scripts this involved ensuring poplog is run using the prefix setarch i386 -R Thanks to changes to two files provided by Waldek Hebisch, the problem has been fixed: poplog now starts up in a way that makes invocation of setarch unnecessary. The two files are $popexternlib/c_core.c $popsrc/amain.s This change is indicated by a change of version number to v15.62 The fix has been installed only in 32 bit Linux poplog. See: http://www.cs.bham.ac.uk/research/projects/poplog/v15.62 Later it will be added to 64 bit poplog. -- 68. 07 Feb 2008 New Minor version number and Ved bug fixed Changed pop_internal_version to v15.6102 in $popsrc/initial.p Fixed bug in Searchlist_name(name) in $usepop/pop/ved/src/vdfiles.p Under some conditions a command to Ved to make it edit an existing file causes it to start a new file with the same name. The problem was that the length of a full path name was computed by adding the length of the directory name to the length of the file name. This was a bug. It should have been length of the directory name + 1 + the length of the file name That is because of the extra '/' between the two. -- 67. 01 Oct 2007 New Minor version number Tidied up $popsrc/unix-dir.p Changed pop_internal_version to v15.6101 in $popsrc/initial.p -- 66. 29 Sep 2007 New version of unix_dir.p Installed new version of $popsrc/unix_dir.p with changes provided by Waldek Hebisch to overcome problem accessing current directory reported in Bug 32 http://www.cs.bham.ac.uk/research/projects/poplog/bugfixes/BUGREPORTS 18th Feb 2004 Also rebuilt basepop11 and corepop in $popsys Cleaned up $usepop/pop/packages/com -- 65. 11 Sep 2007 Further changes to startup scripts Altered $usepop/INSTALL/poplog2.sh and $usepop/INSTALL/poplog2 (used to create $usepop/bin/poplog.sh and $usepop/bin/poplog, respectively) so that they do a more sensible check whether to use existing $poplib, find ~/Poplib or ~/poplib, or use ~ if home directory contains init.p or vedinit.p and otherwise default to $usepop/Poplib The scripts are also altered to test whether to use setarch or not to execute commands. -- 64. 10 Sep 2007 Startup scripts in $usepop/bin needed fixing When poplog is installed two scripts are created that include the installation path name $usepop/bin/poplog $usepop/bin/poplog.sh These are created from the scripts in $usepop/INSTALL/ The tests for setting $poplib were not sufficiently general and caused problems when Poplog v15.61 was installed at Sussex university. So now more comprehensive tests are included. If $poplib is set, that value is used If ~/Poplib exists, that is used for $poplib If ~/init.p or ~/vedinit.p exists, then ~ is used for $poplib Otherwise the default directory $usepop/Poplib is used -- 63. 10 Sep 2007 Need to change 'sh' to 'bash' in $popsys/poplink_cmnd It turns out that in some versions of linux (e.g. ubuntu?) /bin/sh and /bin/bash are different. So the syntax that was produced for the final test in $popsys/poplink_cmnd produced a syntax warning. To fix this $popsrc/syscomp/os_comms.p has been changed to generate 'bash' instead of 'sh' in the header. -- 62. (7 Jan 2007) Problems with latest version of Lesstif [Patch available] The problem described below of spurious warnings produced by Lesstif whenever an XVed or poplog graphic window is closed can be cured by fetching this 'patch' file and installing it on top of an installed version of Linux poplog V15.6 (32 bit): http://www.cs.bham.ac.uk/research/projects/poplog/bugfixes/v15.6a/pop-v15.6a.32bit.tar.gz (Approx 2.7 Mbytes) Untar it into $usepop, e.g. by doing cd /usr/local/poplog/v15.6 (or wherever you have installed it) then tar xfz ..../pop-v15.6a.32bit.tar.gz That will install the files, and also produce a list of the files installed, which is available on the web here http://www.cs.bham.ac.uk/research/projects/poplog/bugfixes/v15.6a/Files-Included-In-Patch-7-Jan-2007 After installation, rebuild saved images that you require: $popcom/mkstartup $popcom/mkxved $popcom/mkplog $popcom/mkclisp $popcom/mkpml $popcom/mkeliza $popcom/mkgblocks etc. -- 61. (6 Jan 2007) Problems with latest version of Lesstif Recent RedHat-based versions of linux no longer come with motif because of openmotif licencing issues. So only Lesstif is provided. This is causing various problems. In particular if poplog is linked with the version of Lesstif provided in Fedora Core 6, then whenever a window is closed (using mouse or program) this causes an apparently spurious warning message to be generated. This problem affects other software too, including the version of xpdf for FC6. After struggling to identify the problem in Poplog's X11 interface code and failing I found a work-around that suppresses the warning messages, which I shall install in V15.6a poplog. The problem is documented in here http://www.rahul.net/kenton/faqs/Motif-FAQ [typo fixed: the original had 'existant' instead of 'existent'] Subject: 298) What are these "non-existent passive grab" warnings? When I destroy certain widgets I get a stream of messages Warning: Attempt to remove non-existent passive grab Answer: They are meaningless, and you want to ignore them. Do this (from Kee Hinckley) by installing an XtWarning handler that explicitly looks for them and discards them: static void xtWarnCB(String message) { if (asi_strstr(message, "non-existant passive grab", TRUE)) return; ... They come from Xt, and (W. Scott Meeks): "it's something that the designers of Xt decided the toolkit should do. Unfortunately, Motif winds up putting passive grabs all over the place for the menu system. On the one hand, we want to remove all these grabs when menus get destroyed so that they don't leak memory; on the other hand, it's almost impossible to keep track of all the grabs, so we have a conservative strategy of ungrabbing any place where a grab could have been made and we don't explicitly know that there is no grab. The unfortunate side effect is the little passive grab warning messages. We're trying to clean these up where possible, but there are some new places where the warning is generated. Until we get this completely cleaned up (1.2 maybe), your best bet is probably to use a warning handler." I have found a work-around for poplog, and will install it in V15.6a and then describe it in an entry here. -- 60. (6 Jan 2007) mklibpop does not work in 32 bit poplog (problem fixed) This problem was reported below in --- 56. (27 Jun 2005) Varargs problem in $popexternlib A fix was provided by Waldek Hebisch at math.uni.wroc.pl as reported in http://mailman.cs.bham.ac.uk/archives/poplog-dev/2006q2/000034.html All that is required is to replace this file $usepop/pop/extern/lib/c_core.c with this one http://www.math.uni.wroc.pl/~hebisch/poplog/c_core.c This will be incorporated in version 15.6a of 32 bit poplog, soon to be released. (Waldek also suggests replacing some occurrences of 'int' with 'long' in pop_timer.c ) -- 59. (6 Jan 2007) X Window (motif) bug remains in AMD64 Linux Poplog The version of poplog available in http://www.cs.bham.ac.uk/research/projects/poplog/v15.6-amd64/ has been in use for some time and is very stable. There is one residual bug (as far as I know). If that version of poplog is linked with Motif then it is not possible to close a window using the mouse without terminating poplog. The windows can be closed by programs. This means that rc_graphic, rclib, and XVed windows cannot safely be closed using the mouse. Since that is a potentially disastrous, the current version of AMD64 poplog has been linked without motif. So XVed does not have menu buttons or a scroll bar (though alternative mechanisms are available in the RCLIB package). Users who wish to try linking with motif can follow the instructions in HELP NEWPOP (use the flag '-x=-xm' with the newpop command). -- 58. (29 Mar 2006) Minor changes installed in v15.6 package -- -- 29 Mar 2006 (vedlockfile) Altered ved_lockfile so that the revised version of discappend checks for locks only if given a string argument. -- -- 29 Mar 2006 (linking in popvision) Altered POPVISION: removed '-l' flag from exload commands straight_hough.p canny.p float_arrayprocs.p lapack.p This seemed to be needed to prevent the following warning in recent versions of linux ;;; Warning: can't open shared object /usr/lib/libm.so (Inappropriate ioctl for ;;; device) -- -- 29 Mar 2006 (Added rc_get_coords_from to RCLIB) Altered RCLIB. Added rc_get_coords_from to allow a method like rc_get_coords to be used without warping the mouse pointer. See HELP RCLIB/rc_get_coords_from -- -- 29 Mar 2006 (Fixed REF objectclass) Fixed documentation flaw in REF objectclass There were two entries for wrapper_kernel. One of them should have been labelled 'wrapper_invoker'. -- -- 1 Jan 2006 tidying up More minor tidying up of packages and a small change to rclib. See $usepop/pop/packages/rclib/help/rclib_news -- 57. (11 Jul 2005) vedmail package Slightly tidied up some of the code and documentation in pop/packages/vedmail -- 56. (27 Jun 2005) Varargs problem in $popexternlib [NOW FIXED] [Fix due to Waldek Hebisch] On newer versions of linux (e.g. fedora core 3) running the command $usepop/pop/extern/lib/mklibpop produces errors for these two files: $popexternlib/XtPoplog.c $popexternlib/c_core.c E.g. % mklibpop c_core.c:1450: error: conflicting types for 'malloc' c_core.c:1450: error: conflicting types for 'malloc' c_core.c:1644: error: conflicting types for 'calloc' c_core.c:1644: error: conflicting types for 'calloc' In file included from c_core.c:1996: /usr/lib/gcc/i386-redhat-linux/3.4.3/include/varargs.h:4:2: #error "GCC no longer implements ." /usr/lib/gcc/i386-redhat-linux/3.4.3/include/varargs.h:5:2: #error "Revise your code to use ." c_core.c:2002: error: syntax error before "va_dcl" c_core.c:2003: error: syntax error before '{' token c_core.c:2005: error: initializer element is not constant c_core.c:2007: error: syntax error before "argp" c_core.c:2007: warning: data definition has no type or storage class c_core.c:2009: warning: parameter names (without types) in function declaration c_core.c:2009: warning: data definition has no type or storage class c_core.c:2010: error: syntax error before '|=' token c_core.c:2042: error: syntax error before '&' token c_core.c:2042: warning: data definition has no type or storage class c_core.c:2045: warning: parameter names (without types) in function declaration c_core.c:2045: warning: data definition has no type or storage class c_core.c:2046: error: syntax error before '}' token c_core.c:2005: error: register name not specified for 'efdata' This seems to be related to the previous varargs problem, and has been mentioned by others. I don't know yet what the fix is, but hope to add one here, when others have informed me. -- 55. (27 Jun 2005) Varargs problem in Xpw sources Reported by Andreas Eder. Note by Aaron Sloman: The problem that the varargs construct in C is no longer supported, and old files using it were causing problems was originally reported to pop-forum/comp.lang.pop by Andreas Eder in November 2003. His proposed changes have ben incorporated for some time -- but I forgot to record that here. The fixed files are included here http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/x/Xpw with the originals in the old-versions subdirectory. Since November 2003, The fix has also been here, and in versions of Linux poplog: http://www.cs.bham.ac.uk/research/poplog/src/new/x/Xpw/Xpw.tar.gz 92772 bytes Andreas wrote to comp.lang.pop Date: Fri, 07 Nov 2003 22:11:52 +0100 Then I had to change some files in the pop/x/Xpw/ directory, since my gcc (version 3.3 20030226 (prerelease) (SuSE Linux)) no longer supports the use of varargs, but insists on using stdarg. diff Methods.h.orig Methods.h 18d17 < extern XpwMethodRet XpwCallMethod(); diff MethodsP.h.orig MethodsP.h 19c19 < #include /* all XpwCore widgets use varargs interface */ --- > #include /* all XpwCore widgets use stdarg interface #*/ diff CallMethod.c.orig CallMethod.c 190,193c190 < XpwMethodRet XpwCallMethod(gw, method_id, va_alist) < XpwCoreWidget gw; < XpwMethodID method_id; < va_dcl --- > XpwMethodRet XpwCallMethod(XpwCoreWidget gw, XpwMethodID method_id, ...) 216c213 < va_start(ap); --- > va_start(ap, method_id); With these changes everything went smoothly. -- 54. (23 Feb 2005) Removed restrictions for Lesstif Prompted by Jonathan Cunningham, undid changes in two files made in 1999 to make them work with Lesstif. Changes no longer needed. pop/x/pop/lib/Xm/xmTextWidget.p pop/x/pop/lib/Xm/xmTextFieldWidget.p -- 53. (20 Feb 2005) New installation script for V15.6 The first draft installation script for Linux Poplog Version 15.6 did not provide an option NOT to link the poplog executable and the man files to /usr/local/bin and /usr/local/man/man1 It has now been revised to allow a fourth optional argument, which can be 'links' or 'nolinks'. If not supplied it defaults to 'links'. -- 52. (12 Feb 2005) Check for too many lvars introduced Bug and Fix reported by Waldek Hebisch Currently Poplog can handle at most 255 lvars. However it seems that there is no check for the limit in the incremental compiler (there is a check in popc). This causes the lisp problem posted in comp.lang.pop by Andreas Franke in Jan 2005 Below a patch that implement the check: diff -u -r1.1.1.1 vm_conspdr.p --- src/vm_conspdr.p 10 Feb 2005 20:28:24 -0000 1.1.1.1 +++ src/vm_conspdr.p 12 Feb 2005 17:53:46 -0000 @@ -1177,6 +1177,9 @@ Incr_lab_refcount(asm_exit_lab); + if _Nframewords _gr _16:FF then + mishap(0, 'PROCEDURE STACK FRAME TOO LARGE'); + endif; ;;; first instruction creates stack frame on entry Cons_inst(I_CREATE_SF, 1) :: codelist -> codelist; The patched version of vm_conspdr.p is available http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/vm_conspdr.p -- 51. (18 Jan 2005) Trial version of Poplog v15.6 installed This is available here for linux+PC http://www.cs.bham.ac.uk/research/poplog/v15.6/ No further work will be done on Poplog version 15.53 At present Solaris Poplog is frozen at version 15.53, unless there is a demand for an update to v15.6 The file $usepop/pop/src/initial.p has been changed to reflect the new version. It can be found at http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/initial.p -- 50. (16 Jan 2005) popuseslist extended and packages introduced popuseslist has been extended to include $usepop/pop/packages/lib poppackageslist has been defined in $usepop/pop/lib/auto/poppackageslist.p poppackageslist added to popc_declare.ph in the same directory. All new files are in http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/lib/auto/ -- 49. (16 Jan 2005) problem with vedscreendown fixed At some point in the past the behaviour of vedscreendown near the end of a file changed to show as much as possible, instead of showing only the unread portion (plus last line previously visible). This can be very confusing, requiring searching through the new visible region to find the last line read. This is now fixed. The new file is http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/ved/src/vdmove.p and needs to be installed in $usepop/pop/ved/src/vdmove.p -- 48. (13 Jan 2005) pattern_instance recommended to replace instance This is because the old procedure in $usepop/pop/lib/auto/instance.p clashed with instance in objectclass, as did the source code for CLOS in lisp. See bug no 7. Newly commented instance and new procedure pattern_instance now available in http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/lib/auto/ -- 47. (12 Jan 2005) ved_indexify presupposes ved_g The 'ENTER indexify' command in Ved can cause problems if ved_g has not previously been compiled. So pop/lib/ved/ved_indexify.p has had uses ved_g added. -- 46. (11 Jan 2005) vedgenshell changed to enable ved_tcsh to work on linux For some reason vedgenshell invoked from ved_tcsh produces no output file if the flag -ce is used. So vedgenshell has been changed to use -c for tcsh on linux. The fixed version is in http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/lib/ved/vedgenshell.p This file will be moved from the bham $local directory into the main poplog tree. -- 45. (6 Jan 2005) Bug accessing external procedures in Linux Poplog Item 42 (1 Jan 2005) below mentions the problem of getting single float results from Fortran procedures. This turned out to be a more general problem, affecting external C programs also. It is now fixed thanks to help from Robert Duncan. The file $popsrc/syscomp/sysdefs_linux_elf.p which is linked to sysdefs.p on PC linux systems had to be changed replacing C_FLOAT_RESULT_SINGLE = true, with C_FLOAT_RESULT_SINGLE = false, That is because the file $popsrc/aextern.s returns all external floats as double. That cured the problem for external C programs. However the problem remained for external Fortran programs. This was fixed by changing the file $popsrc/fields.p to include the instruction FLWEAK Float_val_s_C -> fsv(FD_VAL_SPEC,fdesc) for linux on PC. The changed files are available here http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/syscomp/sysdefs_linux_elf.p http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/fields.p These changes, together with the fix to item 35 (1 Jan 2005) 'External symbols not accessible in linux poplog' seem to have removed all problems in the latest version of popvision, including the ARRPACK and LAPACK libraries. -- 44. (4 Jan 2005) Fixes to poplog linking process Previously there were two problems relating to the linking shell script generated by the newpop and pglink commands, namely: $popsys/poplink_cmnd namely 1. It was a shell script using 'csh', which is not available on all linux installations. 2. It installed file names with environment variables expanded, which stops the file being usable if poplog is relocated. Both problems are now fixed as a result of changing these files $popsys/pglink $popsrc/syscomp/os_comms.p $popsrc/syscomp/files.p $popsrc/syscomp/poplink_main.p Since the poplink_cmnd file is over-written whenever newpop or pglink is used to relink poplog, two re-usable versions are now provided to re-link poplog on systems with and without motif: $popsrc/poplink_cmnd.motif.sh $popsrc/poplink_cmnd.nomotif.sh At the same time these two files have been updated to reflect the fact that most installations now use motif version 3. $popcom/popenv $popcom/popenv.sh -- 43. (3 Jan 2005) Bug in LIB make_indexes used by $popcom/makeindexes If the poplog tree points out of itself to a large file system (e.g. via $poplocal/local, or if there is a loop in the tree, the make_indexes program can loop forever. Unfortunately this cannot be prevented by including a blocking directory in the list of paths to be ignored. I have noticed this bug in the past, but only recently found the cause. The make_indexes library can be given as one of its arguments a list of paths to skip. Unfortunately it uses a call of sys_file_match of the form sys_file_match( root dir_>< '/.../' dir_>< doc_type, '*', false, false ); and the '...' bit causes it to recurse without regard to whether one of the directories found is in the skip_paths list. There are two ways to fix this. One is to avoid the use of sys_file_match and handle the recursion explicitly. The other is to expand sys_file_match to allow it to be given a list of blocking pathnames, so that expanded versions of those pathnames will not be generated. The second is the more satisfactory solution. Perhaps someone will do this later. -- 42. (1 Jan 2005) Problem getting single float results from Fortran Some recent additions to the popvision library have revealed a problem invoking external fortran procedures that return single float results. The problem has been posted to comp.lang.pop/pop-forum and so far David Young, Jeff Best and Aaron Sloman have investigated without success. Still under investigation. [This turned out to be a more general problem, applicable also to external C programs.] -- 41. (1 Jan 2005) Script for checking linux system before installation So many people have been having problems because of reduced functionality linux installations (some even installed without gcc) that it seemed to be appropriate to provide a script to run prior to installation to report on missing features. If run as root it can install some missing symbolic links. The script is here: http://www.cs.bham.ac.uk/research/poplog/linux-cd/CHECK_LINUX_FACILITIES -- 40. (1 Jan 2005) Fixes to Ved, XVed and Ved documentation Some of these were installed during 2003. Now added here and in the pop/ subdirectory of this directory, for completeness. Programs: $usepop/pop/x/ved/src/xveddialogs.p Added new global variable vedquitpanel, default true. Make it false to suppress 'really quit' dialogue box, and use command line dialogue instead (as in ordinary Ved) $usepop/pop/x/ved/lib/vedxvedkeys.p Revised more systematic XVed key bindings, especially for Poplog on PC+Linux $usepop/pop/lib/ved/term/vedxtermkeys.p Revised more systematic Ved key bindings in Xterm window $usepop/pop/lib/ved/vedjoinline.p Joins current line with previous one without allowing vedbreak setting to cause line to wrap. Now mapped onto ESC+Del in Ved and XVed Documentation: $usepop/pop/help/vedxterm Explains how to get Ved working in an Xterm window $usepop/pop/help/vedxtermkeys Lists default key bindings for Ved working in Xterm window $usepop/pop/help/Xdefaults Describes changes to your .Xdefaults file required to make Ved work properly in an Xterm window $usepop/pop/x/ved/help/xvedkeys Describes new systematic XVed key bindings e.g. on PCs running linux -- 39. (1 Jan 2005) Pop11 compiler bug optimised conditions wrongly David Young reported this problem with pop11 conditions including "not" and "and" in September 2003. An example manifestation is: procedure(); not(111 or 222); goto l; l: endprocedure() ==> which printed ** 111 instead of ** The relevant VM code is PUSHQ 111 OR label_664 PUSHQ 222 label_664: CALL not GOTO l l: The bug was eventually fixed on the basis of analysis by Steve Leach and David Young, in October 2003, as reported in $popsrc/vm_conspdr.p Fixed bug in Optimise_conditions which caused a sequence of I_NOTs followed by an I_GOTO to be incorrectly ignored. This was manifested for example by if true then not(true or true) else endif leaving on the stack. The fix involves the variable _no_nots in the procedure Optimise_conditions. -- 38. (1 Jan 2005) sysfileok loses information in file names The application of sysfileok to a file name based on an environment variable always translated it to a fully specified path name E.g. sysfileok('$popexternlib/c_core.c') => ** /bham/common/com/packages/poplog/linux15.53f/pop/extern/lib/c_core.c Sometimes it is better to preserve the use of the environment variable, e.g. when generating re-usable scripts like $popsys/poplink_cmnd which should work no matter where poplog is installed. As a step towards this the files $popsrc/initial.p $popsrc/sysfileok.p have been altered to define a new variable pop_translate_envvars, which is true by default but can be made false to alter the behaviour of sysfileok. E.g. false -> pop_translate_envvars; sysfileok('$popexternlib/c_core.c') => ** $popexternlib/c_core.c [Warning do not leave that identifier permanently false as that can cause problems with file names handed to system calls.] It is intended to change the procedures in $popsrc/syscomp that generate $poplink_cmnd to make use of this, but that has not yet been done. [Now done. See entry 44] -- 37. (1 Jan 2005) Default popmemlim increased Many users have had problems because the default value of popmemlim was too low. The default has been fixed in $popsrc/getstore.p Previous default value was 3e5 (300,000 words) New default is 15e5 (1,500,000 words). Could probably be increased further. But it is easy for users to set in init.p -- 36. (1 Jan 2005) Function keys not working in XVed in linux poplog Various users have recently reported problems with function keys when using XVed in linux poplog. In particular the Arrow keys do not work and the keypad keys do not behave as expected. This turned out to be a result of the wrong version of vedinit.p somehow being installed in $poplocal/local/setup/Poplib/vedinit.p This caused the library vedsunxvedkeys to be loaded instead of vedxvedkeys. This has now been fixed. Users having problems with function keys in XVed should fetch and install http://www.cs.bham.ac.uk/research/poplog/setup/Poplib/vedinit.p -- 35. (1 Jan 2005) External symbols not accessible in linux poplog As reported on Comp Lang pop, some external libraries need to access symbols defined in other external libraries (e.g. lapack uses blas). This was not working in linux poplog. After help from David Young and Jeff Best this problem was fixed. Jeff Best wrote to pop-forum Date: Thu, 23 Dec 2004 11:18:11 .... there is a specific block for Linux/ELF to set the default dlopen() flags (to RTLD_LAZY). Provided the DLOPEN_FLAGS is defined, the remaining mechanisms should work. SunOS/Solaris uses RTLD_LAZY|RTLD_GLOBAL. This may lead to a behaviour difference. This led to a change in $popsrc/extern_symbols.p --- Aaron Sloman, 23 Dec 2004 With help from Jeff Best. Changed DLOPEN_FLAGS = 16:101; ;;; RTLD_LAZY|RTLD_GLOBAL for linux as for SunOS, in accordance with comments in /usr/include/bits/dlfcn.h That fixed the problem. The fix has been built into online poplog packages from 23rd December. Anyone who knows how to rebuild poplog can fetch the corrected file from here: http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/extern_symbols.p -- 34. (1 Jan 2005) 'errno' no longer supported -- causes unix_sockets problem In June 2003 people using poplog with RedHat 9 reported problems because the 'errno' facility is no longer supported on new versions of C libraries. With significant help from Waldek Hebisch I installed changes which designed to fix the problem, and asked for volunteer testers. The fixes have been included in linux poplog for over a year and have not caused any problems to be reported, except that the unix_sockets library package does not compile if the C 'errno' library is not available. The changes previously installed were as follows $usepop/pop/extern/lib/c_core.c The use of 'errno' which has been deprecated for some time is no longer supported. So the old use is simulated using these two procedures defined in $popexternlib/c_core.c (thanks to Waldek Hebisch): int get_libc_errno(void) int set_libc_errno(int x) These are accessed via a Pop11 active variable defined in $popsrc/errors.p and its updater: define active DO_ERRNO_VAL(); define updaterof active DO_ERRNO_VAL(_x); Changes were also required in $popsrc/unixdefs.ph This macro definition is no longer used lconstant macro _ERRNO = [_extern errno:data!(int)]; Instead it is defined thus, to invoke the new active variable or its updater: lconstant macro _ERRNO = [DO_ERRNO_VAL]; All these files are available online, with 'revision' notes added on 31st December 2004 http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/extern/lib/c_core.c http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/declare.ph http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/src/errors.p There is now a new version of the unix_sockets library which can be downloaded to replace the old one. It is here http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/lib/lib/unix_sockets.p This will shortly be included in a new version of the linux poplog package. -- 33. (19 Feb 2004) Serious memory bug in RCLIB As reported to pop-forum/comp.lang.pop Thanks to Brian Logan's help and patience (in Nottingham) I have found and fixed an obscure but very serious bug in the rclib extension of poplog which could cause memory corruption and lead to very obscure behaviour in a poplog process. The rclib package is used for menus, control panels and graphical interfaces, but the bug concerned only 'action' buttons. (I had used sys_grbg_closure in a *very* stupid place.) Anyone who has installed the Birmingham poplog packages on a private machine running unix or linux (windows poplog can't yet use graphics) should fetch: http://www.cs.bham.ac.uk/research/poplog/rclib.tar.gz 778120 bytes Feb 19 13:04 Untar this into $poplocal/local (it will overwrite the previous rclib which you can save first if you wish) then rebuild saved images by running required scripts: e.g. cd $poplocal/local/com mkstartup.local mkxved.local mkplog.local mkxvedpro mkclisp.local mkpml.local mkeliza.local See the file mkall.local for a longer list. Apologies for inconvenience. The new version of rclib has some other minor fixes and a lot of documentation updates in HELP RCLIB_NEWS, HELP RCLIB, HELP RC_BUTTONS. If you just want the memory bug fixed, remove the line containing sys_grbg_closure in rclib/lib/rc_buttons.p then rebuild saved images. Apologies to anyone who has been wasting time caused by buttons that lose their actions mysteriously as a result of this bug. Aaron -- 32. (18 Feb 2004) Bug in current_directory under Linux (and Unix?) [Fixed in No 66 Sept 2007.] Bug discovered by: Steve Leach Posting to poplog-dev: I'm trying to use Poplog on a shared machine on which the directory /home is executable but not readable. [/home] % ls -ald drwx--x--x 47 root root 4096 Feb 17 16:56 . However, there is a defect in the implementation of current_directory that prevents basepop11 from opening relative path names such as /home/steve/.bashrc An attempt to open a file such as this involves a walk up the directory hierarchy in order to determine a canonical path. At each step up the hierarchy the procedure Read_entry, which is implemented in terms of readdir, is used to search for a sub-directory with a matching inode. There are two errors in this implementation. Firstly, there is no guarantee that readdir can be applied to all super-directories - indeed this is a very bad assumption. Secondly, this will not generate the canonical path in the presence of hard links. The implementation is defined in $popsrc/unix_dir.p and the relevant procedure appears to be Get_curr_dir on line 155. The calls to Read_entry are on line 192 and 199. (Note that there are two different implementations of Read_entry distinguished by conditional compilation.) There are many situations under which this implementation bails out when the obvious implementation, which would use getcwd, would succeed. I regard it as an error to mishap in the pursuit of the "ultimate" canonical pathname rather than simply fallback to the more obvious approach. The procedure current_directory is central to the proper functioning of Poplog. It is employed by Sys_open (from $popsrc/sysopen.p) to produce absolute filenames for sysopen, for example. This completely disables core functionality such as Ved. To fix this problem, I suggest implementing an alternative version of Get_curr_dir that utilizes getcwd (see man 3 getcwd). Then modify both versions so that they take an extra flag indicating whether or not they are permitted to fail or should simply return . It would then be simple to provide an umbrella Get_curr_dir that tries both, only mishapping after having tried both. (The only catch to this proposal is that getcwd has an especially poor interface in view of memory handling. I would suggest passing in sysstring and bailing out if the path length is longer than that - it is only a fallback strategy.) -- Steve -- 31. (3 Jan 2004) Bug in REF POPCOMPILE/pop11_comp_expr_seq_to Reported by Steve Leach The documentation for "pop11_comp_expr_seq_to" reads as follows: pop11_comp_expr_seq_to(closer) -> found [procedure] Same as pop11_comp_stmnt_seq except that during compilation of ^^^^^^^^^^^^^^^^^^^^ The indicated name should, of course, be pop11_comp_expr_seq. Fixed version available in http://www.cs.bham.ac.uk/research/poplog/bugfixes/pop/ref/popcompile -- 30. (9 Mar 2003) Problem with pdnargs in objectclass updater methods Bug discovered by Dave Gurnell, Fixed by Steve Leach Symptom: Declare an objectclass method then its updater. The pdnargs of the method then is wrong: it has the pdnargs of the updater. This gets fixed as soon as you first run the method. However if before doing that you trace the method (See TEACH TRACE), the wrong pdnargs is used to check the number of parameters supplied to the traced method, and this causes a missing argument mishap. Cause: The way method updaters were compiled. Solution: Fixed by Steve Leach. See HELP OBJECTCLASS_NEWS, in fixed version, Objectclass 10202, available here http://www.cs.bham.ac.uk/research/poplog/src/new/objectclass-10202.tar.gz -- 29. (7 Jan 2003) Array subscript out of bounds crashes poplog in PC poplog Bug reported by Luc Beaudoin Many thanks to Chris Glur and Waldek Hebisch for pin-pointing the problem in $popsrc/aarith.s Recapitulation: Luc Beaudoin pointed out that on PC linux Poplog array out of bounds errors caused poplog to crash. (It turns out that I had reported the same problem in March 1991!) This should produce a mishap (INVALID ARRAY SUBSCRIPT) and then continue newarray([1 10])(11) => It worked on Solaris and Alpha Unix poplog, but crashed poplog on PC+linux poplog and also on PC+Windows poplog In an earlier message I traced the problem to $popsrc/aarith.s but did not know what exactly to look for. Chris located the suspect code and Waldek's answer told me exactly what to do to fix that file: > Date: 7 Jan 2003 16:19:42 GMT > Organization: Politechnika Wroclawska > > : when there are no subscript errors, _array_sub exits via the > : jmp *_PD_EXECUTE(%eax) > : ELSE it gets to: > : subl $4, %USP ;;; reveal the last index again > : call XC_LAB(weakref Sys$-Array$-Sub_error) > ^^^^ Waldek wrote: > jmp works OK > Aaron Sloman, Jan 7 2003 Replaced call XC_LAB(weakref Sys$-Array$-Sub_error) with jmp XC_LAB(weakref Sys$-Array$-Sub_error) To rebuild your PC+Linux poplog system, do the following (for which you may need root privileges if your system was installed as root): cd $popsrc edit aarith.s Change call XC_LAB(weakref Sys$-Array$-Sub_error) to jmp XC_LAB(weakref Sys$-Array$-Sub_error) Or copy the fixed version from http://www.cs.bham.ac.uk/research/poplog/src/master/S.pcunix/src/aarith.s Then in the same directory do the following (as instructed in http://www.cs.bham.ac.uk/research/poplog/sysdoc/rebuilding pgcomp aarith.s That will produce two new files aarith.o aarith.w Then rebuild the object archive in $usepop/pop/obj/src.olb $usepop/pop/obj/src.wlb as follows pglibr -r ../obj/ *.w You can then delete the .o file and the .w file. If you have the birmingham setup, temporarily rename this link: mv $usepop/pop/local $usepop/pop/local.temp Then relink poplog (See HELP NEWPOP) $popsrc/newpop -link -x=-xm -norsv (At this stage your pop11 command may not work if you have redefined it to use a local saved image. But you can always run basepop11). If you have the birmingham setup, then undo the above change mv $usepop/pop/local.temp $usepop/pop/local Then rebuild any local saved images, and you are done. E.g. if you have the Birmingham setup this is how to rebuild the local saved images: cd $poplocal/local/com # run a script to build the saved images in $usepop/templocalbin ./mkall.local This may take some time and will print out a lot of stuff, including some warning messages while compiling common lisp. You may prefer to redirect the output to a log file. Then, to install the new saved images do cd $usepop # get rid of local saved images rm -rf poplocalbin # install the new ones mv templocalbin poplocalbin If you have changed the locations of your saved images ($poplocalbin) you'll know enough to vary the above. In due course I shall rebuild the linux pc poplog systems with the fix installed. Thanks again for the help. I could not have sorted this out myself. -- -- WARNING: not fixed in Windows Poplog Now, all we need is for an expert user of windows poplog to edit the aarith.s file recompile it and fix the problem in windows poplog and give me back re-built versions of windows poplog (versions 15.5 and 15.53 if possible) to replace the versions here http://www.cs.bham.ac.uk/research/poplog/winpop/pop15-53.zip http://www.cs.bham.ac.uk/research/poplog/new/pcwin15.5.zip Aaron Sloman -- 28. (28 Nov 2002) Objectclass wrappers do not work as expected (part 2) Reported by Brian Logan Fix by Steve Leach The previously reported fix introduced a new problem. This is now fixed, and the new version is available here http://www.cs.bham.ac.uk/research/poplog/src/new/objectclass-10201.tar.gz 148914 bytes Dec 15 19:18 After fetching it - First remove or rename the existing objectclass directory $usepop/pop/lib/objectclass - Change directory to $usepop/pop/lib - untar the tar file gunzip -c ....../objectclass-10201.tar.gz | tar xf - or tar xf ....../objectclass-10201.tar.gz Then rebuild any saved images using objectclass (e.g. the bham saved images). You can browse the new version, including the news file, here: http://www.cs.bham.ac.uk/research/poplog/src/new/objectclass Unfortunately the news file is in the format of a ved file with Ved's special characters. So it will look a bit strange in a Web browser. The new version of objectclass has been installed in the versions of poplog packaged for linux and for solaris here: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html -- 27. (4 Oct 2002) Objectclass wrappers do not work as expected Reported by Brian Logan Fix by Steve Leach See above -- 26. (9 May 2001) Missing motif library on linux (libXm.so) Symptom: You try to start up pop11 linked for use with linux, then you get this message or something like it ;;; Warning: can't open shared object /usr/X11R6/lib/libXm.so ;;; (Inappropriate ioctl for device) Cause: when motif is installed some new version may be provided, instead of /usr/X11R6/lib/libXm.so e.g. /usr/X11R6/lib/libXm.so.2 or /usr/X11R6/lib/libXm.so.2.1 Solution: make the version required, i.e. /usr/X11R6/lib/libXm.so a symbolic link to the version you actually have. E.g. (as superuser) do something like: ln -s libXm.so.2 /usr/X11R6/lib/libXm.so or ln -s libXm.so.2.1 /usr/X11R6/lib/libXm.so Later this may be automated in a shell scripted provided for installing poplog. -- 25. (9 May 2001) Problem running Ved without X on linux (console) Reported by many users over recent months. The symptom is that when you start up Ved everything looks a mess and the text cursor may remain at the bottom of the window. The problem and two solutions are described here, thanks to Andrew Sayers: http://www.cs.bham.ac.uk/research/poplog/linuxterm/README or fetch this tiny package http://www.cs.bham.ac.uk/research/poplog/linuxterm.tar.gz -- 24. (23 Jan 2001) Monika Sester & Peter Buchlovsky: libtermcap.so.2 missing PROBLEM > "Monika Sester" writes: > > > however, the system is missing a library. > > libtermcap.so.2 > > > > any hint where to find it ? FIX Peter Buchlovsky writes: > I had the same problem on my debian system. It appears poplog was > linked against "libtermcap.so.2" instead of "libtermcap.so". The quick > fix that I applied was to symlink /usr/lib/libtermcap.so.2 to > /usr/lib/libtermcap.so -- -- NOTE Termcap not used Since 15 Mar 2004 The file $popsrc/termcap.p has been modified so that termcap is no longer used on linux systems. (Solution based on discussion in comp.lang.pop) -- 23. (16 Sep 2000) Robert Duncan and Aaron Sloman: systime on linux poplog [THIS FIX HAS BEEN IN THE LINUX POPLOG PACKAGES ON THIS WEB SITE FOR SOME TIME. So you do not need to carry out the following instructions. However the details have been left as an example of how to rebuild poplog after editing a source file.] PROBLEM Originally in Linux Poplog Version 15.53 the procedure systime() was giving the wrong times in linux+intel Poplog, namely times that were three times too high. This also affected other utilities, e.g. timediff, profile, etc. FIX Thanks to Robert Duncan at Sussex University the problem has been identified. This is what to do to fix it, assuming that you have set $usepop and have all the environment variables set as required to run Pop-11. First a precautionary measure to save a minor problem later on. See if you have the following circular link, and if so remove it /usr/local/poplog/local/local (This was inadvertently included by me in an old Poplog linux distribution.) Then: 1. cd $popsrc 2. Edit the file systime.p: in this line lconstant macro _SC_CLK_TCK = #_IF DEF HPUX or DEF ALPHA_LINUX _2 change the occurrence of "ALPHA_LINUX" to "LINUX" 2. compile the new version of systime.p, with this shell command: pgcomp systime.p This will create two new files (if pgcomp does not work see [*], below) systime.o systime.w 3. Archive the new version (if pglibr does not work see [*]) pglibr -r ../obj/src.wlb systime.w That will change these two archive library files: $popobjlib/src.olb $popobjlib/src.wlb 4. Delete the .o and .w files rm *.o *.w 5. Relink Poplog If you have motif, or lesstif installed give this command: $popsrc/newpop -norsv -x=-xm (If that causes error messages see [**] below) Otherwise, to relink without motif/lesstif: $popsrc/newpop -norsv The newpop command will rebuild various files in $popsys it will create saved images in $popsavelib and it will rebuild index files in many directories, including the subdirectories of $poplocal/local. If the latter contains a circular link it will go on indefinitely! [*] If you cannot run pgcomp, pglibr, or newpop, this may be because you have an old version of linux poplog, with files in $popsys dating back a long time. You can fetch this file to find out what to do http://www.cs.bham.ac.uk/research/poplog/tools/relinking.linux.poplog After fetching it, study it, then make it executable, and run it. It should rebuild a set of executables and saved images that can be used for pgcomp, pglibr, pglink and newpop. Then follow the above instructions. [**] If you are attempting to relink with motif/lesstif and everything works up to the point at which you run newpop, then it may be that you have to alter an environment variable that sets the motif version. Try this: echo $POP_XM_EXLIBS It may print out something like x=motif/1002: -L/usr/X11R6/lib -lXm -lXt -lXext -lX11 Where the item after the "/" represents the version. Try changing it to a different version, e.g. (using csh) setenv POP_XM_EXLIBS "x=motif/2001: -L/usr/X11R6/lib -lXm -lXt -lXext -lX11" (or the equivalent if you are using bash, or sh). Alternatively edit the files $popcom/popenv $popcom/popenv.sh and where XM_VER is defined as 1002 replace it with 2001 then re-source the file. After that newpop should link with motif successfully (it did for me with Open motif). NOTE: fixed versions of linux poplog have now been installed at the free Poplog site http://www.cs.bham.ac.uk/research/poplog/ -- 22. (31 Jan 2000) Rod Chapman and Aaron Sloman: Linking problem PROBLEM Rod Chapman reported to comp.lang.pop what others had discovered namely that it was not possible to re-link Poplog V15.53 using the newpop command or pglink on RedHat 6.1 FIX It is necessary to rebuild some of the saved images in $popsys before newpop will work. The process is described in detail in this file: http://www.cs.bham.ac.uk/research/poplog/sysdoc/rebuilding or ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/sysdoc/rebuilding -- 21. (27 Dec 1999) Aaron Sloman: RCLIB problems with moving objects PROBLEM The RCLIB package uses the xor or equiv graphical function to display objects which are supposed to be movable or removable. However, different algorithms are required for different ways of implementing colour. The library rc_setup_linefunction was designed to work out which mechanisms to use. However it did not work in all circumstances, e.g. where the display had more than 8 bits. FIX The library was extended to deal with all cases automatically on 27 Dec 1999, and the fix installed in the rclib package as rclib/auto/rc_setup_linefunction.p The new file can be fetched from http://www.cs.bham.ac.uk/research/poplog/rclib/auto/rc_setup_linefunction.p Note: if you were previously using rc_exceed this change makes it redundant and you should remove "uses rc_exceed" wherever you have been using. -- 20. (27 Dec 1999) Aaron Sloman: popvision works only in 8 bit colour PROBLEM Because of the way some of the procedures in the popvision library, e.g. rc_array, rc_image and rci_show, use colour maps they will not work with systems using colour displays with more than 8 bits. The error message is Unable to allocate colour map entries FIX If you wish to use the library, start up X in 8 bit mode. E.g. on linux machines startx -- -bpp 8 A better fix will be needed eventually! -- 19. (10 Dec 1999) Aaron Sloman and Catriona Kennedy: Bug in sim_agent PROBLEM A bug in version 5 of sim_agent (Summer 1999) was reported by Darryl Davis in November. The sim_scheduler procedure had been redesigned to cope with the new representation of rulesystems with each agent's databases, making self monitoring and self modification easier. Originally this had the consequence that if an agent had an empty sim_rulesystem list sim_run_agent would not be applied to it. That was a mistake and was fixed on 7th nov: even with an empty rulesystem the sim_run_agent method is applied. See HELP SIM_AGENT_NEWS Unfortunately this fix interacted badly with one of the new features introduced in version 5, namely interval specifications. This bug, reported by Catriona Kennedy was due to a dlocal expression sometimes being evaluated on exit from a procedure before one of the lvars used in it had been given a suitable value. FIX This was fixed on 6th December, by moving an assignment in the method sim_run_agent. The fixed version is in this file http://www.cs.bham.ac.uk/research/poplog/newkit/sim/lib/sim_agent.p ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/newkit/sim/lib/sim_agent.p and also in these saved images in the free poplog directory: newkit.tar.gz sim.tar.gz popextras.tar popcd.tar -- 18. (10 Dec 1999) Aaron Sloman: Lesstif Problems and RedHat 6.1 PROBLEM The fixes described below and already included in the version of linux poplog linked with motif from the FreePoplog site ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/freepoplog.html http://www.cs.bham.ac.uk/research/poplog/freepoplog.html i.e. this version: ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/new/linuxmotif1553.tar.gz http://www.cs.bham.ac.uk/research/poplog/new/linuxmotif1553.tar.gz Does not work with lesstif in combination with RedHat 61. However, all that is required is to rebuild the saved images after installation. FIX Install the new poplog and then do $usepop/pop/com/mkstartup $usepop/pop/com/makeimages and, if appropriate, $poplocal/local/com/makeimages We need a shell script (or "make" file) to handle this. WARNING: do not try to relink the linux+motif version. For some reason it doesn't work. Reason unknown as yet. -- 17. (6 Nov 1999) Aaron Sloman and Julian Clinton: Lesstif Problems PROBLEM Although Lesstif on linux provides most of Motif's facilities a few things are missing, which prevent the default Poplog motif configuration from working. FIX From: "Clinton, Julian" Date: Wed, 6 Oct 1999 14:50:05 +0100 In the past I've been able to link Linux Poplog against LessTif, the free Motif-lookalike library. There were 2-3 symbols to do with obscure Text/TextField functions that are not supported by LessTif. The symbols are referred to in xmTextWidget.p and xmTextFieldWidget.p in $usepop/pop/x/pop/lib/Xm - the lines containing the offending symbols needed to be commented out. Once that was done, it was a pretty usable system. From: "Clinton, Julian" Date: Thu, 7 Oct 1999 13:29:55 +0100 [AS] > But I've now found that some things don't work. E.g. trying to use > the "File" menu in Xved to select "open" should have invoked a file > browser. Instead I got: > > ;;; MISHAP - (LIVE) Widget NEEDED > ;;; INVOLVING: In $usepop/pop/x/ui/lib/ S-poplog_uiS-filetool_xm.p I think the problematic code is: if buffer then ;;; show buffer name XtVaSetValues(XtNameToWidget(box, '*bufferText'), (#| XmN value, buffer, XmN cursorPosition, datalength(buffer), |#)); XtManageChild(XmFileSelectionBoxGetChild(box, XmDIALOG_WORK_AREA)); else ;;; don't! XtUnmanageChild(XmFileSelectionBoxGetChild(box, XmDIALOG_WORK_AREA)); endif; LessTif doesn't seem to have XmDIALOG_WORK_AREA in the file widget so NULL is being returned which then gets converted to false by Poplog. Assuming I've remembered this correctly, commenting out this code (or putting #_IF not(DEF LINUX) ... #_ENDIF around it) fixes the problem. These fixes have now been installed in the Poplog master source directory in these files http://www.cs.bham.ac.uk/research/poplog/src/master/C.x/x/pop/lib/Xm/xmTextWidget.p http://www.cs.bham.ac.uk/research/poplog/src/master/C.x/x/pop/lib/Xm/xmTextFieldWidget.p http://www.cs.bham.ac.uk/research/poplog/src/master/C.x/x/ui/lib/S-poplog_uiS-filetool_xm.p If you already have linux poplog and have lesstif installed then fetch these files, install the first two files in $usepop/pop/x/pop/lib/Xm and the third file in $usepop/pop/x/ui/lib You can the relink poplog to use motif with the following command (as described in HELP NEWPOP): $popsrc/newpop -link -x=-xm -xpw Alternatively fetch the version of linux poplog linked with motif from the FreePoplog site ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/freepoplog.html http://www.cs.bham.ac.uk/research/poplog/freepoplog.html It should now work with lesstif. -- 16. (30 Oct 1999) Aaron Sloman: square slider bug fixed in rclib PROBLEM This problem concerns use of the RCLIB package http://www.cs.bham.ac.uk/research/poplog/rclib/help/rclib For some reason, still unknown, it turned out that in when poplog is run on a Sun with solaris 7, the rc_square_slider library does not draw the diagonals properly. After the first move, but not thereafter, the diagonals leave a mark in their original location. It seems to be a result of some change in the X11 client libraries, since the problem occurs also on a Sun running Solaris 6 logged in remotely to a sun running solaris 7 and then running poplog, though not if poplog is run locally. The problem is connected with the problem of using XOR for moving pictures, as outlined in http://www.cs.bham.ac.uk/research/poplog/rclib/help/rclib_problems FIX By examining examples of sliders and other moving picture objects which do not present this problem a slight change was made to the method rc_draw_slider_square(s:rc_square_slider); ensuring that it saved and restored the default foreground colour of the window. The updated file can be fetched from http://www.cs.bham.ac.uk/research/poplog/rclib/auto/rc_square_slider.p It is also included in rclib.tar.gz It is still not understood why this problem does not arise in solaris 2.6. Perhaps the interpretation X graphic subroutines has changed. -- 15. (18 Oct 1999) David Young: bug fixed in popvision library PROBLEM Described in revision note in $poplocal/local/popvision/lib/arraysample.p Fixed following bug: when output array and input array shared storage and the only operation was a shift, no operations were carried out. At the same time simplified -sortdims- and reordered the tests in the main loop of -arraysample- to put termination test ahead of shift test. FIX Installed in this file ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/popvision/lib/arraysample.p Also rebuilt ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/popvision.tar.gz -- 14. (1 Oct 1999) Aaron Sloman: problems with rcmenu library PROBLEM Some bits of the rcmenu library had not been fully converted to work without propsheet, so that the library did not always work on linux systems. FIX Various files have been fixed (and some of the documentation updated) and the new versions have been installed in both the the browsable directory ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rcmenu/ and in the tar file ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/rcmenu.tar.gz -- 13. (1 Oct 1999) Aaron Sloman: problem with popvision under linux PROBLEM The popvision library in ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/popvision/ and ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/popvision.tar.gz had a problem in that the sunrasterfile.p library in popvision/lib/sunrasterfile.p did not cope properly with .ras files when running on a PC in linux poplog (due to big-endian vs little-endian representations). A symptom was that the procedure sunrasterfile could not be applied to the sample .ras files included in popvision/data FIX A previous fix introduced to extend the library to work with DEC Alpha poplog works also for PC+linux. The compile time guard for the fix now reads #_IF hd(sys_processor_type) == "alpha" or hd(sys_processor_type) == 80386 This has now been installed in the browsable popvision library and the tar file. If you have already fetched popvision, it suffices to fetch and install this file ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/popvision/lib/sunrasterfile.p (See also item 70 concerning updater of sunrasterfile) -- 12. (19 Sep 1999) Aaron Sloman: problem with pipein under Linux PROBLEM I discovered that in ved, commands like "ENTER csh who" do not work in linux poplog FIX I traced this down to something I had noticed and altered a few years ago in $usepop/pop/lib/auto/pipein.p by inserting the following in the definition of pipein #_IF DEF LINUX if command = '/bin/csh' then '/bin/sh' ->> command ->args(1); endif; #_ENDIF I can't remember why this fix is needed. It may have something to do with the fact that linux users normally use tcsh rather than csh ? The modified file can now be fetched from ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/lib/auto/pipein.p If anyone can explain what's going on please let me know, or post to comp.lang.pop -- 11. (6 Sep 1999) Aaron Sloman: out of date HELP files Several of the "administrative" help files relating to Poplog were out of date because ISL is no longer marketing Poplog. These are popsystems poprefs poplog_licence poplog popfaq poparchive popforum popcontacts plug bugform New versions are in ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/help -- 10. (30 Aug 1999) Aaron Sloman: out of date TEACH PRIMER The version of teach primer which has been circulated with the "official" poplog is out of date. The latest version (third edition) can be fetched from: ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/teach/primer and installed to overwrite $usepop/pop/teach/primer It is also advisable to delete the files $usepop/pop/teach/primer? I.e. primera, primeb, etc. which were derived from the out of date version. The new version uses the "old" VED documentation style, with no special characters, to make it easy for Emacs users to read. There is a slightly out of date html version at ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/pophtmlprimer.tar.gz -- 9. (30 Aug 1999) Aaron Sloman: Bugfixes directory structure changed. The structure of the directory ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/ has been changed. A new pop/ directory has been introduced with subdirectories matching the poplog directory structure, so that a single tar or cp command can fetch everything. The file ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/bugfixes.tar.gz now contains all the files in the pop subdirectory -- 8. (27 Aug 1999) Aaron Sloman: Bug in LIB LOGIC LIB LOGIC, described in HELP LOGIC, provides practice in manipulating formulas and inferences in propositional calculus. I found today that parts of the program had stopped working when formal parameters in Pop-11 procedures were interpreted as lvars. This has been fixed in the version available from ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/lib/lib/logic.p -- 7. (27 Aug 1999) Aaron Sloman: LISP and OBJECTCLASS It is not possible to compile Poplog common lisp if the Objectclass libraries are all compiled or if LIB int_parameters has been compiled. The offending files in the directory $usepop/pop/lisp/src are: clisp.p clos-types.p clos.p exports inspect.p methods.p FIX These have now been fixed, e.g. by replacing "instance" with "Instance" and "define_class" with "clos_define_class". The fixed files are now in ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/lisp/src/ and may be conveniently fetched from ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/lisp-src-bugs.tar.gz They can be fetched and untarred in the directory $usepop/pop/lisp/src/ You don't need to rebuild your clisp.psv image. The new files will simply enable you to compile common lisp if you have already compiled int_parameters and objectclass. To make the int_parameters library record that it has been compiled so that "uses int_parameters" works you will need to fetch this ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/lib/lib/int_parameters.p -- 6. (24 Aug 1999) Terry Dartnall and David Young: TEACH file bug Terry reported a bug in one of the "listify" definitions in the file TEACH LISTANSWERS, i.e. $usepop/pop/teach/listanswers Namely this version define listify(list) -> result; vars next; [ ^^( for next in list do [^next ] endfor ) ] -> result enddefine; When applied to [a b c] returns [[a] [b] c] That's because "^^" should have been "^". I.e. define listify(list) -> result; vars next; [ ^( for next in list do [^next ] endfor ) ] -> result enddefine; or better, nowadays: define listify(list) -> result; lvars next; [ ^( for next in list do [^next ] endfor ) ] -> result enddefine; FIXED New version of the teach file in ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/teach/listanswers -- 5. (28 Jul 1999) Aaron Sloman: identifier clash in LIB WINDOWS Between Poplog V15.5 and V15.52 a change was made as a result of which LIB WINDOWS will no longer compile, because one of its procedures now clashes with an undocumented system procedure in the VED system. FIX The solution was to change the name of the procedue in LIB WINDOWS and the HELP FILE, FIXED versions available ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/lib/ved/windows.p ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/help/windows -- 5a. (12 Jul 1999) Aaron Sloman: pop/ved/src/vdwindows changed Entry added: 16 Jan 2005 Change actually made in July 1999 Removed spurious true in call to vedputmessage, and added syssleep in vedfileselect. -- 4. There is a new compiler bug since Poplog Version 15.52. Reporters: Brian Logan and Aaron Sloman When compiling a file which ends with a comment and which does NOT end with a newline character, a mishap is produced: ;;; MISHAP - ATTEMPT TO READ CLOSED DEVICE ;;; INVOLVING: ;;; DOING : (Sys$-Incharitem) null nextitem .... This is in V15.52 and V15.53, but not in V15.5 Probably requires a fix in $popsrc/item.p The problem definitely did not exist in Poplog version 15.5. It looks like the sort of bug that may be have inadvertently introduced as a result of a change to handle special characters in Ved files. Can anyone who understands the source file for incharitem help? (I have had some suggestions from John Williams. I'll try to find time to install them.) ======================================================================= -- 3. System bug in PC Windows version of poplog REPORTER: Alan littleford He writes: I was trying some performance timings with the Windows version and sadly systime() always seems to return 0 ... Robert Duncan explains that this is because the PC version was developed for NT and not everything that works in NT works in windows95/98 ======================================================================= -- 2. Installation of PC windows Poplog using Winzip fails. Some people find that when they try to install the windows version of Poplog using winzip, it fails to find the second disk. REPORTERS: Martin Eales and Aaron Sloman DATE: July 1999 -- -- NEW FIX: 27 Jul 1999 A new .tar.gz file has been created in which the empty files have been replaced by nonempty files. These do not confuse WinZip. The Poplog system can now be extracted and installed using WinZip. Fetch the file: ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/new/pcwin-15.5.tar.gz OLDFIX: Date: Fri, 23 Jul 1999 05:56:34 +0100 (BST) To: pop-forum From: alan littleford Subject: Re: Problem with windows version of free poplog I had the same problem which I solved -- winzip doesn't seem to bother extracting files of 0 bytes in length -- if you have a look inside the archive you'll see that each 'DiskN' subdirectory has a diskid file of length 0 bytes (I forget the exact name, and I don't have it to hand -- but you'll see it). So its a pain but just create the appropriate files by hand in the appropriate directory and all will be, as they say, hunky dory. I was trying some performance timings with the Windows version and sadly systime() always seems to return 0 ... Tnx for the shift to open source -- I first saw Pop about 25 years ago running under the George OS on an ICL machine -- loved it .. tastes great, less filling .. Tnx Alan Littleford INTERPRETATION: When winzip extracts the files it should create in each directory an empty file with suffix ".id", which it doesn't do. So after extracting the files create in directory disk1, an empty file called disk1.id, in disk2 an empty file called disk2.id, etc. up to disk10.id. Then run setup.exe in disk1. ======================================================================= -- 1. The library LIB int_parameters could cause a mishap if loaded twice with pop_debugging set false. REPORTER: Aaron Sloman DATE: 15 July 1999 FIX A fixed version is in ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bugfixes/pop/lib/lib/int_parameters.p Copy this and install in $usepop/pop/lib/lib/int_parameters.p =======================================================================