2007-12-31 22:12 jkrell * m3-sys/m3quake/src/QMachine.m3: dates are unsigned; Int was here while I was trying to isolate compilation errors 2007-12-31 22:06 jkrell * m3-sys/: cm3/src/version.quake, cminstall/src/config/NT386, m3quake/src/QMachine.m3: I had my fun. Now do this the right way, not incredibly hacky. This is the right way for Posix too, but not enabled yet since not tested yet. 2007-12-31 17:59 jkrell * scripts/: cm3Proj.cmd, cm3SetupCmdEnv.cmd, do-cm3-std.bat, startReactor.cmd: I thought deleting the CVS lines from the checkin form would not check those in. Undo.(go back to Windows line endings for Windows-only files) 2007-12-31 17:53 jkrell * scripts/: README, cm3Proj.cmd, cm3SetupCmdEnv.cmd, do-cm3-std.bat, startReactor.cmd, sysinfo.sh, python/chext.py, python/do-cm3-base.py, python/do-cm3-core.py, python/do-cm3-min.py, python/do-pkg.py, python/pylib.py: dos2unix 2007-12-31 17:50 jkrell * m3-sys/: cminstall/src/config/NT386, cm3/src/version.quake: dos2unix 2007-12-31 17:30 jkrell * m3-sys/cminstall/src/config/NT386: use the same time/date format for Windows as Posix it is still localtime instead of utc Windows: enable building cm3 outside of the scripts and still getting the "correct" values in which case, check the environment variables, else read sysinfo.sh This should be just as viable on Posix too. Why are their two names for everything? The environment name vs. the quake name? We should see about getting the time/date via C code linked into cm3 that uses __TIME__ and __DATE__. As long as localtime is ok, the same code (C) or method (preprocessor + shell) should work with Posix too. (forgot this in previous commit because it was in the other tree) 2007-12-31 17:27 jkrell * m3-sys/cm3/src/version.quake, scripts/win/sysinfo.cmd: use the same time/date format for Windows as Posix it is still localtime instead of utc Windows: enable building cm3 outside of the scripts and still getting the "correct" values in which case, check the environment variables, else read sysinfo.sh This should be just as viable on Posix too. Why are their two names for everything? The environment name vs. the quake name? We should see about getting the time/date via C code linked into cm3 that uses __TIME__ and __DATE__. As long as localtime is ok, the same code (C) or method (preprocessor + shell) should work with Posix too. 2007-12-31 17:23 jkrell * scripts/win/: make-dist.cmd, upgrade.cmd: minor wordsmithing 2007-12-31 13:16 jkrell * m3-sys/cm3/src/Version.i3: typo in comment 2007-12-31 13:09 jkrell * m3-sys/cm3/src/version.quake: oops 2007-12-31 12:12 jkrell * scripts/python/: do-cm3-base.py, do-cm3-core.py, do-cm3-min.py, do-pkg.py, libpy.py, pylib.py: There are bad precendents and bad reasons for either of these bad names. Swap. 2007-12-31 12:02 jkrell * scripts/python/chext.py: oops 2007-12-31 12:00 jkrell * scripts/python/chext.py: better 2007-12-31 11:53 jkrell * scripts/python/libpy.py: normalize on forward slashes in paths, so the PKGDB files should be consistent remove all "lazy imports", as nonsensical as some of the module names are -- what is "os" vs. "sys"? 2007-12-31 11:50 jkrell * scripts/python/: do-cm3-base.py, do-cm3-min.py, do-pkg.py: hm..I had one this already..wrong tree? 2007-12-31 11:49 jkrell * scripts/python/do-cm3-core.py: fix 2007-12-31 11:26 jkrell * scripts/python/: lib.py, libpy.py: a normal Win32 install of Python adds .py to %PATHEXT% and then if you sit in this directory and run "lib", as in lib.exe (which you don't need -- link /lib), cmd tries to run lib.py with CreateProcess and gets access denied This is probably a bug, since running any of the others works. Probably because lib.py and lib.exe are both on the path.. Running lib.py by full name ("lib.py") did work. yeah, I know rename stinks for history esp. with cvs... 2007-12-31 10:33 jkrell * scripts/win/do-pkg.cmd: oops 2007-12-31 10:11 jkrell * scripts/python/: chext.py, do-cm3-base.py, do-cm3-core.py, do-cm3-min.py, do-pkg.py, lib.py: take a wild guess at rcs ids 2007-12-31 10:09 jkrell * m3-sys/cm3/src/version.quake, scripts/sysinfo.sh, scripts/win/do-cm3-base.cmd, scripts/win/do-cm3-core.cmd, scripts/win/do-cm3-front.cmd, scripts/win/do-cm3-min.cmd, scripts/win/do-cm3-std.cmd, scripts/win/do-pkg.cmd, scripts/win/pkgcmds.cmd, scripts/win/pkgmap.cmd, scripts/win/sysinfo.cmd, scripts/python/lib.py: add support in scripts/win/sysinfo.cmd and scripts/python/lib.py for reading the default values from sysinfo.sh of: CM3VERSION CM3VERSIONNUM CM3LASTCHANGED Previously CM3VERSION was duplicated in all three and the others are new. Really they should probably be in a separate file with a super simple format like so: CM3VERSION d5.5.1 CM3VERSIONNUM 050501 CM3LASTCHANGED 2007-12-30 add scripts/win/do-cm3-front.cmd simplify all of scripts/win/do-cm3-* add /something/ in m3-sys/cm3/src/version.quake for Win32 time/date, just informal, the format varies per locale and it is local time; this is likely good enough but we'll see, many other options are very easy, but this is easiest by a bit (you can check for \cygwin\bin\date.exe, you can use JScript via cscript.exe, you can write a one line C program, you can add a few lines to cm3.exe, you can get the formating to match on English/US via %time% %date%) add __file__ to all Python error messages 2007-12-30 16:24 wagner * m3-sys/cm3/: PkgTags, src/Makefile.m3, src/Version.i3, src/m3makefile, src/version.quake: use quake defined settings for cm3 version variables; compute build date added: cm3/src/Version.i3 added: cm3/src/version.quake modified: cm3/src/Makefile.m3 modified: cm3/src/m3makefile 2007-12-30 14:08 wagner * scripts/: PkgTags, pkgcmds.sh, sysinfo.sh: centralize definitions of CM3VERSION, CM3VERSIONNUM, CM3LASTCHANGED modified: scripts/pkgcmds.sh modified: scripts/sysinfo.sh 2007-12-30 09:06 jkrell * scripts/python/: do-cm3-base.py, do-cm3-core.py, do-cm3-min.py, lib.py: some working do-pkg with specific lists need to make this data driven via a list of packages and tagging as to which group(s) they are in what their conditions are to build or possibly move the conditions to their m3makefile 2007-12-30 08:00 jkrell * scripts/python/lib.py: cd ourselves don't wrap with sh remove extraneous semicolons remove whitespace from ends of lines (blame the editor on other machine..) 2007-12-30 07:51 jkrell * scripts/python/: lib.py, pkgmap.py: let do-pkg work on Windows: don't double up backslashes don't single quote in command lines uname not available remove standalone pkgmap.py 2007-12-30 07:25 jkrell * m3-libs/: libm3/src/uid/POSIX/getMID.c, m3core/src/runtime/DS3100/RTStackC.c: remove extraneous semicolons after closing braces 2007-12-30 07:19 jkrell * scripts/win/make-dist.cmd: delete non-critical *.m3 and .m3web files from distribution to save space maybe the .m3 files are meant as examples or for source debugging? require STAGE to not exist ahead of time, unless there is a parameter, which is the scenario of like make-dist goto_zip to skip ahead to making the .zip get the actual commands into the logs, of course 2007-12-30 07:16 jkrell * m3-win/import-libs/src/m3makefile: make cm3 -clean here delete the output files deleting the empty output directory would be nice too shrink distribution by using current tools instead of old tools at least until someone complains about it; note that old tools do work, you just have to build here first 2007-12-30 00:23 jkrell * scripts/python/lib.py: fix usage 2007-12-30 00:22 jkrell * scripts/python/lib.py: fix comment due to new reality 2007-12-30 00:20 jkrell * scripts/python/lib.py: note the slow part 2007-12-30 00:15 jkrell * scripts/python/lib.py: replace debug code with production code, note odd scoping rules of Python, functions are sort of lexicallyscoped, other blocks are not 2007-12-30 00:13 jkrell * scripts/python/lib.py: fix error message, add missing abspath (usually doesn't matter, the .pyc files are full pathed) 2007-12-30 00:10 jkrell * scripts/python/: do-pkg.py, lib.py: smush it 2007-12-30 00:06 jkrell * scripts/python/: do-pkg.py, lib.py: cleanup how usage works (remove globals) 2007-12-29 23:56 jkrell * scripts/python/lib.py: forgot to add new file 2007-12-29 23:55 jkrell * scripts/python/: do-pkg.py, find-packages.py, pkgcmds.py, pkginfo.py, pkgmap.py, sysinfo.py: de-modularize -- shove everything into lib.py and leave just small callable wrappers (do-pkg still to be shrunk) 2007-12-29 23:34 jkrell * scripts/python/find-packages.py: didn't mean to commit that undo with recipe from: https://www.paklein.com/tahoe/forums/showthread.php?threadid=40&referrerid=1 cvs update -j 1.2 -j 1.1 find-packages.py to merge in changes going from 1.2 to 1.1 2007-12-29 23:25 jkrell * scripts/python/: find-packages.py, sysinfo.py: grumble 2007-12-29 19:20 jkrell * scripts/win/make-dist.cmd: stuff I had lying around : mainly more verbose error reporting and then as as well add in shunting most of the noisy output to logs and minor cleanup (e.g. don't set vars and then skip step, just skip step; remove evidence of upx support) skip making self extracting zip/exe if unzipsfx not where it is on my machine (hack) 2007-12-29 14:00 jkrell * scripts/python/: chext.py, do-pkg.py, find-packages.py, pkgcmds.py, pkginfo.py, pkgmap.py, sysinfo.py: initial working version of do-pkg and underlying, in Python 2007-12-28 23:13 jkrell * scripts/win/find-packages.cmd: remove the incorrect entries: C:\dev2\cm3\m3-ui\juno-2\juno-app\pkl-fonts\src C:\dev2\cm3\m3-ui\juno-2\juno-app\src matches recent change in scripts/find-packages.sh 2007-12-28 23:03 jkrell * scripts/README: advertising 2007-12-28 23:02 jkrell * scripts/README: fix more since find_dirs was removed 2007-12-28 16:28 jkrell * scripts/pkgcmds.sh: eliminate noise and fix CM3C vs. CM3 typo that happens to work because type on an empty string succeeds; all this switching only matters anyway if buiding from DEC SRC m3 or PM3 is supported 2007-12-28 14:18 jkrell * scripts/sysinfo.sh: remove references to M3GC_SIMPLE and M3GC_EHNHANCED they are both dead 2007-12-28 14:04 jkrell * scripts/pkginfo.sh: fix listpkgs function in pkginfo.sh such that fix sh pkgmap.sh -l -c . libm3 m3core to list anything fix sh ./list-pkg-dirs.sh libm3 to not list /dev2/cm3/m3-obliq/obliqlibm3/src I am not sure any of this matters -- if listpkgs matters. These are not used by anything, are only toplevel available commands pkgmap -l seems particularly difficult to reach, you need to give a -c option which is not used, but otherwise you get an error. If this is dead, then listpkgs and list-pkg-dirs.sh and the -l code in pkgmap.sh should be deleted. 2007-12-28 12:22 jkrell * scripts/find-packages.sh: Require /src and not just src in filtering content for PKGSDB. This keeps the following two unintended entries out: m3-ui/juno-2/juno-app/pkl-fonts/src/rsrc/m3makefile m3-ui/juno-2/juno-app/src/rsrc/m3makefile I found this via comparison to seperate implementation in Python. scripts/win/find-package.cmd appears wrong too. I will fix that when I am back in Windows and can test the fix. 2007-12-28 07:57 jkrell * scripts/sysinfo.sh: restore quotes 2007-12-28 07:56 jkrell * scripts/sysinfo.sh: CM3LIBSEARCHPATH is never used, remove it 2007-12-28 07:43 jkrell * scripts/: README, sysinfo.sh: SCRIPTS and find_dir are unused, remove them 2007-12-27 02:54 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Added ProcessEachStack to PTHREAD implementation (this will eventually need adding to both POSIX and WIN32 threads implementations), but current support for this functionality is experimental. Also added more aggressive thread restart for ResumeOthers to meet reports of threads not restarting after GC on Solaris. 2007-12-27 02:52 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadF.i3: Added decl for ProcessEachStack. 2007-12-27 02:45 hosking * m3-sys/cm3/src/config/I386_DARWIN: Resurrected. 2007-12-26 23:39 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: add comments about why M3_SPLIT_LIBNAMES is used 2007-12-26 23:35 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: add comments about why the perhaps seemingly -fPIC is specified 2007-12-26 23:33 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: more newlines for diff and merge and inline comments 2007-12-26 23:32 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: newlines for diff and merge and inline comments 2007-12-26 23:27 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: whitespace only -- line up comments on multiples of 4 spaces (with a 4 space tab in mind) 2007-12-26 05:59 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: libm does nothing on this platform, it is part of libSystem, don't link to it 2007-12-26 05:34 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: newlines for diff/merge 2007-12-26 05:31 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: ranlib is never used on this platform, remove configuring it 2007-12-26 05:30 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: remove dead configuration sections 2007-12-26 05:28 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: fix comments to be 4 space tab aligned 2007-12-26 01:11 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: fix comment and remove Windows comment 2007-12-26 01:06 jkrell * m3-sys/cminstall/src/config/PPC_DARWIN: remove spaces from ends of lines 2007-12-26 01:01 jkrell * scripts/sysinfo.sh: default CM3_INSTALL to dirname(dirname(which cm3)) if in fact cm3 is in the path; else the previous /usr/local/cm3 default SYSLIBDIR to CM3_INSTALL/lib 2007-12-25 18:09 wagner * m3-libs/m3core/src/runtime/common/RuntimeError.m3: avoid endless recursion in runtime errors 2007-12-25 18:04 wagner * m3-sys/m3middle/: PkgTags, src/Target.m3: don't use global handler stack on FreeBSD, because of pthreads modified: m3middle/src/Target.m3 2007-12-23 16:59 wagner * m3-libs/m3core/src/unix/freebsd-4/Uucontext.i3: improve context function prototypes 2007-12-21 12:03 wagner * m3-libs/m3core/src/unix/freebsd-4/Upthread.i3: fix some sizes (though all those types should be opaque; are they used anywhere?) 2007-12-21 11:09 wagner * m3-libs/m3core/: PkgTags, src/runtime/FreeBSD4/RTMachine.i3, src/runtime/FreeBSD4/RTSignal.m3, src/unix/freebsd-4/Upthread.i3, src/unix/freebsd-4/Usched.i3, src/unix/freebsd-4/Usem.i3, src/unix/freebsd-4/Usignal.i3, src/unix/freebsd-4/Utime.i3, src/unix/freebsd-4/Uucontext.i3, src/unix/freebsd-4/m3makefile: add some initial pthread support for FreeBSD, still untested added: m3core/src/unix/freebsd-4/Upthread.i3 added: m3core/src/unix/freebsd-4/Usched.i3 added: m3core/src/unix/freebsd-4/Uucontext.i3 modified: m3core/src/runtime/FreeBSD4/RTMachine.i3 modified: m3core/src/runtime/FreeBSD4/RTSignal.m3 modified: m3core/src/unix/freebsd-4/Usem.i3 modified: m3core/src/unix/freebsd-4/Usignal.i3 modified: m3core/src/unix/freebsd-4/Utime.i3 modified: m3core/src/unix/freebsd-4/m3makefile 2007-12-19 21:21 wagner * www/Makefile: add support for zip archives 2007-12-18 23:28 wagner * www/: PkgTags, download.html: add more boot archives for Mac OS X modified: www/download.html 2007-12-18 19:18 hosking * m3-sys/cm3/src/config/PPC_DARWIN: Tidy up. 2007-12-18 18:54 wagner * www/: PkgTags, download.html: add more boot archives modified: www/download.html 2007-12-18 13:37 jkrell * scripts/win/make-dist.cmd: remove random line 2007-12-18 13:36 jkrell * scripts/win/make-dist.cmd: fix path to unzipsfx 2007-12-18 12:32 jkrell * scripts/win/make-dist.cmd: make .zip instead (not yet tested) 2007-12-18 12:17 mika * m3-sys/m3gdb/gdb/gdb/m3-eval.c: fixed some out-of-place declarations (C++ --> ANSI C) 2007-12-18 00:19 wagner * www/: PkgTags, index.html: add ChangeLog modified: www/index.html 2007-12-17 23:53 wagner * www/: PkgTags, download.html, index.html: extend news item and download section modified: www/download.html modified: www/index.html 2007-12-17 23:27 wagner * m3-sys/cm3/src/config/LINUXLIBC6: resurrect sample config file for Linux 2007-12-17 23:11 wagner * www/: PkgTags, download.html, normal.css: add linux download, improve styles, fix some html errors modified: www/download.html modified: www/normal.css 2007-12-17 00:16 wagner * www/: PkgTags, download.html: fix downloads modified: www/download.html 2007-12-16 23:38 wagner * m3-sys/cm3/src/: Makefile.m3, config/PPC_DARWIN: update release date 2007-12-16 21:29 wagner * www/: PkgTags, download.html, index.html: tentative addition of bootarchives for FreeBSD and Linux to download modified: www/download.html modified: www/index.html 2007-12-16 18:02 wagner * m3-sys/cminstall/src/config/FreeBSD4: link all system libraries dynamically 2007-12-16 18:01 wagner * m3-sys/cm3/src/config/FreeBSD4: resurrect config file for bootstrapping 2007-12-16 17:56 wagner * scripts/upgrade.sh: Try to adapt upgrade.sh to the latest needs. 2007-12-16 16:02 wagner * m3-libs/m3core/src/unix/freebsd-4/Utypes.i3: add missing import 2007-12-09 15:32 jkrell * www/installation-windows.html: link to current download 2007-12-09 15:29 jkrell * www/installation-windows.html: attempt at documentation 2007-12-09 14:36 jkrell * scripts/win/make-dist.cmd: comments only 2007-12-02 17:53 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: Tidy up allocation sequence code. Fix weakTable memory leak -- discovered because weak references are now heavily used by the native pthreads subsystem (ThreadPThread). 2007-12-02 17:51 hosking * m3-libs/m3core/src/runtime/common/RTHooks.i3: Let's leave this UNSAFE because danger lurks within. 2007-12-02 17:46 hosking * m3-libs/m3core/src/runtime/common/: RTAllocator.m3, RTHeapRep.i3, RTHooks.i3: Tidy up allocation sequence code. 2007-11-30 19:19 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: Remove dead code from old VM-synchronized collector. 2007-11-30 14:00 jkrell * m3-sys/cminstall/src/config/NT386: experiment: use /noentry on .dlls to drastically reduce the C runtime dependencies 2007-11-30 13:44 jkrell * m3-sys/cminstall/src/config/NT386: should just be making the newlines all Unix format 2007-11-30 13:07 jkrell * m3-sys/cminstall/src/config/NT386: fix 2007-11-30 12:59 jkrell * m3-sys/cminstall/src/config/NT386: minor comments and parameter checking 2007-11-30 12:49 jkrell * m3-sys/cminstall/src/config/NT386: comments only, upon trying to trim extraneous options 2007-11-30 12:48 jkrell * scripts/win/clearenv.cmd: put this back, otherwise massive breakage.. 2007-11-30 12:36 jkrell * scripts/win/sysinfo.cmd: fix feature probing, duh 2007-11-30 11:45 jkrell * scripts/win/sysinfo.cmd, m3-sys/cminstall/src/config/NT386: sysinfo.cmd: fix probing for .libs, duh config/NT386 fix other use of msvcrt.lib to honor the config, duh 2007-11-30 11:31 jkrell * m3-win/import-libs/src/m3makefile, scripts/win/clearenv.cmd, scripts/win/sysinfo.cmd, m3-sys/cminstall/src/config/NT386: config/NT386: guide delayload use by environment variable USE_DELAYLOAD, 0 or 1 guide msvcrt.lib vs. libcmt.lib use by environment variable USE_MSVCRT, 0 or 1 (didn't actually test with a toolset that lacks libcmt.lib, but 7.1 Express Edition is one to try but test with Visual C++ 2.0 that lacks /delayload) clearenv.cmd: clear more stuff, maybe too much, we'll see sysinfo.cmd: probe for /delayload and msvcrt.lib by running link a la autoconf inefficient! better options perhaps include: have cm3.exe split %LIB% and look for delayimp.lib/msvcrt.lib/libcmt.lib run link | findstr Version, just running link and findstr once, and base /delayload decision on it a solution that works with older cm3.exe is perhaps desirable a solution that doesn't require version knowledge is perhaps desirable, though since it could be a >= thing, and not a table listing all known versions, maybe ok a manual "configure" step that user runs when user decides it is needed may also be preferable, but that has shortcomings, what does it take to switch toolsets? Do you hash the environment and store all the configurations? The current "inefficient" solution runs fairly quickly in practise, relative to how slow do-pkg et. al. already are.. this all needs rewriting in Modula-3 perhaps if only I could bring myself to actually like Modula-3.. I don't even like cmd (Perl is way better as a general purpose programming language...) import-libs/src/m3makefile sleazy: fix the path to my local Visual C++ 2.0 so I use it to make import .libs; this is for a hypothetical binary distributation that works with "all" toolsets, except it isn't actually sufficient I found tonight, as, e.g. m3.lib output from a newer toolset doesn't work with older toolset 2007-11-30 09:53 jkrell * scripts/win/: backup-pkgs.cmd, sysinfo.cmd, upgrade.cmd: fix bootstrapping make-dist does work, so look at what it does.. In particular, the old compiler cannot build the new runtime. First build just the compiler, and then use that to build the runtime. As well, backup-pkgs would complain about most packages missing, ask you to build them, but you can't. So only require libm3 and m3core, which you must get from a binary release.. you must get them anyway, to build the new compiler against, and you can't build them.. As well, remove some warnings that seem irrelevant now, as they say so themselves -- "generally automatic". As well, running upgrade twice in a row does not work, unless we backup/restore the compiler along with the packages, so do that too. 2007-11-30 09:47 jkrell * scripts/win/: do-cm3-base.cmd, do-cm3-core.cmd, do-cm3-min.cmd, do-cm3-std.cmd, do-pkg.cmd, make-dist.cmd: just some very small reporting tweaks 2007-11-29 13:50 jkrell * m3-sys/m3back/src/M3x86.m3: fix warning and use consistent though annoyingly verbose and seemingly inefficient style; the "cleaner" form is inefficient too, there lots of extra copying around here, it'd be nice if these were pointers for goodness sakes; if you go too far down the "clean" route, with the copying, it messes up because the originals get mutated in places and there is a need to use the up to date mutated data 2007-11-29 12:23 jkrell * m3-sys/m3back/src/: M3x86.m3, Stackx86.m3: optimize away shifts of 0 2007-11-29 12:04 jkrell * m3-sys/m3back/src/M3x86.m3: optimize away shifts by 0 2007-11-29 05:05 hosking * m3-libs/: libm3/src/os/POSIX/FSPosix.m3, libm3/src/os/POSIX/ProcessPosix.m3, m3core/src/C/Common/M3toC.m3, m3core/src/runtime/common/RTAllocCnts.i3, m3core/src/runtime/common/RTAllocator.m3, m3core/src/runtime/common/RTCollector.m3, m3core/src/runtime/common/RTHeapInfo.m3, m3core/src/runtime/common/RTHeapRep.i3, m3core/src/thread/Common/Scheduler.i3, m3core/src/thread/POSIX/SchedulerPosix.i3, m3core/src/thread/POSIX/ThreadPosix.m3, m3core/src/thread/PTHREAD/SchedulerPosix.i3, m3core/src/thread/PTHREAD/ThreadPThread.m3, m3core/src/thread/WIN32/ThreadWin32.m3: Move DisableSwitching/EnableSwitching from SchedulerPosix.i3 to Scheduler.i3. These need to be available for non-platform-specific code (such as M3toC -- see below) to disable *user*-level thread switching for non-thread-safe code. Since ThreadWin32 and ThreadPThread don't have user-level switching (and library routines are system-thread-safe) these operations are no-ops for those targets. For ThreadPosix (user-level threads) the operations increment the inCritical counter. This change permits a bug-fix for M3toC.CopyTtoS, which invoked Cstdlib.malloc without any protection against user-level thread switches, making it unsafe for user-level threads. These changes also permit significant improvement in the allocation sequences in RTAllocator. RTAllocCnts are only enabled now when needed, and locks are taken only when counts are enabled. 2007-11-29 04:05 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Fix race in DISPOSE of waitCond and signal of waitCond in Alert. 2007-11-29 02:54 hosking * m3-libs/m3core/src/unix/: solaris-2-x/Utypes.i3, solaris-2-x/Utypes.m3, sunos-4-x/Utypes.i3, sunos-4-x/Utypes.m3, sysv-4.0/Utypes.i3, sysv-4.0/Utypes.m3, ultrix-3-1.ARM/Utypes.i3, ultrix-3-1.DS3100/Utypes.i3, ultrix-3-1.NEXT/Utypes.i3, ultrix-3-1.SEQUENT/Utypes.i3, ultrix-3-1.SUN3/Utypes.i3, ultrix-3-1.SUN386/Utypes.i3, ultrix-3-1.UMAX/Utypes.i3, ultrix-3-1.VAX/Utypes.i3, ultrix-3-1.generic/Utypes.m3: Remove residual implementations of Utypes.asLong and Utypes.assignOffT. 2007-11-29 02:51 hosking * m3-libs/m3core/src/unix/: aix-3-2/Utypes.i3, aix-3-2/Utypes.m3, aix-ps2-1-2/Utypes.i3, aix-ps2-1-2/Utypes.m3, cygwin/Utypes.i3, cygwin/Utypes.m3, freebsd-1/Utypes.i3, freebsd-1/Utypes.m3, hpux-7-0/Utypes.i3, hpux-7-0/Utypes.m3, ibm-4-3/Utypes.i3, ibm-4-3/Utypes.m3, irix-5.2/Utypes.i3, irix-5.2/Utypes.m3, linux/Utypes.i3, linux/Utypes.m3, linux-libc6/Utypes.i3, linux-libc6/Utypes.m3, os2/Utypes.i3, os2/Utypes.m3, osf-1.ALPHA_OSF/Utypes.i3, osf-1.ALPHA_OSF/Utypes.m3, osf-1.DS3100/Utypes.i3, osf-1.DS3100/Utypes.m3: Remove residual implementations of Utypes.asLong and Utypes.assignOffT. 2007-11-21 20:21 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Get rid of CheckSlot, etc. in Fork. 2007-11-19 21:39 mika * m3-demo/sharedboard/: boardclient/src/Client.m3, boardserver/src/BoardServerX.m3, boardserver/src/BoardX.m3, boardserver/src/Log.i3, boardserver/src/Log.m3: The sharedboard demo was coded to an old interface to SmallDB and didn't even compile. It's been updated to the current version of SmallDB and now compiles and works in a small test. Requires netobjd to be running. 2007-11-16 23:09 rodney * m3-sys/m3gdb/gdb/gdb/: buildsym.c, gdbtypes.h, language.c, m3-eval.c, m3-exp.c, m3-lang.c, m3-lang.h, m3-token.c, m3-token.h, m3-typeprint.c, m3-util.c, m3-util.h, m3-valprint.c, value.c: Initial support for LONGINT. Includes printing of LONGINT values, LONGINT literals, as many type combinations for operators as already work on INTEGER. 2007-11-16 21:45 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: No need for "joined" Boolean. The joiner can simply NIL the thread's condition when the thread completes to signal it already been joined. 2007-11-16 16:10 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Make sure threads are up and running before returning from Fork. 2007-11-16 14:55 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Trying one more fix... Avoid acquiring heap lock (i.e., no weak refs) while holding activeMu. 2007-11-15 18:13 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Break lock nest to avoid deadlock between activeMu/lockMu. 2007-11-13 23:25 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Revert last changes re activeMu/lockMu deadlock. Needs more serious examination to derive the fix. 2007-11-13 19:30 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: One more try... 2007-11-13 17:29 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Initialize t.cond and t.mutex to avoid deadlock with activeMu. 2007-11-10 16:23 hosking * m3-libs/m3core/src/time/Common/Date.i3: POSIX localtime can return 60 as a legal seconds value. 2007-11-04 17:49 jkrell * m3-sys/cminstall/src/config/NT386: use delayload to reduce the overly large static dependencies requires a 6.0 linker or newer 2007-10-31 15:31 hosking * m3-lectern/lecterntohtml/src/FSPosixExtras.m3: Fix to no longer use asLong. 2007-10-31 15:10 hosking * m3-libs/m3core/src/unix/solaris-2-x/: Ustat.i3, Utypes.i3: Fix nlink_t=long. 2007-10-24 12:40 jkrell * m3-sys/m3middle/src/M3ID.i3: fix typo in comment 2007-10-22 21:01 hosking * m3-libs/m3core/src/runtime/common/RTHeapStats.m3: ThreadF not Thread. 2007-10-22 14:09 hosking * m3-libs/m3core/src/runtime/common/RTHeapStats.m3: ThreadF.ProcessStacks should only be called with all other threads are stopped. Make sure to SuspendOthers/ResumeOthers around calls to ProcessStacks. 2007-10-22 14:05 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Make sure p gets invoked twice per thread in ProcessStacks to match *hacked* assumption in RTHeapStats.m3. Also reorder to process register state after stacks. 2007-10-16 22:30 neels * m3-libs/libm3/src/os/POSIX/PathnamePosix.m3: PathnamePosix.m3 rejected special characters, because it limited the character range to ASCII. Instead of keeping a list of legal characters, Pathname now keeps a list of illegal characters and thus allows the whole CHAR range. 2007-10-15 17:51 hosking * m3-libs/m3core/src/unix/freebsd-4/Utypes.i3: Fix int64_t to be long_long. 2007-10-15 17:48 hosking * m3-libs/m3core/src/unix/freebsd-4/Umman.i3: off_t needed for mmap. 2007-10-15 13:42 hosking * m3-libs/m3core/src/thread/POSIX/ThreadF.i3: Add MyHeapState declaration. 2007-10-15 13:42 hosking * m3-libs/m3core/src/thread/WIN32/ThreadF.i3: Icky carriage returns. 2007-10-13 22:00 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Finally got back to reworking things to avoid global locks on mutex/condition operations. We still have an explicit queue for conditions and an explicit waitCond to signal when alerting threads waiting on a condition. But, there is no longer the global cm lock. This means that only threads that explicitly interact on the same mutexes/conditions need to synchronize. This should be much more scalable. For those of you brave enough to try things at the Modula-3 bleeding edge, please let me know if you come across any problems. 2007-10-13 05:41 hosking * m3-libs/m3core/src/thread/POSIX/ThreadPosix.m3: Use Compiler.ThisFile() and Compiler.ThisLine() instead of hardwired literals. 2007-10-11 20:11 hosking * m3-sys/cminstall/src/config/: SOLsun, SOLgnu: Make sure runtime linker picks up thread libraries from /usr/lib/lwp. 2007-10-11 14:30 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Give explicit initial value to suspended. 2007-10-11 06:00 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Slightly cleaner version of suspended flag. This code should be safe because suspended is set to TRUE only while all other threads are stopped. In effect it is private to the GC thread which stops all other threads before setting suspended to TRUE, and sets it back to FALSE before starting all other threads. 2007-10-11 05:49 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Fix deadlock by GC thread with stopped threads holding heap lock. 2007-10-08 21:44 rodney * m3-sys/m3gdb/gdb/gdb/: inferior.h, infrun.c, linespec.c, m3-eval.c, m3-lang.c, m3-lang.h, m3-token.c, m3-util.c, m3-util.h, m3-valprint.c, solib.c, symtab.c, target.h, doc/observer.texi: A group of (internally) related changes: 1) Rework detection of PM3/CM3 compiler to work earlier, positively detect when it's not modula-3 at all, work on stripped executables, and be more robust. 2) Detect which threads implementation and which garbage collector implementation is used. This can only work after libm3core.so has been loaded (after a 'start' command or hitting a breakpoint in user code), or if libm3core is statically linked in. 3) Add to the 'info m3' command to show the new information. 4) Change the 'start' command to go through the runtime's initialization before stopping. It used to stop before any of this, and that meant lots of m3gdb commands would not work. Now it stops just before executing _any_ of the module body code blocks. By this time, libm3core.so is loaded, so things work about as well as ever later. NOTE: This uses a breakpoint at a place in the runtime (either RunMainBodies, for PM3 and friends, or RunMainBody, for CM3). If libm3core is dynamically linked, this will require the user to go through the ritual of allowing the breakpoint to be made pending until the libm3core is loaded. 5) When the VM-synchronized GC is used, automatically disable it, as it would otherwise cause numerous false debugger stops. This is the equivalent of manually adding @M3novm to the command line arguments, which you can also do redundantly and harmlessly. 6) When PThreads are used, automatically set m3gdb to silently pass SIG64 to the program. Otherwise, this also would cause false stops. 7) Fix a bug in handling the linespec .1, meaning the beginning of the module initialization block. 2007-10-06 14:31 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Argh! Forgot to grab saved sp from sigsuspend'ed threads during ProcessStacks. 2007-10-05 20:39 hosking * m3-libs/m3core/src/runtime/SOLgnu/RTMachine.i3, m3-libs/m3core/src/runtime/SOLgnu/RTMachine.m3, m3-libs/m3core/src/runtime/SOLgnu/m3makefile, m3-libs/m3core/src/runtime/SOLsun/RTMachine.i3, m3-libs/m3core/src/runtime/SOLsun/RTMachine.m3, m3-libs/m3core/src/runtime/SOLsun/m3makefile, m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3, m3-libs/m3core/src/thread/PTHREAD/m3makefile, m3-sys/cminstall/src/config/I386_DARWIN, m3-sys/cminstall/src/config/LINUXLIBC6, m3-sys/cminstall/src/config/PPC_DARWIN, m3-sys/cminstall/src/config/SOLgnu, m3-sys/cminstall/src/config/SOLsun: Fixes to pthread-based threading on Solaris. Quick summary: - Make sure we use the /usr/lib/lwp versions of the thread libraries. These work properly with the signal-based (same as LINUXLIBC6) mechanism for stopping threads. - Delete the old support for stopping Solaris threads using thr_suspend. - Remove now no-longer needed caching of sp around blocking pthread calls (LWP threads are capable of receiving signals while blocked on a mutex). - Fix config files to compile and link to the proper libraries. - Fix config files to ensure that things like Cerrno.c get compiled for thread-safe execution. 2007-10-03 22:16 rodney * m3-sys/m3gdb/gdb/gdb/: m3-lang.c, m3-util.c: Generalize the symbol lookup rules to fix broken lookup of global procedures, caused by recent changes in the way CM3 emits stabs entries for these. 2007-10-02 22:19 rodney * m3-sys/m3gdb/gdb/gdb/m3-valprint.c: Fix to display array values in braces, like Modula-3 constructors, instead of brackets. 2007-10-02 22:02 rodney * m3-sys/m3gdb/gdb/gdb/: m3-eval.c, m3-valprint.c, value.c: 1) Properly display NIL values of procedure variables. 2) Liberalize to allow assignment and parameter passing of values of procedure type. There is no type checking, and a warning is emitted to this effect. 2007-10-02 20:45 rodney * m3-sys/m3gdb/gdb/gdb/: gdbtypes.h, infcall.c, m3-eval.c, m3-lang.h: The compilers handle large function results, e.g. records, by passing, at the machine code level, an extra reference mode parameter. Previously, m3gdb always assumed this was the last parameter. But for some targets, (e.g. WIN32), the compilers put this parameter on the left. Add m3gdb support for these parameters in either location. NOTE" No opportunity to test this for WIN32, etc. 2007-10-01 14:49 thielema * m3-libs/synthesizer/test/src/: Main.m3, TestControl.i3, TestControl.m3, TestModulation.i3, TestModulation.m3, TestSplit.i3, TestSplit.m3, m3makefile, m3overrides, m3testbuild: imported from my Darcs repository; the Darcs repository will be still the primary versioning repository 2007-10-01 14:45 thielema * m3-libs/synthesizer/: Makefile, doc/Overview, doc/Test, example/chirp/src/Main.m3, example/chirp/src/m3makefile, example/chirp/src/m3overrides, example/chirp/src/m3testbuild, example/echo/src/Main.m3, example/echo/src/m3makefile, example/echo/src/m3overrides, example/echo/src/m3testbuild, example/entchen/src/Main.m3, example/entchen/src/m3makefile, example/entchen/src/m3overrides, example/entchen/src/m3testbuild, example/filter/src/Main.m3, example/filter/src/m3makefile, example/filter/src/m3overrides, example/filter/src/m3testbuild, example/inout/src/Main.m3, example/inout/src/m3makefile, example/inout/src/m3overrides, example/inout/src/m3testbuild, example/oscillator/src/Main.m3, example/oscillator/src/m3makefile, example/oscillator/src/m3overrides, example/oscillator/src/m3testbuild, example/plot/src/Main.m3, example/plot/src/m3makefile, example/plot/src/m3overrides, example/plot/src/m3testbuild, example/rueckwaerts/src/Main.m3, example/rueckwaerts/src/m3makefile, example/rueckwaerts/src/m3overrides, example/rueckwaerts/src/m3testbuild, example/sirene/src/Main.m3, example/sirene/src/m3makefile, example/sirene/src/m3overrides, example/sirene/src/m3testbuild, example/stereo/src/Main.m3, example/stereo/src/m3makefile, example/stereo/src/m3overrides, example/stereo/src/m3testbuild, example/stream/src/Main.m3, example/stream/src/m3makefile, example/stream/src/m3overrides, example/stream/src/m3testbuild, src/m3makefile, src/basic/Interpolation.i3, src/basic/Interpolation.m3, src/basic/Signal.i3, src/basic/Signal.m3, src/basic/m3makefile, src/control/ProcessControlConstant.i3, src/control/ProcessControlConstant.m3, src/control/ProcessControlExponential.i3, src/control/ProcessControlExponential.m3, src/control/ProcessControlLinear.i3, src/control/ProcessControlLinear.m3, src/control/SignalControl.i3, src/control/m3makefile, src/inout/ProcessInOut.i3, src/inout/ProcessInOut.m3, src/inout/ProcessLoad.i3, src/inout/ProcessLoad.m3, src/inout/ProcessPipeIn.i3, src/inout/ProcessPipeIn.m3, src/inout/ProcessPipeOut.i3, src/inout/ProcessPipeOut.m3, src/inout/ProcessPlay.i3, src/inout/ProcessPlay.m3, src/inout/ProcessPlaySolaris.m3, src/inout/ProcessPlot.i3, src/inout/ProcessPlot.m3, src/inout/ProcessSave.i3, src/inout/ProcessSave.m3, src/inout/m3makefile, src/process/ProcessAmplifier.i3, src/process/ProcessAmplifier.m3, src/process/ProcessClip.i3, src/process/ProcessClip.m3, src/process/ProcessComplexLowPass.i3, src/process/ProcessComplexLowPass.m3, src/process/ProcessConcat.i3, src/process/ProcessConcat.m3, src/process/ProcessDelay.i3, src/process/ProcessDelay.m3, src/process/ProcessEcho.i3, src/process/ProcessEcho.m3, src/process/ProcessExponential.i3, src/process/ProcessExponential.m3, src/process/ProcessFrequencyModulation.i3, src/process/ProcessFrequencyModulation.m3, src/process/ProcessLinear.i3, src/process/ProcessLinear.m3, src/process/ProcessLowPass.i3, src/process/ProcessLowPass.m3, src/process/ProcessMixer.i3, src/process/ProcessMixer.m3, src/process/ProcessMultiOutput.i3, src/process/ProcessMultiOutput.m3, src/process/ProcessPhaseModulation.i3, src/process/ProcessPhaseModulation.m3, src/process/ProcessReverse.i3, src/process/ProcessReverse.m3, src/process/ProcessSplit.i3, src/process/ProcessSplitList.m3, src/process/ProcessSplitPQ.m3, src/process/ProcessSplitSeq.m3, src/process/ProcessStateVariableFilter.i3, src/process/ProcessStateVariableFilter.m3, src/process/ProcessWhiteNoise.i3, src/process/ProcessWhiteNoise.m3, src/process/m3makefile, src/process/oscillator/ProcessOscillator.i3, src/process/oscillator/ProcessOscillator.m3, src/process/oscillator/ProcessOscillatorModulated.i3, src/process/oscillator/ProcessOscillatorModulated.m3, src/process/oscillator/ProcessOscillatorSine.i3, src/process/oscillator/ProcessOscillatorSine.m3, src/process/oscillator/ProcessOscillatorSineModulated.i3, src/process/oscillator/ProcessOscillatorSineModulated.m3, src/process/oscillator/WaveSaw.i3, src/process/oscillator/WaveSaw.m3, src/process/oscillator/WaveSine.i3, src/process/oscillator/WaveSine.m3, src/process/oscillator/WaveSquare.i3, src/process/oscillator/WaveSquare.m3, src/process/oscillator/WaveTriangle.i3, src/process/oscillator/WaveTriangle.m3, src/process/oscillator/m3makefile: imported from my Darcs repository; the Darcs repository will be still the primary versioning repository 2007-09-27 22:28 rodney * m3-sys/m3gdb/gdb/gdb/m3-eval.c: Add support of the concatenation operator "&". Use calls on Text.Cat to do it. NOTE: if you type 'print "ABC & " DEF"', m3gdb will execute three calls in the target program. Two on Text.FromChars to get the TEXT values allocated and one on Text.Cat to do the concatenation. All three TEXT strings will be allocated, but will immediately become garbage, available for collection. 2007-09-27 20:43 rodney * m3-sys/m3gdb/gdb/gdb/: gdbtypes.h, language.c, m3-eval.c, m3-exp.c, m3-lang.c, m3-lang.h, m3-token.c, m3-util.c, m3-util.h, m3-valprint.c, value.c: Add support of text and widetext literals in interactively-typed m3gdb commands. They can now be assigned to variables and passed as parameters. This entails m3gdb's calling Text.FromChars or Text.FromWideChars, to get a true TEXT allocated in the target's heap. Also, misc comment and formatting cleanups and more underscore macros. 2007-09-22 21:22 rodney * m3-sys/m3gdb/gdb/gdb/m3-lang.c: Recent cm3 compilers have changed stabs output for bounds of subranges from signed-magnitude-decimal to twos-complement, variable length hexadecimal. Adapt m3gdb to recognize both formats. 2007-09-22 21:19 rodney * m3-sys/m3gdb/gdb/gdb/m3-util.c: Improve a few comments and clean up a bit of formatting. 2007-09-22 21:01 rodney * m3-sys/m3gdb/gdb/gdb/m3-eval.c: Systematically add the mysterious '_' macro(?) call to all message strings in this source file. Also, a few cleanups of comments and formatting. 2007-09-21 20:44 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Inadvertently included some incomplete code. 2007-09-21 17:29 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Avoid NIL pointer dereference if Alert is invoked on a thread that is already dead. 2007-09-21 13:18 thielema * m3-libs/wellfett/example/src/: ExampleTube.i3, ExampleTube.m3, Main.m3, m3makefile: ExampleTube: another example for wavelet matching 2007-09-21 13:17 thielema * m3-libs/wellfett/example/src/: ExampleMEG.i3, ExampleMEG.m3: adapt to VanillaFilterBank 2007-09-21 13:15 thielema * m3-libs/wellfett/example/.cvsignore: example/.cvsignore 2007-09-21 13:14 thielema * m3-libs/wellfett/src/m3overrides: m3overrides added 2007-09-21 13:13 thielema * m3-libs/wellfett/src/wavelet/discrete/basis/: VanillaDyadicFilterBank.ig, VanillaDyadicFilterBank.mg, DyadicFilterBank.ig, DyadicFilterBank.mg, filterbank.tmpl, m3makefile: VanillaDyadicFilterBank added: handles filter banks for classical DWTs, where the analysis consists of correlation rather than convolution 2007-09-21 13:12 thielema * m3-libs/wellfett/example/src/: GZipRd.i3, GZipRd.m3: moved GZipRd to commandrw package 2007-09-18 20:24 hosking * m3-libs/m3core/src/word/GenWord.ig, m3-libs/m3core/src/word/GenWord.mg, m3-libs/m3core/src/word/Long.i3, m3-libs/m3core/src/word/Long.m3, m3-libs/m3core/src/word/LongRep.i3, m3-libs/m3core/src/word/Word.i3, m3-libs/m3core/src/word/Word.m3, m3-libs/m3core/src/word/WordRep.i3, m3-libs/m3core/src/word/m3makefile, m3-sys/m3back/src/Codex86.m3, m3-sys/m3front/src/builtinInfo/InfoThisLine.m3, m3-sys/m3front/src/builtinLong/LongAnd.m3, m3-sys/m3front/src/builtinLong/LongDivide.m3, m3-sys/m3front/src/builtinLong/LongExtract.m3, m3-sys/m3front/src/builtinLong/LongGE.m3, m3-sys/m3front/src/builtinLong/LongGT.m3, m3-sys/m3front/src/builtinLong/LongInsert.m3, m3-sys/m3front/src/builtinLong/LongLE.m3, m3-sys/m3front/src/builtinLong/LongLT.m3, m3-sys/m3front/src/builtinLong/LongMinus.m3, m3-sys/m3front/src/builtinLong/LongMod.m3, m3-sys/m3front/src/builtinLong/LongModule.m3, m3-sys/m3front/src/builtinLong/LongNot.m3, m3-sys/m3front/src/builtinLong/LongOr.m3, m3-sys/m3front/src/builtinLong/LongPlus.m3, m3-sys/m3front/src/builtinLong/LongRotate.m3, m3-sys/m3front/src/builtinLong/LongShift.m3, m3-sys/m3front/src/builtinLong/LongTimes.m3, m3-sys/m3front/src/builtinLong/LongXor.m3, m3-sys/m3front/src/builtinOps/Abs.m3, m3-sys/m3front/src/builtinOps/BitSize.m3, m3-sys/m3front/src/builtinOps/ByteSize.m3, m3-sys/m3front/src/builtinOps/Ceiling.m3, m3-sys/m3front/src/builtinOps/Dec.m3, m3-sys/m3front/src/builtinOps/First.m3, m3-sys/m3front/src/builtinOps/Inc.m3, m3-sys/m3front/src/builtinOps/Last.m3, m3-sys/m3front/src/builtinOps/Max.m3, m3-sys/m3front/src/builtinOps/Min.m3, m3-sys/m3front/src/builtinOps/New.m3, m3-sys/m3front/src/builtinOps/Number.m3, m3-sys/m3front/src/builtinOps/Ord.m3, m3-sys/m3front/src/builtinOps/Subarray.m3, m3-sys/m3front/src/builtinOps/Val.m3, m3-sys/m3front/src/builtinTypes/Bool.m3, m3-sys/m3front/src/builtinTypes/Card.m3, m3-sys/m3front/src/builtinTypes/Null.m3, m3-sys/m3front/src/builtinWord/WordAnd.m3, m3-sys/m3front/src/builtinWord/WordDivide.m3, m3-sys/m3front/src/builtinWord/WordExtract.m3, m3-sys/m3front/src/builtinWord/WordGE.m3, m3-sys/m3front/src/builtinWord/WordGT.m3, m3-sys/m3front/src/builtinWord/WordInsert.m3, m3-sys/m3front/src/builtinWord/WordLE.m3, m3-sys/m3front/src/builtinWord/WordLT.m3, m3-sys/m3front/src/builtinWord/WordMinus.m3, m3-sys/m3front/src/builtinWord/WordMod.m3, m3-sys/m3front/src/builtinWord/WordModule.m3, m3-sys/m3front/src/builtinWord/WordNot.m3, m3-sys/m3front/src/builtinWord/WordOr.m3, m3-sys/m3front/src/builtinWord/WordPlus.m3, m3-sys/m3front/src/builtinWord/WordRotate.m3, m3-sys/m3front/src/builtinWord/WordShift.m3, m3-sys/m3front/src/builtinWord/WordTimes.m3, m3-sys/m3front/src/builtinWord/WordXor.m3, m3-sys/m3front/src/exprs/AddressExpr.m3, m3-sys/m3front/src/exprs/ArrayExpr.m3, m3-sys/m3front/src/exprs/CastExpr.m3, m3-sys/m3front/src/exprs/CheckExpr.m3, m3-sys/m3front/src/exprs/CompareExpr.m3, m3-sys/m3front/src/exprs/DivExpr.m3, m3-sys/m3front/src/exprs/EnumExpr.m3, m3-sys/m3front/src/exprs/EqualExpr.m3, m3-sys/m3front/src/exprs/Expr.m3, m3-sys/m3front/src/exprs/ExprParse.m3, m3-sys/m3front/src/exprs/InExpr.m3, m3-sys/m3front/src/exprs/IntegerExpr.i3, m3-sys/m3front/src/exprs/IntegerExpr.m3, m3-sys/m3front/src/exprs/ModExpr.m3, m3-sys/m3front/src/exprs/NamedExpr.m3, m3-sys/m3front/src/exprs/NilChkExpr.m3, m3-sys/m3front/src/exprs/RangeExpr.m3, m3-sys/m3front/src/exprs/ReelExpr.i3, m3-sys/m3front/src/exprs/ReelExpr.m3, m3-sys/m3front/src/exprs/SetExpr.m3, m3-sys/m3front/src/exprs/SubscriptExpr.m3, m3-sys/m3front/src/exprs/SubtractExpr.m3, m3-sys/m3front/src/misc/CG.i3, m3-sys/m3front/src/misc/CG.m3, m3-sys/m3front/src/misc/Coverage.m3, m3-sys/m3front/src/misc/Marker.m3, m3-sys/m3front/src/misc/Scanner.m3, m3-sys/m3front/src/misc/TipeDesc.m3, m3-sys/m3front/src/misc/Token.i3, m3-sys/m3front/src/misc/Token.m3, m3-sys/m3front/src/stmts/AssertStmt.m3, m3-sys/m3front/src/stmts/AssignStmt.m3, m3-sys/m3front/src/stmts/CaseStmt.m3, m3-sys/m3front/src/stmts/DebugStmt.m3, m3-sys/m3front/src/stmts/ForStmt.m3, m3-sys/m3front/src/stmts/TryFinStmt.m3, m3-sys/m3front/src/types/ArrayType.m3, m3-sys/m3front/src/types/EnumType.m3, m3-sys/m3front/src/types/ObjectType.m3, m3-sys/m3front/src/types/OpenArrayType.m3, m3-sys/m3front/src/types/PackedType.m3, m3-sys/m3front/src/types/SubrangeType.m3, m3-sys/m3front/src/types/Type.m3, m3-sys/m3front/src/values/EnumElt.m3, m3-sys/m3front/src/values/Exceptionz.m3, m3-sys/m3front/src/values/Formal.m3, m3-sys/m3front/src/values/Module.m3, m3-sys/m3front/src/values/Variable.m3, m3-sys/m3linker/src/MxGen.m3, m3-sys/m3middle/src/M3Buf.m3, m3-sys/m3middle/src/M3CG_BinRd.m3, m3-sys/m3middle/src/M3CG_BinWr.m3, m3-sys/m3middle/src/M3CG_Rd.m3, m3-sys/m3middle/src/M3CG_Wr.m3, m3-sys/m3middle/src/TFloat.i3, m3-sys/m3middle/src/TFloat.m3, m3-sys/m3middle/src/TInt.i3, m3-sys/m3middle/src/TInt.m3, m3-sys/m3middle/src/TWord.i3, m3-sys/m3middle/src/TWord.m3, m3-sys/m3middle/src/Target.i3, m3-sys/m3middle/src/Target.m3, m3-sys/m3tools/src/M3Builtin.m3, m3-sys/m3tools/src/M3Const.m3, m3-sys/m3tools/src/M3Lexer.m3, m3-sys/m3tools/src/M3Type.m3: Tidied up implementation of target integer representation so that multi-precision comparisons can be performed, and other operations check overflow against the smallest precision value (this permits adding constants that have representations valid at all precisions and simplifies the compiler front-end significantly for the new LONGINT support. Tidied up a few other remaining issues with LONGINT support. 2007-09-18 18:34 hosking * m3-libs/m3core/src/runtime/common/RTTypeFP.m3: Reformat for readability and adjust shifts to primes. 2007-09-17 23:01 hosking * doc/reference/complete/m3-defn-complete.tex: Fix formatting error. 2007-09-17 20:31 hosking * doc/reference/complete/m3-defn-complete.tex: Add LONGINT to list of reserved identifiers. 2007-09-17 20:17 hosking * doc/reference/syntax.html: Add LONGINT to list of reserved identifiers. 2007-09-16 19:23 rodney * m3-libs/libm3/src/pickle/ver2/Pickle2.m3: Display the failing fingerprint when unpickling fails to find a pickled type in the reading main program. This helps in the first step of tracking down this difficult-to-diagnose problem. 2007-09-16 19:22 rodney * m3-libs/libm3/src/pickle/ver2/Pickle2.i3: Add comments in Pickle2.i3 to warn about unportability traps, when moving from PM3 pickles to CM3 pickles. 2007-09-16 19:20 rodney * m3-libs/m3core/src/runtime/common/RTTypeFP.m3: The hash code in this procedure appears to be left over from the SRC/PM3/EZM3 version, where a fingerprint was an array of 2 words. That compiles and works, but gives hash values only in the range [0..255], which can be far too small for some programs, resulting in poor use of the hash table . This is a better hash function for the CM3 case, where a fingerprint is an array of 8 bytes. 2007-09-12 19:31 rodney * m3-sys/m3gdb/gdb/gdb/: expression.h, m3-eval.c, m3-exp.c, m3-lang.c, m3-typeprint.c, m3-util.c, m3-util.h, m3-valprint.c: Several bug fixes and improvements to m3gdb: 1. Rework subtype relation and fix a backwards relation bug. 2. Factor out some redundant code. 3. Implement TYPECODE, on non-NIL values only. 4. Fix bug when trying to get the typecode of UNTRACED REF types. 5. Fix bug in computing addresses of fields of objects and records, when the entire object is printed. 6. Add command "info Modula-3" to show the compiler and backend used to compile the program being debugged. Aliases: modula-3, Modula3, modula3, M3, m3. 2007-09-06 18:06 hosking * m3-libs/m3core/src/runtime/common/RT0.i3: Fix range on spare bits to match number of spare bits. 2007-09-04 08:42 jkrell * m3-libs/m3core/src/thread/WIN32/ThreadF.i3: remove MyAllocPool to fix compilation; it is not implemented move a comment closer to where it seemed to have been intended 2007-09-04 08:34 jkrell * m3-libs/m3core/src/thread/WIN32/ThreadF.i3: export MyHeapState like Posix 2007-09-04 08:33 jkrell * m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3: put this back, it needs to be exported for RTCollector 2007-09-04 08:32 jkrell * m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3: fix compilation warning -- MyHeapState is not used and not exported it is exported by ThreadPosix, should it be exported here? 2007-09-04 08:25 jkrell * m3-libs/m3core/src/runtime/WIN32/RTOS.m3: fix compilation warning about unused import 2007-09-04 08:23 jkrell * m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3: fix typo so it compiles 2007-09-04 08:02 jkrell * m3-libs/m3core/src/Csupport/Common/hand.c: replace runtime initialized tables with compile time constant initialized tables, using the original code to generate the tables on a developer machine and print them out and paste the code in also, where unsigned long is 32 bits, combine LoBits with _lowbits, offseting the index by one, and HiBits with _highbits. 2007-09-03 23:46 jkrell * m3-libs/m3core/src/Csupport/Common/hand.c: move tables up in prep for a change where they can be shared 2007-09-03 23:44 jkrell * m3-libs/m3core/src/Csupport/Common/hand.c: remove extra parameter oops make the initialized tables const fix warning at -W4 with Microsoft C change all bits to unsigned (but not the bit indices, that prob needs attn too) 2007-09-03 23:24 jkrell * m3-libs/m3core/src/Csupport/Common/hand.c: strengthen race condition fix, and work in progress #if 0'ed out 2007-09-03 22:50 jkrell * m3-libs/m3core/src/Csupport/Common/hand.c: fix line endings 2007-09-03 22:48 jkrell * m3-libs/m3core/src/Csupport/Common/hand.c: let it compile with older versions of Microsoft C by optionally using __int64 instead of long long also remove unnecessary L and LL suffixes long a = 0; a = (a + 1) => the constants will "automatically" be correctly promoted; only maybe an issue with long a = ~0L; let it be valid C++ via optional prototypes, and extern "C" for compatibility replace HiBits[0] with ~0L in set_range when b < a in set_range, don't bother with throw away work fix obvious race condition in BuildTables use int for a boolean instead long, no difference on the vast majority of systems fix safe signed / unsigned mismatch reported by gcc -Wall 2007-09-01 17:06 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Solaris also lies about sp for threads blocked on select. Cache sp around that call too. 2007-08-27 22:46 hosking * m3-sys/m3front/src/misc/CG.m3: Even cleaner. 2007-08-27 22:45 hosking * m3-sys/m3front/src/misc/CG.m3: Cleaner definition of StackType. 2007-08-27 18:02 hosking * m3-tools/gnuemacs/src/modula3.el: Add EXTENDED and LONGINT. 2007-08-26 21:34 hosking * m3-libs/m3core/src/: runtime/common/RTAllocator.m3, runtime/common/RTCollector.m3, runtime/common/RTHeapRep.i3, thread/POSIX/ThreadPosix.m3, thread/PTHREAD/ThreadF.i3, thread/PTHREAD/ThreadPThread.m3, thread/WIN32/ThreadWin32.m3: Switch to using generic "heapState" field in thread in preparation for additional state. 2007-08-26 15:36 hosking * m3-libs/libm3/src/types/: Int64.i3, m3makefile: Revert Int64 and change m3makefile so it does not get compiled on NT386 target which uses the non-gcc backend that can't handle 64 bits yet. 2007-08-26 11:59 jkrell * m3-libs/libm3/src/types/Int32.i3: remove just added comment, ALPHA_OSF target has 64 bit integers.. I still think this is all of unclear goodness vs. other models.. 2007-08-26 11:44 jkrell * m3-libs/libm3/src/types/Int32.i3: commented out possibility that is consistent with Int64.i3; is it correct? Not sure -- is INTEGER always 32 bits or is it 64 bits on some platforms? Does the compiler compute these values correctly? These are not difficult to answer questions.. 2007-08-26 11:43 jkrell * m3-libs/libm3/src/types/Int64.i3: Fix it to compile for Win32's temporary 32 bit Int64. Is this correct? I think so. 2007-08-26 11:08 jkrell * m3-sys/m3back/src/Codex86.m3: fix it to compile; unknown if this is correct 2007-08-26 10:44 jkrell * scripts/win/clearenv.cmd: cleanup mess made by make-dist 2007-08-26 10:43 jkrell * scripts/win/pkgmap.cmd: more context to peel the onion when reproducing errors 2007-08-26 10:35 jkrell * scripts/win/make-dist.cmd: beware cmd wackiness -- cmd does not like parens in the body of an if, thereby making the whole if-paren feature largely broken.. 2007-08-26 10:31 jkrell * scripts/win/make-dist.cmd: slightly terser butt coverage 2007-08-26 10:29 jkrell * scripts/win/make-dist.cmd: butt coverage regarding abuse of %TEMP% 2007-08-26 10:25 jkrell * scripts/win/: make-dist.cmd, pkgmap.cmd: tweak error reporting to give more context note that the errors appear in a backwards stack sort of way 2007-08-26 10:13 jkrell * scripts/win/make-dist.cmd: better error reporting and fix an error in early stages mklib.pdb does not exist, ok 2007-08-26 00:05 rodney * m3-sys/: m3cc/gcc/gcc/dbxout.c, m3gdb/gdb/gdb/m3-eval.c, m3gdb/gdb/gdb/m3-lang.c: m3gdb function calls had lost the ability to display the result of a function call. In particular, "print Thread.Self()" now works again. To get the benefit of this, you have to rebuild cm3, then use it to rebuild m3core (or whatever contains functions you would like to call.) 1) Forward patch a change to dbxout.c that never made it from the 3.4.5-to the 4.1.1-based code generator. This gives m3gdb necessary information about blocks, so it can find local variables (which, oddly, is how it finds if a procedure is a function and if so, its result type.) 2) Fix a regression in m3gdb, no longer looking in the outermost block of a function, for the function result pseudo-variable. This affected recent-cm3-compiled functions with "large" function results. 2007-08-20 23:32 hosking * m3-sys/m3cc/gcc/gcc/m3cg/parse.c: Slight tidy-up of scan_float, but doesn't fix problem with building float constants on AMD64 unless we compile with "-m32". 2007-08-20 19:40 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Get rid of alertable field. Alerted waiters can dequeue themselves. 2007-08-20 14:42 hosking * m3-libs/m3core/src/runtime/: I386_DARWIN/RTMachine.i3, I386_DARWIN/RTMachineC.c, I386_DARWIN/RTThreadC.c, I386_DARWIN/m3makefile, LINUXLIBC6/RTMachine.i3, PPC_DARWIN/RTMachine.i3, PPC_DARWIN/RTMachineC.c, PPC_DARWIN/RTThreadC.c, PPC_DARWIN/m3makefile: Sync RTMachine.GetState declarations with changes made for Solaris. Move RTMachine functionality from RTThreadC.c into separate RTMachineC.c. 2007-08-20 14:38 hosking * m3-sys/m3middle/src/Target.i3: Change comment to avoid "'" so that M3 syntax highlighting in emacs does not get confused. 2007-08-20 14:23 hosking * m3-libs/m3core/src/runtime/SOLsun/: RTStackC.c, RTMachine.i3, RTMachine.m3, m3makefile: Bring into sync with SOLgnu. 2007-08-20 14:21 hosking * m3-libs/m3core/src/runtime/SOLgnu/: m3makefile, RTStackC.c: Use RTMachine__SaveRegsInStack instead of RTStack__Flush. 2007-08-20 14:17 hosking * m3-libs/m3core/src/: thread/PTHREAD/ThreadPThread.m3, runtime/SOLgnu/RTMachine.m3, runtime/SOLgnu/RTMachine.i3: Solaris thr_getstate is unreliable (when did this happen??) for threads blocking in pthread_cond_wait and nanosleep. Threads entering blocking calls must deposit a reliable stack pointer into their activation record before blocking, and clear it afterwards, to signal to the stopping thread that it should not rely on GetState. mentor now runs again on Solaris. 2007-08-19 22:23 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: pthread_t is not always an ADDRESS. 2007-08-19 20:02 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Cosmetic changes. 2007-08-19 19:33 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Cosmetic changes. 2007-08-18 21:57 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Add debugging support. Drain semaphore on receipt of signals. 2007-08-16 16:53 hosking * m3-sys/m3middle/src/Target.m3: Make Longint/Longword to be 32 bits on NT386 so Jay can build. 2007-08-15 19:52 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Problems with pthread_cond_timedwait on SMP. Use nanowait instead. 2007-08-15 17:39 hosking * m3-libs/m3core/src/word/: Long.i3, m3makefile, Long.m3: Resurrect Long.i3. Backend compilers support this. m3back needs fixing to handle 64-bit LONGINT. 2007-08-15 15:20 hosking * m3-sys/m3cc/gcc/gcc/m3cg/parse.c: Fix scan_target_int to properly scan 64-bit integers on 32-bit hosts when HOST_WIDE_INT == long long. This fixes the problem with LONGINT on PPC_DARWIN. "do-cm3-std.sh buildship" now succeeds with LONGINT for all of I386_DARWIN, PPC_DARWIN, LINUXLIBC6. Testing on SOLgnu next. 2007-08-13 23:47 hosking * m3-tools/: m3markup/src/M3MarkUp.m3, m3scan/src/M3Scanner.m3, m3scan/src/M3Token.i3, m3scan/src/M3Token.m3: Fix m3scan and m3markup to handle LONGINT. m3browser *really* works now... :-) 2007-08-13 23:02 hosking * m3-sys/m3front/src/types/Type.m3: Put LInt in TypeTbl along with other builtin types. 2007-08-13 23:01 hosking * m3-libs/m3core/src/runtime/common/RTBuiltin.mx: Adjust count to match addition of LONGINT. 2007-08-13 20:30 hosking * m3-libs/m3core/src/C/32BITS/BasicCtypes.i3, m3-sys/m3front/src/misc/M3Front.m3: LongModule needs treatment for builtins the same as WordModule. m3browser now works properly for LONGINT. 2007-08-13 19:49 hosking * m3-libs/libm3/src/types/Int64.i3, m3-libs/libm3/src/types/Int64.m3, m3-libs/libm3/src/types/Longint.i3, m3-libs/libm3/src/types/Longint.m3, m3-libs/libm3/src/types/m3makefile, m3-libs/m3core/src/C/32BITS/BasicCtypes.i3, m3-libs/m3core/src/runtime/common/RTBuiltin.mx, m3-sys/m3front/src/builtinLong/LongAnd.m3, m3-sys/m3front/src/builtinLong/LongExtract.m3, m3-sys/m3front/src/builtinLong/LongInsert.m3, m3-sys/m3front/src/builtinLong/LongMod.m3, m3-sys/m3front/src/builtinLong/LongRotate.m3, m3-sys/m3front/src/builtinLong/LongShift.m3, m3-sys/m3front/src/builtinOps/Abs.m3, m3-sys/m3front/src/builtinOps/Dec.m3, m3-sys/m3front/src/builtinOps/First.m3, m3-sys/m3front/src/builtinOps/Inc.m3, m3-sys/m3front/src/builtinOps/IsType.m3, m3-sys/m3front/src/builtinOps/Last.m3, m3-sys/m3front/src/builtinOps/Number.m3, m3-sys/m3front/src/builtinOps/Ord.m3, m3-sys/m3front/src/builtinOps/Subarray.m3, m3-sys/m3front/src/builtinOps/Val.m3, m3-sys/m3front/src/builtinTypes/Bool.m3, m3-sys/m3front/src/builtinTypes/Card.m3, m3-sys/m3front/src/builtinTypes/Null.m3, m3-sys/m3front/src/builtinWord/WordAnd.m3, m3-sys/m3front/src/builtinWord/WordExtract.m3, m3-sys/m3front/src/builtinWord/WordInsert.m3, m3-sys/m3front/src/builtinWord/WordMod.m3, m3-sys/m3front/src/builtinWord/WordRotate.m3, m3-sys/m3front/src/builtinWord/WordShift.m3, m3-sys/m3front/src/exprs/AddressExpr.m3, m3-sys/m3front/src/exprs/AndExpr.m3, m3-sys/m3front/src/exprs/ArrayExpr.m3, m3-sys/m3front/src/exprs/CheckExpr.m3, m3-sys/m3front/src/exprs/CompareExpr.m3, m3-sys/m3front/src/exprs/DivExpr.m3, m3-sys/m3front/src/exprs/EnumExpr.m3, m3-sys/m3front/src/exprs/EqualExpr.m3, m3-sys/m3front/src/exprs/Expr.m3, m3-sys/m3front/src/exprs/ExprParse.m3, m3-sys/m3front/src/exprs/InExpr.m3, m3-sys/m3front/src/exprs/IntegerExpr.m3, m3-sys/m3front/src/exprs/ModExpr.m3, m3-sys/m3front/src/exprs/NamedExpr.m3, m3-sys/m3front/src/exprs/NilChkExpr.m3, m3-sys/m3front/src/exprs/NotExpr.m3, m3-sys/m3front/src/exprs/OrExpr.m3, m3-sys/m3front/src/exprs/SetExpr.m3, m3-sys/m3front/src/exprs/SubscriptExpr.m3, m3-sys/m3front/src/misc/CG.m3, m3-sys/m3front/src/misc/Coverage.m3, m3-sys/m3front/src/misc/Scanner.m3, m3-sys/m3front/src/misc/TipeDesc.m3, m3-sys/m3front/src/stmts/AssertStmt.m3, m3-sys/m3front/src/stmts/CaseStmt.m3, m3-sys/m3front/src/stmts/DebugStmt.m3, m3-sys/m3front/src/stmts/ForStmt.m3, m3-sys/m3front/src/types/ArrayType.m3, m3-sys/m3front/src/types/EnumType.m3, m3-sys/m3front/src/types/ObjectType.m3, m3-sys/m3front/src/types/OpenArrayType.m3, m3-sys/m3front/src/types/SubrangeType.m3, m3-sys/m3front/src/types/Type.m3, m3-sys/m3linker/src/MxGen.m3, m3-sys/m3middle/src/M3CG_BinRd.m3, m3-sys/m3middle/src/M3CG_BinWr.m3, m3-sys/m3middle/src/M3CG_Rd.m3, m3-sys/m3middle/src/TInt.i3, m3-sys/m3middle/src/TInt.m3, m3-sys/m3middle/src/TWord.i3, m3-sys/m3middle/src/TWord.m3, m3-sys/m3middle/src/Target.i3, m3-sys/m3middle/src/Target.m3, m3-sys/m3tools/src/M3Builtin.m3, m3-sys/m3tools/src/M3Const.m3, m3-sys/m3tools/src/M3Type.m3, m3-tools/m3browser/src/Main.m3: Fix problems with LONGINT subranges. Tidy up TInt usage. Add LONGINT and its UID to RTBuiltin.mx and m3browser/src/Main.m3. 2007-08-13 14:37 rodney * m3-sys/m3gdb/gdb/gdb/: ada-lex.l, ada-lex.c: No change to the contents of these files. This is an attempt to get the time stampof ada-lex.c to be later than that of ada-lex.l. This will mean m3gdb will build without requiring flex to be installed. 2007-08-12 19:02 jkrell * scripts/win/sysinfo.cmd: update version to d5.5.0, tracking scripts/sysinfo.sh 2007-08-12 18:59 jkrell * scripts/win/: backup-pkgs.cmd, def-std-pkgs.cmd, do-cm3-base.cmd, do-cm3-core.cmd: remove dll2lib, Tony asked about it -- it is tied to the old GC 2007-08-12 18:57 jkrell * scripts/win/make-dist.cmd: don't make the runtime in the first pass; that doesn't work instead copy it from old package store use the current import .libs -- necessary when bootstrapping from 5.2.6 remove redundant comment 2007-08-12 18:45 hosking * m3-ui/ui/src/winvbt/WinTrestle.m3: Change comment to match StarTrek parameter meaning. 2007-08-12 18:43 hosking * m3-ui/ui/src/: winvbt/WinTrestle.m3, xvbt/NTClientF.m3: Reverse sense of StarTrek parameter, as for X. 2007-08-12 18:21 jkrell * scripts/win/: make-dist.cmd, upgrade.cmd: oops - clearing non set variable is an error and makes us do nothing, fast 2007-08-12 18:17 jkrell * scripts/win/: make-dist.cmd, upgrade.cmd: Start with the installed cm3. 2007-08-12 17:41 jkrell * m3-ui/ui/src/winvbt/WinTrestle.m3: fix it to build -- RTHeapDep.VM is always FALSE, and no longer avialable 2007-08-12 17:16 jkrell * m3-win/vcredist.txt: add link to service pack 1 (which you can easily find searchig the web anyway) 2007-08-12 17:03 jkrell * m3-libs/m3core/src/C/: FreeBSD/CstdioC.c, FreeBSD3/CstdioC.c, FreeBSD4/CstdioC.c, I386_DARWIN/CstdioC.c, NetBSD2_i386/CstdioC.c, PPC_DARWIN/CstdioC.c: remove gratuious semicolons, mostly at global scope 2007-08-12 16:57 jkrell * m3-libs/m3core/src/C/FreeBSD2/CstdioC.c: Remove gratuitious semicolons at global scope. 2007-08-12 16:53 jkrell * m3-lectern/buildlectern/src/Cscale.c: gcc -Wall suggests braces on ambiguous else; assembly is the same either way. gcc -Wall points out undefined-nes due to use of *foo and *foo++ with no intervening "sequence pointe". Use two statements instead. 2007-08-12 16:46 jkrell * m3-lectern/buildlectern/src/Cscale.c: Make it valid C++ and fix warnings. 2007-08-12 04:49 hosking * doc/reference/complete/m3-defn-complete.tex: Changes for LONGINT. 2007-08-12 04:47 hosking * doc/reference/for.html: Tweak. 2007-08-12 04:42 hosking * doc/reference/numbers.html: Tweaks. 2007-08-12 04:29 hosking * doc/reference/complete/m3-defn-complete.tex: Tidier. 2007-08-12 03:39 hosking * doc/reference/complete/m3-defn-complete.tex: Fix indent. 2007-08-12 03:34 hosking * doc/reference/complete/m3-defn-complete.tex: Let's use Times-Roman. Fix broken hboxes. 2007-08-12 03:03 hosking * doc/reference/complete/m3-defn-complete.tex: Format verbatims and align tables. 2007-08-11 18:59 hosking * doc/reference/complete/m3-defn-complete.tex: Re-format paragraphs. 2007-08-11 18:53 hosking * doc/reference/complete/m3-defn-complete.tex: Space sentence endings, fix abbreviation periods. 2007-08-11 18:51 hosking * doc/reference/complete/m3-defn-complete.tex: White-space changes. Indent and wrap lines. 2007-08-11 18:35 jkrell * m3-sys/cminstall/src/config/NT386: Fix BuildStandalone that I probably broke a few months ago. This fixes unresolved dynamic imports in cm3.exe against RTHeapDep when used against the "latest" (old) Win32 binary release. This also should fix the problem where you can't cm3 -ship m3core.dll because it is in use -- leaving only cm3.exe that can't be shipped using the normal mechanism (but it should probably recognize this and rename itself away -- a matter for another day.) 2007-08-11 17:39 jkrell * m3-libs/m3core/src/word/: Long.i3, Long.m3, m3makefile: Provide Long primitives in C at least until x86 back end updated. Build proceeds further and then crashes. 2007-08-11 17:19 hosking * doc/reference/complete/m3-defn-complete.tex: Fix quotes. 2007-08-11 16:35 jkrell * scripts/win/clearenv.cmd: Don't clear %CM3% so that we can attempt to follow Tony's bootstrapping instructions. 2007-08-11 15:59 jkrell * m3-sys/m3back/src/Codex86.m3: Fix it to build. Is this correct? 2007-08-09 02:15 rodney * m3-sys/m3gdb/gdb/gdb/m3-util.c: Fix to display numeric escapes in CHAR and TEXT values in Modula-3 octal, instead of hex. 2007-08-08 20:56 rodney * doc/reference/complete/: m3-defn-complete.html, m3-defn-complete.ps, m3-defn-complete.tex: Initial checkin, prior to updates. The three files are not yet known to be consistent. 2007-08-08 12:24 hosking * m3-sys/m3front/src/builtinLong/m3makefile: Ommitted this. 2007-08-08 03:49 hosking * doc/reference/arithmetic.html, doc/reference/arrays.html, doc/reference/conventions.html, doc/reference/for.html, doc/reference/index.html, doc/reference/m3.html, doc/reference/m3index.html, doc/reference/m3logo.gif, doc/reference/numbers.html, doc/reference/ordinal.html, doc/reference/subtypes.html, doc/reference/typeops.html, doc/reference/word-intf.html, m3-db/smalldb/src/OSSupport.m3, m3-libs/libm3/src/os/POSIX/FSPosix.m3, m3-libs/libm3/src/os/POSIX/FilePosix.m3, m3-libs/libm3/src/os/POSIX/SocketPosix.m3, m3-libs/libm3/src/pickle/ver2/ConvertPacking.m3, m3-libs/m3core/src/C/32BITS/BasicCtypes.i3, m3-libs/m3core/src/C/64BITS/BasicCtypes.i3, m3-libs/m3core/src/Csupport/Common/hand.c, m3-libs/m3core/src/runtime/POSIX/RTOS.m3, m3-libs/m3core/src/runtime/common/RTTipe.i3, m3-libs/m3core/src/runtime/common/RTTipe.m3, m3-libs/m3core/src/thread/m3makefile, m3-libs/m3core/src/unix/darwin-generic/Umman.i3, m3-libs/m3core/src/unix/darwin-generic/Unix.i3, m3-libs/m3core/src/unix/darwin-generic/Utypes.i3, m3-libs/m3core/src/unix/darwin-generic/m3makefile, m3-libs/m3core/src/unix/freebsd-2/Umman.i3, m3-libs/m3core/src/unix/freebsd-2/Unix.i3, m3-libs/m3core/src/unix/freebsd-2/Utypes.i3, m3-libs/m3core/src/unix/freebsd-2/m3makefile, m3-libs/m3core/src/unix/freebsd-3/Umman.i3, m3-libs/m3core/src/unix/freebsd-3/Unix.i3, m3-libs/m3core/src/unix/freebsd-3/Utypes.i3, m3-libs/m3core/src/unix/freebsd-3/m3makefile, m3-libs/m3core/src/unix/freebsd-4/Umman.i3, m3-libs/m3core/src/unix/freebsd-4/Unix.i3, m3-libs/m3core/src/unix/freebsd-4/Utypes.i3, m3-libs/m3core/src/unix/freebsd-4/m3makefile, m3-libs/m3core/src/unix/netbsd2-i386/Umman.i3, m3-libs/m3core/src/unix/netbsd2-i386/Unix.i3, m3-libs/m3core/src/unix/netbsd2-i386/Utypes.i3, m3-libs/m3core/src/unix/netbsd2-i386/m3makefile, m3-libs/m3core/src/word/Long.i3, m3-libs/m3core/src/word/Long.m3, m3-libs/m3core/src/word/m3makefile, m3-sys/m3cc/gcc/gcc/m3cg/parse.c, m3-sys/m3front/src/m3makefile, m3-sys/m3front/src/builtinInfo/InfoThisLine.m3, m3-sys/m3front/src/builtinLong/LongAnd.i3, m3-sys/m3front/src/builtinLong/LongAnd.m3, m3-sys/m3front/src/builtinLong/LongDivide.i3, m3-sys/m3front/src/builtinLong/LongDivide.m3, m3-sys/m3front/src/builtinLong/LongExtract.i3, m3-sys/m3front/src/builtinLong/LongExtract.m3, m3-sys/m3front/src/builtinLong/LongGE.i3, m3-sys/m3front/src/builtinLong/LongGE.m3, m3-sys/m3front/src/builtinLong/LongGT.i3, m3-sys/m3front/src/builtinLong/LongGT.m3, m3-sys/m3front/src/builtinLong/LongInsert.i3, m3-sys/m3front/src/builtinLong/LongInsert.m3, m3-sys/m3front/src/builtinLong/LongLE.i3, m3-sys/m3front/src/builtinLong/LongLE.m3, m3-sys/m3front/src/builtinLong/LongLT.i3, m3-sys/m3front/src/builtinLong/LongLT.m3, m3-sys/m3front/src/builtinLong/LongMinus.i3, m3-sys/m3front/src/builtinLong/LongMinus.m3, m3-sys/m3front/src/builtinLong/LongMod.i3, m3-sys/m3front/src/builtinLong/LongMod.m3, m3-sys/m3front/src/builtinLong/LongModule.i3, m3-sys/m3front/src/builtinLong/LongModule.m3, m3-sys/m3front/src/builtinLong/LongNot.i3, m3-sys/m3front/src/builtinLong/LongNot.m3, m3-sys/m3front/src/builtinLong/LongOr.i3, m3-sys/m3front/src/builtinLong/LongOr.m3, m3-sys/m3front/src/builtinLong/LongPlus.i3, m3-sys/m3front/src/builtinLong/LongPlus.m3, m3-sys/m3front/src/builtinLong/LongRotate.i3, m3-sys/m3front/src/builtinLong/LongRotate.m3, m3-sys/m3front/src/builtinLong/LongShift.i3, m3-sys/m3front/src/builtinLong/LongShift.m3, m3-sys/m3front/src/builtinLong/LongTimes.i3, m3-sys/m3front/src/builtinLong/LongTimes.m3, m3-sys/m3front/src/builtinLong/LongXor.i3, m3-sys/m3front/src/builtinLong/LongXor.m3, m3-sys/m3front/src/builtinOps/Abs.m3, m3-sys/m3front/src/builtinOps/BitSize.m3, m3-sys/m3front/src/builtinOps/Ceiling.m3, m3-sys/m3front/src/builtinOps/Dec.m3, m3-sys/m3front/src/builtinOps/First.m3, m3-sys/m3front/src/builtinOps/Floatt.m3, m3-sys/m3front/src/builtinOps/Floor.m3, m3-sys/m3front/src/builtinOps/Inc.m3, m3-sys/m3front/src/builtinOps/Last.m3, m3-sys/m3front/src/builtinOps/Max.m3, m3-sys/m3front/src/builtinOps/New.m3, m3-sys/m3front/src/builtinOps/Number.m3, m3-sys/m3front/src/builtinOps/Ord.m3, m3-sys/m3front/src/builtinOps/Round.m3, m3-sys/m3front/src/builtinOps/Subarray.m3, m3-sys/m3front/src/builtinOps/Trunc.m3, m3-sys/m3front/src/builtinOps/Val.m3, m3-sys/m3front/src/builtinTypes/BuiltinTypes.m3, m3-sys/m3front/src/builtinTypes/Int.m3, m3-sys/m3front/src/builtinTypes/LInt.i3, m3-sys/m3front/src/builtinTypes/LInt.m3, m3-sys/m3front/src/builtinTypes/m3makefile, m3-sys/m3front/src/builtinWord/WordAnd.m3, m3-sys/m3front/src/builtinWord/WordExtract.m3, m3-sys/m3front/src/builtinWord/WordInsert.m3, m3-sys/m3front/src/builtinWord/WordModule.m3, m3-sys/m3front/src/builtinWord/WordNot.m3, m3-sys/m3front/src/builtinWord/WordOr.m3, m3-sys/m3front/src/builtinWord/WordRotate.m3, m3-sys/m3front/src/builtinWord/WordShift.m3, m3-sys/m3front/src/builtinWord/WordXor.m3, m3-sys/m3front/src/exprs/AddExpr.m3, m3-sys/m3front/src/exprs/ArrayExpr.m3, m3-sys/m3front/src/exprs/CastExpr.m3, m3-sys/m3front/src/exprs/CheckExpr.m3, m3-sys/m3front/src/exprs/CompareExpr.m3, m3-sys/m3front/src/exprs/DivExpr.m3, m3-sys/m3front/src/exprs/EqualExpr.m3, m3-sys/m3front/src/exprs/Expr.m3, m3-sys/m3front/src/exprs/ExprParse.m3, m3-sys/m3front/src/exprs/InExpr.m3, m3-sys/m3front/src/exprs/IntegerExpr.i3, m3-sys/m3front/src/exprs/IntegerExpr.m3, m3-sys/m3front/src/exprs/ModExpr.m3, m3-sys/m3front/src/exprs/MultiplyExpr.m3, m3-sys/m3front/src/exprs/NegateExpr.m3, m3-sys/m3front/src/exprs/ReelExpr.i3, m3-sys/m3front/src/exprs/ReelExpr.m3, m3-sys/m3front/src/exprs/SetExpr.m3, m3-sys/m3front/src/exprs/SubscriptExpr.m3, m3-sys/m3front/src/exprs/SubtractExpr.m3, m3-sys/m3front/src/misc/CG.i3, m3-sys/m3front/src/misc/CG.m3, m3-sys/m3front/src/misc/Coverage.m3, m3-sys/m3front/src/misc/M3Front.m3, m3-sys/m3front/src/misc/Marker.m3, m3-sys/m3front/src/misc/Scanner.m3, m3-sys/m3front/src/misc/TipeDesc.i3, m3-sys/m3front/src/misc/TipeDesc.m3, m3-sys/m3front/src/misc/Token.i3, m3-sys/m3front/src/misc/Token.m3, m3-sys/m3front/src/stmts/AssignStmt.m3, m3-sys/m3front/src/stmts/DebugStmt.m3, m3-sys/m3front/src/stmts/ForStmt.m3, m3-sys/m3front/src/stmts/TryFinStmt.m3, m3-sys/m3front/src/types/ArrayType.m3, m3-sys/m3front/src/types/EnumType.m3, m3-sys/m3front/src/types/OpenArrayType.m3, m3-sys/m3front/src/types/SubrangeType.m3, m3-sys/m3front/src/types/Type.i3, m3-sys/m3front/src/types/Type.m3, m3-sys/m3front/src/values/Exceptionz.m3, m3-sys/m3front/src/values/Formal.m3, m3-sys/m3front/src/values/Module.m3, m3-sys/m3front/src/values/Variable.m3, m3-sys/m3middle/src/M3Buf.m3, m3-sys/m3middle/src/M3CG_BinRd.m3, m3-sys/m3middle/src/M3CG_BinWr.m3, m3-sys/m3middle/src/M3CG_Check.m3, m3-sys/m3middle/src/M3CG_Rd.m3, m3-sys/m3middle/src/M3CG_Wr.m3, m3-sys/m3middle/src/TFloat.i3, m3-sys/m3middle/src/TFloat.m3, m3-sys/m3middle/src/TInt.i3, m3-sys/m3middle/src/TInt.m3, m3-sys/m3middle/src/TWord.i3, m3-sys/m3middle/src/TWord.m3, m3-sys/m3middle/src/Target.i3, m3-sys/m3middle/src/Target.m3, m3-sys/m3scanner/src/M3Scanner.i3, m3-sys/m3scanner/src/M3Scanner.m3, m3-sys/m3tools/src/M3AST.i3, m3-sys/m3tools/src/M3Builtin.m3, m3-sys/m3tools/src/M3Const.m3, m3-sys/m3tools/src/M3Lexer.m3, m3-sys/m3tools/src/M3Type.i3, m3-sys/m3tools/src/M3Type.m3, m3-tools/m3browser/src/Main.m3: Compiler and runtime extensions to support LONGINT type. Bootstrapping instructions: build and ship packages in the following order m3middle m3linker m3front m3quake cm3 This places a new compiler in INSTALL_DIR/pkg/cm3/TARGET/cm3. Use this new compiler to build and ship the new system: export CM3=INSTALL_DIR/pkg/cm3/TARGET/cm3 cd cm3/scripts ./do-cm3-std.sh buildship If this is successful then move the new compiler to BINDIR: mv $CM3 INSTALL_DIR/bin/cm3 2007-08-06 22:50 rodney * m3-sys/m3gdb/gdb/gdb/: m3-eval.c, m3-lang.c, m3-util.c, value.c: Bugfixs for: 1) Correct use of wrong addresses to fetch fields of objects with different allocated type from static type. 2) Correct failure to find field names of the allocated type of objects, when different from the static type. 3) Correct error in applying '^' to REF types. 4) Problems with not finding locals of statically enclosing procedures of the current frame fixed. Substantial improvements to non-equality relations. These are still suspect when applied to floating types. 2007-08-06 19:22 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Added explicit variable state field for later use. Minor edits. 2007-08-06 16:35 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: The problem with the pure pthread condition = M3 condition strategy is that it doesn't play well with alerts on Mac OS X. It turns out signalling the alerted thread won't wake it up from pthread_cond_wait or pthread_cond_timedwait, as it will under Linux. This is a problem, since it means alerted threads can hang around until the main thread exits, leaving no thread active. Moreover, the timeout does not seem to get delivered even to a thread waiting on pthread_cond_timedwait, so we can't even use a polling approach. Thus, I am reverting to the older style of condition using explicit queues and a per-thread wait condition, which we can signal on alert to wake up threads in pthread_cond_wait/pthread_cond_timedwait. Sigh! In any case, this thread implementation is tested on both Mac OSX Darwin and Linux. i.e., GUI apps like mentor work correctly. I will look at coming up with a hybrid implementation that retains 1-1 mapping of M3 mutexes to pthread mutexes, but implements M3 conditions as they are in this update, with explicit queues. That way, we will have scalability of avoiding global locks for mutexes, while retaining desirable M3 alert behavior. 2007-08-05 21:16 rodney * m3-sys/m3gdb/gdb/gdb/: m3-lang.c, m3-lang.h, linespec.c, m3-eval.c, m3-exp.c, m3-util.c, m3-util.h, m3-valprint.c, symtab.c: In m3gdb, new support for: 1) In expressions (e.g., print commands), Interface.decl and Module.decl can be used to refer to a declaration local to the interface or module. These work for all interfaces and modules in the link closure, regardless of execution context, if any. (NOTE: currently, no referrences of any kind to named constants are supported, on account of lack of debug information.) 2) In linespece (e.g. break commands), support for Interface.Procedure and Module.Procedure. These work for all interfaces and modules in the link closure, regardless of execution context, if any. 3) In linespecs, if B is any (possibly complex) denotation of a procedure or anonymous block, B.P denotes nested procedure P inside B. 4) In linespecs, if B is any (possibly complex) denotation of a procedure or anonymous block, B.n denotes the nth anonymous block immediately inside B, numbering from 1. 5) In linespecs, if M is a module, then M alone denotes the beginning of the module body block. 6) In linespecs, if M is a module,, then M.1 also denotes its module body block. This form can be used as a prefix to a further dot-selection of a nested procedure or anonymous block inside. Without this, M.P would be ambiguous for a procedure P declared in M and a P declared local to an anonymous block inside M's body block. And a few general cleanups. 2007-08-05 19:40 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Make sure to test alert before returning from XWait. 2007-08-04 17:44 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Add debug support for dumping all threads. Still issues on Darwin. May need to revert to original approach with explicit queues. 2007-08-04 17:28 hosking * m3-ui/ui/src/: vbt/VBTClass.m3, xvbt/XClient.m3: Revert previous change. Bad assumptions made. 2007-08-04 16:30 hosking * m3-ui/mgkit/src/GraphVBT.m3: Fix deadlock! Need to release and acquire locks in reverse order to respect protocol that graph is locked before graph.mgv. 2007-08-03 16:09 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Fix race between Fork and Join. Make sure thread is truly up and running before returning from fork. 2007-08-02 23:33 hosking * m3-ui/ui/src/xvbt/XClient.m3: Sync had a nasty race in it. The handshake requires that the children be released and reacquired while the parent is still held. 2007-08-02 23:32 hosking * m3-ui/ui/src/vbt/VBTClass.m3: SyncDefault had a nasty race in it. The handshake requires that the child be released and reacquired while the parent is still held. 2007-08-02 23:30 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Rework PTHREADS subsystem to map every M3 MUTEX to a pthread mutex and every M3 Condition to a pthread condition. This will improve scalability. Thanks to Dragisa Duric for his comments and suggestions for how to improve pthread-based threading. This update also fixes a major problem with IOWait and IOAlertWait that was causing major problems for GUI applications like mentor. I am happy to report that mentor now runs properly (subject to associated bugfixes in the GUI packages). 2007-08-02 23:22 hosking * m3-libs/m3core/src/unix/: linux-libc6/Upthread.i3, darwin-generic/Upthread.i3, solaris-2-x/Upthread.i3: Change definition of pthread_mutex_init to permit NIL 'attr' argument. 2007-08-02 23:21 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: RTParams really do need to be set during Init instead of at module initialization. 2007-07-29 17:24 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Eliminate cache for idle threads -- just let them die. This simplifies debugging of threads using gdb since there are only as many system threads as live M3 threads. Clean up state changes for better @M3showthread behavior -- this now works and can be used to visualize thread execution in support of debugging. Send SIGIO signal in Alert to thread being alerted in case it is stuck on a select call. [Unfortunately none of these changes appear to fix the hangs of mentor running on Darwin -- need to see if this problem is also present on non-Darwin (Linux/Solaris) pthreads platforms. Assistance diagnosing the mentor problems on Darwin would be appreciated. For now, it appears that the thread listening for X events is alive and responsive, but other threads appear to be stuck waiting on mutexes.] 2007-07-29 17:10 hosking * m3-libs/m3core/src/unix/: darwin-generic/Upthread.i3, linux-libc6/Upthread.i3, solaris-2-x/Upthread.i3: Change definition of pthread_cond_init to permit NIL 'attr' argument. 2007-07-29 03:33 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: Revert to expectations for @M3showheap. This now works agains as expected. 2007-07-26 16:04 hosking * m3-libs/libm3/src/pickle/: ver1/BuiltinSpecials.m3, ver2/BuiltinSpecials2.m3: Fix bug in pickling of Text8CString.T. Generalize TextPklWrite to handle both TextLiteral and Text8CString. Thanks to Mika Nystrom for the bug report. 2007-07-25 22:25 hosking * m3-sys/m3front/src/builtinOps/Subarray.m3: Fix typo in error message. 2007-07-19 15:23 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Fix bug in PTHREAD threading having to do with alerts and timed pauses. Thanks to Mika Nystrom for this bug report and preliminary diagnosis. 2007-07-13 15:38 rodney * m3-sys/m3gdb/gdb/gdb/: block.h, dbxread.c, m3-eval.c, m3-exp.c, m3-lang.c, m3-lang.h, m3-util.c, m3-util.h, m3-valprint.c, stabsread.c: Improvements to: 1) Access to qualified names, and 2) Following static links. These fixes were lost months ago. 2007-07-12 10:17 thielema * m3-libs/plplot/test/src/Main.m3: test on Viewports, PLPlot -> LongRealPLPlot 2007-07-03 19:29 hosking * m3-libs/m3core/src/thread/POSIX/: ThreadF.i3, ThreadPosix.m3: Eliminate myId and hide inCritical. 2007-07-03 19:29 hosking * m3-libs/m3core/src/unix/hpux-7-0/Utime.m3: Not used. 2007-07-03 17:29 hosking * m3-libs/m3core/src/runtime/: AIX386/RTThreadC.c, ALPHA_OSF/RTThreadC.c, AP3000/RTThreadC.c, ARM/RTThreadC.c, DS3100/RTThreadC.c, FreeBSD2/RTThreadC.c, FreeBSD/RTThreadC.c, FreeBSD3/RTThreadC.c, FreeBSD4/RTThreadC.c, HP300/RTThreadC.c, HPPA/RTThreadC.c, I386_DARWIN/RTThreadC.c, IBMR2/RTThreadC.c, IBMRT/RTThreadC.c, IRIX5/RTThreadC.c, LINUXELF/RTThreadC.c, LINUX/RTThreadC.c, LINUXLIBC6/RTThreadC.c, NetBSD2_i386/RTThreadC.c, NEXT/RTThreadC.c, OKI/RTThreadC.c, OS2/RTThreadC.c, PPC_DARWIN/RTThreadC.c, PPC_LINUX/RTThreadC.c, SEQUENT/RTThreadC.c, SOLgnu/RTThreadC.c, SOLsun/RTThreadC.c, SPARC/RTThreadC.c, SUN386/RTThreadC.c, SUN3/RTThreadC.c, UMAX/RTThreadC.c, VAX/RTThreadC.c: Eliminate myId. It is a thread-implementation specific variable no longer that is no longer used by anyone (including gdb). 2007-07-03 17:08 hosking * m3-libs/m3core/src/runtime/: AIX386/RTThreadC.c, ALPHA_OSF/RTThreadC.c, AP3000/RTThreadC.c, ARM/RTThreadC.c, DS3100/RTThreadC.c, FreeBSD/RTThreadC.c, FreeBSD2/RTThreadC.c, FreeBSD3/RTThreadC.c, FreeBSD4/RTThreadC.c, HP300/RTThreadC.c, HPPA/RTThreadC.c, I386_DARWIN/RTThreadC.c, IBMR2/RTThreadC.c, IBMRT/RTThreadC.c, IRIX5/RTThreadC.c, LINUX/RTThreadC.c, LINUXELF/RTThreadC.c, LINUXLIBC6/RTThreadC.c, NEXT/RTThreadC.c, NetBSD2_i386/RTThreadC.c, OKI/RTThreadC.c, OS2/RTThreadC.c, PPC_DARWIN/RTThreadC.c, PPC_LINUX/RTThreadC.c, SEQUENT/RTThreadC.c, SOLgnu/RTThreadC.c, SOLsun/RTThreadC.c, SPARC/RTThreadC.c, SUN3/RTThreadC.c, SUN386/RTThreadC.c, UMAX/RTThreadC.c, VAX/RTThreadC.c: Eliminate C-level definition of inCritical -- it is a thread-implementation specific variable (in ThreadPosix.m3). 2007-07-02 20:03 hosking * m3-libs/m3core/src/thread/POSIX/ThreadPosix.m3: Previous version did not really fix things. Need to think more... 2007-07-02 19:50 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: Fix bug in handling of weak references related to incremental GC. We must make sure that, when the reference is LOOPHOLEd from its RefReferent (untraced) to REFANY (traced) form, it does not refer to a gray object. 2007-07-02 15:47 hosking * m3-libs/m3core/src/thread/POSIX/ThreadPosix.m3: This should fix the problem of seeing gray "self" references, since the pages in which the threads are allocated will be promoted as ambiguous, and cleaned up later in FinishThreadPages. 2007-06-28 15:53 hosking * m3-libs/m3core/src/thread/m3makefile: Permit build of user-level threads with -DNOPTHREAD flag. 2007-06-28 15:53 hosking * m3-libs/m3core/src/thread/POSIX/ThreadF.i3: inCritical is no longer external since elimination of m3gc-simple/m3gc-enhanced. 2007-06-28 15:50 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: No need for out-of-band communication of heap bounds for NoteStackLocations -- all threads are stopped at this point so p0/p1 are both valid. 2007-06-28 14:52 hosking * m3-libs/m3core/src/thread/POSIX/ThreadPosix.m3: Make sure that ProcessStacks does not trigger GC barriers by using LOOPHOLE to perform untraced accesses to the heap. This is safe because we know that ProcessStacks runs when the collector is already on, thread-switching is disabled, and objects are not yet moving. 2007-06-24 19:51 hosking * m3-sys/cminstall/src/config/LINUXLIBC6: Add explicit use of 32-bit backend tools for LINUXLIBC6 target, so things work properly on x86_64 machines. (LINUXLIBC6 assumes a 32-bit INTEGER target even though the host machine might be able to do 64-bits). 2007-06-23 16:06 hosking * m3-sys/cminstall/src/config/PPC_DARWIN: Minor tweaks. 2007-06-23 15:56 hosking * m3-sys/cminstall/src/config/I386_DARWIN: Synchronization primitives need to specify architecture target that has them. 2007-06-23 15:52 hosking * m3-sys/cminstall/src/config/PPC_DARWIN: Add PTHREAD to list of system libraries. 2007-06-22 20:04 hosking * m3-libs/m3core/src/runtime/AIX386/RTMachine.i3, m3-libs/m3core/src/runtime/AIX386/m3makefile, m3-libs/m3core/src/runtime/ALPHA_OSF/RTMachine.i3, m3-libs/m3core/src/runtime/ALPHA_OSF/m3makefile, m3-libs/m3core/src/runtime/AP3000/RTMachine.i3, m3-libs/m3core/src/runtime/AP3000/m3makefile, m3-libs/m3core/src/runtime/ARM/RTMachine.i3, m3-libs/m3core/src/runtime/ARM/m3makefile, m3-libs/m3core/src/runtime/DS3100/RTMachine.i3, m3-libs/m3core/src/runtime/DS3100/m3makefile, m3-libs/m3core/src/runtime/FreeBSD/RTMachine.i3, m3-libs/m3core/src/runtime/FreeBSD/m3makefile, m3-libs/m3core/src/runtime/FreeBSD2/RTMachine.i3, m3-libs/m3core/src/runtime/FreeBSD2/m3makefile, m3-libs/m3core/src/runtime/FreeBSD3/RTMachine.i3, m3-libs/m3core/src/runtime/FreeBSD3/m3makefile, m3-libs/m3core/src/runtime/FreeBSD4/RTMachine.i3, m3-libs/m3core/src/runtime/FreeBSD4/m3makefile, m3-libs/m3core/src/runtime/HP300/RTMachine.i3, m3-libs/m3core/src/runtime/HP300/m3makefile, m3-libs/m3core/src/runtime/HPPA/RTMachine.i3, m3-libs/m3core/src/runtime/HPPA/m3makefile, m3-libs/m3core/src/runtime/I386_DARWIN/accept.c, m3-libs/m3core/src/runtime/I386_DARWIN/bind.c, m3-libs/m3core/src/runtime/I386_DARWIN/close.c, m3-libs/m3core/src/runtime/I386_DARWIN/connect.c, m3-libs/m3core/src/runtime/I386_DARWIN/dup.c, m3-libs/m3core/src/runtime/I386_DARWIN/dup2.c, m3-libs/m3core/src/runtime/I386_DARWIN/gethostbyaddr.c, m3-libs/m3core/src/runtime/I386_DARWIN/gethostbyname.c, m3-libs/m3core/src/runtime/I386_DARWIN/getpeername.c, m3-libs/m3core/src/runtime/I386_DARWIN/getsockname.c, m3-libs/m3core/src/runtime/I386_DARWIN/listen.c, m3-libs/m3core/src/runtime/I386_DARWIN/m3makefile, m3-libs/m3core/src/runtime/I386_DARWIN/malloc.c, m3-libs/m3core/src/runtime/I386_DARWIN/read.c, m3-libs/m3core/src/runtime/I386_DARWIN/recv.c, m3-libs/m3core/src/runtime/I386_DARWIN/recvfrom.c, m3-libs/m3core/src/runtime/I386_DARWIN/select.c, m3-libs/m3core/src/runtime/I386_DARWIN/send.c, m3-libs/m3core/src/runtime/I386_DARWIN/sendto.c, m3-libs/m3core/src/runtime/I386_DARWIN/shutdown.c, m3-libs/m3core/src/runtime/I386_DARWIN/socket.c, m3-libs/m3core/src/runtime/I386_DARWIN/socksconf.h, m3-libs/m3core/src/runtime/I386_DARWIN/wrap.h, m3-libs/m3core/src/runtime/I386_DARWIN/write.c, m3-libs/m3core/src/runtime/IBMR2/RTMachine.i3, m3-libs/m3core/src/runtime/IBMR2/m3makefile, m3-libs/m3core/src/runtime/IBMRT/RTMachine.i3, m3-libs/m3core/src/runtime/IBMRT/m3makefile, m3-libs/m3core/src/runtime/IRIX5/RTMachine.i3, m3-libs/m3core/src/runtime/IRIX5/m3makefile, m3-libs/m3core/src/runtime/LINUX/m3makefile, m3-libs/m3core/src/runtime/LINUXELF/RTMachine.i3, m3-libs/m3core/src/runtime/LINUXELF/m3makefile, m3-libs/m3core/src/runtime/LINUXLIBC6/RTMachine.i3, m3-libs/m3core/src/runtime/LINUXLIBC6/m3makefile, m3-libs/m3core/src/runtime/NEXT/RTMachine.i3, m3-libs/m3core/src/runtime/NEXT/m3makefile, m3-libs/m3core/src/runtime/NT386/RTMachine.i3, m3-libs/m3core/src/runtime/NT386/m3makefile, m3-libs/m3core/src/runtime/NT386GNU/RTMachine.i3, m3-libs/m3core/src/runtime/NT386GNU/m3makefile, m3-libs/m3core/src/runtime/NetBSD2_i386/RTMachine.i3, m3-libs/m3core/src/runtime/NetBSD2_i386/m3makefile, m3-libs/m3core/src/runtime/OKI/RTMachine.i3, m3-libs/m3core/src/runtime/OKI/m3makefile, m3-libs/m3core/src/runtime/OS2/RTMachine.i3, m3-libs/m3core/src/runtime/OS2/m3makefile, m3-libs/m3core/src/runtime/PPC_DARWIN/RTHeapDepC.i3, m3-libs/m3core/src/runtime/PPC_DARWIN/accept.c, m3-libs/m3core/src/runtime/PPC_DARWIN/bind.c, m3-libs/m3core/src/runtime/PPC_DARWIN/close.c, m3-libs/m3core/src/runtime/PPC_DARWIN/connect.c, m3-libs/m3core/src/runtime/PPC_DARWIN/dup.c, m3-libs/m3core/src/runtime/PPC_DARWIN/dup2.c, m3-libs/m3core/src/runtime/PPC_DARWIN/gethostbyaddr.c, m3-libs/m3core/src/runtime/PPC_DARWIN/gethostbyname.c, m3-libs/m3core/src/runtime/PPC_DARWIN/getpeername.c, m3-libs/m3core/src/runtime/PPC_DARWIN/getsockname.c, m3-libs/m3core/src/runtime/PPC_DARWIN/listen.c, m3-libs/m3core/src/runtime/PPC_DARWIN/m3makefile, m3-libs/m3core/src/runtime/PPC_DARWIN/read.c, m3-libs/m3core/src/runtime/PPC_DARWIN/recv.c, m3-libs/m3core/src/runtime/PPC_DARWIN/recvfrom.c, m3-libs/m3core/src/runtime/PPC_DARWIN/select.c, m3-libs/m3core/src/runtime/PPC_DARWIN/send.c, m3-libs/m3core/src/runtime/PPC_DARWIN/sendto.c, m3-libs/m3core/src/runtime/PPC_DARWIN/shutdown.c, m3-libs/m3core/src/runtime/PPC_DARWIN/socket.c, m3-libs/m3core/src/runtime/PPC_DARWIN/socksconf.h, m3-libs/m3core/src/runtime/PPC_DARWIN/wrap.h, m3-libs/m3core/src/runtime/PPC_DARWIN/write.c, m3-libs/m3core/src/runtime/PPC_LINUX/RTMachine.i3, m3-libs/m3core/src/runtime/PPC_LINUX/m3makefile, m3-libs/m3core/src/runtime/SEQUENT/RTMachine.i3, m3-libs/m3core/src/runtime/SEQUENT/m3makefile, m3-libs/m3core/src/runtime/SOLgnu/RTMachine.i3, m3-libs/m3core/src/runtime/SOLgnu/RTStackC.c, m3-libs/m3core/src/runtime/SOLgnu/m3makefile, m3-libs/m3core/src/runtime/SOLsun/RTMachine.i3, m3-libs/m3core/src/runtime/SOLsun/m3makefile, m3-libs/m3core/src/runtime/SPARC/RTMachine.i3, m3-libs/m3core/src/runtime/SPARC/m3makefile, m3-libs/m3core/src/runtime/SUN3/RTMachine.i3, m3-libs/m3core/src/runtime/SUN3/m3makefile, m3-libs/m3core/src/runtime/SUN386/RTMachine.i3, m3-libs/m3core/src/runtime/SUN386/m3makefile, m3-libs/m3core/src/runtime/UMAX/RTMachine.i3, m3-libs/m3core/src/runtime/UMAX/m3makefile, m3-libs/m3core/src/runtime/VAX/RTMachine.i3, m3-libs/m3core/src/runtime/VAX/m3makefile, m3-libs/m3core/src/runtime/common/RTCollector.m3, m3-libs/m3core/src/runtime/common/RTCollectorSRC.i3, m3-libs/m3core/src/runtime/common/RTHeapDep.i3, m3-libs/m3core/src/runtime/common/RTHeapEvent.i3, m3-libs/m3core/src/runtime/common/RTHeapRep.i3, m3-libs/m3core/src/runtime/common/RTLinker.m3, m3-libs/m3core/src/runtime/common/RTLinkerX.i3, m3-libs/m3core/src/runtime/common/m3makefile, m3-libs/m3core/src/unix/darwin-generic/Unetdb.i3, m3-libs/m3core/src/unix/darwin-generic/Unix.i3, m3-libs/m3core/src/unix/darwin-generic/Usignal.i3, m3-libs/m3core/src/unix/darwin-generic/Usocket.i3, m3-libs/m3core/src/unix/darwin-generic/Uuio.i3, m3-libs/m3core/src/unix/freebsd-1/Unix.i3, m3-libs/m3core/src/unix/freebsd-2/Unetdb.i3, m3-libs/m3core/src/unix/freebsd-2/Unix.i3, m3-libs/m3core/src/unix/freebsd-2/Usocket.i3, m3-libs/m3core/src/unix/freebsd-2/Uuio.i3, m3-libs/m3core/src/unix/freebsd-3/Unetdb.i3, m3-libs/m3core/src/unix/freebsd-3/Unix.i3, m3-libs/m3core/src/unix/freebsd-3/Usocket.i3, m3-libs/m3core/src/unix/freebsd-3/Uuio.i3, m3-libs/m3core/src/unix/freebsd-4/Unetdb.i3, m3-libs/m3core/src/unix/freebsd-4/Unix.i3, m3-libs/m3core/src/unix/freebsd-4/Usocket.i3, m3-libs/m3core/src/unix/freebsd-4/Uuio.i3, m3-libs/m3core/src/unix/linux/Uexec.i3, m3-libs/m3core/src/unix/netbsd2-i386/Unix.i3, m3-libs/m3core/src/unix/netbsd2-i386/off_t_wrap.c, scripts/README, scripts/backup-pkgs.sh, scripts/boot-cm3-build-on-target.sh, scripts/boot-cm3-core.sh, scripts/copy-bootarchives.sh, scripts/def-std-pkgs.sh, scripts/do-cm3-core.sh, scripts/do-cm3-min.sh, scripts/make-bin-dist-min.sh, scripts/pack-crossbuild.sh, scripts/pkginfo.sh, scripts/upgrade-5.3.sh, scripts/v526_all.CM3P, scripts/doc/cm3Proj.html, scripts/win/backup-pkgs.cmd, scripts/win/def-std-pkgs.cmd, scripts/win/do-cm3-core.cmd, scripts/win/upgrade.cmd: Delete all references to m3gc-simple/m3gc-enhanced. Targets no longer need RTHeapDep.c, since we no longer support VM-synchronized GC. Incremental/generational GC are now both supported by compiler-inserted read/write barriers (respectively). 2007-06-22 15:48 hosking * www/porting.html: No more m3gc-simple/m3gc-enhanced. 2007-06-22 15:46 hosking * m3-ui/ui/src/xvbt/XClientF.m3: Eliminate references to RTHeapDep.VM/RTCollectorSRC.incremental since we are now using read/write barriers inserted by the compiler. This means that the hack to change the cursor to "StarTrek" is no longer meaningful for incremental GC, since the GC cycle is interleaved with mutator execution. To turn on the cursor use the @M3StarTrek runtime argument. Your mileage will vary! 2007-06-22 15:45 hosking * m3-tools/gnuemacs/src/: flex-bison/lex.yy.c, flex-bison/y.tab.c, lex-yacc/lex.yy.c, lex-yacc/y.tab.c: Regenerated 2007-06-22 15:41 hosking * m3-sys/m3cggen/src/Main.m3: Add preliminary support for atomic operations as part of the M3 intermediate code (M3CG). The front-end compiler still does not contain support for these. The operations supported are those supported by newer versions of gcc, on which cm3cg is implemented. 2007-06-22 15:40 hosking * m3-sys/cminstall/src/config/: LINUXLIBC6, NT386GNU, PPC_LINUX: Don't wrap system calls anymore -- we no support use VM-synchronized GC. Incremental/generational GC are now supported on all targets by the compiler. 2007-06-22 15:38 hosking * m3-sys/cm3/src/Main.m3: Remove call to RTCollectorSRC.DisableVM -- we no support use VM-synchronized GC. Incremental/generational GC are now supported on all targets by the compiler. 2007-06-22 15:37 hosking * m3-libs/libm3/src/etimer/ETimer.m3: Eliminate references to RTHeapDep.VM since we are now using read/write barriers inserted by the compiler. This means that the "GC" times reported by this module are no longer meaningful for incremental GC, since the GC cycle is interleaved with mutator execution. In effect, GC will be measured across the entire cycle, including the mutator time. A better approach would be to start and stop the timers for each GC increment, but there is no API for this in RTHeapRep at this time. Perhaps RTHeapRep.MonitorClosure can be reworked to run only at CollectorOn/CollectorOff granularity. Of course, with true parallelism (as with the PTHREAD threads implementation) even this approach will not be accurate. 2007-06-22 15:07 hosking * m3-sys/m3cc/gcc/gcc/m3cg/: Make-lang.in, m3cg.h, parse.c: Add preliminary support for atomic operations as part of the M3 intermediate code (M3CG). The front-end compiler still does not contain support for these. The operations supported are those supported by newer versions of gcc, on which cm3cg is implemented. 2007-06-22 15:02 hosking * m3-sys/m3middle/src/: M3CG.i3, M3CG.m3, M3CG_BinRd.m3, M3CG_BinWr.m3, M3CG_Binary.i3, M3CG_Check.m3, M3CG_Ops.i3, M3CG_Rd.m3, M3CG_Wr.m3: Add preliminary support for atomic operations as part of the M3 intermediate code (M3CG). The front-end compiler still does not contain support for these. The operations supported are those supported by newer versions of gcc, on which cm3cg is implemented. 2007-06-20 18:35 hosking * m3-libs/: m3gc-simple/PkgTags, m3gc-enhanced/PkgTags: Removing m3gcdefs implementations (m3gc-simple, m3gc-enhanced) since enhanced GC now uses compiler support instead of virtual memory protection, which means system call wrappers are now no longer needed. Additional changes to m3core will soon be checked in to eliminate references to these libraries. 2007-06-14 18:11 hosking * m3-sys/cminstall/src/config/NT386: Inconsistent ^M characters removed. 2007-06-13 08:45 uamoore * www/: cm3-5.4-status.html, cvs-cm3.html, cvsupfile.cm3: Links aktualisiert 2007-06-12 10:24 rforb * www/test: revoking test commit 2007-06-12 10:21 rforb * www/test: [no log message] 2007-06-04 19:35 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: When promoting OldImpure pages for generational collection we only need to treat the dirty objects in the page as gray during scanning. This exploits the improved precision of the software write barriers for generational collection. 2007-06-02 19:16 hosking * m3-tools/showheap/src/ShowHeap.m3: Switch over to page-level "clean" bit instead of deprecated "protected" bit, which will go away once the old-style virtual-memory page protection support for incremental/generational GC is removed. 2007-06-02 19:15 hosking * m3-libs/m3core/src/runtime/common/: RT0.i3, RTCollector.m3, RTHeapEvent.i3, RTHeapRep.i3: Use much more fine-grained read and write barriers: - read barrier needs only to check that object reference being loaded is not gray, cleaning just that one object if it is. - write barrier needs only to check that object is not dirty, marking that one object if its, and setting the page to dirty as well if it is not already. These changes pave the way for ultimate deletion of the "protected" page-level descriptor bit, as well as elimination of all the virtual-memory protection cruft which is now obsolete. This will make for a much more maintainable and malleable GC subsystem. 2007-06-02 03:31 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: Adjust Fill typecodes so that we can scan zero-filled pages without having to tack a filler after the last allocation. This allows us to fix a bug in the GC SanityCheck code (@M3paranoidgc) manifested by the insertion of a filler by SuspendPool, with resumption after the fact resulting in a non-zeroed object. 2007-06-02 03:29 hosking * m3-libs/m3core/src/runtime/common/RTHeapRep.i3: Adjust Fill typecodes so that we can scan zero-filled pages without having to tack a filler after the last allocation. 2007-05-24 18:24 hosking * m3-sys/m3front/src/: builtinOps/New.m3, misc/RunTyme.i3, misc/RunTyme.m3: Refactor allocation hooks to permit direct calls to AllocateTraced[Ref/Obj] from compiled allocation sequences. This eliminates having to pass through the runtime check in the old RTHooks.Allocate. Eventually, RTHooks.Allocate will go away, but for now older unbootstrapped compilers will still try to use it. 2007-05-24 18:22 hosking * m3-sys/m3front/src/misc/CG.m3: Refactor Ref_to_info. 2007-05-24 18:20 hosking * m3-libs/m3core/src/runtime/common/: RTAllocator.m3, RTHooks.i3: Refactor allocation hooks to permit direct calls to AllocateTraced[Ref/Obj] from compiled allocation sequences. This eliminates having to pass through the runtime check in the old RTHooks.Allocate. Eventually, RTHooks.Allocate will go away, but for now older unbootstrapped compilers will still try to use it. 2007-05-24 12:59 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Trivial tidy up of dead code. 2007-05-23 22:00 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Much more reliable now, with semaphore taking on appropriate values in the range [0..nLive]. 2007-05-23 18:25 hosking * m3-libs/m3core/src/runtime/: I386_DARWIN/RTMachine.i3, PPC_DARWIN/RTMachine.i3, PPC_DARWIN/RTThreadC.c, I386_DARWIN/RTThreadC.c: SuspendThread returns BOOLEAN. 2007-05-23 18:24 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Avoid line wraps. 2007-05-23 18:21 hosking * m3-libs/m3core/src/unix/: darwin-generic/Usignal.i3, solaris-2-x/Usignal.i3: Add sigwait. 2007-05-23 18:06 hosking * m3-libs/m3core/src/: runtime/I386_DARWIN/RTMachine.i3, runtime/LINUXLIBC6/RTMachine.i3, runtime/PPC_DARWIN/RTMachine.i3, runtime/SOLgnu/RTMachine.i3, runtime/SOLgnu/RTMachine.m3, runtime/SOLsun/RTMachine.i3, runtime/SOLsun/RTMachine.m3, thread/PTHREAD/ThreadPThread.m3: Eliminate SIG_RESTART. 2007-05-23 18:03 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Much more reliable handling of thread suspend/resume using pthread_sigwait. 2007-05-23 15:02 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Move call to sem_init after SuspendAll/RestartAll to avoid calling it on Darwin/MacOSX. 2007-05-23 14:30 hosking * m3-libs/m3core/src/runtime/: PPC_DARWIN/RTThreadC.c, I386_DARWIN/RTThreadC.c: Add call to thread_abort for "safety". 2007-05-19 19:58 hosking * m3-libs/m3core/src/: runtime/LINUXLIBC6/RTMachine.i3, thread/PTHREAD/ThreadPThread.m3: Fix problems stopping/starting threads on LINUXLIBC6. 2007-05-17 03:59 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: No need for LookupActivation -- use GetActivation instead. This eliminates race in SuspendHandler/ResumeHandler since they did not hold activeMu. 2007-05-17 02:34 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Undocument EAGAIN error code returned from pthread_kill means we must retry the signal again when suspending/resuming threads. 2007-05-16 15:17 hosking * m3-libs/m3core/src/runtime/common/: RTAllocator.m3, RTCollector.m3, RTHeapRep.i3: Fix bug introduced by previous "fix" for deadlock in allocation. The solution is to move object initialization into the uninterruptible allocation sequence (i.e., so GC will never see uninitialized objects). 2007-05-15 11:41 uamoore * www/: about-cm3.html, cvs-cm3.html, cvsup-cm3.html, download.html: links aktualisiert 2007-05-05 14:48 neels * www/ship-cm3-www: sorry, last commit was by accident. removed changes from revision 1.9 on ship-cm3-www. 2007-05-05 14:47 neels * www/: index.html, ship-cm3-www: cosmetic change to search form 2007-05-05 14:38 neels * www/index.html: first try of including a google search link in index.html 2007-04-23 21:00 wagner * m3-sys/cm3/: PkgTags, src/M3Path.m3, src/Makefile.m3: accept package elements and includes that are not beneath the package root modified: cm3/src/M3Path.m3 modified: cm3/src/Makefile.m3 2007-04-21 14:45 hosking * m3-libs/m3core/src/runtime/common/RTCollector.m3: Fixed deadlock situation in allocation sequence with GC. Allocation pools should never be busy while holding heap lock via RTOS.LockHeap. Thus, replace busy with RTOS.LockHeap in ClosePool to enable call to BumpCnts. Also, instead of setting pool busy before RTOS.UnlockHeap in LongAlloc, set it after. To avoid race with another thread causing GC before the LongAlloc'd object can be initialized we set it up as a dummy filler. 2007-04-17 20:23 hosking * m3-tools/showheap/src/ShowHeap.m3: Revert previous change to match reversion in RTCollector.m3. 2007-04-17 20:21 hosking * m3-libs/m3core/src/runtime/common/: RTCollector.m3, RTHeapEvent.i3, RTHeapRep.i3: Revert previous change -- it broke VM-assisted GC. Sigh! 2007-04-09 13:06 stsp * www/: PkgTags, known-problems.html: Add asm/ipc.h problem on Linux to known-problems.html. Patch by neels@elego.de with modifications by me. Also mention that PklFonts aborting during the build is a symptom of the "segmentation violations on Linux" problem. 2007-04-09 12:40 stsp * www/PkgTags: Forgot to update this while committing rev 1.24 of installation.html. 2007-04-09 12:34 stsp * www/installation.html: Pipe this page through a reliable spell-checking engine aka neels@elego.de. Even ispell could not find any further errors after Neels scanned this page :) Also add warnings about the archives unpacking into the current directory. Requested by neels@elego.de as well. 2007-04-03 11:32 wagner * m3-ui/bicycle/: PkgTags, src/Card.m3: merge from release branch: delay automatic playing modified: bicycle/PkgTags modified: bicycle/src/Card.m3 2007-04-03 11:08 wagner * m3-ui/bicycle/: PkgTags, src/Card.m3: delay automatic playing modified: bicycle/src/Card.m3 2007-04-02 21:01 wagner * m3-libs/libsio/: PkgTags, src/m3overrides: add missing override file added: libsio/src/m3overrides 2007-03-27 22:15 hosking * m3-tools/showheap/src/ShowHeap.m3: "protected" in page descriptors is now "dirty". 2007-03-26 23:04 hosking * m3-libs/m3core/src/runtime/common/: RTCollector.m3, RTHeapEvent.i3, RTHeapRep.i3: Make granularity of gray/dirty more fine-grained, so that whole pages need not be cleaned. This paves the way to using lock-free synchronization on a per-object basis. 2007-02-15 08:36 uamoore * www/: ANNOUNCE_5_4_0, RELNOTES_5_4_0, cm3-5.4-status.html, mailing-lists.html: new links for mailing lists added 2007-02-15 07:43 wagner * www/: PkgTags, mailing-lists.html: update mailing list links modified: www/mailing-lists.html 2007-02-13 16:23 hosking * m3-tools/showheap/src/m3makefile, m3-tools/shownew/src/m3makefile, m3-tools/showthread/src/m3makefile, m3-ui/formsview/src/m3makefile: Most Linux distributions don't come with static versions of the X11 libraries, so these should not be built standalone. 2007-02-13 16:09 hosking * m3-libs/m3core/src/C/LINUXLIBC6/m3makefile: CsetjmpASM doesn't play nice with newer versions of _setjmp/_longjmp. This is a gross hack that needs to be ditched. 2007-02-07 20:32 hosking * m3-libs/m3core/src/unix/darwin-ppc/Uucontext.i3: Forgot u_int32_t. 2007-02-07 17:35 hosking * m3-libs/m3core/src/: runtime/I386_DARWIN/RTThreadC.c, runtime/I386_DARWIN/wrap.h, runtime/PPC_DARWIN/RTThreadC.c, runtime/PPC_DARWIN/wrap.h, unix/darwin-i386/Uucontext.i3, unix/darwin-ppc/Uucontext.i3: Fix bug newly manifested by Darwin updates. Need to be careful not to overrun thread state passed in by passing appropriate count and flavor to thread_get_state. 2007-01-29 12:26 jkrell * m3-libs/m3core/src/: runtime/common/RTError.m3, runtime/common/RTError.i3, thread/WIN32/ThreadWin32.m3: initialization needs to be either up front or thread safely on demand unitialization here was on demand but not clearly thread safe make it all up front if it needs to be on demand, then have one up front initialized critical section that can be used to synchronize the others, or use home grown initialization free spinlock (ie: InterlockedIncrement or InterlockedCompareExchange) Eventually this stuff should probably be moved into DllMain for better thread safety guarantees, though work there should be kept to a minimum, all such up front initialization needs to be kept to a minimum, ideally a very small number of TlsAlloc, InitializeCriticalSection, HeapAlloc Add line number parameter to Choke. Change RTError.MsgI accordingly; it has no other clients. 2007-01-26 09:10 jkrell * scripts/win/make-dist.cmd: half decent automation for creating Windows distributions half bad too -- generally you edit it to pick options 2007-01-23 15:35 hosking * m3-libs/m3core/src/thread/m3makefile: Make pthread-based threading the default on targets where it is supported (currently LINUXLIBC6, PPC_DARWIN, I386_DARWIN, SOLgnu, SOLsun). Other targets still need work to support pthread-based threads. User-level (POSIX) threading is currently broken on I386_DARWIN and some LINUXLIBC6 platforms. Failure is on first thread-switch. Newer LINUXLIBC6 targets use encrypting versions of setjmp/longjmp to prevent stack-smashing security exploits, which means that the technique used to clone a thread from a model frame in InitContext will not work (we should rework InitContext to use the SysV primitive makecontext to construct a new thread, and perform switching via getcontext/setcontext, but this will only work on SysV targets that have makecontext/getcontext/setcontext). On I386_DARWIN there may be mismatches in the layout of setjmp buffers, or perhaps newer Darwin libraries are also using encryption to avoid stack-smashing. I haven't looked into this closely yet. 2007-01-22 02:33 jkrell * m3-sys/cminstall/src/config/NT386: fix indentation and link to documentation 2007-01-22 02:31 jkrell * m3-sys/cminstall/src/config/NT386: a little less output 2007-01-22 02:19 jkrell * m3-sys/cminstall/src/config/NT386: put manifests inside .dlls/.exe using the manifest tool, instead of needing to copy around more files (also fixes problems with .dlls) 2007-01-22 02:09 jkrell * scripts/win/make-dist.cmd: use backed up instead of cleaned cminstall 2007-01-22 01:42 jkrell * scripts/win/sysinfo.cmd: update what we tell user about Win32 import .libs 2007-01-22 01:27 jkrell * scripts/win/make-dist.cmd: update 2007-01-17 00:00 rodney * m3-sys/m3gdb/gdb/gdb/m3-lang.c: Misc. cleanups. 2007-01-15 15:37 rodney * m3-sys/m3cc/gcc/gcc/m3cg/parse.c: Changes in the latest gcc backend left out emitting some critical stabs entries for types, especially global variables pseudo-types, needed by m3gdb. 2007-01-15 15:31 rodney * m3-libs/libm3/src/pickle/ver2/ConvertPacking.m3: Forward port a long-forgotten bugfix into cm3. 2007-01-15 15:30 hosking * m3-libs/m3core/src/thread/: Common/m3makefile, POSIX/m3makefile, PTHREAD/m3makefile, WIN32/m3makefile: Moved ThreadEvent.i3 to Common. 2007-01-15 04:33 jkrell * m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3: Use at least what in C++ would be "static initialization", more efficient than "dynamic initialization", not sure Modula-3 does it that way, didn't step through it. In C++ that'd remove the code that does the assignment. Reverse sense of needsInitialization to initialized so that the initialized value of the "guard" is FALSE. Zero initialization is generally more efficient than non-zero initialization. Again it depends on the tools, but in C++ this makes it so no room is needed in the .exe/.dll for the variable, for its initial value. Put in the double checked locking discussed on m3devel for the initialization here. Including doing our own cleanup if we lose the race. Note that this appears very unlikely since initialization is from the module's main. 2007-01-15 04:08 jkrell * m3-libs/m3core/src/thread/WIN32/: ThreadEvent.i3, ThreadF.i3, ThreadWin32.m3, m3makefile: pattern match showthreads support from pthreads to Win32 it at least builds and shows pretty pictures, not sure it is right.. as part of unifying ThreadWin32.m3 with ThreadPThread.m3, add the line number to call the Die calls ThreadEvent.i3 is an exact copy of the other two ideally it is moved up or over to "Common" but that would lose cvs history, please advise.. There must be a better way than all this duplication? Do we need so much custom threading/scheduling code or can we just much more thinly layer over the next layer? 2007-01-15 03:37 hosking * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: Get rid of grotty Windows ^M. 2007-01-15 03:15 jkrell * m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3: when pausing for <= 0, was claiming pausing and then missed alive notification, probably best just to skip the pausing notification too 2007-01-15 02:01 jkrell * m3-win/import-libs/src/make-lib-1.cmd: comments and cleanup some more bogus/useless exports 2007-01-15 01:10 jkrell * scripts/win/make-dist.cmd: works to make cm3-min-WIN32-NT386-version.tgz 2007-01-15 00:21 jkrell * m3-obliq/vorun/src/m3makefile: fix typo in comment 2007-01-15 00:20 jkrell * m3-obliq/vorun/src/m3makefile: fix to build on Windows 2007-01-14 23:05 jkrell * m3-win/import-libs/src/m3makefile: move function earlier so it works, and edit comments 2007-01-10 20:29 jkrell * scripts/do-pkg.cmd: meant delete this too, moved to win directory 2007-01-09 23:27 hosking * m3-libs/deepcopy/src/DeepCopy.m3: Don't LOOPHOLE untidy addresses to REFs. Make sure to use UNTRACED REF only. 2007-01-09 18:01 hosking * m3-libs/m3core/src/runtime/common/: RTCollector.m3, RTHooks.i3, RTTypeMap.m3: When accessing objects using type maps (as in pickling), assume that accesses to traced references may store a new reference in the object, so we must let the garbage collector know that the object is dirty. The fix is to call RTHooks.CheckStoreTraced on the object. It might be better to change the interface to type maps so that we distinguish read-only visitors from visitors that write, but there is no way to statically check this. 2007-01-07 19:03 hosking * m3-sys/m3front/src/exprs/: DerefExpr.m3, QualifyExpr.m3: Don't track stores through untraced references. 2007-01-07 18:02 hosking * m3-libs/m3core/src/thread/POSIX/ThreadPosix.m3: Factor out StartThread in preparation for use of pthread-based initialization of thread contexts instead of via DetermineContext. 2007-01-02 15:37 jkrell * m3-win/vcredist.txt: link to downloadable Visual C++ runtime redistributable 2007-01-01 19:24 jkrell * scripts/win/: do-cm3-base.cmd, do-cm3-core.cmd, do-cm3-min.cmd, sysinfo.cmd, upgrade.cmd: tweak the do* scripts upper case environment variables whitespace echo what we set fix bug around M3SHIP variable revealed by this (not particularly important, related to bootstrapping from DEC SRC 3.6 Modula-3, which does not work anyway) remove some target checking and assume Win32/NT386 2007-01-01 19:19 jkrell * scripts/win/make-dist.cmd: a very good start at automation on Windows for buiding the distributions gets vary far, just fails because of unrelated reason -- obliq\vorun uses chmod in its m3makefile includes building the compiler first with the existing install and then with itself, and using that to build everything else -- builds into empty directories which is good Does not yet tar/gzip up the result. That is needed. Builds things multiple times instead of sharing between the distributions. stage is %temp%\cm3\make-dist\%random%, which isn't very unique and is never cleaned up combines both of make-bin-dist-min.sh make-src-dist-std.sh and throws in "core" and "base" while there probably should remove them as useless not yet: make-src-dist-sys.sh, make-doc-dist.sh, make-script-dist.sh, make-src-dist-all.sh make-src-dist-gnu.sh 2007-01-01 18:51 jkrell * m3-win/import-libs/src/m3makefile: ship even with nothing to build incrementally 2007-01-01 18:42 jkrell * m3-win/import-libs/src/: advapi32.quake, comctl32.quake, comdlg32.quake, gdi32.quake, glu32.quake, kernel32.quake, m3makefile, make-lib-1.cmd, netapi32.quake, odbc32.quake, odbccp32.quake, opengl32.quake, user32.quake, winspool.quake, wsock32.quake: random update -- in particular: remove DllInitialize put in incrementality using "stale" put in hack to try to use Microsoft Visual C++ 2.0 so the resulting .libs have broader toolset support regen data files 2007-01-01 18:36 jkrell * m3-sys/cminstall/src/config/NT386: put commented out line back forgot an important checkin comment: automatically compute INSTALL_ROOT = path() ..\ Thus ==> no configuration necessary <== regression though in that cminstall no longer prompts. We need to separate things out for this to work better. forgot another comment: move error checking ahead of exporting That should be better, but maybe I don't understand things? need to merge common code across configurations.. 2007-01-01 18:33 jkrell * m3-sys/cminstall/src/config/NT386: more configuration repair/maintenance in particular 1) AGAIN the earlier changes that were somehow missed if exist export, after building, so they exist foo = bar & ".manifest" instead of foo = other & ".exe.manifest" etc This is very important for things to work. remove the recent "bad lib" stuff better fixes are already in or working but not yet checked in and this stuff had its downsides -- the Express Editions don't ship many .libs normalize whitespace cleanup SYSTEM_LIBORDER comment out unused USE_ROOT, GNU_PLATFORM 2) upon error, tell user to look at listing 3) experimental change that merges non existant file case with non-zero return code case -- this way both cases get #2