From wagner at elego.de Wed Apr 1 09:09:41 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 1 Apr 2009 9:09:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090401070941.6197460C2D3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/01 09:09:41 Modified files: cm3/www/: PkgTags download.html news.html cm3/www/uploaded-archives/: update_download_index.sh Log message: add news about broken links due to server crash list source archives in uploaded-archives directory modified: www/download.html modified: www/news.html modified: www/uploaded-archives/update_download_index.sh From jkrell at elego.de Fri Apr 3 12:46:37 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 3 Apr 2009 12:46:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090403104637.EC91F60C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/03 12:46:37 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_DARWIN Log message: Darwin ld offers the following powerful confusing features -install_name @executable_path/../foo.dylib -install_name @loader_path/../foo.dylib -install_name @rpath/../foo.dylib @executable_path is the oldest and easiest to understand. I believe it was introduced sometime prior to 10.4. @loader_path -- I don't know what this means, people say it is "better" than @executable_path, it was introduced in 10.4. I suspect it means either "the referencing file" instead of "the executable" or perhaps the list of files loaded so far. @rpath was introduced in 10.5 and is said to be even "better". Though I don't know exactly what it does. There are just way way way too many options here. The web generally only has current documentation. Local man pages are appropriately out of date, but don't always give history. As well there is tool -- install_name_tool -- that can be used to "patch" the paths recorded in files. You can reserve specified or "maximum" padding for it. Let's be nice and slightly wasteful and give maximum padding. Throw in -dead_strip. Would be nice to use -dead_strip_dylibs and -pie, but they require 10.5. Would be nice to -multiply_defined error, but we can only immediately get away with that for shared libraries. For executables I get an error about __cxa_exit. Lame but oh well for now. Primary net result is that while DYLD_LIBRARY_PATH and LD_LIBRARY_PATH can presumably be used either to override install_name, or provide a fallback, such as for uninstalled binaries, (which order is the probe? Can experiment to find out...), installed binaries should work without any extra environment variable, which is nice. As long as everything is in /base/bin /base/lib But hey, we give you maximum padding, so you can use install_name_tool. A hypothetical fancy installer might do that. Might. I have half an inclination that we should write our own ELF and MachO dynamic loader and get to some sane simple small appropriately flexible and portable system...(not sure if MachO is pluggable but most ELF systems are). From jkrell at elego.de Fri Apr 3 12:50:49 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 3 Apr 2009 12:50:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090403105049.C781160C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/03 12:50:49 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_DARWIN Log message: just comments/whitespace From jkrell at elego.de Sat Apr 4 16:40:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:40:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404144043.4E8D360C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:40:43 Modified files: cm3/m3-win/: vcredist.txt Log message: add link to 2008sp1 (not like you can't just search the web or follow link from previous) From jkrell at elego.de Sat Apr 4 16:51:23 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:51:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145123.8519560C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:51:23 Modified files: cm3/m3-libs/m3core/src/Csupport/little-endian/: dtoa.c Log message: big-endian/dtoa.c From jkrell at elego.de Sat Apr 4 16:52:45 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:52:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145245.4820260C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:52:45 Modified files: cm3/m3-libs/m3core/src/Csupport/big-endian/: dtoa.c Log message: previous checkin comment flubbed address these warnings seen on Solaris with Sun cc: "../src/Csupport/Common/dtoa.h", line 523: warning: implicit function declaration: CConvert__Acquire "../src/Csupport/Common/dtoa.h", line 544: warning: implicit function declaration: CConvert__Release by declaring the functions. From jkrell at elego.de Sat Apr 4 16:54:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:54:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145449.BB7BB60C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:54:49 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSmmap.c Log message: convert to Unix newlines That will presumably fix this warning from Sun cc: "../src/runtime/POSIX/RTOSmmap.c", line 1: warning: invalid white space character in directive From jkrell at elego.de Sat Apr 4 17:00:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 17:00:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404150028.28AD260C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 17:00:27 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: address Sun cc warning: "../src/runtime/ex_frame/RTStackC.c", line 48: warning: old-style declaration or incorrect type for: RTStack__PrevFrame via #ifdef __STDC__ || __cplusplus, use ANSI syntax. From jkrell at elego.de Sun Apr 5 02:26:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 2:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405002632.0C3DD60C2E7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 02:26:31 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix From jkrell at elego.de Sun Apr 5 02:27:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 2:27:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405002715.EC5FF60C2E7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 02:27:15 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: format differently From jkrell at elego.de Sun Apr 5 10:25:20 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 10:25:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405082520.6329E60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 10:25:20 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: This should let us support multiple installed backends (ie: per target) even if there is no source tree (ie: ROOT is not defined). Previously the first feature was lost in the second condition. Still, this area needs work -- probe for fewer backends. From jkrell at elego.de Sun Apr 5 12:05:04 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 12:05:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405100505.1273A60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 12:05:04 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Unix.common Log message: add the following to linking (AMD64_LINUX only at this point, the Unix.common change only affects it; we will want this whereever supported though) -z now -- bind at load time instead of lazily -z origin -- uses $ORIGIN -Bsymbolic -- if a shared library calls some functions it exports, resolve them directly; -rpath $ORIGIN/../lib -- enable finding shared libaries without setting an environment variable (at least for installed binaries) -warn-common -- warn for any common symbols -pie for executables -no-allow-shlib-undefined not -- it causes errors -rpath most importantly rpath could be drastically reduced, but for the need to run uninstalled binaries (PklFonts) (need to double check my Darwin change here) I also tried -soname $ORIGIN/../lib/foo.so.5. That doesn't seem to work. And then also not clear if it works for uninstalled. That is what the PPC_DARWIN change resembles though From jkrell at elego.de Sun Apr 5 12:44:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 12:44:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405104425.1E04C60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 12:44:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: Use the 'real' option instead of relying on 'compatibility'. This change is presumably applicable to all platforms that use GNU ld -- *Linux and *BSD. man ld: -R filename --just-symbols=filename Read symbol names and their addresses from filename, but do not relocate it or include it in the output. This allows your output file to refer symbolically to absolute locations of memory defined in other programs. You may use this option more than once. For compatibility with other ELF linkers, if the -R option is fol- lowed by a directory name, rather than a file name, it is treated as the -rpath option. From jkrell at elego.de Mon Apr 6 06:55:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 6:55:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406045517.AA04C60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 06:55:17 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add & " -z now -z origin -R \\$ORIGIN/../lib" From jkrell at elego.de Mon Apr 6 10:19:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:19:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406081913.BAC2F60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:19:13 Modified files: cm3/m3-ui/juno-2/juno-app/pkl-fonts/src/: m3makefile Log message: build_standalone, on all platforms, so the uninstalled binary works in more situations; was already doing this for NT386 From jkrell at elego.de Mon Apr 6 10:23:22 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:23:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406082323.0123A60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:23:22 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: Don't build up large RUNPATH with a path into the pkg store for every imported shared library; instead just use $ORIGIN/../lib which comes from other code (SOLgnu, SOLsun, etc.). This change is to be tested and applied on a few other platforms. (ie: *Linux, *BSD, but not NetBSD probably, and Darwin has a similar but different mechanism already in use (-soname = @executable_path/../lib/libfoo.dylib or somesuch)) From jkrell at elego.de Mon Apr 6 10:52:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:52:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406085224.962CB60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:52:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add -i to link command to ignore LD_LIBRARY_PATH seems to me the Unix linkers like to conflate build-time and run-time, and this lets us undo just a small part of that (NT has separately installed SDKs; Apple I think the same) Headers and libs belong with compilers, not the running system. There are valid points either way -- a "self describing" system is also nice, but it shouldn't be hard to have multiple system descriptions installed and easily point the compiler/linker at one or the other..cross building and all that...whether it is cross to a different OS or architecture or to a different version of the OS..(Modula-3 does this well, but I have sacrificed a lot of it in the interest of portability..) And installing "system description" shouldn't require "installing system".. From jkrell at elego.de Mon Apr 6 11:01:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:01:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090151.84CD260C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:01:48 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: comments only From jkrell at elego.de Mon Apr 6 11:08:12 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:08:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090812.8E2F060C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:08:12 Modified files: cm3/scripts/python/: make-dist.py Log message: small NT386 fix (the distinction here is 'temporary' only, related to bootstrapping from systems with the old m3gcdefs" make-dist.py From jkrell at elego.de Mon Apr 6 11:08:38 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:08:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090838.902BA60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:08:38 Modified files: cm3/scripts/python/: make-dist.py Log message: small NT386 fix (the distinction here is 'temporary' only, related to bootstrapping from systems with the old m3gcdefs" make-dist.py From jkrell at elego.de Mon Apr 6 11:13:42 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:13:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406091342.55A8760C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:13:42 Modified files: cm3/scripts/python/: pylib.py Log message: make boot archives in current working directory instead of in root directory, so I can build them as non-root on non-NT From jkrell at elego.de Mon Apr 6 11:22:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:22:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406092224.29D8F60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:22:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add -R \\$ORIGIN/../../../lib" to get from pkg store to lib and then to feel a bit less sleazy, add -R \\$ORIGIN/../../lib" ahead of it, maybe that is somehow safer From wagner at elego.de Wed Apr 8 00:10:42 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:10:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407221042.5295260C149@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:10:42 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 m3makefile Log message: use Jay Krell's new config files by default add options -oldcfg|-o for old behaviour modified: cminstall/src/Main.m3 modified: cminstall/src/m3makefile From wagner at elego.de Wed Apr 8 00:18:51 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:18:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407221851.816C160C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:18:51 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh cm3/scripts/regression/: defs.sh Log message: build binary archives using the new config files by default tar up standard packages by default; other distributions may be specified by e.g. DIST=core ./scripts/make-bin-dist-min.sh modified: scripts/make-bin-dist-min.sh modified: scripts/regression/defs.sh From wagner at elego.de Wed Apr 8 00:21:03 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:21:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407222103.F3CE560C149@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:21:03 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 Log message: require 250 MB for a full distribution modified: cminstall/src/Main.m3 From wagner at elego.de Wed Apr 8 00:25:48 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:25:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407222548.D4BBB60C14D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:25:48 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh Log message: add distribution kind to archive name modified: scripts/make-bin-dist-min.sh From wagner at elego.de Wed Apr 8 00:34:28 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:34:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407223428.839E860C14D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:34:28 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh Log message: fix NEWCFG switch modified: scripts/make-bin-dist-min.sh From wagner at elego.de Wed Apr 8 01:09:21 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 1:09:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407230921.2D1F51AC4C79@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 01:09:21 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: m3makefile Log message: check for available resources modified: cminstall/PkgTags modified: cminstall/src/m3makefile From hosking at elego.de Wed Apr 8 06:11:46 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 8 Apr 2009 6:11:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090408041146.3D51B1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/08 06:11:46 Modified files: cm3/m3-sys/m3middle/src/: M3RT.i3 Log message: Let's make all the predefined typecodes explicit here. From hosking at cs.purdue.edu Wed Apr 8 06:29:28 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 8 Apr 2009 14:29:28 +1000 Subject: [M3commit] Fwd: Undelivered Mail Returned to Sender References: <20090408041146.7B8841AC4C79@birch.elegosoft.com> Message-ID: <23CB3A42-BF2C-4371-B6B6-AC1FF746D575@cs.purdue.edu> Huh? Begin forwarded message: > From: MAILER-DAEMON at elego.de (Mail Delivery System) > Date: 8 April 2009 14:11:46 GMT+10:00 > To: hosking at elego.de > Subject: Undelivered Mail Returned to Sender > > This is the mail system at host birch.elegosoft.com. > > I'm sorry to have to inform you that your message could not > be delivered to one or more recipients. It's attached below. > > For further assistance, please send mail to postmaster. > > If you do so, please include this problem report. You can > delete your own text from the attached returned message. > > The mail system > > : Command died with > status 9: > "/usr/local/tinderbox/bonsai/handleCheckinMail.pl > /usr/local/tinderbox/bonsai". Command output: Cannot Open data > file (cwd: > /usr/local/tinderbox/bonsai; data/temp.15091): Bad file descriptor > Reporting-MTA: dns; birch.elegosoft.com > X-Postfix-Queue-ID: 620BD1AC4C78 > X-Postfix-Sender: rfc822; hosking at birch.elego.de > Arrival-Date: Wed, 8 Apr 2009 06:11:46 +0200 (CEST) > > Final-Recipient: rfc822; bonsai-checkin-daemon at tinderbox.elegosoft.com > Action: failed > Status: 5.3.0 > Diagnostic-Code: x-unix; Cannot Open data file (cwd: > /usr/local/tinderbox/bonsai; data/temp.15091): Bad file descriptor > > From: bonsai-daemon at birch > Date: 8 April 2009 14:11:46 GMT+10:00 > To: bonsai-checkin-daemon at tinderbox.elegosoft.com > Subject: cvs commit to cm3/m3-sys/m3middle/src > > > C|1239163906|hosking|/usr/cvs|cm3/m3-sys/m3middle/src|M3RT.i3|1.4||| > 7|2 > LOGCOMMENT > Let's make all the predefined typecodes explicit here. > > :ENDLOGCOMMENT > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elego.de Wed Apr 8 20:04:53 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 20:04:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090408180454.027CC1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 20:04:53 Modified files: cm3/scripts/: PkgTags upgrade.sh Log message: attempt to fix broken upgrade due to cminstall changes as seen by tinderbox on niagara distinguish old and new style config files based on presence of m3_backend in cm3.cfg All this may be too simple :-/ modified: scripts/upgrade.sh From jkrell at elego.de Thu Apr 9 19:02:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 19:02:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409170205.0D1CF60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 19:02:04 cm3/m3-tools/cvsup Update of /usr/cvs/cm3/m3-tools/cvsup In directory birch:/tmp/cvs-serv5883 Log Message: import cvsup-snap-16.1h Status: Vendor Tag: cvsup Release Tags: cvsup-snap-16_1h N cm3/m3-tools/cvsup/Blurb N cm3/m3-tools/cvsup/Install N cm3/m3-tools/cvsup/License N cm3/m3-tools/cvsup/Announce N cm3/m3-tools/cvsup/Makefile N cm3/m3-tools/cvsup/ChangeLog N cm3/m3-tools/cvsup/Acknowledgments N cm3/m3-tools/cvsup/doc/faq_ru.tail N cm3/m3-tools/cvsup/doc/faq.tail N cm3/m3-tools/cvsup/doc/faq_ru.faq N cm3/m3-tools/cvsup/doc/faq.faq N cm3/m3-tools/cvsup/doc/Protocol N cm3/m3-tools/cvsup/doc/faqgen.awk N cm3/m3-tools/cvsup/doc/Makefile N cm3/m3-tools/cvsup/doc/faq.head N cm3/m3-tools/cvsup/doc/Checkouts N cm3/m3-tools/cvsup/doc/Attributes N cm3/m3-tools/cvsup/doc/faq_ru.head N cm3/m3-tools/cvsup/doc/images/yelnew.gif N cm3/m3-tools/cvsup/doc/images/cvsup128.gif N cm3/m3-tools/cvsup/client/Makefile N cm3/m3-tools/cvsup/client/src/RegularUpdater.i3 N cm3/m3-tools/cvsup/client/src/RegularUpdater.m3 N cm3/m3-tools/cvsup/client/src/exit.pbm N cm3/m3-tools/cvsup/client/src/TextPortLogger.i3 N cm3/m3-tools/cvsup/client/src/Receive.i3 N cm3/m3-tools/cvsup/client/src/TreeList.i3 N cm3/m3-tools/cvsup/client/src/RsyncUpdater.m3 N cm3/m3-tools/cvsup/client/src/Auth.i3 N cm3/m3-tools/cvsup/client/src/SyncQueue.mg N cm3/m3-tools/cvsup/client/src/SupGUI.m3 N cm3/m3-tools/cvsup/client/src/tape_play.pbm N cm3/m3-tools/cvsup/client/src/Version.i3 N cm3/m3-tools/cvsup/client/src/SupFile.m3 N cm3/m3-tools/cvsup/client/src/CheckoutUpdater.i3 N cm3/m3-tools/cvsup/client/src/EventSync.m3 N cm3/m3-tools/cvsup/client/src/SupFile.i3 N cm3/m3-tools/cvsup/client/src/CheckoutUpdater.m3 N cm3/m3-tools/cvsup/client/src/TreeList.m3 N cm3/m3-tools/cvsup/client/src/Auth.m3 N cm3/m3-tools/cvsup/client/src/FSClient.i3 N cm3/m3-tools/cvsup/client/src/TextVBTLogger.i3 N cm3/m3-tools/cvsup/client/src/CheckoutCreator.m3 N cm3/m3-tools/cvsup/client/src/cvsup.1 N cm3/m3-tools/cvsup/client/src/Updater.m3 N cm3/m3-tools/cvsup/client/src/BackoffTimer.m3 N cm3/m3-tools/cvsup/client/src/FSClient.m3 N cm3/m3-tools/cvsup/client/src/disk.pbm N cm3/m3-tools/cvsup/client/src/RCSUpdater.m3 N cm3/m3-tools/cvsup/client/src/EventSync.i3 N cm3/m3-tools/cvsup/client/src/Detailer.i3 N cm3/m3-tools/cvsup/client/src/cvsup.cat N cm3/m3-tools/cvsup/client/src/CheckoutCreator.i3 N cm3/m3-tools/cvsup/client/src/Receive.m3 N cm3/m3-tools/cvsup/client/src/Main.m3 N cm3/m3-tools/cvsup/client/src/RegularCreator.i3 N cm3/m3-tools/cvsup/client/src/FileUpdater.i3 N cm3/m3-tools/cvsup/client/src/RsyncUpdater.i3 N cm3/m3-tools/cvsup/client/src/syncqueue.tmpl N cm3/m3-tools/cvsup/client/src/stop.pbm N cm3/m3-tools/cvsup/client/src/FileUpdater.m3 N cm3/m3-tools/cvsup/client/src/TextVBTLogger.m3 N cm3/m3-tools/cvsup/client/src/SupGUIFake.m3 N cm3/m3-tools/cvsup/client/src/m3makefile N cm3/m3-tools/cvsup/client/src/BackoffTimer.i3 N cm3/m3-tools/cvsup/client/src/RegularCreator.m3 N cm3/m3-tools/cvsup/client/src/TextPortLogger.m3 N cm3/m3-tools/cvsup/client/src/SupGUI.i3 N cm3/m3-tools/cvsup/client/src/Copyright.txt N cm3/m3-tools/cvsup/client/src/SyncQueue.ig N cm3/m3-tools/cvsup/client/src/RCSUpdater.i3 N cm3/m3-tools/cvsup/client/src/Detailer.m3 N cm3/m3-tools/cvsup/client/src/Updater.i3 N cm3/m3-tools/cvsup/client/src/info.pbm N cm3/m3-tools/cvsup/client/src/Fixup.i3 N cm3/m3-tools/cvsup/client/src/SupGUI.fv N cm3/m3-tools/cvsup/cvpasswd/Makefile N cm3/m3-tools/cvsup/cvpasswd/src/Secret.i3 N cm3/m3-tools/cvsup/cvpasswd/src/Secret.m3 N cm3/m3-tools/cvsup/cvpasswd/src/Main.m3 N cm3/m3-tools/cvsup/cvpasswd/src/m3makefile N cm3/m3-tools/cvsup/cvpasswd/src/Upass.i3 N cm3/m3-tools/cvsup/cvpasswd/src/cvpasswd.cat N cm3/m3-tools/cvsup/cvpasswd/src/cvpasswd.1 N cm3/m3-tools/cvsup/examples/supfile.cvs N cm3/m3-tools/cvsup/examples/README N cm3/m3-tools/cvsup/contrib/README N cm3/m3-tools/cvsup/contrib/cvsup2httplog/cvsup2httplog N cm3/m3-tools/cvsup/contrib/cvsup2httplog/README N cm3/m3-tools/cvsup/contrib/cvsupwho/README N cm3/m3-tools/cvsup/contrib/cvsupwho/cvsupwho N cm3/m3-tools/cvsup/contrib/cvsupchk/README N cm3/m3-tools/cvsup/contrib/cvsupchk/cvsupchk N cm3/m3-tools/cvsup/contrib/cvsup2html/cvsup2html.awk N cm3/m3-tools/cvsup/contrib/cvsup2html/README N cm3/m3-tools/cvsup/contrib/cvsuplog2html/README N cm3/m3-tools/cvsup/contrib/cvsuplog2html/cvsuplog2html N cm3/m3-tools/cvsup/suplib/Makefile N cm3/m3-tools/cvsup/suplib/src/RsyncFile.i3 N cm3/m3-tools/cvsup/suplib/src/RsyncBlock.m3 N cm3/m3-tools/cvsup/suplib/src/IOWatchDog.m3 N cm3/m3-tools/cvsup/suplib/src/RCSRevNum.i3 N cm3/m3-tools/cvsup/suplib/src/FileAttrRep.i3 N cm3/m3-tools/cvsup/suplib/src/EscapedRd.i3 N cm3/m3-tools/cvsup/suplib/src/RCSError.i3 N cm3/m3-tools/cvsup/suplib/src/Merger.ig N cm3/m3-tools/cvsup/suplib/src/merger.tmpl N cm3/m3-tools/cvsup/suplib/src/UgzipP.i3 N cm3/m3-tools/cvsup/suplib/src/GzipRd.m3 N cm3/m3-tools/cvsup/suplib/src/WatchDog.m3 N cm3/m3-tools/cvsup/suplib/src/RCSString.m3 N cm3/m3-tools/cvsup/suplib/src/ErrMsg.m3 N cm3/m3-tools/cvsup/suplib/src/AuthMD5.i3 N cm3/m3-tools/cvsup/suplib/src/SplitLogger.i3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrase.i3 N cm3/m3-tools/cvsup/suplib/src/MD5.i3 N cm3/m3-tools/cvsup/suplib/src/DirEntry.i3 N cm3/m3-tools/cvsup/suplib/src/SupMisc.i3 N cm3/m3-tools/cvsup/suplib/src/RCSString.i3 N cm3/m3-tools/cvsup/suplib/src/SupMisc.m3 N cm3/m3-tools/cvsup/suplib/src/IOWatchDog.i3 N cm3/m3-tools/cvsup/suplib/src/RCSEdit.i3 N cm3/m3-tools/cvsup/suplib/src/FileAttr.i3 N cm3/m3-tools/cvsup/suplib/src/ExecRec.i3 N cm3/m3-tools/cvsup/suplib/src/Merger.mg N cm3/m3-tools/cvsup/suplib/src/MySyslog.i3 N cm3/m3-tools/cvsup/suplib/src/FileStatus.i3 N cm3/m3-tools/cvsup/suplib/src/RCSAccess.i3 N cm3/m3-tools/cvsup/suplib/src/TimeStampLogger.i3 N cm3/m3-tools/cvsup/suplib/src/SysLogger.m3 N cm3/m3-tools/cvsup/suplib/src/GzipWr.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDelta.m3 N cm3/m3-tools/cvsup/suplib/src/DevT.i3 N cm3/m3-tools/cvsup/suplib/src/TokScan.m3 N cm3/m3-tools/cvsup/suplib/src/UnixMisc.m3 N cm3/m3-tools/cvsup/suplib/src/Attic.i3 N cm3/m3-tools/cvsup/suplib/src/RCSAccess.m3 N cm3/m3-tools/cvsup/suplib/src/CVTree.i3 N cm3/m3-tools/cvsup/suplib/src/RCSFile.m3 N cm3/m3-tools/cvsup/suplib/src/WatchDog.i3 N cm3/m3-tools/cvsup/suplib/src/RegEx.m3 N cm3/m3-tools/cvsup/suplib/src/SplitLogger.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Digest.m3 N cm3/m3-tools/cvsup/suplib/src/StatusFile.i3 N cm3/m3-tools/cvsup/suplib/src/Reaper.i3 N cm3/m3-tools/cvsup/suplib/src/DirEntry.m3 N cm3/m3-tools/cvsup/suplib/src/Umd5.i3 N cm3/m3-tools/cvsup/suplib/src/TimeStampLogger.m3 N cm3/m3-tools/cvsup/suplib/src/FileStatusRaw.i3 N cm3/m3-tools/cvsup/suplib/src/Attic.m3 N cm3/m3-tools/cvsup/suplib/src/SupFileRec.m3 N cm3/m3-tools/cvsup/suplib/src/GzipRd.i3 N cm3/m3-tools/cvsup/suplib/src/RCSTag.m3 N cm3/m3-tools/cvsup/suplib/src/FileAttr.m3 N cm3/m3-tools/cvsup/suplib/src/Ugzip.i3 N cm3/m3-tools/cvsup/suplib/src/StatusFile.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Wr.m3 N cm3/m3-tools/cvsup/suplib/src/ProcTitle.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDelta.i3 N cm3/m3-tools/cvsup/suplib/src/RsyncFile.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedWr.m3 N cm3/m3-tools/cvsup/suplib/src/RCSDate.m3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrases.i3 N cm3/m3-tools/cvsup/suplib/src/CText.i3 N cm3/m3-tools/cvsup/suplib/src/AuthMD5.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedWr.i3 N cm3/m3-tools/cvsup/suplib/src/CVProto.m3 N cm3/m3-tools/cvsup/suplib/src/Glob.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedRd.m3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrases.m3 N cm3/m3-tools/cvsup/suplib/src/SigHandler.i3 N cm3/m3-tools/cvsup/suplib/src/UnixMiscC.c N cm3/m3-tools/cvsup/suplib/src/Uglob.i3 N cm3/m3-tools/cvsup/suplib/src/LoggerClass.i3 N cm3/m3-tools/cvsup/suplib/src/Logger.i3 N cm3/m3-tools/cvsup/suplib/src/GlobTree.i3 N cm3/m3-tools/cvsup/suplib/src/GlobTree.m3 N cm3/m3-tools/cvsup/suplib/src/Reaper.m3 N cm3/m3-tools/cvsup/suplib/src/Logger.m3 N cm3/m3-tools/cvsup/suplib/src/SigHandler.m3 N cm3/m3-tools/cvsup/suplib/src/RCSDate.i3 N cm3/m3-tools/cvsup/suplib/src/UnixMisc.i3 N cm3/m3-tools/cvsup/suplib/src/CVTree.m3 N cm3/m3-tools/cvsup/suplib/src/WrLogger.m3 N cm3/m3-tools/cvsup/suplib/src/LockFile.m3 N cm3/m3-tools/cvsup/suplib/src/m3makefile N cm3/m3-tools/cvsup/suplib/src/ChannelMux.i3 N cm3/m3-tools/cvsup/suplib/src/TokScan.i3 N cm3/m3-tools/cvsup/suplib/src/ErrMsg.i3 N cm3/m3-tools/cvsup/suplib/src/ChannelMux.m3 N cm3/m3-tools/cvsup/suplib/src/FileStatus.m3 N cm3/m3-tools/cvsup/suplib/src/PathComp.i3 N cm3/m3-tools/cvsup/suplib/src/MD5Digest.i3 N cm3/m3-tools/cvsup/suplib/src/GzipError.i3 N cm3/m3-tools/cvsup/suplib/src/RCSKeyword.i3 N cm3/m3-tools/cvsup/suplib/src/MD5.m3 N cm3/m3-tools/cvsup/suplib/src/PathComp.m3 N cm3/m3-tools/cvsup/suplib/src/GzipError.m3 N cm3/m3-tools/cvsup/suplib/src/SysLogger.i3 N cm3/m3-tools/cvsup/suplib/src/FileID.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Wr.i3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrase.m3 N cm3/m3-tools/cvsup/suplib/src/RegEx.i3 N cm3/m3-tools/cvsup/suplib/src/Glob.i3 N cm3/m3-tools/cvsup/suplib/src/FileID.i3 N cm3/m3-tools/cvsup/suplib/src/SupFileRec.i3 N cm3/m3-tools/cvsup/suplib/src/RCSTag.i3 N cm3/m3-tools/cvsup/suplib/src/RCSKeyword.m3 N cm3/m3-tools/cvsup/suplib/src/WrLogger.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDeltaClass.i3 N cm3/m3-tools/cvsup/suplib/src/RCSRevNum.m3 N cm3/m3-tools/cvsup/suplib/src/CVProto.i3 N cm3/m3-tools/cvsup/suplib/src/RCSFile.i3 N cm3/m3-tools/cvsup/suplib/src/LockFile.i3 N cm3/m3-tools/cvsup/suplib/src/Ugzip.m3 N cm3/m3-tools/cvsup/suplib/src/RsyncBlock.i3 N cm3/m3-tools/cvsup/suplib/src/GzipWr.m3 N cm3/m3-tools/cvsup/suplib/src/libmd/md5hl.c N cm3/m3-tools/cvsup/suplib/src/libmd/md5.h N cm3/m3-tools/cvsup/suplib/src/libmd/md5c.c N cm3/m3-tools/cvsup/suplib/src/libmd/m3makefile N cm3/m3-tools/cvsup/suplib/src/libmd/md5.copyright N cm3/m3-tools/cvsup/suplib/src/libglob/fnmatch.h N cm3/m3-tools/cvsup/suplib/src/libglob/fnmatch.c N cm3/m3-tools/cvsup/suplib/src/libglob/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/DevTLinux.i3 N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/DevT.m3 N cm3/m3-tools/cvsup/suplib/src/POSIX/ProcTitle.m3 N cm3/m3-tools/cvsup/suplib/src/POSIX/m3makefile N cm3/m3-tools/cvsup/suplib/src/POSIX/FileAttrOS.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/SupMiscText.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/CText.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/m3makefile N cm3/m3-tools/cvsup/suplib/src/text_pm3/SupMiscText.m3 N cm3/m3-tools/cvsup/suplib/src/text_pm3/CText.m3 N cm3/m3-tools/cvsup/suplib/src/text_pm3/m3makefile N cm3/m3-tools/cvsup/suplib/src/FreeBSD/UProcTitle.c N cm3/m3-tools/cvsup/suplib/src/FreeBSD/FileAttrOS.i3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/ProcTitle.m3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/m3makefile N cm3/m3-tools/cvsup/suplib/src/FreeBSD/UProcTitle.i3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/FileAttrOS.m3 N cm3/m3-tools/cvsup/suplib/src/dev_t_posix/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_posix/DevT.m3 N cm3/m3-tools/cvsup/config/src/m3makefile N cm3/m3-tools/cvsup/suptcp/Makefile N cm3/m3-tools/cvsup/suptcp/src/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/README N cm3/m3-tools/cvsup/suptcp/src/m3makefile N cm3/m3-tools/cvsup/suptcp/src/POSIX/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHackNull.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHack.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCP.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOptOther.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOpt.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHack.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPPosix.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/m3makefile N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOptFBSD.m3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamWrClass.m3 N cm3/m3-tools/cvsup/suptcp/src/common/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/common/StreamRdClass.m3 N cm3/m3-tools/cvsup/suptcp/src/common/TCPMisc.i3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamRd.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnRW.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnFD.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupErrno.i3 N cm3/m3-tools/cvsup/suptcp/src/common/m3makefile N cm3/m3-tools/cvsup/suptcp/src/common/SupTCP.i3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamWrClass.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupErrnoC.c N cm3/m3-tools/cvsup/suptcp/src/common/StreamWr.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnRW.m3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamRdClass.i3 N cm3/m3-tools/cvsup/quake/cvsup.quake N cm3/m3-tools/cvsup/server/Makefile N cm3/m3-tools/cvsup/server/src/ClassDB.m3 N cm3/m3-tools/cvsup/server/src/ClientClass.i3 N cm3/m3-tools/cvsup/server/src/FSServer.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.cat N cm3/m3-tools/cvsup/server/src/Passwd.i3 N cm3/m3-tools/cvsup/server/src/Version.i3 N cm3/m3-tools/cvsup/server/src/ClientClass.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.class.cat N cm3/m3-tools/cvsup/server/src/FSServerU.m3 N cm3/m3-tools/cvsup/server/src/FSServer.i3 N cm3/m3-tools/cvsup/server/src/AccessRules.i3 N cm3/m3-tools/cvsup/server/src/ParsedDelta.m3 N cm3/m3-tools/cvsup/server/src/Main.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.8 N cm3/m3-tools/cvsup/server/src/AccessRules.m3 N cm3/m3-tools/cvsup/server/src/TreeComp.i3 N cm3/m3-tools/cvsup/server/src/ClassDB.i3 N cm3/m3-tools/cvsup/server/src/FileInfo.i3 N cm3/m3-tools/cvsup/server/src/Passwd.m3 N cm3/m3-tools/cvsup/server/src/m3makefile N cm3/m3-tools/cvsup/server/src/FileInfo.m3 N cm3/m3-tools/cvsup/server/src/RCSComp.i3 N cm3/m3-tools/cvsup/server/src/ParsedDelta.i3 N cm3/m3-tools/cvsup/server/src/cvsupd.class.5 N cm3/m3-tools/cvsup/server/src/TreeComp.m3 N cm3/m3-tools/cvsup/server/src/RCSComp.m3 N cm3/m3-tools/cvsup/server/src/FSServerRep.i3 No conflicts created by this import From jkrell at elego.de Thu Apr 9 20:24:30 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:24:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409182430.3F44B60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:24:30 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 UstatC.c Utypes.i3 Log message: add Utypes.mode_t = INTEGER struct_stat.st_dev: LONGINT; struct_stat.st_ino: LONGINT; for cvsup. Still very portable (modulo that ino doesn't really exist on Win32 FAT, and is not well exposed on Win32 NTFS (have to open the file, slow, though native APIs expose it since XP)) From jkrell at elego.de Thu Apr 9 20:47:41 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:47:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409184741.CA2CF60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:47:41 Modified files: cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Utypes.i3 Log message: and add Utypes.ino_t = LONGINT, Utypes.dev_t = LONGINT for cvsup and alias SchedulerPosix.Enable/DisableSwitching = Scheduler.Enable/ DisableSwitching for cvsup From jkrell at elego.de Thu Apr 9 20:53:27 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:53:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409185327.6F02460C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:53:27 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 Uconstants.c Log message: add O_APPEND back, portable, for cvsup; there are other flags we could add back From jkrell at elego.de Thu Apr 9 21:15:47 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:15:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409191547.A730960C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:15:47 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: m3makefile cm3/m3-tools/cvsup/suptcp/src/common/: m3makefile Log message: - Uerrno now has variables instead of constants but then, don't compile this anyway - "one" in InitFD should be 32 bits even on 64bit systems but then, don't compile this anyway - StreamRd, StreamRdClass, StreamWr, StreamWrClass appear to be identical to code elsewhere (m3-comm), so don't compile them - even SupTCP appears redundant, don't compile it Could be this isn't all correct, wrt defering to m3-comm/tcp. From jkrell at elego.de Thu Apr 9 21:22:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:22:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409192235.58A5460C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:22:35 Modified files: cm3/m3-tools/cvsup/suplib/src/: RCSFile.m3 RsyncFile.m3 Log message: truncate file sizes to integer or cardinal. This should be reviewed. ORD is the way, right? It is probably reasonable to limit file sizes in CVS repositories to 2gig or 4gig I am not really willing to make the idealized stat use INTEGER for file sizes since file sizes are definitely beyond 4gig in general, even on 32bit systems. I assume this code is "safe", in that there will be an unhandled exception upon value-losing truncation, not silent treatment of a 4g+1 byte file as just 1 byte. However the modules are unsafe. Arguably "double" is a good type here -- 53 bits of precision and of much longer standing and greater compatibility/portability than a 64bit integer. 53 bits is a lot. But I'm not a fan of floating point.. From jkrell at elego.de Thu Apr 9 21:24:45 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:24:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409192445.8630F60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:24:45 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: SupTCP.m3 Log message: actually checkin my version of the file Comments from before: - Uerrno now has variables instead of constants but then, don't compile this anyway - "one" in InitFD should be 32 bits even on 64bit systems but then, don't compile this anyway - StreamRd, StreamRdClass, StreamWr, StreamWrClass appear to be identical to code elsewhere (m3-comm), so don't compile them - even SupTCP appears redundant, don't compile it Could be this isn't all correct, wrt defering to m3-comm/tcp. From jkrell at elego.de Fri Apr 10 11:26:36 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 11:26:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410092636.4B68F60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 11:26:36 Added files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.i3 Log message: initial version of Ugrp.i3, identical to all the other copies (ugh), but we will change it to be extra safe via copying like Unetdb (cvsup uses this) From jkrell at elego.de Fri Apr 10 12:06:04 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:06:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410100604.EF35E60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:06:04 Modified files: cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 Log message: my mistake -- rebuilding m3core clean fails due to this, go back a version to version 1.5 From jkrell at elego.de Fri Apr 10 12:21:16 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:21:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102116.C5C4C60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:21:16 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.m3 Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:22:07 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:22:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102207.9439160C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:22:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:29:44 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:29:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102944.5486C60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:29:44 Modified files: cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:30:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:30:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410103043.127AD60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:30:43 Modified files: cm3/m3-libs/m3core/src/unix/big-endian/: m3makefile Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:32:52 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:32:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410103257.330AB60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:32:52 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c Uexec.c Ugrp.i3 Umman.i3 Unetdb.c Unix.i3 UnixC.c Upthread.i3 Usocket.c Ustat.i3 UstatC.c UtimeC.c Utypes.i3 Uucontext.c m3makefile m3unix.h cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3 Added files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Umman.c Log message: a bunch of churn here: - provide Ugrp.i3, Ugrp.c for cvsup Make it copying for safety. Though every system I checked defines the struct with the exact same members and order, though we no longer make gid_t match (below) so copying becomes possibly needed. Don't bother with passwd. - add mknod, mmap, munmap, umask for cvsup - add some mmap flags for cvsup, go ahead and add some it doesn't use either the additions to Uconstants are under #ifdef previously I had trimmed Umman to just mprotect - continue experiment where we "wrap everything" (e.g. mknod, umask, mmap, munmap, Ugrp.i3) instead of only functions with a clear need (the need hasn't always been clear!) - push more stuff into m3unix.h due to a sort of intellectual laziness unclear benefit includes now everything is prototyped, not just implemented and not used, not clear if that is any progress - widen mode_t from int to INTEGER - change gid_t, pid_t, uid_t from system dependent to not pid_t is always 32 bit signed integer gid_t and uid_t is always 32 bit integer, of varying signedness change them all to INTEGER INTEGER is more predictably laid out and aligned the same on 64bit platforms -- that is, we need to be able to duplicate structs in Modula-3 and C and have a /very/ high confidence that they match up (we should probably pass in sizes from Modula-3, and maybe even field offset?) - change pthread_t from system dependent to not on the vast majority of systems, sizeof(pthread_t) == sizeof(integer,size_t,void*) Known exceptions are 64bit Solaris and I think 64 bit HP-UX; on those pthread_t is just a 32bit integer and this change might waste a little space - assert correctness or enough correctness of various types -- that the Modula-3 types are at least as large as the C types that pid_t is signed (presumably so you can check for <0 or == -1 or something) that short/int/long/CHAR_BIT are what we expect (punt on portability to CHAR_BIT != 8 -- i.e. a conforming C implementation can have CHAR_BIT=32 and then sizeof(char)==sizeof(short)==sizeof(int)==sizeof(long)==4) - #ifdef guard on m3unix.h; extern "C" in more places - remove presumably unused passwd from Ugrp.i3 - reorder Ugrp.i3 -- size then name; this is arbitrary and unnecessary though - rename SOCKLEN_T to m3_socklen_t (tempting to just use one set of wrappers here instead of two..) - remove FreeBSD-common clock_t, appears dead (only currently affects AMD64_FREEBSD) - a lot of this is still tedious and error-prone, but at least very portable From jkrell at elego.de Fri Apr 10 12:41:39 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:41:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410104139.CDCEC60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:41:39 Modified files: cm3/m3-sys/m3tests/src/: Test.i3 TestC.c Log message: remove pid_d, gid_t, uid_t remove comment about pthreads now that the system-dependentness has been removed so the comment obvious use double for alignment instead of size_t -- actually needed.. From jkrell at elego.de Fri Apr 10 13:04:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 13:04:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410110434.D9C9A60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 13:04:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Ustat.i3 UstatC.c m3unix.h Log message: add link chmod fchmod chown fchown creat dup some of which are needed by cvsup, not all add struct stat.nlink which is used by cvsup (is LONGINT overkill?) From jkrell at elego.de Fri Apr 10 23:01:03 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:01:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210104.331C560C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:01:03 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:01:55 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:01:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210155.CBCD460C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:01:55 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:02:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:02:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210226.B96ED60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:02:26 Modified files: cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:02:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:02:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210245.C9DF460C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:02:45 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:03:29 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:03:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210330.17ED360C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:03:29 Modified files: cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:09:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:09:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210956.E538360C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:09:56 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: enable PPC32_OPENBSD in list of big endian platforms From neels at elego.de Fri Apr 10 23:13:50 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Fri, 10 Apr 2009 23:13:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410211350.0BDC060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/10 23:13:50 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: updated URLs From neels at elego.de Fri Apr 10 23:15:08 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Fri, 10 Apr 2009 23:15:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410211508.9ADC060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/10 23:15:08 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: adjust copyright From jkrell at elego.de Fri Apr 10 23:54:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:54:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215457.7C86260C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:54:57 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix serious typo -- sizeof(short) is 2 not 1! From jkrell at elego.de Fri Apr 10 23:56:44 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:56:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215644.749E060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:56:44 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: more sanity checks (will probably these to RTLinker later, here is too late) From jkrell at elego.de Fri Apr 10 23:58:21 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:58:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215821.35BDB60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:58:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: fix I386_DARWIN, AMD64_DARWIN, FreeBSD4 -- platforms still using their own Unix/*.i3 files -- take common Ugrp.i3 away from them From jkrell at elego.de Sat Apr 11 00:05:55 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 11 Apr 2009 0:05:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410220555.B575660C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/11 00:05:55 Added files: cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 Log message: re-add Csetjmp.i3 for PPC32_OPENBSD, based on m3-sys/m3middle/src/Target.m3 From jkrell at elego.de Sat Apr 11 00:09:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 11 Apr 2009 0:09:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410220910.68A3B60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/11 00:09:10 Modified files: cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: m3makefile Log message: re-add Csetjmp.i3 for PPC32_OPENBSD, based on m3-sys/m3middle/src/Target.m3 From neels at elego.de Sat Apr 11 23:57:00 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sat, 11 Apr 2009 23:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411215700.7727B60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/11 23:57:00 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: minor fixes on cm3 installation for ubuntu From neels at elego.de Sat Apr 11 23:58:54 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sat, 11 Apr 2009 23:58:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411215854.E077C60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/11 23:58:54 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: minor fixes on cm3 installation for ubuntu From neels at elego.de Sun Apr 12 00:09:22 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sun, 12 Apr 2009 0:09:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411220922.193E260C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/12 00:09:22 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: and more minor fixes on cm3 installation for ubuntu From neels at elego.de Sun Apr 12 00:15:43 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sun, 12 Apr 2009 0:15:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411221543.9ABC260C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/12 00:15:43 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: still more minor fixes on cm3 installation for ubuntu From jkrell at elego.de Sun Apr 12 05:08:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:08:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412030858.B13FE60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:08:58 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: cvsup source says even readdir is not user-thread safe (this change only makes a difference with user threads -- adds two calls to nops for kernel threads) From jkrell at elego.de Sun Apr 12 05:12:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:12:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412031239.1380260C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:12:39 Modified files: cm3/m3-tools/cvsup/suplib/src/: CVTree.m3 Ugzip.m3 Log message: small adaptions for Scheduler vs. SchedulerPosix "IMPORT Scheduler AS SchedulerPosix" could be cleaned up further (the "safe" wrappers in CVTree are not needed) From jkrell at elego.de Sun Apr 12 05:20:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:20:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412032010.56AE360C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:20:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Utypes.i3 Ustat.i3 Log message: add nlink_t that cvsup will use and does exist everywhere else; I use LONGINT here but maybe that is overkill From jkrell at elego.de Sun Apr 12 05:32:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:32:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412033213.BA27E60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:32:13 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h UnixC.c Log message: check that nlink_t is large enough, and slightly tweak the others (comments, parens, sorting) From jkrell at elego.de Sun Apr 12 06:20:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:20:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042026.A5A5460C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:20:26 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.i3 TokScan.m3 Log message: Provide AtoL, a trivial adaption of AtoI that was there, and make AtoI a one line wrapper over it. This will be used shortly, to deal with 32bit Linux's already existant 64bit dev_t, as well as the pessmistic/idealized 64bit dev_t on all systems using my Unix/*.i3 files. While we are at it, the Linux code should become portable to big endian systems such as PPC, SPARC, MIPS. I386_FREEBSD, I386_DARWIN, AMD64_DARWIN building cvsup is about to become broken, but I386_FREEBSD I will fix. From jkrell at elego.de Sun Apr 12 06:22:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:22:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042205.A43AF60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:22:05 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.m3 Log message: fix previous From jkrell at elego.de Sun Apr 12 06:27:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:27:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042713.7AD4860C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:27:13 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: Ustat.S_IFREG etc. are no longer constants, now variables -- use if/else ladder instead of switch From jkrell at elego.de Sun Apr 12 06:36:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:36:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412043607.3BD4860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:36:07 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: adapt ScanInt/ScanLong as was done for AtoI/AtoL, less clear this will be used but probably From jkrell at elego.de Sun Apr 12 06:40:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:40:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412044008.123E260C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:40:08 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: cast st_nlink as needed between INTEGER and nlink_t -- maybe I should just change Ustat's definition of it to be INTEGER though From jkrell at elego.de Sun Apr 12 06:42:34 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:42:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412044234.E02AA60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:42:34 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: cast st_size to with ORD and VAL(off_t) as needed to compile in this case Unix/*.i3 is certainly right in using LONGINT, to allow for >4gig files on 32bit platforms, and cvsup is probably ok to use INTEGER, assuming files in CVS are always under 4gig, at least on 32bit systems From jkrell at elego.de Sun Apr 12 06:50:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:50:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045041.9852960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:50:41 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: deal more with st_size (cheat a little less, but ultimately still truncate to integer) st_ino (always 64bits) gettimeofday (use NIL instead of VAR tz) st_mtime (always 64bit LONGINT, wishful thinking?) Ugrp (provide space for copy) FileAttr compiles now From jkrell at elego.de Sun Apr 12 06:55:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:55:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045536.EA15860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:55:36 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile cm3/m3-tools/cvsup/suplib/src/dev_t_posix/: DevT.m3 Removed files: cm3/m3-tools/cvsup/suplib/src/dev_t_linux/: DevT.m3 DevTLinux.i3 m3makefile Log message: adapt to an always 64bit dev_t, including fixing big endian Linux From jkrell at elego.de Sun Apr 12 06:57:52 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:57:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045752.3923660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:57:52 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileID.m3 Log message: Likewise, adapt to an always 64bit ino_t. Cygwin for example has a 64bit ino_t on a 32bit system. This is a little sleazy in that it uses DevT.Hash(inode). Really it should be some Int64.Hash() function. From jkrell at elego.de Sun Apr 12 07:00:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:00:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412050051.A32BD60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:00:51 Modified files: cm3/m3-tools/cvsup/suplib/src/: UnixMisc.m3 Log message: cast st_size to integer for mmap (ORD) convert to copying Unetdb cast mmap's 0 to off_t it compiles From jkrell at elego.de Sun Apr 12 07:26:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:26:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412052602.7522F60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:26:02 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: add libz to system libs for cygwin for cvsup, others need this IF they have e.g. /usr/libz.a and NOT /usr/local/libz.a, I think From jkrell at elego.de Sun Apr 12 07:33:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:33:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053303.EC4F560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:33:03 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: Try SYSTEM_LIBS{"Z"} ahead of /usr/local/libz.a. From jkrell at elego.de Sun Apr 12 07:33:21 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:33:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053321.870F360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:33:21 Modified files: cm3/m3-tools/cvsup/suplib/src/: ErrMsg.m3 SupMisc.i3 SupMisc.m3 Log message: Experimentally try replacing SupTCP with TCP. From jkrell at elego.de Sun Apr 12 07:36:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:36:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053602.7BA7660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:36:02 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: m3makefile Log message: experimentaly remove SupTCP, SupTCPPosix (my basic problem here is that I can't compile SupTCP because it imports TCP and implements functions with the same name as TCP From jkrell at elego.de Sun Apr 12 08:17:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:17:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061708.0386360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:17:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Log message: reverse -- more important to match the C code than to use indirect names From jkrell at elego.de Sun Apr 12 08:17:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:17:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061742.5160A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:17:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Utypes.i3 Log message: fix newlines (dos2unix) From jkrell at elego.de Sun Apr 12 08:18:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:18:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061839.7AD6660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:18:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Uerror.i3 UerrorX.h Unix.i3 UnixC.c Usignal.i3 Log message: add more for cvsup: Unix.fork Usignal.SIGALRM Usignal.SIGCHLD Uerror.ENOBUFS Uerror.ENOTDIR all portably. From jkrell at elego.de Sun Apr 12 08:21:35 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:21:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412062135.D720160C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:21:35 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: change how libz is added to SYSTEM_LIBORDER to a terser way that I thought I had unsuccessfully tried, but now works, whereas other way doesn't. From jkrell at elego.de Sun Apr 12 08:23:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:23:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412062343.6C4C260C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:23:43 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: fix last minute edit from a bit ago From jkrell at elego.de Sun Apr 12 08:43:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:43:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412064310.24E9A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:43:10 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: detect cm3 via CM3_VERSION From jkrell at elego.de Sun Apr 12 08:54:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:54:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412065408.9BF6C60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:54:08 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: use cm3 quake built in datenow() instead of Unix date This fixes problems on NT. Granted, before it was printing: Sat Apr 11 23:52:50 PDT 2009 and now it prints: 2009-04-12 06:51:38 should be ok. From jkrell at elego.de Sun Apr 12 09:08:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412070844.134B360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:08:43 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: executables were missing Uconstants.c; also add in other switches that libraries had that executables did not -- -disable-auto-import, -disable-runtime-pseudo-reloc whatever that is, -large-address-aware (large means >2gig, and has no meaning on .dlls, only .exes); found via warnings building cvsupd on cygwin From jkrell at elego.de Sun Apr 12 09:10:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:10:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412071039.45F7760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:10:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Usignal.i3 Uconstants.c Log message: add SIGHUP and SIGTERM, portable, for cvsup client From jkrell at elego.de Sun Apr 12 09:14:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:14:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412071437.DE26960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:14:37 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: don't link Uconstants.obj into standalone executables, that is redundant with m3core.lib.sa and produces errors about duplicate symbols (though this seems like dubious behavior by GNU ld to me -- objects in libs only get pulled in if they resolved something, and loose objs are always pulled in, so there's no reason to get that object and find the duplicates..granted..it is also bad/ambiguous to have duplicates but rely on this behavior to 'hide' them From jkrell at elego.de Sun Apr 12 09:21:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:21:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412072114.5179560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:21:14 Modified files: cm3/m3-tools/cvsup/client/src/: FSClient.m3 m3makefile cm3/m3-tools/cvsup/server/src/: FSServer.m3 FSServerRep.i3 m3makefile cm3/m3-tools/cvsup/suplib/src/: ChannelMux.i3 ChannelMux.m3 SigHandler.m3 m3makefile cm3/m3-tools/cvsup/suptcp/src/common/: TCPMisc.i3 m3makefile Log message: per Olaf's dccs (thanks!): SupTCP => TCP SupConnRW => ConnRW import(suptcp) => import(tcp) SupErrno => Cerrno SupConnFD => ConnFD the suptcp directory is dead, and adapt to Uerror having variables instead of constants cvsupd.exe (server) and cvsup.exe can now build on cygwin. Testing them is another matter. From jkrell at elego.de Sun Apr 12 09:34:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:34:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412073415.2D16360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:34:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/aix-3-2/: m3makefile cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: m3makefile cm3/m3-libs/m3core/src/unix/darwin-generic/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-1/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-2/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-3/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile cm3/m3-libs/m3core/src/unix/hpux-7-0/: m3makefile cm3/m3-libs/m3core/src/unix/ibm-4-3/: m3makefile cm3/m3-libs/m3core/src/unix/irix-5.2/: m3makefile cm3/m3-libs/m3core/src/unix/linux/: m3makefile cm3/m3-libs/m3core/src/unix/linux-libc6/: m3makefile cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile cm3/m3-libs/m3core/src/unix/os2/: m3makefile cm3/m3-libs/m3core/src/unix/osf-1.generic/: m3makefile cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile cm3/m3-libs/m3core/src/unix/sunos-4-x/: m3makefile cm3/m3-libs/m3core/src/unix/sysv-4.0/: m3makefile cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: m3makefile Log message: give all platforms common altered Ugrp.i3 This isn't tested, but given that common had no Ugrp.i3, odds are high that no code (except cvsup) depends on it. From jkrell at elego.de Sun Apr 12 09:58:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:58:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412075829.7C48460C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:58:29 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: Take Olaf's dccs code for finding libz. From jkrell at elego.de Sun Apr 12 10:06:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:06:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412080631.8052560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:06:31 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: The world is not yet ready for position independent executables, instead of the small amount of extra security they offer, we have probably-over-optimized non-relocatable libs. e.g. /usr/lib/libz.a on new Birch. (besides that, it would be nice to be able to statically link libz.a into a position independent shared library; personally I'd just as soon have no position dependent code at all) From jkrell at elego.de Sun Apr 12 10:57:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412085700.E307960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:57:00 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-4/: Uucontext.i3 Log message: change Utypes.u_long to Ctypes.unsigned_long because I omitted the first, maybe should put it back From jkrell at elego.de Sun Apr 12 10:57:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:57:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412085751.432E860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:57:51 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: FileAttrOS.i3 Log message: change Utypes.u_long to Ctypes.unsigned_long because I omitted the first, maybe should put it back From jkrell at elego.de Sun Apr 12 11:34:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 11:34:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412093400.7F4C760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 11:34:00 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Ustat.i3 UstatC.c m3unix.h Log message: For Darwin, FreeBSD, OpenBSD, NetBSD, add chflags, fchflags, and variables holding the possible values. We should see if some of the flags are common and long standing and remove the #ifdefs for them. cvsup knows about these flags on FreeBSD, at least to get/set them, and it could be improved to handle the other platforms. From jkrell at elego.de Sun Apr 12 11:56:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 11:56:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412095605.4CEA460C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 11:56:05 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Ustat.i3 Log message: add UF_SETTABLE, SF_SETTABLE, comments From jkrell at elego.de Sun Apr 12 12:01:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:01:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100151.0551660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:01:50 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: extent FreeBSD source to all architectures/FreeBSD, extend chflags/fchflags to *BSD, Darwin, From jkrell at elego.de Sun Apr 12 12:02:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:02:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100254.DEFB360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:02:54 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: don't extend this beyond FreeBSD (should move the chflags/fchflags code into another directory) From jkrell at elego.de Sun Apr 12 12:05:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:05:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100531.16DB660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:05:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix typo on *BSD, Darwin From jkrell at elego.de Sun Apr 12 12:31:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:31:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412103124.556F160C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:31:24 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: fix for non-FreeBSD platforms that have chflags/fchflags (e.g. Darwin) From jkrell at elego.de Sun Apr 12 13:00:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:00:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110029.0A4FF60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:00:26 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: m3makefile Log message: only import libutil on FreeBSD; a bit misfatored around here, my fault From jkrell at elego.de Sun Apr 12 13:01:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:01:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110125.9A07B60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:01:25 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: always foist -lz into SYSTEM_LIBS{LIBC} as comment elsewhere suggests From jkrell at elego.de Sun Apr 12 13:02:21 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:02:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110221.3195C60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:02:21 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: add AMD64_DARWIN and add comment about cvsup.quake putting in -lz -- the probe for the lib is still useful here so that we can error clearly if not found..slightly more early/clear than going ahead with link -lz..really? maybe not From jkrell at elego.de Sun Apr 12 13:18:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:18:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412111854.B4C9660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:18:54 Modified files: cm3/m3-tools/cvsup/client/src/: m3makefile cm3/m3-tools/cvsup/server/src/: m3makefile cm3/m3-tools/cvsup/suplib/src/: m3makefile Added files: cm3/m3-tools/cvsup/client/src/: m3overrides cm3/m3-tools/cvsup/server/src/: m3overrides Log message: move overrides to overrides file, so we can ship change lowercase program to capital Program so the programs ship to cm3install/bin; is there a reason why not? From jkrell at elego.de Sun Apr 12 13:56:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:56:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412115659.E5DC760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:56:59 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 Log message: remove unused uint16_t import From jkrell at elego.de Sun Apr 12 13:57:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:57:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412115710.764C960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:57:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile Log message: switch FreeBSD4 (x86) to new smaller more portable Unix/*.i3 files, plus leaving some of the signal/context stuff for user threads I386_DARWIN and AMD4_DARWIN are the only active platforms remaining with more complete target-specific Unix/*.i3 From jkrell at elego.de Sun Apr 12 14:14:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 14:14:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412121426.6F10A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 14:14:26 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: FreeBSD4 Log message: update locations of odbc and postgres -- where the 'ports' install them From jkrell at elego.de Sun Apr 12 21:35:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 21:35:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412193500.9517A60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 21:35:00 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: remove -as-needed here until I understand why it breaks Linux/x86 From jkrell at elego.de Sun Apr 12 21:37:53 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 21:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412193753.E064B60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 21:37:53 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: comments only, about disabling -as-needed and -pie From jkrell at elego.de Mon Apr 13 10:50:53 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 10:50:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413085053.ACE5D60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 10:50:53 Modified files: cm3/m3-sys/cm3/src/: Makefile.m3 Log message: expose the -override aka -x switch through new global M3_USE_OVERRIDES that is always defined, to be TRUE or FALSE (calling it M3_OVERRIDE or M3_OVERRIDES would also be reasonable); do this easly enough such that the central cm3.cfg can see it; a lot of processing happens after cm3.cfg (such as reading of defines from the command line, deciding if we are doing build or ship..); this will let cm3.cfg chose like runpath=$ORIGIN/../lib or INSTALL_ROOT/lib or big path to output directory From jkrell at elego.de Mon Apr 13 12:37:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 12:37:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413103710.82D9A60C157@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 12:37:10 Modified files: cm3/m3-sys/cm3/src/: Makefile.m3 Log message: "FALSE" is TRUE "" is FALSE use "" From jkrell at elego.de Mon Apr 13 12:55:50 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 12:55:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413105551.040C760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 12:55:50 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: FreeBSD4 Log message: working experiment/prototype for issue of "how to find dependent shared paths" vs. "do uninstalled binaries work" vs. buildlocal vs. buildglobal There are many possibilities. This implements the following. Note that libm3 is the easiest file to experiment with. m3core has no dependencies, libm3 is dependent only on m3core. ---- prepare, build m3core and libm3 cd $CVSROOT/m3-libs/m3core /cm3/bin/cm3 cd ../libm3 /cm3/bin/cm3 ---- show some scenarios ---- regular cm3 with no switches/env -- "buildglobal" rm FreeBSD4/*a /cm3/bin/cm3 objdump -x FreeBSD4/libm3.so | grep PATH RPATH $ORIGIN/../lib:$ORIGIN/../../lib:$ORIGIN/../../../lib:/cm3/bin/../lib The resulting file is generally machine portable and in a pinch contains a full local path to libraries. Or in a worse pinch, LD_LIBRARY_PATH will still work. That is, if you install it to cm3installroot/bin or cm3installroot/pkg/package/target, it will find dependendent libraries via $ORIGIN. If you installed it elsewhere or leave it uninstalled, it will still most likely find the exactly correct file, still with a short rpath. Note that this "../../../lib" business is a little sloppy. 1) ../../lib preceding it is some "insurance", but not much 2) better slower insurance would be to use $ORIGIN/../pkg/m3core/target/../../../lib $ORIGIN/../../../pkg/m3core/target/../../../lib If you assume dots are not smushed out early, as they generally aren't on Unix (but they generally are on Windows), then this kind of makes sure the directory structure is as expected by walking through known must-exist directories. What would be even better along these lines is knowing the finall install point of the file and compute the exact relative path to the cm3 installed libraries. For cm3 itself, this will yield just one of $ORIGIN/../lib or $ORIGIN/../../../lib. For files installed arbitrarily elsewhere, this would be otherwise. Consider for example: /opt/cm3/lib/libm3core.so /opt/package-written-in-modula3/bin/foo There you would want $ORIGIN/../../cm3/lib. This exact computation of relative path for installroot/lib should probably be implemented, very soon. It would also be nice if runpath could read like if CM3_INSTALL defined, runpath=$CM3_INSTALL/lib. but it cannot. ---- buildlocal aka with "overrides" rm FreeBSD4/*a /cm3/bin/cm3 -override objdump -x FreeBSD4/libm3.so | grep PATH RPATH /dev2/cm3/m3-libs/m3core/FreeBSD4 This gives you an rpath entry for each dependent file, and they are each found directly, in their non-installed locations. This is the historical default. It gives you a long runpath. Almost nobody noticed. It requires that extra switch -override or -x, but gives you binaries that do work without installing, but are not particularly machine portable and again, long runpath. ---- buildglobal with an extra option rm FreeBSD4/*a M3_PORTABLE_RUN_PATH=1 /cm3/bin/cm3 objdump -x FreeBSD4/libm3.so | grep PATH RPATH $ORIGIN/../lib:$ORIGIN/../../lib:$ORIGIN/../../../lib This is the same rpath as the first, but containing only the $ORIGIN entries and omitting the last exact full path. This is good for building machine-portable archives. Again, a more precise origin to lib path should be computed, thereby going from three paths to one. A command line switch for M3_PORTABLE_RUN_PATH should probably be invented. It is hard to name this thing though. ---- This does not fit all scenarios easily or automatically, unfortunately. However it does seem like a good mix of compromises. Main thing to still do is compute relative path for $ORIGIN to cm3installroot/lib. Might be trivial with path_of(). ---- From jkrell at elego.de Mon Apr 13 13:57:11 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 13:57:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413115711.46C7F60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 13:57:11 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: Unix.common cm3cfg.common Log message: move skip_link to common code From jkrell at elego.de Mon Apr 13 14:05:49 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 14:05:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413120549.E9EBA60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 14:05:49 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: fix for moving skip_link From jkrell at elego.de Mon Apr 13 14:12:41 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 14:12:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413121241.66D6360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 14:12:41 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: fix for moving skip_link From wagner at elego.de Tue Apr 14 12:30:49 2009 From: wagner at elego.de (Olaf Wagner) Date: Tue, 14 Apr 2009 12:30:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090414103049.A947860C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/14 12:30:49 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 OS.i3 OS.m3 OSPOSIX.m3 Log message: improved disk space support modified: cminstall/src/Main.m3 modified: cminstall/src/OS.i3 modified: cminstall/src/OS.m3 modified: cminstall/src/OSPOSIX.m3 From wagner at elego.de Tue Apr 14 12:32:58 2009 From: wagner at elego.de (Olaf Wagner) Date: Tue, 14 Apr 2009 12:32:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090414103258.9B30760C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/14 12:32:58 Modified files: cm3/scripts/: make-bin-dist-min.sh Log message: disk space support and naming changes From jkrell at elego.de Wed Apr 15 13:02:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:02:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415110206.86F9460C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:02:06 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: just alwys use CM3 From jkrell at elego.de Wed Apr 15 13:09:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:09:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415110955.B02EC60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:09:55 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: SupTCPHack.m3 Log message: dead code: presumably fix for big endian 64bit systems -- use int instead of INTEGER From jkrell at elego.de Wed Apr 15 13:11:00 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:11:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415111100.23DC560C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:11:00 Added files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: make_diffable.cmd Log message: dead code: make it easier to compare with mainline From jkrell at elego.de Wed Apr 15 13:13:59 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:13:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415111359.BBB5A60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:13:59 Added files: cm3/m3-tools/cvsup/suptcp/src/common/: make_diffable.cmd Log message: make this diffable with mainline too (they appear to already match) From jkrell at elego.de Wed Apr 15 13:41:20 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:41:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415114120.9F9CB60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:41:20 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h cm3/m3-libs/m3core/src/unix/uin-common/: Uin.i3 cm3/m3-libs/m3core/src/unix/uin-len/: Uin.i3 Added files: cm3/m3-libs/m3core/src/unix/Common/: Uin.c Log message: #include what we can for windows reorder includes sys first, then alphabetical; if this breaks, reorder to make it work implement ntohs, etc. in C This is just a little more portable and maybe just a little faster. To wit, the tcp library even wrap these up. Let's undo that shortly, saving a layer. From jkrell at elego.de Wed Apr 15 14:48:57 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:48:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415124857.1627560C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:48:57 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c UerrorX.h Uexec.c Ugrp.c Uin.c Umman.c Unix.i3 UnixC.c UstatC.c Uucontext.c m3makefile m3unix.h Log message: A lot of this works pretty directly with the MS C runtime, so #ifdef to let a lot through there, while blocking other. From jkrell at elego.de Wed Apr 15 14:52:02 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:52:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125202.6D91C60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:52:02 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: use the correct types, which lets is compiler fo Win32 too From jkrell at elego.de Wed Apr 15 14:55:18 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:55:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125518.6535A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:55:18 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Log message: use correct type From jkrell at elego.de Wed Apr 15 14:56:04 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125604.DF52160C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: use correct type From jkrell at elego.de Wed Apr 15 14:56:37 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125637.81CD460C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 14:56:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125656.81E1760C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 14:58:25 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:58:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125825.7AAF460C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:58:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 16:14:10 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 16:14:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415141410.9C13A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 16:14:10 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: reformat one tiny function somewhat From jkrell at elego.de Wed Apr 15 16:20:11 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 16:20:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415142011.CCF5E1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 16:20:11 Modified files: cm3/m3-tools/cvsup/suplib/src/: CVTree.m3 Ugzip.m3 Log message: SchedulerPosix => Scheduler (adapt closely to cm3 and without regard to other versions/distributions or minimizing the diff to them) From jkrell at elego.de Wed Apr 15 21:34:21 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 21:34:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415193421.64E7560C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 21:34:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Uin.c Log message: fix -- matching names, double underscores From jkrell at elego.de Thu Apr 16 22:49:37 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 16 Apr 2009 22:49:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090416204937.3A00A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/16 22:49:37 Modified files: cm3/m3-libs/m3core/src/thread/: m3makefile Log message: twitch cygwin over to win32 threads but test case: p007 --- a whole bunch of threads - does the memory grow ? still hangs From jkrell at elego.de Sun Apr 19 04:10:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 19 Apr 2009 4:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090419021013.40D5BCC7DC@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/19 04:10:13 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: very minor update to criticalsection and image flags From hosking at elego.de Mon Apr 20 08:41:15 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 20 Apr 2009 8:41:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420064115.3936ECC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/20 08:41:15 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's clean things up a little and make easier to diff with prior versions. From hosking at elego.de Mon Apr 20 09:09:51 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 20 Apr 2009 9:09:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420070951.AD33CCC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/20 09:09:51 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 Log message: Ignore low-bit tagged pseudo-references. From jkrell at elego.de Mon Apr 20 09:58:37 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 9:58:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420075837.67250CC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 09:58:37 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: no need for DisableSwitch/EnableSwitching here -- they are implemented nearby and do nothing From jkrell at elego.de Mon Apr 20 10:14:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 10:14:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420081421.66EC9CC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 10:14:21 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: use denser style like the Modula-3 code From jkrell at elego.de Mon Apr 20 12:34:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 12:34:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420103409.D927BCC7DE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 12:34:09 Modified files: cm3/m3-ui/m3zume/src/: m3makefile Log message: build_standalone From jkrell at elego.de Mon Apr 20 15:05:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:05:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420130507.A731DCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:05:07 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: fix C++ warning -- signal returns a function pointer not a void pointer From jkrell at elego.de Mon Apr 20 15:09:27 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:09:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420130927.6F287CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:09:27 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 m3makefile Added files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: convert more code to C This trades some thin C wrappers for more code in C but with a general reduction in "wrappers". In particular, users of thin wrappers are written in C. It is NOT clearly worthwhile. The wrappers that are gone are: pthread_setspecific_activations heapCond wrappers heapMu wrappers The functions that are now implemented in C for pthreads are: GetActivation SetActivation (and new SetActivationUnsafeFast, when initialization must have already occured) PushEFrame PopEFrame GetCurrentHandlers SetCurrentHandlers LockHeap UnlockHeap BroadcastHeap WaitHeap posix and Win32 vary somewhat. Win32 C: GetActivation SetActivation PushEFrame PopEFrame GetCurrentHandlers SetCurrentHandlers LockHeap UnlockHeap BroadcastHeap, but it just calls back to the Modula-3 WaitHeap, but it just calls back to the Modula-3 posix user threads: PushEFrame -- just due it being extern, calls back to the Modula-3 PopEFrame -- just due it being extern, calls back to the Modula-3 On the Win32 side, there is also a reduction in dependency on cloned headers, particularly the static allocation of CRITICAL_SECTION, though this is an area (Win32 cloned headers) I've generally left alone and probably will continue to. Win32 in a sense has multiplicity comparable to Posix: 3 kernels: 9x, NT, CE but 9x is only x86 and is binary compatible with NT/x86 CE is not binary compatible with 9x/NT, but does have processor overlap (at least, .dll names change) many processors: x86, AMD64, ARM (CE), PowerPC (historical NT, CE, Xbox360), Alpha (historical), MIPS (historical NT, current CE?), SH (CE), Itanium, SH (CE), I860 (never shipped?) 32bit and 64bit but it seems like less of a problem? Well, Modula-3 has only ported to Win32/x86 so far.. On the Win32 side this is just a step short of eliminating a thread local that has already been eliminated from the pthread side (ie: activation vs. handlers -- store the handlers stack in the activation). (Probably no point for posix user threads.) some "vertical compression" wrt #ifdef apple some name compression wrt "handle" From jkrell at elego.de Mon Apr 20 15:28:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:28:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420132821.7D4CBCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:28:21 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h Log message: Forgot to add file From jkrell at elego.de Mon Apr 20 15:34:22 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:34:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420133422.D70D4CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:34:22 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: Sun cc interpets -shared as a bunch of single character options, you get warnings like -s conflicts with -g, -s disabled -h encountered multiple times, first one wins From jkrell at elego.de Mon Apr 20 15:36:02 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:36:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420133602.C93FACC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:36:02 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h Log message: add #include stddef.h for some systems to get ptrdiff_t (Linux) From jkrell at elego.de Mon Apr 20 16:04:08 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 16:04:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420140408.BFCD6CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 16:04:08 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 RTOS.i3 Log message: I forgot to check these in too. From jkrell at elego.de Mon Apr 20 16:20:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 16:20:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420142056.98EABCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 16:20:56 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTOS.i3 Log message: slight reformat new and recent content From hosking at elego.de Tue Apr 21 03:33:42 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:33:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421013343.202D7CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:33:42 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:36:22 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:36:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421013622.A37DDCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:36:22 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:42:23 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:42:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421014223.67DA4CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:42:23 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:45:38 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:45:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421014538.3EDA1CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:45:38 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:59:42 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:59:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421015942.94F72CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:59:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:02:09 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:02:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421020210.3A1CECC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:02:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:03:59 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:03:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421020359.D7858CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:03:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:15:07 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:15:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421021508.01DAECC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:15:07 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Tidier. From jkrell at elego.de Tue Apr 21 08:47:10 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:47:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421064710.AB4C2CC7EF@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:47:10 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: huh oops, remove two out of three duplicates From jkrell at elego.de Tue Apr 21 08:34:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:34:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421063456.A2431CC7E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:34:56 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 RTOS.i3 cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: go back mostly to yesterday put back the thin C wrappers and more Modula-3 code Only small change that I think survives: indentation (columns) on #defines in ThreadPosixC.c From jkrell at elego.de Tue Apr 21 08:54:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:54:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421065406.578DECC7F5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:54:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 Log message: move this back too From jkrell at elego.de Tue Apr 21 08:52:14 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:52:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421065215.10DCDCC7F3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:52:14 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: try again, I must not have switched cygwin to pthreads when testing this From jkrell at elego.de Tue Apr 21 09:48:31 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 9:48:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421074831.DF81BCC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 09:48:31 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove unused Scheduler import From jkrell at elego.de Tue Apr 21 09:56:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 9:56:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421075649.B91FDCC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 09:56:49 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: some reformatting From jkrell at elego.de Tue Apr 21 11:24:11 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 11:24:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421092411.B4F91CC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 11:24:11 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: eliminate a thread local as was done for pthread including moving initialization out of the module initializer that runs pretty late and into code that the runtime startup calls explicitly also flatten various two level names From jkrell at elego.de Tue Apr 21 11:57:00 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 11:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421095700.70824CC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 11:57:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: make sure that Self() returns NIL instead of initializing on-demand speed up PopEFrame by removing check for initialization, since PushEFrame must have already done it From jkrell at elego.de Tue Apr 21 13:02:12 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 13:02:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421110213.1F37ECC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 13:02:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile Added files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: Experimentally transform like pthread and move the criticalsections and threadlocal to C and wrap thinly. This hides from Modula-3 the need to know the size of a critical section, though this seems like a smaller problem on the single vendor few kernel Win32 (NT, CE, and NT and 9x are binary compatible) than the multi vendor many kernel Posix. There are other cloned header dependencies here not factored into C (SuspendThread, ResumeThread, MEMORY_BASIC_INFO, etc.) Note that Modula-3 does and long has done leak its criticalsections and threadlocals. We should probably address that. More generally there should perhaps be module destructors, though like Win32 it helps to know the ExitProcess() vs. FreeLibrary case. In ExitProcess() it is a waste of time and to try to cleanup whereas in FreeLibrary is a is good idea to cleanup. EnterCriticalSection(foo) => EnterCriticalSection_foo() likewise for LeaveCriticalSection TlsGetValue TlsSetValue InitializeCriticalSection and TlsAlloc bundled into InitC. Logic for TlsGetValue_foo() before TlsAlloc_foo() buried in TlsGetValue_foo(). In future, in Vista-specific code, besides condition variables, we can use __declspec(thread) or such. (Posix/gcc platforms should use __thread..and more generally, no matter the deficient underyling platforms, Modula-3 should consider <*threadlocal*>) From hosking at cs.purdue.edu Wed Apr 22 02:05:44 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 22 Apr 2009 10:05:44 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090421110213.1F37ECC7DA@birch.elegosoft.com> References: <20090421110213.1F37ECC7DA@birch.elegosoft.com> Message-ID: <482DD773-E9E4-4C1B-BEAD-A934CD0836CE@cs.purdue.edu> I believe gcc has some threadlocal declaration mechanisms too that we might exploit from C. On 21 Apr 2009, at 13:02, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/21 13:02:12 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > Added files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32C.c > > Log message: > Experimentally transform like pthread and move the criticalsections > and threadlocal > to C and wrap thinly. > > This hides from Modula-3 the need to know the size of a critical > section, though > this seems like a smaller problem on the single vendor few kernel > Win32 (NT, CE, > and NT and 9x are binary compatible) than > the multi vendor many kernel Posix. There are other cloned header > dependencies here > not factored into C (SuspendThread, ResumeThread, > MEMORY_BASIC_INFO, etc.) > > Note that Modula-3 does and long has done leak its criticalsections > and threadlocals. > We should probably address that. > More generally there should perhaps be module destructors, though > like Win32 > it helps to know the ExitProcess() vs. FreeLibrary case. In > ExitProcess() > it is a waste of time and to try to cleanup whereas in FreeLibrary > is a is good idea > to cleanup. > > EnterCriticalSection(foo) => EnterCriticalSection_foo() > likewise for > LeaveCriticalSection > TlsGetValue > TlsSetValue > InitializeCriticalSection and TlsAlloc bundled into InitC. > Logic for TlsGetValue_foo() before TlsAlloc_foo() buried in > TlsGetValue_foo(). > > In future, in Vista-specific code, besides condition variables, we > can use __declspec(thread) or such. > (Posix/gcc platforms should use __thread..and more generally, no > matter the deficient underyling > platforms, Modula-3 should consider <*threadlocal*>) From hosking at elego.de Wed Apr 22 09:54:31 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 22 Apr 2009 9:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090422075431.A8BF5CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/22 09:54:31 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 RTHeapRep.i3 Log message: Cleanup allocation sequences. Improve efficiency of Clone. From mika at elego.de Fri Apr 24 18:22:47 2009 From: mika at elego.de (Mika Nystrom) Date: Fri, 24 Apr 2009 18:22:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090424162247.3A1A1CC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/24 18:22:47 Modified files: cm3/m3-libs/libbuf/src/: Wx.m3 Log message: PM3's NEW (TEXT, n) should be Text8.Create(n-1) in CM3. (Compare same stretch of code from PM3.) From jkrell at elego.de Sat Apr 25 00:12:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 25 Apr 2009 0:12:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090424221210.7248BCC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/25 00:12:10 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: remove C++ style -- don't need the intermediates anyway From mika at elego.de Sat Apr 25 10:03:08 2009 From: mika at elego.de (Mika Nystrom) Date: Sat, 25 Apr 2009 10:03:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090425080309.08845CC3D7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/25 10:03:08 Modified files: cm3/m3-comm/stubgen/src/: Type.m3 Log message: added missing initialization of widechar From mika at elego.de Sat Apr 25 23:44:51 2009 From: mika at elego.de (Mika Nystrom) Date: Sat, 25 Apr 2009 23:44:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090425214451.59BCCCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/25 23:44:51 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Fixed a long-standing gap in M3CBackEnd_C: constants FIRST(t), LAST(t) for t REAL, LONGREAL, EXTENDED. They now return the correct values of the correct types rather than, as before, integer 0. From jay.krell at cornell.edu Tue Apr 28 13:23:31 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 11:23:31 +0000 Subject: [M3commit] test Message-ID: ... From jkrell at elego.de Tue Apr 28 14:29:39 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 14:29:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428122940.0D93ECC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 14:29:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add system(), probably a good alternative for Olaf's diskspace checks (and it is portable to older cm3 releases) From jkrell at elego.de Tue Apr 28 14:42:40 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 14:42:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428124240.7B5A0CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 14:42:40 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add isatty and truncate(const char* filepath) (msvcrt does have ftruncate(int file, long size), but limited to 2gig) From jkrell at elego.de Tue Apr 28 15:04:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 15:04:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428130454.D88E6CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 15:04:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c m3unix.h Log message: add more wrappers, and fix readlink to traffic in INTEGER (aka ssize_t) instead of int (note that the standard has changed here) From jkrell at elego.de Tue Apr 28 15:38:44 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 15:38:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428133844.4E525CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 15:38:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 Log message: Remove at least one instance of PushEFrame from early initialization. You know, maybe PushEFrame can avoid doing initialization on-demand and we can instead initialize things a little more deliberately in an order that works, maybe. Win32 and pthreads do in on-demand but user threads doesn't yet, maybe we can fix it and then optimize the others slightly. #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, M3_AcxOUs_n_bytes=4) at ../src/runtime/common/RTType.m3:815 #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/runtime/common/RTType.m3:724 #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, M3_AcxOUs_key=-1025633461, M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, M3_DjPxE3_m=0x80ac9c0) at ../src/runtime/common/RTType.m3:163 #5 0x08077395 in RTLinker__DeclareModuleTypes (M3_DjPxE3_m=0x80ac9c0) at ../src/runtime/common/RTLinker.m3:280 #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/RTLinker.m3:234 #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:112 #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) at ../src/runtime/common/RTLinker.m3:122 #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfec84, M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:42 #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) at _m3main.mc:3 From jkrell at elego.de Tue Apr 28 16:08:43 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428140843.AC1F7CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:08:43 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: fix another case where PushEFrame is called before ThreadF.Init is called That causes user threads to crash; pthreads and ntthreads work via arguably poor on-demand initialization (which is also related to why they can't use NEW where the used to) see revision 14 move GetGCRatio to later; that appears to be ok, right? (gdb) bt #0 0x08089570 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb90) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x0807581e in RTCollector__GetGCRatio () at ../src/runtime/common/RTCollector.m3:2802 #2 0x08075650 in RTHeapRep__Init () at ../src/runtime/common/RTCollector.m3:2769 #3 0x08076a87 in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfec84, M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:58 #4 0x0804af30 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) at _m3main.mc:3 From jkrell at elego.de Tue Apr 28 16:20:44 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:20:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428142044.642B4CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:20:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: module initializer is too late also, remove GetGCRatio for now Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x28201100 (LWP 100094)] 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) at ../src/thread/POSIX/ThreadPosix.m3:1599 1599 f.next := self.context.handlers; (gdb) bt #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/common/RTCollector.m3:2801 #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/runtime/common/RTCollector.m3:2883 #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:399 #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:113 #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) at ../src/runtime/common/RTLinker.m3:122 #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfecec, M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:42 #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) at _m3main.mc:3 (gdb) From jkrell at elego.de Tue Apr 28 16:23:39 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:23:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428142339.6B930CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:23:39 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: put userthreads in m3coreuserthreads.so (even if this is the only thread implementation for the platform) This isn't likely the right long term solution, there seems to be an interface incompatibility between the two (I /really/ think IF user threads are to exist, they should be in the same .so and switch function pointers during initialization...) From jkrell at elego.de Tue Apr 28 16:50:23 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:50:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428145023.8CE4DCC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:50:23 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: move expensive TRY out of fast allocation path (still, ThreadF.Init attempts the first allocation and goes down this path and crashes, still being pondered, but this change should speed up allocation-intensive scenarios) From jkrell at elego.de Tue Apr 28 17:28:42 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 17:28:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428152842.57AB7CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 17:28:42 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: go back a version; something similar will be done instead that gets the same perf benefit and fixes the crash -- the raise will be moved out of LongAlloc to its two callers From jkrell at elego.de Tue Apr 28 17:52:15 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 17:52:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428155215.A8460CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 17:52:15 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: move pusheframe out of the success paths (not just the fast paths), thereby letting userthreads progress much further, without giving in and making PushEFrame initialize on demand; this should speed up allocation-intensive scenarios for all threading models; userthreads now gets as far as..the initialization code for the current version appears to never have been finished From jkrell at elego.de Tue Apr 28 18:03:41 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 18:03:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428160341.B4067CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 18:03:41 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 Log message: initialize heapCond, now userthreads works at least well enough that m3bundle in do-cm3-std.py doesn't crash From jkrell at elego.de Tue Apr 28 18:39:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 18:39:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428163946.15507CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 18:39:46 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: twitch I386_FREEBSD to user threads for a few days From hosking at cs.purdue.edu Tue Apr 28 23:45:51 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:45:51 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428142044.642B4CC3B6@birch.elegosoft.com> References: <20090428142044.642B4CC3B6@birch.elegosoft.com> Message-ID: <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Huh? Don't let dubious premature optimizations distort the code base.... On 28 Apr 2009, at 16:20, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 16:20:44 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 > > Log message: > module initializer is too late also, remove GetGCRatio for now > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x28201100 (LWP 100094)] > 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > 1599 f.next := self.context.handlers; > (gdb) bt > #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ > common/RTCollector.m3:2801 > #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ > runtime/common/RTCollector.m3:2883 > #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:399 > #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:113 > #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) > at ../src/runtime/common/RTLinker.m3:122 > #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, > M3_AJWxb1_p_argv=0xbfbfecec, > M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ > runtime/common/RTLinker.m3:42 > #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) > at _m3main.mc:3 > (gdb) From hosking at cs.purdue.edu Tue Apr 28 23:44:50 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:44:50 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428133844.4E525CC3B6@birch.elegosoft.com> References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: I don't care if there are extra instances of PushEFrame at startup. Let's improve performance of steady-state rather than bootstrapping. On 28 Apr 2009, at 15:38, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 15:38:44 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 > > Log message: > Remove at least one instance of PushEFrame from early initialization. > You know, maybe PushEFrame can avoid doing initialization on-demand > and we can instead initialize things a little more deliberately > in an order that works, maybe. Win32 and pthreads do in on-demand > but user threads doesn't yet, maybe we can fix it and then optimize > the others slightly. > > #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, > M3_AcxOUs_n_bytes=4) > at ../src/runtime/common/RTType.m3:815 > #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ > runtime/common/RTType.m3:724 > #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, > M3_AcxOUs_key=-1025633461, > M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 > #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, > M3_DjPxE3_m=0x80ac9c0) > at ../src/runtime/common/RTType.m3:163 > #5 0x08077395 in RTLinker__DeclareModuleTypes > (M3_DjPxE3_m=0x80ac9c0) > at ../src/runtime/common/RTLinker.m3:280 > #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ > RTLinker.m3:234 > #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:112 > #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) > at ../src/runtime/common/RTLinker.m3:122 > #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, > M3_AJWxb1_p_argv=0xbfbfec84, > M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ > runtime/common/RTLinker.m3:42 > #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) > at _m3main.mc:3 From hosking at cs.purdue.edu Tue Apr 28 23:46:48 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:46:48 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428142339.6B930CC3B6@birch.elegosoft.com> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> Message-ID: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Huh? I thought we decided against this... On 28 Apr 2009, at 16:23, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 16:23:39 > > Modified files: > cm3/m3-libs/m3core/src/: m3makefile > > Log message: > put userthreads in m3coreuserthreads.so (even if this is the only > thread implementation for the platform) > This isn't likely the right long term solution, there seems to be an > interface incompatibility between the two (I /really/ think IF user > threads are to exist, they should be in the same .so and switch > function pointers during initialization...) From jay.krell at cornell.edu Wed Apr 29 00:53:11 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 22:53:11 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> References: <20090428142044.642B4CC3B6@birch.elegosoft.com> <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Message-ID: [oops, addressing a larger point that maybe wasn't made] I think getting the TRY out of fast paths is good even for after initialization. Getting TRY out of even the slow paths is "needed" for initialization to not crash, unless you contort other code, **for some subjective definition of contortion**. If you leave try in the slow allocation path, then ThreadF.Init cannot use NEW and/or PushEFrame has to do on-demand initialization -- like how pthread and win32thread are now, but weren't for a long time and how userthread isn't. With the RTCollector.m3 changes, ThreadPthread.m3 and ThreadWin32.m3 should be able to go back to their historical arguably nicer slightly more efficient form, where GetActivation does not initialize and where initialize uses regular NEW. It is a tradeoff either way. Another idea that I considered is to initialize the allocator a little "better" such that the first allocation goes down a fast path. But I couldn't come up with a nice way to do that. Surely we agree getting TRY out of the fast path is reasonable? I also considered reordering RTLinker.m3 or breaking up pieces but avoided those. Avoiding TRY/RAISE/ is a bit contorted but to some extent unavoidable since they rely on initialization. __thread might help here too but I doubt we'll ever rely on that completely. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:45:51 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Huh? Don't let dubious premature optimizations distort the code > base.... > > On 28 Apr 2009, at 16:20, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 16:20:44 >> >> Modified files: >> cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 >> >> Log message: >> module initializer is too late also, remove GetGCRatio for now >> >> Program received signal SIGSEGV, Segmentation fault. >> [Switching to Thread 0x28201100 (LWP 100094)] >> 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> 1599 f.next := self.context.handlers; >> (gdb) bt >> #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ >> common/RTCollector.m3:2801 >> #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ >> runtime/common/RTCollector.m3:2883 >> #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:399 >> #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:113 >> #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) >> at ../src/runtime/common/RTLinker.m3:122 >> #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >> M3_AJWxb1_p_argv=0xbfbfecec, >> M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ >> runtime/common/RTLinker.m3:42 >> #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) >> at _m3main.mc:3 >> (gdb) > From jay.krell at cornell.edu Wed Apr 29 00:57:41 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 22:57:41 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: This occurs before ThreadF.Init(). (err, not clear from below, but I think so). Would you rather that ThreadF.Init() do initialization on demand, as pthread and win32thread currently do, and PushEFrame forever have to check for that case and ThreadF.Init continue to avoid NEW(), as it currently does? It isn't great either way but I think this is the preferable path. Code has to be contorted to avoid circularities.. try/raise/ depend on some initialization unfortunately. We'll trade contortions. Avoid try/raise/ in a few places, get back to not having on-demand initialization nor having to use calloc directly in place of NEW. PushEFrame will be slightly faster for all callers, not just during initialization. But just very slightly. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:44:50 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I don't care if there are extra instances of PushEFrame at startup. > Let's improve performance of steady-state rather than bootstrapping. > > On 28 Apr 2009, at 15:38, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 15:38:44 >> >> Modified files: >> cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 >> >> Log message: >> Remove at least one instance of PushEFrame from early initialization. >> You know, maybe PushEFrame can avoid doing initialization on-demand >> and we can instead initialize things a little more deliberately >> in an order that works, maybe. Win32 and pthreads do in on-demand >> but user threads doesn't yet, maybe we can fix it and then optimize >> the others slightly. >> >> #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, >> M3_AcxOUs_n_bytes=4) >> at ../src/runtime/common/RTType.m3:815 >> #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ >> runtime/common/RTType.m3:724 >> #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, >> M3_AcxOUs_key=-1025633461, >> M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 >> #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, >> M3_DjPxE3_m=0x80ac9c0) >> at ../src/runtime/common/RTType.m3:163 >> #5 0x08077395 in RTLinker__DeclareModuleTypes >> (M3_DjPxE3_m=0x80ac9c0) >> at ../src/runtime/common/RTLinker.m3:280 >> #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ >> RTLinker.m3:234 >> #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:112 >> #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) >> at ../src/runtime/common/RTLinker.m3:122 >> #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >> M3_AJWxb1_p_argv=0xbfbfec84, >> M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ >> runtime/common/RTLinker.m3:42 >> #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) >> at _m3main.mc:3 > From jay.krell at cornell.edu Wed Apr 29 01:06:14 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 23:06:14 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: We didn't really decide. You insisted on no function pointers. I did nothing. As long as userthreads not working anyway, moot. I think the below is close to what you want, though I think in reality we should probably have m3-libs/m3coreuserthreads m3-libs/m3coreuserthreads/src/m3makefile USER_THREADS = TRUE or whatever include(../../m3core/m3makefile) always building two .so files. And then maybe have a quake directive that replaces m3core with m3coreuserthreads, and implies build_standalone, or something. Though that won't quite work I think, I'll see. But I still suspect one .so with both implementations is reasonable. Switchable with a command line option @M3userthreads, and a quake directive to alter the default (and offer @M3kernelthreads, we, well..cygwin for example could offer @M3win32threads and @M3pthreads, so maybe rename @M3kernelthreads to @M3pthreads). There is a certain level of inlining that I think should never be expected. Stuff that is dynamic linking should have not implementation details leaked across the dynamic link boundary. (For some definition of "implementation detail" though.. struct sizes do leak for example). If you are willing to dynamic link usually, then is it really interesting to have static linking be slightly faster? I'm not sure. Therefore, point being -- dynamic linking implies there is already a presence of function pointers (since dynamic linked function calls are always somehow indirect) and a lack of inlining. You might as well then have function pointers immediately on the "landing" site of the dynamically linked function calls that switch between userthreads and kernelthreads. Could be that there is an option to build more optimally where userthread option is omitted and kernelthreads unconditionally used -- that would be used currently for instance on Linux where userthreads don't work (though that might be fixed), and also on Win32 where user threads never worked and nobody asked for them (though they are fixable there -- fibers). I realize maybe there is a strong counteropinion, like, whatever inefficiences are implied by dynamic linking are to be "fought" against with aggressive/creative/even fragile optimization techniques. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:46:48 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Huh? I thought we decided against this... > > On 28 Apr 2009, at 16:23, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 16:23:39 >> >> Modified files: >> cm3/m3-libs/m3core/src/: m3makefile >> >> Log message: >> put userthreads in m3coreuserthreads.so (even if this is the only >> thread implementation for the platform) >> This isn't likely the right long term solution, there seems to be an >> interface incompatibility between the two (I /really/ think IF user >> threads are to exist, they should be in the same .so and switch >> function pointers during initialization...) > From jay.krell at cornell.edu Wed Apr 29 01:14:16 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 23:14:16 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: angle brackets again messed up, you have to imagine *fatal* occuring in a few places in my mail, with angle brackets.. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > > try/raise/ depend on some initialization unfortunately. > We'll trade contortions. Avoid try/raise/ in a few places, From jkrell at elego.de Wed Apr 29 01:21:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 1:21:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428232156.8E658CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 01:21:56 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: start of __thread use, not yet active From jay.krell at cornell.edu Wed Apr 29 02:06:02 2009 From: jay.krell at cornell.edu (Jay) Date: Wed, 29 Apr 2009 00:06:02 +0000 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: > I realize maybe there is a strong counteropinion, like, whatever > inefficiences are >implied by dynamic linking are to be "fought" > against with aggressive/creative/even fragile optimization techniques. I realize I argue for optimizing PushEFrame and for deoptimizing e.g. lock. PushEFrame is presumably more common...except that it probably occurs most often with lock? I don't know, I have no numbers. I'm not sure yet what to do here. Swapping .so files might or might not work. If it does, that's a step but doesn't enable everything. For example when I just switch compilation back and forth without "clean", I get errors about types missing. Maybe that'll occur at runtime, maybe not? Maybe these are different? Depends somewhat on what "reveal" does? Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, but loopholed to escape these problems?? ("These problems" are partly that I don't fully understand the Modula-3 object model, e.g. what does "reveal" do, at a low level? What does "brand" do, at a low level? I looked into it some and brand doesn't seem to affect objects at all, only out of band typeinfo.) Maybe just leave it as an option in m3core's m3makefile and people can twiddle it if they want and rebuild the entire system like it is today? That is a bit onerous, but maybe it's all userthreads deserve? ? Anyone who actually wanted to switch back and forth (Mika) would just have two installs and two source trees? - Jay From jkrell at elego.de Wed Apr 29 02:21:07 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 2:21:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429002107.C2BDCCC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 02:21:07 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: now that initialization is in better shape, go back to PushEFrame assumes initialization has already occured, else crashes. This should save a few cycles off functions that use try or lock. NEW used in InitActivations Could now use NEW/DISPOSE for mutexes/conditions also, ref array of char, but not yet (I just need to lookup syntax) (Tony prefers all allocations use NEW and not Cstdlib.calloc; calloc was used here before because NEW used TRY/RAISE, TRY/RAISED used PushEFrame, PushEFrame used NEW => circularity, fixed previously by having PushEFrame use calloc instead of NEW, now fixed by having NEW only use TRY/RAISE (just RAISE actually) in the failure path -- early initialization/allocation is "fragile" in that if you can't allocate much of anything at all, you'll crash or infinitely recurse, whereas before, well, we left it derefing NULL from calloc anyway; note that "startup" isn't "necessarily" early, such as in a dynamically loaded case -- better might be on Win32 to push early allocation into DllMain and fail that if low on resources, or try to somehow propagate the errors whenever they occur -- i.e. raising an exception should require very little resources, allocated up front with the process or thread). From jkrell at elego.de Wed Apr 29 02:32:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 2:32:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429003255.DBFFBCC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 02:32:55 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: put back assert allThreads # me, still reasonable even if they are all allocated the same now From jay.krell at cornell.edu Wed Apr 29 03:07:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 28 Apr 2009 18:07:27 -0700 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: <4476E40C-0735-41E1-B261-4B91005BC8A6@hotmail.com> I've also been forgetting that I upset the apple cart by merging the two thread locals into one. Pusheframe did not otherwise depend on heap allocation. Still I think current is good. - Jay (phone) On Apr 28, 2009, at 5:06 PM, Jay wrote: > >> I realize maybe there is a strong counteropinion, like, whatever >> inefficiences are >implied by dynamic linking are to be "fought" >> against with aggressive/creative/even fragile optimization >> techniques. > > > I realize I argue for optimizing PushEFrame and for deoptimizing > e.g. lock. > PushEFrame is presumably more common...except that it probably > occurs most often with lock? I don't know, I have no numbers. > > > I'm not sure yet what to do here. > Swapping .so files might or might not work. > If it does, that's a step but doesn't enable everything. > > > For example when I just switch compilation back and forth without > "clean", I get errors about types missing. Maybe that'll occur at > runtime, maybe not? Maybe these are different? Depends somewhat on > what "reveal" does? > Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, > but loopholed to escape these problems?? ("These problems" are > partly that I don't fully understand the Modula-3 object model, e.g. > what does "reveal" do, at a low level? What does "brand" do, at a > low level? I looked into it some and brand doesn't seem to affect > objects at all, only out of band typeinfo.) > > > Maybe just leave it as an option in m3core's m3makefile and people > can twiddle it if they want and rebuild the entire system like it is > today? > That is a bit onerous, but maybe it's all userthreads deserve? > ? > > > Anyone who actually wanted to switch back and forth (Mika) would > just have two installs and two source trees? > > > - Jay From mika at elego.de Wed Apr 29 07:49:41 2009 From: mika at elego.de (Mika Nystrom) Date: Wed, 29 Apr 2009 7:49:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429054941.71DBACC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/29 07:49:41 Modified files: cm3/m3-comm/stubgen/src/: Type.m3 Log message: How did I let this slip through? widechar initialization had the wrong type. From jkrell at elego.de Wed Apr 29 15:27:29 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 15:27:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429132729.7080FCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 15:27:29 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 M3Build.m3 Utils.i3 UtilsPosix.m3 UtilsWin32.m3 Log message: whereever there is a function to "link" a file, add a more verbosely named function "symbolic link" a file, and another function to hard link a file, leaving the original plain "link" unchanged. Hard link functions not used yet. Symlink aliases not used. Change the output command from "link" to "ln". I believe this is just for humans. "link" is the linker on NT ("ld") From jkrell at elego.de Wed Apr 29 15:49:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 15:49:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429134935.266ADCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 15:49:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: combine MemAlloc + pthread_mutex_init => pthread_mutex_new MemAlloc + pthread_cond_init => pthread_cond_new pthread_mutex_destroy + MemFree => pthread_mutex_delete pthread_cond_destroy + MemFree => pthread_cond_delete This was upon revisiting MemAlloc and was going to change to use NEW, however a REF ARRAY OF CHAR and its first byte are not at the same address, which is a bit annoying, so didn't go that route. This isn't clearly worth anything, but it also shouldn't be controversial. A small net reduction in the number of C symbols: since "size" and "init" now combine down to "new". MemAlloc and MemFree go away now, but the allocations are still done with calloc, but from the C code. While there, treat ENOMEM like other out of memory cases. Any other errors including EGAIN trigger assertion failures. Remove the avoidance of RAISE. Two of the uses are within a TRY, one is not. But the reasons are moot now, now that initialization order is better. Rename "UNDERUNDER_THREAD" to "M3CONFIG_THREAD_LOCAL_STORAGE", to be used shortly. From jkrell at elego.de Wed Apr 29 16:05:42 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 16:05:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429140542.478AFCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 16:05:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: m3makefile Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/config/: tls.c Log message: use __thread if it appears to work -- tested with gcc and Sun cc else continue to use pthread_get/setspecific This will probably usually save a few more cycles off PushEFrame. From hosking at cs.purdue.edu Wed Apr 29 20:17:21 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:17:21 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: On 29 Apr 2009, at 08:57, Jay wrote: > > This occurs before ThreadF.Init(). > (err, not clear from below, but I think so). > Would you rather that ThreadF.Init() do initialization on demand, > as pthread and win32thread currently do, > and PushEFrame forever have to check for that case and ThreadF.Init > continue to avoid NEW(), as it currently does? > > > It isn't great either way but I think this is the preferable path. > > > Code has to be contorted to avoid circularities.. > try/raise/ depend on some initialization unfortunately. > > > We'll trade contortions. Avoid try/raise/ in a few places, > get back to not having on-demand initialization nor having to use > calloc directly in place of NEW. > PushEFrame will be slightly faster for all callers, not just during > initialization. But just very slightly. This sounds like the best plan, yes. Any bootstrap code like this should probably avoid TRY/RAISE as much as possible. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Wed, 29 Apr 2009 07:44:50 +1000 >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> I don't care if there are extra instances of PushEFrame at startup. >> Let's improve performance of steady-state rather than bootstrapping. >> >> On 28 Apr 2009, at 15:38, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 09/04/28 15:38:44 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 >>> >>> Log message: >>> Remove at least one instance of PushEFrame from early >>> initialization. >>> You know, maybe PushEFrame can avoid doing initialization on-demand >>> and we can instead initialize things a little more deliberately >>> in an order that works, maybe. Win32 and pthreads do in on-demand >>> but user threads doesn't yet, maybe we can fix it and then optimize >>> the others slightly. >>> >>> #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, >>> M3_AcxOUs_n_bytes=4) >>> at ../src/runtime/common/RTType.m3:815 >>> #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ >>> runtime/common/RTType.m3:724 >>> #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, >>> M3_AcxOUs_key=-1025633461, >>> M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 >>> #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, >>> M3_DjPxE3_m=0x80ac9c0) >>> at ../src/runtime/common/RTType.m3:163 >>> #5 0x08077395 in RTLinker__DeclareModuleTypes >>> (M3_DjPxE3_m=0x80ac9c0) >>> at ../src/runtime/common/RTLinker.m3:280 >>> #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ >>> RTLinker.m3:234 >>> #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:112 >>> #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) >>> at ../src/runtime/common/RTLinker.m3:122 >>> #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >>> M3_AJWxb1_p_argv=0xbfbfec84, >>> M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ >>> runtime/common/RTLinker.m3:42 >>> #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) >>> at _m3main.mc:3 >> From hosking at cs.purdue.edu Wed Apr 29 20:19:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:19:08 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428142044.642B4CC3B6@birch.elegosoft.com> <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Message-ID: <1E699D02-8A7F-4964-BB8A-1CA96C1AC1B1@cs.purdue.edu> Yeah, I think it definitely makes sense to keep TRY out of the fast allocation path, and perhaps best also out of the slow path too. On 29 Apr 2009, at 08:53, Jay wrote: > > [oops, addressing a larger point that maybe wasn't made] > > > I think getting the TRY out of fast paths is good even for after > initialization. > Getting TRY out of even the slow paths is "needed" for > initialization to not > crash, unless you contort other code, **for some subjective > definition of contortion**. > > > If you leave try in the slow allocation path, then ThreadF.Init > cannot use NEW > and/or PushEFrame has to do on-demand initialization -- like how > pthread and > win32thread are now, but weren't for a long time and how userthread > isn't. > > > With the RTCollector.m3 changes, ThreadPthread.m3 and ThreadWin32.m3 > should > be able to go back to their historical arguably nicer slightly more > efficient form, > where GetActivation does not initialize and where initialize uses > regular NEW. > > > It is a tradeoff either way. > > > Another idea that I considered is to initialize the allocator a > little "better" > such that the first allocation goes down a fast path. But I couldn't > come > up with a nice way to do that. > > > Surely we agree getting TRY out of the fast path is reasonable? > > > I also considered reordering RTLinker.m3 or breaking up pieces but > avoided those. > > > Avoiding TRY/RAISE/ is a bit contorted but to some extent unavoidable > since they rely on initialization. > __thread might help here too but I doubt we'll ever rely on that > completely. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Wed, 29 Apr 2009 07:45:51 +1000 >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> Huh? Don't let dubious premature optimizations distort the code >> base.... >> >> On 28 Apr 2009, at 16:20, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 09/04/28 16:20:44 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 >>> >>> Log message: >>> module initializer is too late also, remove GetGCRatio for now >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> [Switching to Thread 0x28201100 (LWP 100094)] >>> 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> 1599 f.next := self.context.handlers; >>> (gdb) bt >>> #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ >>> common/RTCollector.m3:2801 >>> #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ >>> runtime/common/RTCollector.m3:2883 >>> #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:399 >>> #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:113 >>> #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) >>> at ../src/runtime/common/RTLinker.m3:122 >>> #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >>> M3_AJWxb1_p_argv=0xbfbfecec, >>> M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ >>> runtime/common/RTLinker.m3:42 >>> #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) >>> at _m3main.mc:3 >>> (gdb) >> From hosking at cs.purdue.edu Wed Apr 29 20:27:49 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:27:49 +1000 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: <03DE040E-713E-4251-839E-BCC5A617FBFF@cs.purdue.edu> I'd prefer user threads to be deprecated merely because multi-core is prevalent now. If someone needs them let them recompile. On 29 Apr 2009, at 10:06, Jay wrote: > >> I realize maybe there is a strong counteropinion, like, whatever >> inefficiences are >implied by dynamic linking are to be "fought" >> against with aggressive/creative/even fragile optimization >> techniques. > > > I realize I argue for optimizing PushEFrame and for deoptimizing > e.g. lock. > PushEFrame is presumably more common...except that it probably > occurs most often with lock? I don't know, I have no numbers. > > > I'm not sure yet what to do here. > Swapping .so files might or might not work. > If it does, that's a step but doesn't enable everything. > > > For example when I just switch compilation back and forth without > "clean", I get errors about types missing. Maybe that'll occur at > runtime, maybe not? Maybe these are different? Depends somewhat on > what "reveal" does? > Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, > but loopholed to escape these problems?? ("These problems" are > partly that I don't fully understand the Modula-3 object model, e.g. > what does "reveal" do, at a low level? What does "brand" do, at a > low level? I looked into it some and brand doesn't seem to affect > objects at all, only out of band typeinfo.) > > > Maybe just leave it as an option in m3core's m3makefile and people > can twiddle it if they want and rebuild the entire system like it is > today? > That is a bit onerous, but maybe it's all userthreads deserve? > ? > > > Anyone who actually wanted to switch back and forth (Mika) would > just have two installs and two source trees? > > > - Jay From jkrell at elego.de Wed Apr 29 22:05:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 22:05:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429200554.3FC4ECC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 22:05:54 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: go back to default to kernel/pthreads on FreeBSD4 (on 4.x pthreads are userthreads actually) From jkrell at elego.de Wed Apr 29 22:49:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 22:49:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429204935.93315CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 22:49:35 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: some SOLsun vs. SOLgnu SOLsun doesn't seem to like -pie, -dy, -pthreads -pthreads in particular is interpreted as multiple single letter switches and again complains about -h -mt is presumably the approx equivalent (plus possibly some -L, on older versions) also keep -Bstatic, though right fix might be -Bdynamic in SYSTEM_LIBS SOLgnu should be unaffected and it is used more than SOLsun From jkrell at elego.de Wed Apr 29 23:01:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:01:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210115.EB654CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:01:15 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: m3makefile ThreadPThread.m3 ThreadPThread.i3 Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/config/: tls.c Log message: go back a day From jkrell at elego.de Wed Apr 29 23:04:19 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:04:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210419.824ADCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:04:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: go back a day From jkrell at elego.de Wed Apr 29 23:07:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:07:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210706.A730ACC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:07:06 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: go back to always calling it m3core From jkrell at elego.de Wed Apr 29 23:41:32 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:41:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429214132.1DA15CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:41:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.i3 RTCollector.m3 RTLinker.m3 Log message: add call to GetGCRatio just a little later than it was From jkrell at elego.de Thu Apr 30 18:17:34 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 18:17:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430161734.F0FD2CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 18:17:34 Modified files: cm3/scripts/regression/: defs.sh Log message: mkdir missing here From jkrell at elego.de Thu Apr 30 21:52:40 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 21:52:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430195240.A3D04CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 21:52:40 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 Utils.m3 UtilsPosix.m3 UtilsWin32.m3 Log message: fix Win32 to compile including moving some code from UtilsPosix.m3 to Utils.m3 disable the Win32 hard link code (make it symlink, which copies) temporarily since it is a bootstrapping mistake (cm3 depends on newer m3core); fix will be to copy tiny bit of code From jkrell at elego.de Thu Apr 30 22:21:47 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:21:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430202147.9912ECC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:21:47 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: it is not legal to return from the caller of vfork without calling exec, therefore it is not legal to wrap vfork in C From jkrell at elego.de Thu Apr 30 22:22:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:22:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430202228.387B2CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:22:28 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix newlines (dos2unix) From jkrell at elego.de Thu Apr 30 22:52:07 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:52:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430205207.D0288CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:52:07 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 RTCollector.i3 RTCollectorSRC.i3 Log message: move GetGCRatio from RTCollector to RTCollectorSRC; that probably fixes it since RTCollectorSRC has been link and RTCollector has not From wagner at elego.de Wed Apr 1 09:09:41 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 1 Apr 2009 9:09:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090401070941.6197460C2D3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/01 09:09:41 Modified files: cm3/www/: PkgTags download.html news.html cm3/www/uploaded-archives/: update_download_index.sh Log message: add news about broken links due to server crash list source archives in uploaded-archives directory modified: www/download.html modified: www/news.html modified: www/uploaded-archives/update_download_index.sh From jkrell at elego.de Fri Apr 3 12:46:37 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 3 Apr 2009 12:46:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090403104637.EC91F60C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/03 12:46:37 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_DARWIN Log message: Darwin ld offers the following powerful confusing features -install_name @executable_path/../foo.dylib -install_name @loader_path/../foo.dylib -install_name @rpath/../foo.dylib @executable_path is the oldest and easiest to understand. I believe it was introduced sometime prior to 10.4. @loader_path -- I don't know what this means, people say it is "better" than @executable_path, it was introduced in 10.4. I suspect it means either "the referencing file" instead of "the executable" or perhaps the list of files loaded so far. @rpath was introduced in 10.5 and is said to be even "better". Though I don't know exactly what it does. There are just way way way too many options here. The web generally only has current documentation. Local man pages are appropriately out of date, but don't always give history. As well there is tool -- install_name_tool -- that can be used to "patch" the paths recorded in files. You can reserve specified or "maximum" padding for it. Let's be nice and slightly wasteful and give maximum padding. Throw in -dead_strip. Would be nice to use -dead_strip_dylibs and -pie, but they require 10.5. Would be nice to -multiply_defined error, but we can only immediately get away with that for shared libraries. For executables I get an error about __cxa_exit. Lame but oh well for now. Primary net result is that while DYLD_LIBRARY_PATH and LD_LIBRARY_PATH can presumably be used either to override install_name, or provide a fallback, such as for uninstalled binaries, (which order is the probe? Can experiment to find out...), installed binaries should work without any extra environment variable, which is nice. As long as everything is in /base/bin /base/lib But hey, we give you maximum padding, so you can use install_name_tool. A hypothetical fancy installer might do that. Might. I have half an inclination that we should write our own ELF and MachO dynamic loader and get to some sane simple small appropriately flexible and portable system...(not sure if MachO is pluggable but most ELF systems are). From jkrell at elego.de Fri Apr 3 12:50:49 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 3 Apr 2009 12:50:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090403105049.C781160C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/03 12:50:49 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_DARWIN Log message: just comments/whitespace From jkrell at elego.de Sat Apr 4 16:40:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:40:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404144043.4E8D360C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:40:43 Modified files: cm3/m3-win/: vcredist.txt Log message: add link to 2008sp1 (not like you can't just search the web or follow link from previous) From jkrell at elego.de Sat Apr 4 16:51:23 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:51:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145123.8519560C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:51:23 Modified files: cm3/m3-libs/m3core/src/Csupport/little-endian/: dtoa.c Log message: big-endian/dtoa.c From jkrell at elego.de Sat Apr 4 16:52:45 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:52:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145245.4820260C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:52:45 Modified files: cm3/m3-libs/m3core/src/Csupport/big-endian/: dtoa.c Log message: previous checkin comment flubbed address these warnings seen on Solaris with Sun cc: "../src/Csupport/Common/dtoa.h", line 523: warning: implicit function declaration: CConvert__Acquire "../src/Csupport/Common/dtoa.h", line 544: warning: implicit function declaration: CConvert__Release by declaring the functions. From jkrell at elego.de Sat Apr 4 16:54:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:54:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145449.BB7BB60C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:54:49 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSmmap.c Log message: convert to Unix newlines That will presumably fix this warning from Sun cc: "../src/runtime/POSIX/RTOSmmap.c", line 1: warning: invalid white space character in directive From jkrell at elego.de Sat Apr 4 17:00:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 17:00:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404150028.28AD260C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 17:00:27 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: address Sun cc warning: "../src/runtime/ex_frame/RTStackC.c", line 48: warning: old-style declaration or incorrect type for: RTStack__PrevFrame via #ifdef __STDC__ || __cplusplus, use ANSI syntax. From jkrell at elego.de Sun Apr 5 02:26:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 2:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405002632.0C3DD60C2E7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 02:26:31 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix From jkrell at elego.de Sun Apr 5 02:27:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 2:27:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405002715.EC5FF60C2E7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 02:27:15 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: format differently From jkrell at elego.de Sun Apr 5 10:25:20 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 10:25:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405082520.6329E60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 10:25:20 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: This should let us support multiple installed backends (ie: per target) even if there is no source tree (ie: ROOT is not defined). Previously the first feature was lost in the second condition. Still, this area needs work -- probe for fewer backends. From jkrell at elego.de Sun Apr 5 12:05:04 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 12:05:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405100505.1273A60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 12:05:04 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Unix.common Log message: add the following to linking (AMD64_LINUX only at this point, the Unix.common change only affects it; we will want this whereever supported though) -z now -- bind at load time instead of lazily -z origin -- uses $ORIGIN -Bsymbolic -- if a shared library calls some functions it exports, resolve them directly; -rpath $ORIGIN/../lib -- enable finding shared libaries without setting an environment variable (at least for installed binaries) -warn-common -- warn for any common symbols -pie for executables -no-allow-shlib-undefined not -- it causes errors -rpath most importantly rpath could be drastically reduced, but for the need to run uninstalled binaries (PklFonts) (need to double check my Darwin change here) I also tried -soname $ORIGIN/../lib/foo.so.5. That doesn't seem to work. And then also not clear if it works for uninstalled. That is what the PPC_DARWIN change resembles though From jkrell at elego.de Sun Apr 5 12:44:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 12:44:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405104425.1E04C60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 12:44:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: Use the 'real' option instead of relying on 'compatibility'. This change is presumably applicable to all platforms that use GNU ld -- *Linux and *BSD. man ld: -R filename --just-symbols=filename Read symbol names and their addresses from filename, but do not relocate it or include it in the output. This allows your output file to refer symbolically to absolute locations of memory defined in other programs. You may use this option more than once. For compatibility with other ELF linkers, if the -R option is fol- lowed by a directory name, rather than a file name, it is treated as the -rpath option. From jkrell at elego.de Mon Apr 6 06:55:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 6:55:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406045517.AA04C60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 06:55:17 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add & " -z now -z origin -R \\$ORIGIN/../lib" From jkrell at elego.de Mon Apr 6 10:19:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:19:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406081913.BAC2F60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:19:13 Modified files: cm3/m3-ui/juno-2/juno-app/pkl-fonts/src/: m3makefile Log message: build_standalone, on all platforms, so the uninstalled binary works in more situations; was already doing this for NT386 From jkrell at elego.de Mon Apr 6 10:23:22 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:23:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406082323.0123A60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:23:22 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: Don't build up large RUNPATH with a path into the pkg store for every imported shared library; instead just use $ORIGIN/../lib which comes from other code (SOLgnu, SOLsun, etc.). This change is to be tested and applied on a few other platforms. (ie: *Linux, *BSD, but not NetBSD probably, and Darwin has a similar but different mechanism already in use (-soname = @executable_path/../lib/libfoo.dylib or somesuch)) From jkrell at elego.de Mon Apr 6 10:52:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:52:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406085224.962CB60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:52:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add -i to link command to ignore LD_LIBRARY_PATH seems to me the Unix linkers like to conflate build-time and run-time, and this lets us undo just a small part of that (NT has separately installed SDKs; Apple I think the same) Headers and libs belong with compilers, not the running system. There are valid points either way -- a "self describing" system is also nice, but it shouldn't be hard to have multiple system descriptions installed and easily point the compiler/linker at one or the other..cross building and all that...whether it is cross to a different OS or architecture or to a different version of the OS..(Modula-3 does this well, but I have sacrificed a lot of it in the interest of portability..) And installing "system description" shouldn't require "installing system".. From jkrell at elego.de Mon Apr 6 11:01:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:01:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090151.84CD260C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:01:48 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: comments only From jkrell at elego.de Mon Apr 6 11:08:12 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:08:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090812.8E2F060C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:08:12 Modified files: cm3/scripts/python/: make-dist.py Log message: small NT386 fix (the distinction here is 'temporary' only, related to bootstrapping from systems with the old m3gcdefs" make-dist.py From jkrell at elego.de Mon Apr 6 11:08:38 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:08:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090838.902BA60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:08:38 Modified files: cm3/scripts/python/: make-dist.py Log message: small NT386 fix (the distinction here is 'temporary' only, related to bootstrapping from systems with the old m3gcdefs" make-dist.py From jkrell at elego.de Mon Apr 6 11:13:42 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:13:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406091342.55A8760C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:13:42 Modified files: cm3/scripts/python/: pylib.py Log message: make boot archives in current working directory instead of in root directory, so I can build them as non-root on non-NT From jkrell at elego.de Mon Apr 6 11:22:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:22:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406092224.29D8F60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:22:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add -R \\$ORIGIN/../../../lib" to get from pkg store to lib and then to feel a bit less sleazy, add -R \\$ORIGIN/../../lib" ahead of it, maybe that is somehow safer From wagner at elego.de Wed Apr 8 00:10:42 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:10:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407221042.5295260C149@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:10:42 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 m3makefile Log message: use Jay Krell's new config files by default add options -oldcfg|-o for old behaviour modified: cminstall/src/Main.m3 modified: cminstall/src/m3makefile From wagner at elego.de Wed Apr 8 00:18:51 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:18:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407221851.816C160C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:18:51 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh cm3/scripts/regression/: defs.sh Log message: build binary archives using the new config files by default tar up standard packages by default; other distributions may be specified by e.g. DIST=core ./scripts/make-bin-dist-min.sh modified: scripts/make-bin-dist-min.sh modified: scripts/regression/defs.sh From wagner at elego.de Wed Apr 8 00:21:03 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:21:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407222103.F3CE560C149@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:21:03 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 Log message: require 250 MB for a full distribution modified: cminstall/src/Main.m3 From wagner at elego.de Wed Apr 8 00:25:48 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:25:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407222548.D4BBB60C14D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:25:48 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh Log message: add distribution kind to archive name modified: scripts/make-bin-dist-min.sh From wagner at elego.de Wed Apr 8 00:34:28 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:34:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407223428.839E860C14D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:34:28 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh Log message: fix NEWCFG switch modified: scripts/make-bin-dist-min.sh From wagner at elego.de Wed Apr 8 01:09:21 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 1:09:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407230921.2D1F51AC4C79@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 01:09:21 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: m3makefile Log message: check for available resources modified: cminstall/PkgTags modified: cminstall/src/m3makefile From hosking at elego.de Wed Apr 8 06:11:46 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 8 Apr 2009 6:11:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090408041146.3D51B1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/08 06:11:46 Modified files: cm3/m3-sys/m3middle/src/: M3RT.i3 Log message: Let's make all the predefined typecodes explicit here. From hosking at cs.purdue.edu Wed Apr 8 06:29:28 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 8 Apr 2009 14:29:28 +1000 Subject: [M3commit] Fwd: Undelivered Mail Returned to Sender References: <20090408041146.7B8841AC4C79@birch.elegosoft.com> Message-ID: <23CB3A42-BF2C-4371-B6B6-AC1FF746D575@cs.purdue.edu> Huh? Begin forwarded message: > From: MAILER-DAEMON at elego.de (Mail Delivery System) > Date: 8 April 2009 14:11:46 GMT+10:00 > To: hosking at elego.de > Subject: Undelivered Mail Returned to Sender > > This is the mail system at host birch.elegosoft.com. > > I'm sorry to have to inform you that your message could not > be delivered to one or more recipients. It's attached below. > > For further assistance, please send mail to postmaster. > > If you do so, please include this problem report. You can > delete your own text from the attached returned message. > > The mail system > > : Command died with > status 9: > "/usr/local/tinderbox/bonsai/handleCheckinMail.pl > /usr/local/tinderbox/bonsai". Command output: Cannot Open data > file (cwd: > /usr/local/tinderbox/bonsai; data/temp.15091): Bad file descriptor > Reporting-MTA: dns; birch.elegosoft.com > X-Postfix-Queue-ID: 620BD1AC4C78 > X-Postfix-Sender: rfc822; hosking at birch.elego.de > Arrival-Date: Wed, 8 Apr 2009 06:11:46 +0200 (CEST) > > Final-Recipient: rfc822; bonsai-checkin-daemon at tinderbox.elegosoft.com > Action: failed > Status: 5.3.0 > Diagnostic-Code: x-unix; Cannot Open data file (cwd: > /usr/local/tinderbox/bonsai; data/temp.15091): Bad file descriptor > > From: bonsai-daemon at birch > Date: 8 April 2009 14:11:46 GMT+10:00 > To: bonsai-checkin-daemon at tinderbox.elegosoft.com > Subject: cvs commit to cm3/m3-sys/m3middle/src > > > C|1239163906|hosking|/usr/cvs|cm3/m3-sys/m3middle/src|M3RT.i3|1.4||| > 7|2 > LOGCOMMENT > Let's make all the predefined typecodes explicit here. > > :ENDLOGCOMMENT > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elego.de Wed Apr 8 20:04:53 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 20:04:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090408180454.027CC1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 20:04:53 Modified files: cm3/scripts/: PkgTags upgrade.sh Log message: attempt to fix broken upgrade due to cminstall changes as seen by tinderbox on niagara distinguish old and new style config files based on presence of m3_backend in cm3.cfg All this may be too simple :-/ modified: scripts/upgrade.sh From jkrell at elego.de Thu Apr 9 19:02:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 19:02:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409170205.0D1CF60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 19:02:04 cm3/m3-tools/cvsup Update of /usr/cvs/cm3/m3-tools/cvsup In directory birch:/tmp/cvs-serv5883 Log Message: import cvsup-snap-16.1h Status: Vendor Tag: cvsup Release Tags: cvsup-snap-16_1h N cm3/m3-tools/cvsup/Blurb N cm3/m3-tools/cvsup/Install N cm3/m3-tools/cvsup/License N cm3/m3-tools/cvsup/Announce N cm3/m3-tools/cvsup/Makefile N cm3/m3-tools/cvsup/ChangeLog N cm3/m3-tools/cvsup/Acknowledgments N cm3/m3-tools/cvsup/doc/faq_ru.tail N cm3/m3-tools/cvsup/doc/faq.tail N cm3/m3-tools/cvsup/doc/faq_ru.faq N cm3/m3-tools/cvsup/doc/faq.faq N cm3/m3-tools/cvsup/doc/Protocol N cm3/m3-tools/cvsup/doc/faqgen.awk N cm3/m3-tools/cvsup/doc/Makefile N cm3/m3-tools/cvsup/doc/faq.head N cm3/m3-tools/cvsup/doc/Checkouts N cm3/m3-tools/cvsup/doc/Attributes N cm3/m3-tools/cvsup/doc/faq_ru.head N cm3/m3-tools/cvsup/doc/images/yelnew.gif N cm3/m3-tools/cvsup/doc/images/cvsup128.gif N cm3/m3-tools/cvsup/client/Makefile N cm3/m3-tools/cvsup/client/src/RegularUpdater.i3 N cm3/m3-tools/cvsup/client/src/RegularUpdater.m3 N cm3/m3-tools/cvsup/client/src/exit.pbm N cm3/m3-tools/cvsup/client/src/TextPortLogger.i3 N cm3/m3-tools/cvsup/client/src/Receive.i3 N cm3/m3-tools/cvsup/client/src/TreeList.i3 N cm3/m3-tools/cvsup/client/src/RsyncUpdater.m3 N cm3/m3-tools/cvsup/client/src/Auth.i3 N cm3/m3-tools/cvsup/client/src/SyncQueue.mg N cm3/m3-tools/cvsup/client/src/SupGUI.m3 N cm3/m3-tools/cvsup/client/src/tape_play.pbm N cm3/m3-tools/cvsup/client/src/Version.i3 N cm3/m3-tools/cvsup/client/src/SupFile.m3 N cm3/m3-tools/cvsup/client/src/CheckoutUpdater.i3 N cm3/m3-tools/cvsup/client/src/EventSync.m3 N cm3/m3-tools/cvsup/client/src/SupFile.i3 N cm3/m3-tools/cvsup/client/src/CheckoutUpdater.m3 N cm3/m3-tools/cvsup/client/src/TreeList.m3 N cm3/m3-tools/cvsup/client/src/Auth.m3 N cm3/m3-tools/cvsup/client/src/FSClient.i3 N cm3/m3-tools/cvsup/client/src/TextVBTLogger.i3 N cm3/m3-tools/cvsup/client/src/CheckoutCreator.m3 N cm3/m3-tools/cvsup/client/src/cvsup.1 N cm3/m3-tools/cvsup/client/src/Updater.m3 N cm3/m3-tools/cvsup/client/src/BackoffTimer.m3 N cm3/m3-tools/cvsup/client/src/FSClient.m3 N cm3/m3-tools/cvsup/client/src/disk.pbm N cm3/m3-tools/cvsup/client/src/RCSUpdater.m3 N cm3/m3-tools/cvsup/client/src/EventSync.i3 N cm3/m3-tools/cvsup/client/src/Detailer.i3 N cm3/m3-tools/cvsup/client/src/cvsup.cat N cm3/m3-tools/cvsup/client/src/CheckoutCreator.i3 N cm3/m3-tools/cvsup/client/src/Receive.m3 N cm3/m3-tools/cvsup/client/src/Main.m3 N cm3/m3-tools/cvsup/client/src/RegularCreator.i3 N cm3/m3-tools/cvsup/client/src/FileUpdater.i3 N cm3/m3-tools/cvsup/client/src/RsyncUpdater.i3 N cm3/m3-tools/cvsup/client/src/syncqueue.tmpl N cm3/m3-tools/cvsup/client/src/stop.pbm N cm3/m3-tools/cvsup/client/src/FileUpdater.m3 N cm3/m3-tools/cvsup/client/src/TextVBTLogger.m3 N cm3/m3-tools/cvsup/client/src/SupGUIFake.m3 N cm3/m3-tools/cvsup/client/src/m3makefile N cm3/m3-tools/cvsup/client/src/BackoffTimer.i3 N cm3/m3-tools/cvsup/client/src/RegularCreator.m3 N cm3/m3-tools/cvsup/client/src/TextPortLogger.m3 N cm3/m3-tools/cvsup/client/src/SupGUI.i3 N cm3/m3-tools/cvsup/client/src/Copyright.txt N cm3/m3-tools/cvsup/client/src/SyncQueue.ig N cm3/m3-tools/cvsup/client/src/RCSUpdater.i3 N cm3/m3-tools/cvsup/client/src/Detailer.m3 N cm3/m3-tools/cvsup/client/src/Updater.i3 N cm3/m3-tools/cvsup/client/src/info.pbm N cm3/m3-tools/cvsup/client/src/Fixup.i3 N cm3/m3-tools/cvsup/client/src/SupGUI.fv N cm3/m3-tools/cvsup/cvpasswd/Makefile N cm3/m3-tools/cvsup/cvpasswd/src/Secret.i3 N cm3/m3-tools/cvsup/cvpasswd/src/Secret.m3 N cm3/m3-tools/cvsup/cvpasswd/src/Main.m3 N cm3/m3-tools/cvsup/cvpasswd/src/m3makefile N cm3/m3-tools/cvsup/cvpasswd/src/Upass.i3 N cm3/m3-tools/cvsup/cvpasswd/src/cvpasswd.cat N cm3/m3-tools/cvsup/cvpasswd/src/cvpasswd.1 N cm3/m3-tools/cvsup/examples/supfile.cvs N cm3/m3-tools/cvsup/examples/README N cm3/m3-tools/cvsup/contrib/README N cm3/m3-tools/cvsup/contrib/cvsup2httplog/cvsup2httplog N cm3/m3-tools/cvsup/contrib/cvsup2httplog/README N cm3/m3-tools/cvsup/contrib/cvsupwho/README N cm3/m3-tools/cvsup/contrib/cvsupwho/cvsupwho N cm3/m3-tools/cvsup/contrib/cvsupchk/README N cm3/m3-tools/cvsup/contrib/cvsupchk/cvsupchk N cm3/m3-tools/cvsup/contrib/cvsup2html/cvsup2html.awk N cm3/m3-tools/cvsup/contrib/cvsup2html/README N cm3/m3-tools/cvsup/contrib/cvsuplog2html/README N cm3/m3-tools/cvsup/contrib/cvsuplog2html/cvsuplog2html N cm3/m3-tools/cvsup/suplib/Makefile N cm3/m3-tools/cvsup/suplib/src/RsyncFile.i3 N cm3/m3-tools/cvsup/suplib/src/RsyncBlock.m3 N cm3/m3-tools/cvsup/suplib/src/IOWatchDog.m3 N cm3/m3-tools/cvsup/suplib/src/RCSRevNum.i3 N cm3/m3-tools/cvsup/suplib/src/FileAttrRep.i3 N cm3/m3-tools/cvsup/suplib/src/EscapedRd.i3 N cm3/m3-tools/cvsup/suplib/src/RCSError.i3 N cm3/m3-tools/cvsup/suplib/src/Merger.ig N cm3/m3-tools/cvsup/suplib/src/merger.tmpl N cm3/m3-tools/cvsup/suplib/src/UgzipP.i3 N cm3/m3-tools/cvsup/suplib/src/GzipRd.m3 N cm3/m3-tools/cvsup/suplib/src/WatchDog.m3 N cm3/m3-tools/cvsup/suplib/src/RCSString.m3 N cm3/m3-tools/cvsup/suplib/src/ErrMsg.m3 N cm3/m3-tools/cvsup/suplib/src/AuthMD5.i3 N cm3/m3-tools/cvsup/suplib/src/SplitLogger.i3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrase.i3 N cm3/m3-tools/cvsup/suplib/src/MD5.i3 N cm3/m3-tools/cvsup/suplib/src/DirEntry.i3 N cm3/m3-tools/cvsup/suplib/src/SupMisc.i3 N cm3/m3-tools/cvsup/suplib/src/RCSString.i3 N cm3/m3-tools/cvsup/suplib/src/SupMisc.m3 N cm3/m3-tools/cvsup/suplib/src/IOWatchDog.i3 N cm3/m3-tools/cvsup/suplib/src/RCSEdit.i3 N cm3/m3-tools/cvsup/suplib/src/FileAttr.i3 N cm3/m3-tools/cvsup/suplib/src/ExecRec.i3 N cm3/m3-tools/cvsup/suplib/src/Merger.mg N cm3/m3-tools/cvsup/suplib/src/MySyslog.i3 N cm3/m3-tools/cvsup/suplib/src/FileStatus.i3 N cm3/m3-tools/cvsup/suplib/src/RCSAccess.i3 N cm3/m3-tools/cvsup/suplib/src/TimeStampLogger.i3 N cm3/m3-tools/cvsup/suplib/src/SysLogger.m3 N cm3/m3-tools/cvsup/suplib/src/GzipWr.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDelta.m3 N cm3/m3-tools/cvsup/suplib/src/DevT.i3 N cm3/m3-tools/cvsup/suplib/src/TokScan.m3 N cm3/m3-tools/cvsup/suplib/src/UnixMisc.m3 N cm3/m3-tools/cvsup/suplib/src/Attic.i3 N cm3/m3-tools/cvsup/suplib/src/RCSAccess.m3 N cm3/m3-tools/cvsup/suplib/src/CVTree.i3 N cm3/m3-tools/cvsup/suplib/src/RCSFile.m3 N cm3/m3-tools/cvsup/suplib/src/WatchDog.i3 N cm3/m3-tools/cvsup/suplib/src/RegEx.m3 N cm3/m3-tools/cvsup/suplib/src/SplitLogger.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Digest.m3 N cm3/m3-tools/cvsup/suplib/src/StatusFile.i3 N cm3/m3-tools/cvsup/suplib/src/Reaper.i3 N cm3/m3-tools/cvsup/suplib/src/DirEntry.m3 N cm3/m3-tools/cvsup/suplib/src/Umd5.i3 N cm3/m3-tools/cvsup/suplib/src/TimeStampLogger.m3 N cm3/m3-tools/cvsup/suplib/src/FileStatusRaw.i3 N cm3/m3-tools/cvsup/suplib/src/Attic.m3 N cm3/m3-tools/cvsup/suplib/src/SupFileRec.m3 N cm3/m3-tools/cvsup/suplib/src/GzipRd.i3 N cm3/m3-tools/cvsup/suplib/src/RCSTag.m3 N cm3/m3-tools/cvsup/suplib/src/FileAttr.m3 N cm3/m3-tools/cvsup/suplib/src/Ugzip.i3 N cm3/m3-tools/cvsup/suplib/src/StatusFile.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Wr.m3 N cm3/m3-tools/cvsup/suplib/src/ProcTitle.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDelta.i3 N cm3/m3-tools/cvsup/suplib/src/RsyncFile.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedWr.m3 N cm3/m3-tools/cvsup/suplib/src/RCSDate.m3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrases.i3 N cm3/m3-tools/cvsup/suplib/src/CText.i3 N cm3/m3-tools/cvsup/suplib/src/AuthMD5.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedWr.i3 N cm3/m3-tools/cvsup/suplib/src/CVProto.m3 N cm3/m3-tools/cvsup/suplib/src/Glob.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedRd.m3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrases.m3 N cm3/m3-tools/cvsup/suplib/src/SigHandler.i3 N cm3/m3-tools/cvsup/suplib/src/UnixMiscC.c N cm3/m3-tools/cvsup/suplib/src/Uglob.i3 N cm3/m3-tools/cvsup/suplib/src/LoggerClass.i3 N cm3/m3-tools/cvsup/suplib/src/Logger.i3 N cm3/m3-tools/cvsup/suplib/src/GlobTree.i3 N cm3/m3-tools/cvsup/suplib/src/GlobTree.m3 N cm3/m3-tools/cvsup/suplib/src/Reaper.m3 N cm3/m3-tools/cvsup/suplib/src/Logger.m3 N cm3/m3-tools/cvsup/suplib/src/SigHandler.m3 N cm3/m3-tools/cvsup/suplib/src/RCSDate.i3 N cm3/m3-tools/cvsup/suplib/src/UnixMisc.i3 N cm3/m3-tools/cvsup/suplib/src/CVTree.m3 N cm3/m3-tools/cvsup/suplib/src/WrLogger.m3 N cm3/m3-tools/cvsup/suplib/src/LockFile.m3 N cm3/m3-tools/cvsup/suplib/src/m3makefile N cm3/m3-tools/cvsup/suplib/src/ChannelMux.i3 N cm3/m3-tools/cvsup/suplib/src/TokScan.i3 N cm3/m3-tools/cvsup/suplib/src/ErrMsg.i3 N cm3/m3-tools/cvsup/suplib/src/ChannelMux.m3 N cm3/m3-tools/cvsup/suplib/src/FileStatus.m3 N cm3/m3-tools/cvsup/suplib/src/PathComp.i3 N cm3/m3-tools/cvsup/suplib/src/MD5Digest.i3 N cm3/m3-tools/cvsup/suplib/src/GzipError.i3 N cm3/m3-tools/cvsup/suplib/src/RCSKeyword.i3 N cm3/m3-tools/cvsup/suplib/src/MD5.m3 N cm3/m3-tools/cvsup/suplib/src/PathComp.m3 N cm3/m3-tools/cvsup/suplib/src/GzipError.m3 N cm3/m3-tools/cvsup/suplib/src/SysLogger.i3 N cm3/m3-tools/cvsup/suplib/src/FileID.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Wr.i3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrase.m3 N cm3/m3-tools/cvsup/suplib/src/RegEx.i3 N cm3/m3-tools/cvsup/suplib/src/Glob.i3 N cm3/m3-tools/cvsup/suplib/src/FileID.i3 N cm3/m3-tools/cvsup/suplib/src/SupFileRec.i3 N cm3/m3-tools/cvsup/suplib/src/RCSTag.i3 N cm3/m3-tools/cvsup/suplib/src/RCSKeyword.m3 N cm3/m3-tools/cvsup/suplib/src/WrLogger.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDeltaClass.i3 N cm3/m3-tools/cvsup/suplib/src/RCSRevNum.m3 N cm3/m3-tools/cvsup/suplib/src/CVProto.i3 N cm3/m3-tools/cvsup/suplib/src/RCSFile.i3 N cm3/m3-tools/cvsup/suplib/src/LockFile.i3 N cm3/m3-tools/cvsup/suplib/src/Ugzip.m3 N cm3/m3-tools/cvsup/suplib/src/RsyncBlock.i3 N cm3/m3-tools/cvsup/suplib/src/GzipWr.m3 N cm3/m3-tools/cvsup/suplib/src/libmd/md5hl.c N cm3/m3-tools/cvsup/suplib/src/libmd/md5.h N cm3/m3-tools/cvsup/suplib/src/libmd/md5c.c N cm3/m3-tools/cvsup/suplib/src/libmd/m3makefile N cm3/m3-tools/cvsup/suplib/src/libmd/md5.copyright N cm3/m3-tools/cvsup/suplib/src/libglob/fnmatch.h N cm3/m3-tools/cvsup/suplib/src/libglob/fnmatch.c N cm3/m3-tools/cvsup/suplib/src/libglob/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/DevTLinux.i3 N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/DevT.m3 N cm3/m3-tools/cvsup/suplib/src/POSIX/ProcTitle.m3 N cm3/m3-tools/cvsup/suplib/src/POSIX/m3makefile N cm3/m3-tools/cvsup/suplib/src/POSIX/FileAttrOS.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/SupMiscText.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/CText.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/m3makefile N cm3/m3-tools/cvsup/suplib/src/text_pm3/SupMiscText.m3 N cm3/m3-tools/cvsup/suplib/src/text_pm3/CText.m3 N cm3/m3-tools/cvsup/suplib/src/text_pm3/m3makefile N cm3/m3-tools/cvsup/suplib/src/FreeBSD/UProcTitle.c N cm3/m3-tools/cvsup/suplib/src/FreeBSD/FileAttrOS.i3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/ProcTitle.m3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/m3makefile N cm3/m3-tools/cvsup/suplib/src/FreeBSD/UProcTitle.i3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/FileAttrOS.m3 N cm3/m3-tools/cvsup/suplib/src/dev_t_posix/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_posix/DevT.m3 N cm3/m3-tools/cvsup/config/src/m3makefile N cm3/m3-tools/cvsup/suptcp/Makefile N cm3/m3-tools/cvsup/suptcp/src/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/README N cm3/m3-tools/cvsup/suptcp/src/m3makefile N cm3/m3-tools/cvsup/suptcp/src/POSIX/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHackNull.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHack.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCP.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOptOther.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOpt.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHack.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPPosix.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/m3makefile N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOptFBSD.m3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamWrClass.m3 N cm3/m3-tools/cvsup/suptcp/src/common/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/common/StreamRdClass.m3 N cm3/m3-tools/cvsup/suptcp/src/common/TCPMisc.i3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamRd.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnRW.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnFD.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupErrno.i3 N cm3/m3-tools/cvsup/suptcp/src/common/m3makefile N cm3/m3-tools/cvsup/suptcp/src/common/SupTCP.i3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamWrClass.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupErrnoC.c N cm3/m3-tools/cvsup/suptcp/src/common/StreamWr.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnRW.m3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamRdClass.i3 N cm3/m3-tools/cvsup/quake/cvsup.quake N cm3/m3-tools/cvsup/server/Makefile N cm3/m3-tools/cvsup/server/src/ClassDB.m3 N cm3/m3-tools/cvsup/server/src/ClientClass.i3 N cm3/m3-tools/cvsup/server/src/FSServer.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.cat N cm3/m3-tools/cvsup/server/src/Passwd.i3 N cm3/m3-tools/cvsup/server/src/Version.i3 N cm3/m3-tools/cvsup/server/src/ClientClass.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.class.cat N cm3/m3-tools/cvsup/server/src/FSServerU.m3 N cm3/m3-tools/cvsup/server/src/FSServer.i3 N cm3/m3-tools/cvsup/server/src/AccessRules.i3 N cm3/m3-tools/cvsup/server/src/ParsedDelta.m3 N cm3/m3-tools/cvsup/server/src/Main.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.8 N cm3/m3-tools/cvsup/server/src/AccessRules.m3 N cm3/m3-tools/cvsup/server/src/TreeComp.i3 N cm3/m3-tools/cvsup/server/src/ClassDB.i3 N cm3/m3-tools/cvsup/server/src/FileInfo.i3 N cm3/m3-tools/cvsup/server/src/Passwd.m3 N cm3/m3-tools/cvsup/server/src/m3makefile N cm3/m3-tools/cvsup/server/src/FileInfo.m3 N cm3/m3-tools/cvsup/server/src/RCSComp.i3 N cm3/m3-tools/cvsup/server/src/ParsedDelta.i3 N cm3/m3-tools/cvsup/server/src/cvsupd.class.5 N cm3/m3-tools/cvsup/server/src/TreeComp.m3 N cm3/m3-tools/cvsup/server/src/RCSComp.m3 N cm3/m3-tools/cvsup/server/src/FSServerRep.i3 No conflicts created by this import From jkrell at elego.de Thu Apr 9 20:24:30 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:24:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409182430.3F44B60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:24:30 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 UstatC.c Utypes.i3 Log message: add Utypes.mode_t = INTEGER struct_stat.st_dev: LONGINT; struct_stat.st_ino: LONGINT; for cvsup. Still very portable (modulo that ino doesn't really exist on Win32 FAT, and is not well exposed on Win32 NTFS (have to open the file, slow, though native APIs expose it since XP)) From jkrell at elego.de Thu Apr 9 20:47:41 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:47:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409184741.CA2CF60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:47:41 Modified files: cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Utypes.i3 Log message: and add Utypes.ino_t = LONGINT, Utypes.dev_t = LONGINT for cvsup and alias SchedulerPosix.Enable/DisableSwitching = Scheduler.Enable/ DisableSwitching for cvsup From jkrell at elego.de Thu Apr 9 20:53:27 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:53:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409185327.6F02460C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:53:27 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 Uconstants.c Log message: add O_APPEND back, portable, for cvsup; there are other flags we could add back From jkrell at elego.de Thu Apr 9 21:15:47 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:15:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409191547.A730960C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:15:47 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: m3makefile cm3/m3-tools/cvsup/suptcp/src/common/: m3makefile Log message: - Uerrno now has variables instead of constants but then, don't compile this anyway - "one" in InitFD should be 32 bits even on 64bit systems but then, don't compile this anyway - StreamRd, StreamRdClass, StreamWr, StreamWrClass appear to be identical to code elsewhere (m3-comm), so don't compile them - even SupTCP appears redundant, don't compile it Could be this isn't all correct, wrt defering to m3-comm/tcp. From jkrell at elego.de Thu Apr 9 21:22:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:22:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409192235.58A5460C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:22:35 Modified files: cm3/m3-tools/cvsup/suplib/src/: RCSFile.m3 RsyncFile.m3 Log message: truncate file sizes to integer or cardinal. This should be reviewed. ORD is the way, right? It is probably reasonable to limit file sizes in CVS repositories to 2gig or 4gig I am not really willing to make the idealized stat use INTEGER for file sizes since file sizes are definitely beyond 4gig in general, even on 32bit systems. I assume this code is "safe", in that there will be an unhandled exception upon value-losing truncation, not silent treatment of a 4g+1 byte file as just 1 byte. However the modules are unsafe. Arguably "double" is a good type here -- 53 bits of precision and of much longer standing and greater compatibility/portability than a 64bit integer. 53 bits is a lot. But I'm not a fan of floating point.. From jkrell at elego.de Thu Apr 9 21:24:45 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:24:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409192445.8630F60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:24:45 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: SupTCP.m3 Log message: actually checkin my version of the file Comments from before: - Uerrno now has variables instead of constants but then, don't compile this anyway - "one" in InitFD should be 32 bits even on 64bit systems but then, don't compile this anyway - StreamRd, StreamRdClass, StreamWr, StreamWrClass appear to be identical to code elsewhere (m3-comm), so don't compile them - even SupTCP appears redundant, don't compile it Could be this isn't all correct, wrt defering to m3-comm/tcp. From jkrell at elego.de Fri Apr 10 11:26:36 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 11:26:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410092636.4B68F60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 11:26:36 Added files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.i3 Log message: initial version of Ugrp.i3, identical to all the other copies (ugh), but we will change it to be extra safe via copying like Unetdb (cvsup uses this) From jkrell at elego.de Fri Apr 10 12:06:04 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:06:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410100604.EF35E60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:06:04 Modified files: cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 Log message: my mistake -- rebuilding m3core clean fails due to this, go back a version to version 1.5 From jkrell at elego.de Fri Apr 10 12:21:16 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:21:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102116.C5C4C60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:21:16 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.m3 Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:22:07 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:22:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102207.9439160C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:22:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:29:44 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:29:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102944.5486C60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:29:44 Modified files: cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:30:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:30:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410103043.127AD60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:30:43 Modified files: cm3/m3-libs/m3core/src/unix/big-endian/: m3makefile Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:32:52 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:32:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410103257.330AB60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:32:52 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c Uexec.c Ugrp.i3 Umman.i3 Unetdb.c Unix.i3 UnixC.c Upthread.i3 Usocket.c Ustat.i3 UstatC.c UtimeC.c Utypes.i3 Uucontext.c m3makefile m3unix.h cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3 Added files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Umman.c Log message: a bunch of churn here: - provide Ugrp.i3, Ugrp.c for cvsup Make it copying for safety. Though every system I checked defines the struct with the exact same members and order, though we no longer make gid_t match (below) so copying becomes possibly needed. Don't bother with passwd. - add mknod, mmap, munmap, umask for cvsup - add some mmap flags for cvsup, go ahead and add some it doesn't use either the additions to Uconstants are under #ifdef previously I had trimmed Umman to just mprotect - continue experiment where we "wrap everything" (e.g. mknod, umask, mmap, munmap, Ugrp.i3) instead of only functions with a clear need (the need hasn't always been clear!) - push more stuff into m3unix.h due to a sort of intellectual laziness unclear benefit includes now everything is prototyped, not just implemented and not used, not clear if that is any progress - widen mode_t from int to INTEGER - change gid_t, pid_t, uid_t from system dependent to not pid_t is always 32 bit signed integer gid_t and uid_t is always 32 bit integer, of varying signedness change them all to INTEGER INTEGER is more predictably laid out and aligned the same on 64bit platforms -- that is, we need to be able to duplicate structs in Modula-3 and C and have a /very/ high confidence that they match up (we should probably pass in sizes from Modula-3, and maybe even field offset?) - change pthread_t from system dependent to not on the vast majority of systems, sizeof(pthread_t) == sizeof(integer,size_t,void*) Known exceptions are 64bit Solaris and I think 64 bit HP-UX; on those pthread_t is just a 32bit integer and this change might waste a little space - assert correctness or enough correctness of various types -- that the Modula-3 types are at least as large as the C types that pid_t is signed (presumably so you can check for <0 or == -1 or something) that short/int/long/CHAR_BIT are what we expect (punt on portability to CHAR_BIT != 8 -- i.e. a conforming C implementation can have CHAR_BIT=32 and then sizeof(char)==sizeof(short)==sizeof(int)==sizeof(long)==4) - #ifdef guard on m3unix.h; extern "C" in more places - remove presumably unused passwd from Ugrp.i3 - reorder Ugrp.i3 -- size then name; this is arbitrary and unnecessary though - rename SOCKLEN_T to m3_socklen_t (tempting to just use one set of wrappers here instead of two..) - remove FreeBSD-common clock_t, appears dead (only currently affects AMD64_FREEBSD) - a lot of this is still tedious and error-prone, but at least very portable From jkrell at elego.de Fri Apr 10 12:41:39 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:41:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410104139.CDCEC60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:41:39 Modified files: cm3/m3-sys/m3tests/src/: Test.i3 TestC.c Log message: remove pid_d, gid_t, uid_t remove comment about pthreads now that the system-dependentness has been removed so the comment obvious use double for alignment instead of size_t -- actually needed.. From jkrell at elego.de Fri Apr 10 13:04:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 13:04:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410110434.D9C9A60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 13:04:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Ustat.i3 UstatC.c m3unix.h Log message: add link chmod fchmod chown fchown creat dup some of which are needed by cvsup, not all add struct stat.nlink which is used by cvsup (is LONGINT overkill?) From jkrell at elego.de Fri Apr 10 23:01:03 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:01:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210104.331C560C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:01:03 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:01:55 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:01:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210155.CBCD460C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:01:55 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:02:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:02:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210226.B96ED60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:02:26 Modified files: cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:02:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:02:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210245.C9DF460C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:02:45 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:03:29 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:03:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210330.17ED360C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:03:29 Modified files: cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:09:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:09:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210956.E538360C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:09:56 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: enable PPC32_OPENBSD in list of big endian platforms From neels at elego.de Fri Apr 10 23:13:50 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Fri, 10 Apr 2009 23:13:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410211350.0BDC060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/10 23:13:50 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: updated URLs From neels at elego.de Fri Apr 10 23:15:08 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Fri, 10 Apr 2009 23:15:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410211508.9ADC060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/10 23:15:08 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: adjust copyright From jkrell at elego.de Fri Apr 10 23:54:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:54:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215457.7C86260C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:54:57 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix serious typo -- sizeof(short) is 2 not 1! From jkrell at elego.de Fri Apr 10 23:56:44 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:56:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215644.749E060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:56:44 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: more sanity checks (will probably these to RTLinker later, here is too late) From jkrell at elego.de Fri Apr 10 23:58:21 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:58:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215821.35BDB60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:58:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: fix I386_DARWIN, AMD64_DARWIN, FreeBSD4 -- platforms still using their own Unix/*.i3 files -- take common Ugrp.i3 away from them From jkrell at elego.de Sat Apr 11 00:05:55 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 11 Apr 2009 0:05:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410220555.B575660C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/11 00:05:55 Added files: cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 Log message: re-add Csetjmp.i3 for PPC32_OPENBSD, based on m3-sys/m3middle/src/Target.m3 From jkrell at elego.de Sat Apr 11 00:09:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 11 Apr 2009 0:09:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410220910.68A3B60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/11 00:09:10 Modified files: cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: m3makefile Log message: re-add Csetjmp.i3 for PPC32_OPENBSD, based on m3-sys/m3middle/src/Target.m3 From neels at elego.de Sat Apr 11 23:57:00 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sat, 11 Apr 2009 23:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411215700.7727B60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/11 23:57:00 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: minor fixes on cm3 installation for ubuntu From neels at elego.de Sat Apr 11 23:58:54 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sat, 11 Apr 2009 23:58:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411215854.E077C60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/11 23:58:54 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: minor fixes on cm3 installation for ubuntu From neels at elego.de Sun Apr 12 00:09:22 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sun, 12 Apr 2009 0:09:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411220922.193E260C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/12 00:09:22 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: and more minor fixes on cm3 installation for ubuntu From neels at elego.de Sun Apr 12 00:15:43 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sun, 12 Apr 2009 0:15:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411221543.9ABC260C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/12 00:15:43 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: still more minor fixes on cm3 installation for ubuntu From jkrell at elego.de Sun Apr 12 05:08:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:08:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412030858.B13FE60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:08:58 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: cvsup source says even readdir is not user-thread safe (this change only makes a difference with user threads -- adds two calls to nops for kernel threads) From jkrell at elego.de Sun Apr 12 05:12:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:12:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412031239.1380260C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:12:39 Modified files: cm3/m3-tools/cvsup/suplib/src/: CVTree.m3 Ugzip.m3 Log message: small adaptions for Scheduler vs. SchedulerPosix "IMPORT Scheduler AS SchedulerPosix" could be cleaned up further (the "safe" wrappers in CVTree are not needed) From jkrell at elego.de Sun Apr 12 05:20:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:20:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412032010.56AE360C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:20:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Utypes.i3 Ustat.i3 Log message: add nlink_t that cvsup will use and does exist everywhere else; I use LONGINT here but maybe that is overkill From jkrell at elego.de Sun Apr 12 05:32:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:32:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412033213.BA27E60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:32:13 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h UnixC.c Log message: check that nlink_t is large enough, and slightly tweak the others (comments, parens, sorting) From jkrell at elego.de Sun Apr 12 06:20:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:20:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042026.A5A5460C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:20:26 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.i3 TokScan.m3 Log message: Provide AtoL, a trivial adaption of AtoI that was there, and make AtoI a one line wrapper over it. This will be used shortly, to deal with 32bit Linux's already existant 64bit dev_t, as well as the pessmistic/idealized 64bit dev_t on all systems using my Unix/*.i3 files. While we are at it, the Linux code should become portable to big endian systems such as PPC, SPARC, MIPS. I386_FREEBSD, I386_DARWIN, AMD64_DARWIN building cvsup is about to become broken, but I386_FREEBSD I will fix. From jkrell at elego.de Sun Apr 12 06:22:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:22:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042205.A43AF60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:22:05 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.m3 Log message: fix previous From jkrell at elego.de Sun Apr 12 06:27:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:27:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042713.7AD4860C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:27:13 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: Ustat.S_IFREG etc. are no longer constants, now variables -- use if/else ladder instead of switch From jkrell at elego.de Sun Apr 12 06:36:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:36:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412043607.3BD4860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:36:07 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: adapt ScanInt/ScanLong as was done for AtoI/AtoL, less clear this will be used but probably From jkrell at elego.de Sun Apr 12 06:40:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:40:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412044008.123E260C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:40:08 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: cast st_nlink as needed between INTEGER and nlink_t -- maybe I should just change Ustat's definition of it to be INTEGER though From jkrell at elego.de Sun Apr 12 06:42:34 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:42:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412044234.E02AA60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:42:34 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: cast st_size to with ORD and VAL(off_t) as needed to compile in this case Unix/*.i3 is certainly right in using LONGINT, to allow for >4gig files on 32bit platforms, and cvsup is probably ok to use INTEGER, assuming files in CVS are always under 4gig, at least on 32bit systems From jkrell at elego.de Sun Apr 12 06:50:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:50:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045041.9852960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:50:41 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: deal more with st_size (cheat a little less, but ultimately still truncate to integer) st_ino (always 64bits) gettimeofday (use NIL instead of VAR tz) st_mtime (always 64bit LONGINT, wishful thinking?) Ugrp (provide space for copy) FileAttr compiles now From jkrell at elego.de Sun Apr 12 06:55:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:55:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045536.EA15860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:55:36 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile cm3/m3-tools/cvsup/suplib/src/dev_t_posix/: DevT.m3 Removed files: cm3/m3-tools/cvsup/suplib/src/dev_t_linux/: DevT.m3 DevTLinux.i3 m3makefile Log message: adapt to an always 64bit dev_t, including fixing big endian Linux From jkrell at elego.de Sun Apr 12 06:57:52 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:57:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045752.3923660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:57:52 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileID.m3 Log message: Likewise, adapt to an always 64bit ino_t. Cygwin for example has a 64bit ino_t on a 32bit system. This is a little sleazy in that it uses DevT.Hash(inode). Really it should be some Int64.Hash() function. From jkrell at elego.de Sun Apr 12 07:00:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:00:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412050051.A32BD60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:00:51 Modified files: cm3/m3-tools/cvsup/suplib/src/: UnixMisc.m3 Log message: cast st_size to integer for mmap (ORD) convert to copying Unetdb cast mmap's 0 to off_t it compiles From jkrell at elego.de Sun Apr 12 07:26:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:26:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412052602.7522F60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:26:02 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: add libz to system libs for cygwin for cvsup, others need this IF they have e.g. /usr/libz.a and NOT /usr/local/libz.a, I think From jkrell at elego.de Sun Apr 12 07:33:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:33:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053303.EC4F560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:33:03 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: Try SYSTEM_LIBS{"Z"} ahead of /usr/local/libz.a. From jkrell at elego.de Sun Apr 12 07:33:21 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:33:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053321.870F360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:33:21 Modified files: cm3/m3-tools/cvsup/suplib/src/: ErrMsg.m3 SupMisc.i3 SupMisc.m3 Log message: Experimentally try replacing SupTCP with TCP. From jkrell at elego.de Sun Apr 12 07:36:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:36:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053602.7BA7660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:36:02 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: m3makefile Log message: experimentaly remove SupTCP, SupTCPPosix (my basic problem here is that I can't compile SupTCP because it imports TCP and implements functions with the same name as TCP From jkrell at elego.de Sun Apr 12 08:17:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:17:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061708.0386360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:17:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Log message: reverse -- more important to match the C code than to use indirect names From jkrell at elego.de Sun Apr 12 08:17:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:17:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061742.5160A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:17:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Utypes.i3 Log message: fix newlines (dos2unix) From jkrell at elego.de Sun Apr 12 08:18:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:18:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061839.7AD6660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:18:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Uerror.i3 UerrorX.h Unix.i3 UnixC.c Usignal.i3 Log message: add more for cvsup: Unix.fork Usignal.SIGALRM Usignal.SIGCHLD Uerror.ENOBUFS Uerror.ENOTDIR all portably. From jkrell at elego.de Sun Apr 12 08:21:35 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:21:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412062135.D720160C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:21:35 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: change how libz is added to SYSTEM_LIBORDER to a terser way that I thought I had unsuccessfully tried, but now works, whereas other way doesn't. From jkrell at elego.de Sun Apr 12 08:23:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:23:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412062343.6C4C260C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:23:43 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: fix last minute edit from a bit ago From jkrell at elego.de Sun Apr 12 08:43:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:43:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412064310.24E9A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:43:10 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: detect cm3 via CM3_VERSION From jkrell at elego.de Sun Apr 12 08:54:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:54:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412065408.9BF6C60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:54:08 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: use cm3 quake built in datenow() instead of Unix date This fixes problems on NT. Granted, before it was printing: Sat Apr 11 23:52:50 PDT 2009 and now it prints: 2009-04-12 06:51:38 should be ok. From jkrell at elego.de Sun Apr 12 09:08:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412070844.134B360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:08:43 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: executables were missing Uconstants.c; also add in other switches that libraries had that executables did not -- -disable-auto-import, -disable-runtime-pseudo-reloc whatever that is, -large-address-aware (large means >2gig, and has no meaning on .dlls, only .exes); found via warnings building cvsupd on cygwin From jkrell at elego.de Sun Apr 12 09:10:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:10:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412071039.45F7760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:10:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Usignal.i3 Uconstants.c Log message: add SIGHUP and SIGTERM, portable, for cvsup client From jkrell at elego.de Sun Apr 12 09:14:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:14:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412071437.DE26960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:14:37 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: don't link Uconstants.obj into standalone executables, that is redundant with m3core.lib.sa and produces errors about duplicate symbols (though this seems like dubious behavior by GNU ld to me -- objects in libs only get pulled in if they resolved something, and loose objs are always pulled in, so there's no reason to get that object and find the duplicates..granted..it is also bad/ambiguous to have duplicates but rely on this behavior to 'hide' them From jkrell at elego.de Sun Apr 12 09:21:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:21:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412072114.5179560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:21:14 Modified files: cm3/m3-tools/cvsup/client/src/: FSClient.m3 m3makefile cm3/m3-tools/cvsup/server/src/: FSServer.m3 FSServerRep.i3 m3makefile cm3/m3-tools/cvsup/suplib/src/: ChannelMux.i3 ChannelMux.m3 SigHandler.m3 m3makefile cm3/m3-tools/cvsup/suptcp/src/common/: TCPMisc.i3 m3makefile Log message: per Olaf's dccs (thanks!): SupTCP => TCP SupConnRW => ConnRW import(suptcp) => import(tcp) SupErrno => Cerrno SupConnFD => ConnFD the suptcp directory is dead, and adapt to Uerror having variables instead of constants cvsupd.exe (server) and cvsup.exe can now build on cygwin. Testing them is another matter. From jkrell at elego.de Sun Apr 12 09:34:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:34:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412073415.2D16360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:34:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/aix-3-2/: m3makefile cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: m3makefile cm3/m3-libs/m3core/src/unix/darwin-generic/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-1/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-2/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-3/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile cm3/m3-libs/m3core/src/unix/hpux-7-0/: m3makefile cm3/m3-libs/m3core/src/unix/ibm-4-3/: m3makefile cm3/m3-libs/m3core/src/unix/irix-5.2/: m3makefile cm3/m3-libs/m3core/src/unix/linux/: m3makefile cm3/m3-libs/m3core/src/unix/linux-libc6/: m3makefile cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile cm3/m3-libs/m3core/src/unix/os2/: m3makefile cm3/m3-libs/m3core/src/unix/osf-1.generic/: m3makefile cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile cm3/m3-libs/m3core/src/unix/sunos-4-x/: m3makefile cm3/m3-libs/m3core/src/unix/sysv-4.0/: m3makefile cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: m3makefile Log message: give all platforms common altered Ugrp.i3 This isn't tested, but given that common had no Ugrp.i3, odds are high that no code (except cvsup) depends on it. From jkrell at elego.de Sun Apr 12 09:58:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:58:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412075829.7C48460C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:58:29 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: Take Olaf's dccs code for finding libz. From jkrell at elego.de Sun Apr 12 10:06:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:06:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412080631.8052560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:06:31 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: The world is not yet ready for position independent executables, instead of the small amount of extra security they offer, we have probably-over-optimized non-relocatable libs. e.g. /usr/lib/libz.a on new Birch. (besides that, it would be nice to be able to statically link libz.a into a position independent shared library; personally I'd just as soon have no position dependent code at all) From jkrell at elego.de Sun Apr 12 10:57:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412085700.E307960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:57:00 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-4/: Uucontext.i3 Log message: change Utypes.u_long to Ctypes.unsigned_long because I omitted the first, maybe should put it back From jkrell at elego.de Sun Apr 12 10:57:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:57:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412085751.432E860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:57:51 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: FileAttrOS.i3 Log message: change Utypes.u_long to Ctypes.unsigned_long because I omitted the first, maybe should put it back From jkrell at elego.de Sun Apr 12 11:34:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 11:34:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412093400.7F4C760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 11:34:00 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Ustat.i3 UstatC.c m3unix.h Log message: For Darwin, FreeBSD, OpenBSD, NetBSD, add chflags, fchflags, and variables holding the possible values. We should see if some of the flags are common and long standing and remove the #ifdefs for them. cvsup knows about these flags on FreeBSD, at least to get/set them, and it could be improved to handle the other platforms. From jkrell at elego.de Sun Apr 12 11:56:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 11:56:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412095605.4CEA460C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 11:56:05 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Ustat.i3 Log message: add UF_SETTABLE, SF_SETTABLE, comments From jkrell at elego.de Sun Apr 12 12:01:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:01:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100151.0551660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:01:50 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: extent FreeBSD source to all architectures/FreeBSD, extend chflags/fchflags to *BSD, Darwin, From jkrell at elego.de Sun Apr 12 12:02:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:02:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100254.DEFB360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:02:54 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: don't extend this beyond FreeBSD (should move the chflags/fchflags code into another directory) From jkrell at elego.de Sun Apr 12 12:05:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:05:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100531.16DB660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:05:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix typo on *BSD, Darwin From jkrell at elego.de Sun Apr 12 12:31:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:31:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412103124.556F160C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:31:24 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: fix for non-FreeBSD platforms that have chflags/fchflags (e.g. Darwin) From jkrell at elego.de Sun Apr 12 13:00:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:00:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110029.0A4FF60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:00:26 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: m3makefile Log message: only import libutil on FreeBSD; a bit misfatored around here, my fault From jkrell at elego.de Sun Apr 12 13:01:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:01:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110125.9A07B60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:01:25 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: always foist -lz into SYSTEM_LIBS{LIBC} as comment elsewhere suggests From jkrell at elego.de Sun Apr 12 13:02:21 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:02:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110221.3195C60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:02:21 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: add AMD64_DARWIN and add comment about cvsup.quake putting in -lz -- the probe for the lib is still useful here so that we can error clearly if not found..slightly more early/clear than going ahead with link -lz..really? maybe not From jkrell at elego.de Sun Apr 12 13:18:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:18:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412111854.B4C9660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:18:54 Modified files: cm3/m3-tools/cvsup/client/src/: m3makefile cm3/m3-tools/cvsup/server/src/: m3makefile cm3/m3-tools/cvsup/suplib/src/: m3makefile Added files: cm3/m3-tools/cvsup/client/src/: m3overrides cm3/m3-tools/cvsup/server/src/: m3overrides Log message: move overrides to overrides file, so we can ship change lowercase program to capital Program so the programs ship to cm3install/bin; is there a reason why not? From jkrell at elego.de Sun Apr 12 13:56:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:56:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412115659.E5DC760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:56:59 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 Log message: remove unused uint16_t import From jkrell at elego.de Sun Apr 12 13:57:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:57:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412115710.764C960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:57:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile Log message: switch FreeBSD4 (x86) to new smaller more portable Unix/*.i3 files, plus leaving some of the signal/context stuff for user threads I386_DARWIN and AMD4_DARWIN are the only active platforms remaining with more complete target-specific Unix/*.i3 From jkrell at elego.de Sun Apr 12 14:14:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 14:14:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412121426.6F10A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 14:14:26 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: FreeBSD4 Log message: update locations of odbc and postgres -- where the 'ports' install them From jkrell at elego.de Sun Apr 12 21:35:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 21:35:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412193500.9517A60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 21:35:00 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: remove -as-needed here until I understand why it breaks Linux/x86 From jkrell at elego.de Sun Apr 12 21:37:53 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 21:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412193753.E064B60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 21:37:53 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: comments only, about disabling -as-needed and -pie From jkrell at elego.de Mon Apr 13 10:50:53 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 10:50:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413085053.ACE5D60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 10:50:53 Modified files: cm3/m3-sys/cm3/src/: Makefile.m3 Log message: expose the -override aka -x switch through new global M3_USE_OVERRIDES that is always defined, to be TRUE or FALSE (calling it M3_OVERRIDE or M3_OVERRIDES would also be reasonable); do this easly enough such that the central cm3.cfg can see it; a lot of processing happens after cm3.cfg (such as reading of defines from the command line, deciding if we are doing build or ship..); this will let cm3.cfg chose like runpath=$ORIGIN/../lib or INSTALL_ROOT/lib or big path to output directory From jkrell at elego.de Mon Apr 13 12:37:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 12:37:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413103710.82D9A60C157@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 12:37:10 Modified files: cm3/m3-sys/cm3/src/: Makefile.m3 Log message: "FALSE" is TRUE "" is FALSE use "" From jkrell at elego.de Mon Apr 13 12:55:50 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 12:55:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413105551.040C760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 12:55:50 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: FreeBSD4 Log message: working experiment/prototype for issue of "how to find dependent shared paths" vs. "do uninstalled binaries work" vs. buildlocal vs. buildglobal There are many possibilities. This implements the following. Note that libm3 is the easiest file to experiment with. m3core has no dependencies, libm3 is dependent only on m3core. ---- prepare, build m3core and libm3 cd $CVSROOT/m3-libs/m3core /cm3/bin/cm3 cd ../libm3 /cm3/bin/cm3 ---- show some scenarios ---- regular cm3 with no switches/env -- "buildglobal" rm FreeBSD4/*a /cm3/bin/cm3 objdump -x FreeBSD4/libm3.so | grep PATH RPATH $ORIGIN/../lib:$ORIGIN/../../lib:$ORIGIN/../../../lib:/cm3/bin/../lib The resulting file is generally machine portable and in a pinch contains a full local path to libraries. Or in a worse pinch, LD_LIBRARY_PATH will still work. That is, if you install it to cm3installroot/bin or cm3installroot/pkg/package/target, it will find dependendent libraries via $ORIGIN. If you installed it elsewhere or leave it uninstalled, it will still most likely find the exactly correct file, still with a short rpath. Note that this "../../../lib" business is a little sloppy. 1) ../../lib preceding it is some "insurance", but not much 2) better slower insurance would be to use $ORIGIN/../pkg/m3core/target/../../../lib $ORIGIN/../../../pkg/m3core/target/../../../lib If you assume dots are not smushed out early, as they generally aren't on Unix (but they generally are on Windows), then this kind of makes sure the directory structure is as expected by walking through known must-exist directories. What would be even better along these lines is knowing the finall install point of the file and compute the exact relative path to the cm3 installed libraries. For cm3 itself, this will yield just one of $ORIGIN/../lib or $ORIGIN/../../../lib. For files installed arbitrarily elsewhere, this would be otherwise. Consider for example: /opt/cm3/lib/libm3core.so /opt/package-written-in-modula3/bin/foo There you would want $ORIGIN/../../cm3/lib. This exact computation of relative path for installroot/lib should probably be implemented, very soon. It would also be nice if runpath could read like if CM3_INSTALL defined, runpath=$CM3_INSTALL/lib. but it cannot. ---- buildlocal aka with "overrides" rm FreeBSD4/*a /cm3/bin/cm3 -override objdump -x FreeBSD4/libm3.so | grep PATH RPATH /dev2/cm3/m3-libs/m3core/FreeBSD4 This gives you an rpath entry for each dependent file, and they are each found directly, in their non-installed locations. This is the historical default. It gives you a long runpath. Almost nobody noticed. It requires that extra switch -override or -x, but gives you binaries that do work without installing, but are not particularly machine portable and again, long runpath. ---- buildglobal with an extra option rm FreeBSD4/*a M3_PORTABLE_RUN_PATH=1 /cm3/bin/cm3 objdump -x FreeBSD4/libm3.so | grep PATH RPATH $ORIGIN/../lib:$ORIGIN/../../lib:$ORIGIN/../../../lib This is the same rpath as the first, but containing only the $ORIGIN entries and omitting the last exact full path. This is good for building machine-portable archives. Again, a more precise origin to lib path should be computed, thereby going from three paths to one. A command line switch for M3_PORTABLE_RUN_PATH should probably be invented. It is hard to name this thing though. ---- This does not fit all scenarios easily or automatically, unfortunately. However it does seem like a good mix of compromises. Main thing to still do is compute relative path for $ORIGIN to cm3installroot/lib. Might be trivial with path_of(). ---- From jkrell at elego.de Mon Apr 13 13:57:11 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 13:57:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413115711.46C7F60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 13:57:11 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: Unix.common cm3cfg.common Log message: move skip_link to common code From jkrell at elego.de Mon Apr 13 14:05:49 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 14:05:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413120549.E9EBA60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 14:05:49 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: fix for moving skip_link From jkrell at elego.de Mon Apr 13 14:12:41 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 14:12:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413121241.66D6360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 14:12:41 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: fix for moving skip_link From wagner at elego.de Tue Apr 14 12:30:49 2009 From: wagner at elego.de (Olaf Wagner) Date: Tue, 14 Apr 2009 12:30:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090414103049.A947860C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/14 12:30:49 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 OS.i3 OS.m3 OSPOSIX.m3 Log message: improved disk space support modified: cminstall/src/Main.m3 modified: cminstall/src/OS.i3 modified: cminstall/src/OS.m3 modified: cminstall/src/OSPOSIX.m3 From wagner at elego.de Tue Apr 14 12:32:58 2009 From: wagner at elego.de (Olaf Wagner) Date: Tue, 14 Apr 2009 12:32:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090414103258.9B30760C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/14 12:32:58 Modified files: cm3/scripts/: make-bin-dist-min.sh Log message: disk space support and naming changes From jkrell at elego.de Wed Apr 15 13:02:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:02:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415110206.86F9460C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:02:06 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: just alwys use CM3 From jkrell at elego.de Wed Apr 15 13:09:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:09:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415110955.B02EC60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:09:55 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: SupTCPHack.m3 Log message: dead code: presumably fix for big endian 64bit systems -- use int instead of INTEGER From jkrell at elego.de Wed Apr 15 13:11:00 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:11:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415111100.23DC560C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:11:00 Added files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: make_diffable.cmd Log message: dead code: make it easier to compare with mainline From jkrell at elego.de Wed Apr 15 13:13:59 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:13:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415111359.BBB5A60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:13:59 Added files: cm3/m3-tools/cvsup/suptcp/src/common/: make_diffable.cmd Log message: make this diffable with mainline too (they appear to already match) From jkrell at elego.de Wed Apr 15 13:41:20 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:41:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415114120.9F9CB60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:41:20 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h cm3/m3-libs/m3core/src/unix/uin-common/: Uin.i3 cm3/m3-libs/m3core/src/unix/uin-len/: Uin.i3 Added files: cm3/m3-libs/m3core/src/unix/Common/: Uin.c Log message: #include what we can for windows reorder includes sys first, then alphabetical; if this breaks, reorder to make it work implement ntohs, etc. in C This is just a little more portable and maybe just a little faster. To wit, the tcp library even wrap these up. Let's undo that shortly, saving a layer. From jkrell at elego.de Wed Apr 15 14:48:57 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:48:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415124857.1627560C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:48:57 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c UerrorX.h Uexec.c Ugrp.c Uin.c Umman.c Unix.i3 UnixC.c UstatC.c Uucontext.c m3makefile m3unix.h Log message: A lot of this works pretty directly with the MS C runtime, so #ifdef to let a lot through there, while blocking other. From jkrell at elego.de Wed Apr 15 14:52:02 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:52:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125202.6D91C60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:52:02 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: use the correct types, which lets is compiler fo Win32 too From jkrell at elego.de Wed Apr 15 14:55:18 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:55:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125518.6535A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:55:18 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Log message: use correct type From jkrell at elego.de Wed Apr 15 14:56:04 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125604.DF52160C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: use correct type From jkrell at elego.de Wed Apr 15 14:56:37 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125637.81CD460C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 14:56:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125656.81E1760C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 14:58:25 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:58:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125825.7AAF460C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:58:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 16:14:10 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 16:14:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415141410.9C13A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 16:14:10 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: reformat one tiny function somewhat From jkrell at elego.de Wed Apr 15 16:20:11 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 16:20:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415142011.CCF5E1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 16:20:11 Modified files: cm3/m3-tools/cvsup/suplib/src/: CVTree.m3 Ugzip.m3 Log message: SchedulerPosix => Scheduler (adapt closely to cm3 and without regard to other versions/distributions or minimizing the diff to them) From jkrell at elego.de Wed Apr 15 21:34:21 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 21:34:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415193421.64E7560C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 21:34:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Uin.c Log message: fix -- matching names, double underscores From jkrell at elego.de Thu Apr 16 22:49:37 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 16 Apr 2009 22:49:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090416204937.3A00A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/16 22:49:37 Modified files: cm3/m3-libs/m3core/src/thread/: m3makefile Log message: twitch cygwin over to win32 threads but test case: p007 --- a whole bunch of threads - does the memory grow ? still hangs From jkrell at elego.de Sun Apr 19 04:10:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 19 Apr 2009 4:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090419021013.40D5BCC7DC@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/19 04:10:13 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: very minor update to criticalsection and image flags From hosking at elego.de Mon Apr 20 08:41:15 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 20 Apr 2009 8:41:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420064115.3936ECC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/20 08:41:15 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's clean things up a little and make easier to diff with prior versions. From hosking at elego.de Mon Apr 20 09:09:51 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 20 Apr 2009 9:09:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420070951.AD33CCC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/20 09:09:51 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 Log message: Ignore low-bit tagged pseudo-references. From jkrell at elego.de Mon Apr 20 09:58:37 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 9:58:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420075837.67250CC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 09:58:37 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: no need for DisableSwitch/EnableSwitching here -- they are implemented nearby and do nothing From jkrell at elego.de Mon Apr 20 10:14:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 10:14:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420081421.66EC9CC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 10:14:21 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: use denser style like the Modula-3 code From jkrell at elego.de Mon Apr 20 12:34:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 12:34:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420103409.D927BCC7DE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 12:34:09 Modified files: cm3/m3-ui/m3zume/src/: m3makefile Log message: build_standalone From jkrell at elego.de Mon Apr 20 15:05:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:05:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420130507.A731DCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:05:07 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: fix C++ warning -- signal returns a function pointer not a void pointer From jkrell at elego.de Mon Apr 20 15:09:27 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:09:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420130927.6F287CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:09:27 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 m3makefile Added files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: convert more code to C This trades some thin C wrappers for more code in C but with a general reduction in "wrappers". In particular, users of thin wrappers are written in C. It is NOT clearly worthwhile. The wrappers that are gone are: pthread_setspecific_activations heapCond wrappers heapMu wrappers The functions that are now implemented in C for pthreads are: GetActivation SetActivation (and new SetActivationUnsafeFast, when initialization must have already occured) PushEFrame PopEFrame GetCurrentHandlers SetCurrentHandlers LockHeap UnlockHeap BroadcastHeap WaitHeap posix and Win32 vary somewhat. Win32 C: GetActivation SetActivation PushEFrame PopEFrame GetCurrentHandlers SetCurrentHandlers LockHeap UnlockHeap BroadcastHeap, but it just calls back to the Modula-3 WaitHeap, but it just calls back to the Modula-3 posix user threads: PushEFrame -- just due it being extern, calls back to the Modula-3 PopEFrame -- just due it being extern, calls back to the Modula-3 On the Win32 side, there is also a reduction in dependency on cloned headers, particularly the static allocation of CRITICAL_SECTION, though this is an area (Win32 cloned headers) I've generally left alone and probably will continue to. Win32 in a sense has multiplicity comparable to Posix: 3 kernels: 9x, NT, CE but 9x is only x86 and is binary compatible with NT/x86 CE is not binary compatible with 9x/NT, but does have processor overlap (at least, .dll names change) many processors: x86, AMD64, ARM (CE), PowerPC (historical NT, CE, Xbox360), Alpha (historical), MIPS (historical NT, current CE?), SH (CE), Itanium, SH (CE), I860 (never shipped?) 32bit and 64bit but it seems like less of a problem? Well, Modula-3 has only ported to Win32/x86 so far.. On the Win32 side this is just a step short of eliminating a thread local that has already been eliminated from the pthread side (ie: activation vs. handlers -- store the handlers stack in the activation). (Probably no point for posix user threads.) some "vertical compression" wrt #ifdef apple some name compression wrt "handle" From jkrell at elego.de Mon Apr 20 15:28:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:28:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420132821.7D4CBCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:28:21 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h Log message: Forgot to add file From jkrell at elego.de Mon Apr 20 15:34:22 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:34:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420133422.D70D4CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:34:22 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: Sun cc interpets -shared as a bunch of single character options, you get warnings like -s conflicts with -g, -s disabled -h encountered multiple times, first one wins From jkrell at elego.de Mon Apr 20 15:36:02 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:36:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420133602.C93FACC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:36:02 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h Log message: add #include stddef.h for some systems to get ptrdiff_t (Linux) From jkrell at elego.de Mon Apr 20 16:04:08 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 16:04:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420140408.BFCD6CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 16:04:08 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 RTOS.i3 Log message: I forgot to check these in too. From jkrell at elego.de Mon Apr 20 16:20:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 16:20:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420142056.98EABCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 16:20:56 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTOS.i3 Log message: slight reformat new and recent content From hosking at elego.de Tue Apr 21 03:33:42 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:33:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421013343.202D7CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:33:42 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:36:22 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:36:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421013622.A37DDCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:36:22 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:42:23 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:42:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421014223.67DA4CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:42:23 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:45:38 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:45:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421014538.3EDA1CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:45:38 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:59:42 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:59:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421015942.94F72CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:59:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:02:09 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:02:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421020210.3A1CECC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:02:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:03:59 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:03:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421020359.D7858CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:03:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:15:07 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:15:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421021508.01DAECC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:15:07 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Tidier. From jkrell at elego.de Tue Apr 21 08:47:10 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:47:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421064710.AB4C2CC7EF@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:47:10 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: huh oops, remove two out of three duplicates From jkrell at elego.de Tue Apr 21 08:34:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:34:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421063456.A2431CC7E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:34:56 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 RTOS.i3 cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: go back mostly to yesterday put back the thin C wrappers and more Modula-3 code Only small change that I think survives: indentation (columns) on #defines in ThreadPosixC.c From jkrell at elego.de Tue Apr 21 08:54:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:54:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421065406.578DECC7F5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:54:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 Log message: move this back too From jkrell at elego.de Tue Apr 21 08:52:14 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:52:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421065215.10DCDCC7F3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:52:14 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: try again, I must not have switched cygwin to pthreads when testing this From jkrell at elego.de Tue Apr 21 09:48:31 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 9:48:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421074831.DF81BCC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 09:48:31 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove unused Scheduler import From jkrell at elego.de Tue Apr 21 09:56:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 9:56:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421075649.B91FDCC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 09:56:49 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: some reformatting From jkrell at elego.de Tue Apr 21 11:24:11 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 11:24:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421092411.B4F91CC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 11:24:11 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: eliminate a thread local as was done for pthread including moving initialization out of the module initializer that runs pretty late and into code that the runtime startup calls explicitly also flatten various two level names From jkrell at elego.de Tue Apr 21 11:57:00 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 11:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421095700.70824CC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 11:57:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: make sure that Self() returns NIL instead of initializing on-demand speed up PopEFrame by removing check for initialization, since PushEFrame must have already done it From jkrell at elego.de Tue Apr 21 13:02:12 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 13:02:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421110213.1F37ECC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 13:02:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile Added files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: Experimentally transform like pthread and move the criticalsections and threadlocal to C and wrap thinly. This hides from Modula-3 the need to know the size of a critical section, though this seems like a smaller problem on the single vendor few kernel Win32 (NT, CE, and NT and 9x are binary compatible) than the multi vendor many kernel Posix. There are other cloned header dependencies here not factored into C (SuspendThread, ResumeThread, MEMORY_BASIC_INFO, etc.) Note that Modula-3 does and long has done leak its criticalsections and threadlocals. We should probably address that. More generally there should perhaps be module destructors, though like Win32 it helps to know the ExitProcess() vs. FreeLibrary case. In ExitProcess() it is a waste of time and to try to cleanup whereas in FreeLibrary is a is good idea to cleanup. EnterCriticalSection(foo) => EnterCriticalSection_foo() likewise for LeaveCriticalSection TlsGetValue TlsSetValue InitializeCriticalSection and TlsAlloc bundled into InitC. Logic for TlsGetValue_foo() before TlsAlloc_foo() buried in TlsGetValue_foo(). In future, in Vista-specific code, besides condition variables, we can use __declspec(thread) or such. (Posix/gcc platforms should use __thread..and more generally, no matter the deficient underyling platforms, Modula-3 should consider <*threadlocal*>) From hosking at cs.purdue.edu Wed Apr 22 02:05:44 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 22 Apr 2009 10:05:44 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090421110213.1F37ECC7DA@birch.elegosoft.com> References: <20090421110213.1F37ECC7DA@birch.elegosoft.com> Message-ID: <482DD773-E9E4-4C1B-BEAD-A934CD0836CE@cs.purdue.edu> I believe gcc has some threadlocal declaration mechanisms too that we might exploit from C. On 21 Apr 2009, at 13:02, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/21 13:02:12 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > Added files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32C.c > > Log message: > Experimentally transform like pthread and move the criticalsections > and threadlocal > to C and wrap thinly. > > This hides from Modula-3 the need to know the size of a critical > section, though > this seems like a smaller problem on the single vendor few kernel > Win32 (NT, CE, > and NT and 9x are binary compatible) than > the multi vendor many kernel Posix. There are other cloned header > dependencies here > not factored into C (SuspendThread, ResumeThread, > MEMORY_BASIC_INFO, etc.) > > Note that Modula-3 does and long has done leak its criticalsections > and threadlocals. > We should probably address that. > More generally there should perhaps be module destructors, though > like Win32 > it helps to know the ExitProcess() vs. FreeLibrary case. In > ExitProcess() > it is a waste of time and to try to cleanup whereas in FreeLibrary > is a is good idea > to cleanup. > > EnterCriticalSection(foo) => EnterCriticalSection_foo() > likewise for > LeaveCriticalSection > TlsGetValue > TlsSetValue > InitializeCriticalSection and TlsAlloc bundled into InitC. > Logic for TlsGetValue_foo() before TlsAlloc_foo() buried in > TlsGetValue_foo(). > > In future, in Vista-specific code, besides condition variables, we > can use __declspec(thread) or such. > (Posix/gcc platforms should use __thread..and more generally, no > matter the deficient underyling > platforms, Modula-3 should consider <*threadlocal*>) From hosking at elego.de Wed Apr 22 09:54:31 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 22 Apr 2009 9:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090422075431.A8BF5CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/22 09:54:31 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 RTHeapRep.i3 Log message: Cleanup allocation sequences. Improve efficiency of Clone. From mika at elego.de Fri Apr 24 18:22:47 2009 From: mika at elego.de (Mika Nystrom) Date: Fri, 24 Apr 2009 18:22:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090424162247.3A1A1CC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/24 18:22:47 Modified files: cm3/m3-libs/libbuf/src/: Wx.m3 Log message: PM3's NEW (TEXT, n) should be Text8.Create(n-1) in CM3. (Compare same stretch of code from PM3.) From jkrell at elego.de Sat Apr 25 00:12:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 25 Apr 2009 0:12:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090424221210.7248BCC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/25 00:12:10 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: remove C++ style -- don't need the intermediates anyway From mika at elego.de Sat Apr 25 10:03:08 2009 From: mika at elego.de (Mika Nystrom) Date: Sat, 25 Apr 2009 10:03:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090425080309.08845CC3D7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/25 10:03:08 Modified files: cm3/m3-comm/stubgen/src/: Type.m3 Log message: added missing initialization of widechar From mika at elego.de Sat Apr 25 23:44:51 2009 From: mika at elego.de (Mika Nystrom) Date: Sat, 25 Apr 2009 23:44:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090425214451.59BCCCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/25 23:44:51 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Fixed a long-standing gap in M3CBackEnd_C: constants FIRST(t), LAST(t) for t REAL, LONGREAL, EXTENDED. They now return the correct values of the correct types rather than, as before, integer 0. From jay.krell at cornell.edu Tue Apr 28 13:23:31 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 11:23:31 +0000 Subject: [M3commit] test Message-ID: ... From jkrell at elego.de Tue Apr 28 14:29:39 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 14:29:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428122940.0D93ECC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 14:29:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add system(), probably a good alternative for Olaf's diskspace checks (and it is portable to older cm3 releases) From jkrell at elego.de Tue Apr 28 14:42:40 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 14:42:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428124240.7B5A0CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 14:42:40 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add isatty and truncate(const char* filepath) (msvcrt does have ftruncate(int file, long size), but limited to 2gig) From jkrell at elego.de Tue Apr 28 15:04:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 15:04:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428130454.D88E6CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 15:04:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c m3unix.h Log message: add more wrappers, and fix readlink to traffic in INTEGER (aka ssize_t) instead of int (note that the standard has changed here) From jkrell at elego.de Tue Apr 28 15:38:44 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 15:38:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428133844.4E525CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 15:38:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 Log message: Remove at least one instance of PushEFrame from early initialization. You know, maybe PushEFrame can avoid doing initialization on-demand and we can instead initialize things a little more deliberately in an order that works, maybe. Win32 and pthreads do in on-demand but user threads doesn't yet, maybe we can fix it and then optimize the others slightly. #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, M3_AcxOUs_n_bytes=4) at ../src/runtime/common/RTType.m3:815 #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/runtime/common/RTType.m3:724 #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, M3_AcxOUs_key=-1025633461, M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, M3_DjPxE3_m=0x80ac9c0) at ../src/runtime/common/RTType.m3:163 #5 0x08077395 in RTLinker__DeclareModuleTypes (M3_DjPxE3_m=0x80ac9c0) at ../src/runtime/common/RTLinker.m3:280 #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/RTLinker.m3:234 #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:112 #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) at ../src/runtime/common/RTLinker.m3:122 #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfec84, M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:42 #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) at _m3main.mc:3 From jkrell at elego.de Tue Apr 28 16:08:43 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428140843.AC1F7CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:08:43 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: fix another case where PushEFrame is called before ThreadF.Init is called That causes user threads to crash; pthreads and ntthreads work via arguably poor on-demand initialization (which is also related to why they can't use NEW where the used to) see revision 14 move GetGCRatio to later; that appears to be ok, right? (gdb) bt #0 0x08089570 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb90) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x0807581e in RTCollector__GetGCRatio () at ../src/runtime/common/RTCollector.m3:2802 #2 0x08075650 in RTHeapRep__Init () at ../src/runtime/common/RTCollector.m3:2769 #3 0x08076a87 in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfec84, M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:58 #4 0x0804af30 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) at _m3main.mc:3 From jkrell at elego.de Tue Apr 28 16:20:44 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:20:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428142044.642B4CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:20:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: module initializer is too late also, remove GetGCRatio for now Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x28201100 (LWP 100094)] 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) at ../src/thread/POSIX/ThreadPosix.m3:1599 1599 f.next := self.context.handlers; (gdb) bt #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/common/RTCollector.m3:2801 #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/runtime/common/RTCollector.m3:2883 #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:399 #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:113 #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) at ../src/runtime/common/RTLinker.m3:122 #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfecec, M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:42 #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) at _m3main.mc:3 (gdb) From jkrell at elego.de Tue Apr 28 16:23:39 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:23:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428142339.6B930CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:23:39 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: put userthreads in m3coreuserthreads.so (even if this is the only thread implementation for the platform) This isn't likely the right long term solution, there seems to be an interface incompatibility between the two (I /really/ think IF user threads are to exist, they should be in the same .so and switch function pointers during initialization...) From jkrell at elego.de Tue Apr 28 16:50:23 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:50:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428145023.8CE4DCC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:50:23 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: move expensive TRY out of fast allocation path (still, ThreadF.Init attempts the first allocation and goes down this path and crashes, still being pondered, but this change should speed up allocation-intensive scenarios) From jkrell at elego.de Tue Apr 28 17:28:42 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 17:28:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428152842.57AB7CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 17:28:42 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: go back a version; something similar will be done instead that gets the same perf benefit and fixes the crash -- the raise will be moved out of LongAlloc to its two callers From jkrell at elego.de Tue Apr 28 17:52:15 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 17:52:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428155215.A8460CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 17:52:15 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: move pusheframe out of the success paths (not just the fast paths), thereby letting userthreads progress much further, without giving in and making PushEFrame initialize on demand; this should speed up allocation-intensive scenarios for all threading models; userthreads now gets as far as..the initialization code for the current version appears to never have been finished From jkrell at elego.de Tue Apr 28 18:03:41 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 18:03:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428160341.B4067CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 18:03:41 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 Log message: initialize heapCond, now userthreads works at least well enough that m3bundle in do-cm3-std.py doesn't crash From jkrell at elego.de Tue Apr 28 18:39:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 18:39:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428163946.15507CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 18:39:46 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: twitch I386_FREEBSD to user threads for a few days From hosking at cs.purdue.edu Tue Apr 28 23:45:51 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:45:51 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428142044.642B4CC3B6@birch.elegosoft.com> References: <20090428142044.642B4CC3B6@birch.elegosoft.com> Message-ID: <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Huh? Don't let dubious premature optimizations distort the code base.... On 28 Apr 2009, at 16:20, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 16:20:44 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 > > Log message: > module initializer is too late also, remove GetGCRatio for now > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x28201100 (LWP 100094)] > 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > 1599 f.next := self.context.handlers; > (gdb) bt > #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ > common/RTCollector.m3:2801 > #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ > runtime/common/RTCollector.m3:2883 > #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:399 > #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:113 > #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) > at ../src/runtime/common/RTLinker.m3:122 > #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, > M3_AJWxb1_p_argv=0xbfbfecec, > M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ > runtime/common/RTLinker.m3:42 > #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) > at _m3main.mc:3 > (gdb) From hosking at cs.purdue.edu Tue Apr 28 23:44:50 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:44:50 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428133844.4E525CC3B6@birch.elegosoft.com> References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: I don't care if there are extra instances of PushEFrame at startup. Let's improve performance of steady-state rather than bootstrapping. On 28 Apr 2009, at 15:38, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 15:38:44 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 > > Log message: > Remove at least one instance of PushEFrame from early initialization. > You know, maybe PushEFrame can avoid doing initialization on-demand > and we can instead initialize things a little more deliberately > in an order that works, maybe. Win32 and pthreads do in on-demand > but user threads doesn't yet, maybe we can fix it and then optimize > the others slightly. > > #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, > M3_AcxOUs_n_bytes=4) > at ../src/runtime/common/RTType.m3:815 > #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ > runtime/common/RTType.m3:724 > #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, > M3_AcxOUs_key=-1025633461, > M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 > #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, > M3_DjPxE3_m=0x80ac9c0) > at ../src/runtime/common/RTType.m3:163 > #5 0x08077395 in RTLinker__DeclareModuleTypes > (M3_DjPxE3_m=0x80ac9c0) > at ../src/runtime/common/RTLinker.m3:280 > #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ > RTLinker.m3:234 > #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:112 > #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) > at ../src/runtime/common/RTLinker.m3:122 > #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, > M3_AJWxb1_p_argv=0xbfbfec84, > M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ > runtime/common/RTLinker.m3:42 > #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) > at _m3main.mc:3 From hosking at cs.purdue.edu Tue Apr 28 23:46:48 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:46:48 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428142339.6B930CC3B6@birch.elegosoft.com> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> Message-ID: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Huh? I thought we decided against this... On 28 Apr 2009, at 16:23, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 16:23:39 > > Modified files: > cm3/m3-libs/m3core/src/: m3makefile > > Log message: > put userthreads in m3coreuserthreads.so (even if this is the only > thread implementation for the platform) > This isn't likely the right long term solution, there seems to be an > interface incompatibility between the two (I /really/ think IF user > threads are to exist, they should be in the same .so and switch > function pointers during initialization...) From jay.krell at cornell.edu Wed Apr 29 00:53:11 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 22:53:11 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> References: <20090428142044.642B4CC3B6@birch.elegosoft.com> <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Message-ID: [oops, addressing a larger point that maybe wasn't made] I think getting the TRY out of fast paths is good even for after initialization. Getting TRY out of even the slow paths is "needed" for initialization to not crash, unless you contort other code, **for some subjective definition of contortion**. If you leave try in the slow allocation path, then ThreadF.Init cannot use NEW and/or PushEFrame has to do on-demand initialization -- like how pthread and win32thread are now, but weren't for a long time and how userthread isn't. With the RTCollector.m3 changes, ThreadPthread.m3 and ThreadWin32.m3 should be able to go back to their historical arguably nicer slightly more efficient form, where GetActivation does not initialize and where initialize uses regular NEW. It is a tradeoff either way. Another idea that I considered is to initialize the allocator a little "better" such that the first allocation goes down a fast path. But I couldn't come up with a nice way to do that. Surely we agree getting TRY out of the fast path is reasonable? I also considered reordering RTLinker.m3 or breaking up pieces but avoided those. Avoiding TRY/RAISE/ is a bit contorted but to some extent unavoidable since they rely on initialization. __thread might help here too but I doubt we'll ever rely on that completely. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:45:51 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Huh? Don't let dubious premature optimizations distort the code > base.... > > On 28 Apr 2009, at 16:20, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 16:20:44 >> >> Modified files: >> cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 >> >> Log message: >> module initializer is too late also, remove GetGCRatio for now >> >> Program received signal SIGSEGV, Segmentation fault. >> [Switching to Thread 0x28201100 (LWP 100094)] >> 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> 1599 f.next := self.context.handlers; >> (gdb) bt >> #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ >> common/RTCollector.m3:2801 >> #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ >> runtime/common/RTCollector.m3:2883 >> #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:399 >> #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:113 >> #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) >> at ../src/runtime/common/RTLinker.m3:122 >> #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >> M3_AJWxb1_p_argv=0xbfbfecec, >> M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ >> runtime/common/RTLinker.m3:42 >> #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) >> at _m3main.mc:3 >> (gdb) > From jay.krell at cornell.edu Wed Apr 29 00:57:41 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 22:57:41 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: This occurs before ThreadF.Init(). (err, not clear from below, but I think so). Would you rather that ThreadF.Init() do initialization on demand, as pthread and win32thread currently do, and PushEFrame forever have to check for that case and ThreadF.Init continue to avoid NEW(), as it currently does? It isn't great either way but I think this is the preferable path. Code has to be contorted to avoid circularities.. try/raise/ depend on some initialization unfortunately. We'll trade contortions. Avoid try/raise/ in a few places, get back to not having on-demand initialization nor having to use calloc directly in place of NEW. PushEFrame will be slightly faster for all callers, not just during initialization. But just very slightly. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:44:50 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I don't care if there are extra instances of PushEFrame at startup. > Let's improve performance of steady-state rather than bootstrapping. > > On 28 Apr 2009, at 15:38, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 15:38:44 >> >> Modified files: >> cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 >> >> Log message: >> Remove at least one instance of PushEFrame from early initialization. >> You know, maybe PushEFrame can avoid doing initialization on-demand >> and we can instead initialize things a little more deliberately >> in an order that works, maybe. Win32 and pthreads do in on-demand >> but user threads doesn't yet, maybe we can fix it and then optimize >> the others slightly. >> >> #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, >> M3_AcxOUs_n_bytes=4) >> at ../src/runtime/common/RTType.m3:815 >> #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ >> runtime/common/RTType.m3:724 >> #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, >> M3_AcxOUs_key=-1025633461, >> M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 >> #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, >> M3_DjPxE3_m=0x80ac9c0) >> at ../src/runtime/common/RTType.m3:163 >> #5 0x08077395 in RTLinker__DeclareModuleTypes >> (M3_DjPxE3_m=0x80ac9c0) >> at ../src/runtime/common/RTLinker.m3:280 >> #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ >> RTLinker.m3:234 >> #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:112 >> #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) >> at ../src/runtime/common/RTLinker.m3:122 >> #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >> M3_AJWxb1_p_argv=0xbfbfec84, >> M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ >> runtime/common/RTLinker.m3:42 >> #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) >> at _m3main.mc:3 > From jay.krell at cornell.edu Wed Apr 29 01:06:14 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 23:06:14 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: We didn't really decide. You insisted on no function pointers. I did nothing. As long as userthreads not working anyway, moot. I think the below is close to what you want, though I think in reality we should probably have m3-libs/m3coreuserthreads m3-libs/m3coreuserthreads/src/m3makefile USER_THREADS = TRUE or whatever include(../../m3core/m3makefile) always building two .so files. And then maybe have a quake directive that replaces m3core with m3coreuserthreads, and implies build_standalone, or something. Though that won't quite work I think, I'll see. But I still suspect one .so with both implementations is reasonable. Switchable with a command line option @M3userthreads, and a quake directive to alter the default (and offer @M3kernelthreads, we, well..cygwin for example could offer @M3win32threads and @M3pthreads, so maybe rename @M3kernelthreads to @M3pthreads). There is a certain level of inlining that I think should never be expected. Stuff that is dynamic linking should have not implementation details leaked across the dynamic link boundary. (For some definition of "implementation detail" though.. struct sizes do leak for example). If you are willing to dynamic link usually, then is it really interesting to have static linking be slightly faster? I'm not sure. Therefore, point being -- dynamic linking implies there is already a presence of function pointers (since dynamic linked function calls are always somehow indirect) and a lack of inlining. You might as well then have function pointers immediately on the "landing" site of the dynamically linked function calls that switch between userthreads and kernelthreads. Could be that there is an option to build more optimally where userthread option is omitted and kernelthreads unconditionally used -- that would be used currently for instance on Linux where userthreads don't work (though that might be fixed), and also on Win32 where user threads never worked and nobody asked for them (though they are fixable there -- fibers). I realize maybe there is a strong counteropinion, like, whatever inefficiences are implied by dynamic linking are to be "fought" against with aggressive/creative/even fragile optimization techniques. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:46:48 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Huh? I thought we decided against this... > > On 28 Apr 2009, at 16:23, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 16:23:39 >> >> Modified files: >> cm3/m3-libs/m3core/src/: m3makefile >> >> Log message: >> put userthreads in m3coreuserthreads.so (even if this is the only >> thread implementation for the platform) >> This isn't likely the right long term solution, there seems to be an >> interface incompatibility between the two (I /really/ think IF user >> threads are to exist, they should be in the same .so and switch >> function pointers during initialization...) > From jay.krell at cornell.edu Wed Apr 29 01:14:16 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 23:14:16 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: angle brackets again messed up, you have to imagine *fatal* occuring in a few places in my mail, with angle brackets.. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > > try/raise/ depend on some initialization unfortunately. > We'll trade contortions. Avoid try/raise/ in a few places, From jkrell at elego.de Wed Apr 29 01:21:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 1:21:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428232156.8E658CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 01:21:56 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: start of __thread use, not yet active From jay.krell at cornell.edu Wed Apr 29 02:06:02 2009 From: jay.krell at cornell.edu (Jay) Date: Wed, 29 Apr 2009 00:06:02 +0000 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: > I realize maybe there is a strong counteropinion, like, whatever > inefficiences are >implied by dynamic linking are to be "fought" > against with aggressive/creative/even fragile optimization techniques. I realize I argue for optimizing PushEFrame and for deoptimizing e.g. lock. PushEFrame is presumably more common...except that it probably occurs most often with lock? I don't know, I have no numbers. I'm not sure yet what to do here. Swapping .so files might or might not work. If it does, that's a step but doesn't enable everything. For example when I just switch compilation back and forth without "clean", I get errors about types missing. Maybe that'll occur at runtime, maybe not? Maybe these are different? Depends somewhat on what "reveal" does? Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, but loopholed to escape these problems?? ("These problems" are partly that I don't fully understand the Modula-3 object model, e.g. what does "reveal" do, at a low level? What does "brand" do, at a low level? I looked into it some and brand doesn't seem to affect objects at all, only out of band typeinfo.) Maybe just leave it as an option in m3core's m3makefile and people can twiddle it if they want and rebuild the entire system like it is today? That is a bit onerous, but maybe it's all userthreads deserve? ? Anyone who actually wanted to switch back and forth (Mika) would just have two installs and two source trees? - Jay From jkrell at elego.de Wed Apr 29 02:21:07 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 2:21:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429002107.C2BDCCC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 02:21:07 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: now that initialization is in better shape, go back to PushEFrame assumes initialization has already occured, else crashes. This should save a few cycles off functions that use try or lock. NEW used in InitActivations Could now use NEW/DISPOSE for mutexes/conditions also, ref array of char, but not yet (I just need to lookup syntax) (Tony prefers all allocations use NEW and not Cstdlib.calloc; calloc was used here before because NEW used TRY/RAISE, TRY/RAISED used PushEFrame, PushEFrame used NEW => circularity, fixed previously by having PushEFrame use calloc instead of NEW, now fixed by having NEW only use TRY/RAISE (just RAISE actually) in the failure path -- early initialization/allocation is "fragile" in that if you can't allocate much of anything at all, you'll crash or infinitely recurse, whereas before, well, we left it derefing NULL from calloc anyway; note that "startup" isn't "necessarily" early, such as in a dynamically loaded case -- better might be on Win32 to push early allocation into DllMain and fail that if low on resources, or try to somehow propagate the errors whenever they occur -- i.e. raising an exception should require very little resources, allocated up front with the process or thread). From jkrell at elego.de Wed Apr 29 02:32:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 2:32:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429003255.DBFFBCC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 02:32:55 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: put back assert allThreads # me, still reasonable even if they are all allocated the same now From jay.krell at cornell.edu Wed Apr 29 03:07:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 28 Apr 2009 18:07:27 -0700 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: <4476E40C-0735-41E1-B261-4B91005BC8A6@hotmail.com> I've also been forgetting that I upset the apple cart by merging the two thread locals into one. Pusheframe did not otherwise depend on heap allocation. Still I think current is good. - Jay (phone) On Apr 28, 2009, at 5:06 PM, Jay wrote: > >> I realize maybe there is a strong counteropinion, like, whatever >> inefficiences are >implied by dynamic linking are to be "fought" >> against with aggressive/creative/even fragile optimization >> techniques. > > > I realize I argue for optimizing PushEFrame and for deoptimizing > e.g. lock. > PushEFrame is presumably more common...except that it probably > occurs most often with lock? I don't know, I have no numbers. > > > I'm not sure yet what to do here. > Swapping .so files might or might not work. > If it does, that's a step but doesn't enable everything. > > > For example when I just switch compilation back and forth without > "clean", I get errors about types missing. Maybe that'll occur at > runtime, maybe not? Maybe these are different? Depends somewhat on > what "reveal" does? > Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, > but loopholed to escape these problems?? ("These problems" are > partly that I don't fully understand the Modula-3 object model, e.g. > what does "reveal" do, at a low level? What does "brand" do, at a > low level? I looked into it some and brand doesn't seem to affect > objects at all, only out of band typeinfo.) > > > Maybe just leave it as an option in m3core's m3makefile and people > can twiddle it if they want and rebuild the entire system like it is > today? > That is a bit onerous, but maybe it's all userthreads deserve? > ? > > > Anyone who actually wanted to switch back and forth (Mika) would > just have two installs and two source trees? > > > - Jay From mika at elego.de Wed Apr 29 07:49:41 2009 From: mika at elego.de (Mika Nystrom) Date: Wed, 29 Apr 2009 7:49:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429054941.71DBACC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/29 07:49:41 Modified files: cm3/m3-comm/stubgen/src/: Type.m3 Log message: How did I let this slip through? widechar initialization had the wrong type. From jkrell at elego.de Wed Apr 29 15:27:29 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 15:27:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429132729.7080FCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 15:27:29 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 M3Build.m3 Utils.i3 UtilsPosix.m3 UtilsWin32.m3 Log message: whereever there is a function to "link" a file, add a more verbosely named function "symbolic link" a file, and another function to hard link a file, leaving the original plain "link" unchanged. Hard link functions not used yet. Symlink aliases not used. Change the output command from "link" to "ln". I believe this is just for humans. "link" is the linker on NT ("ld") From jkrell at elego.de Wed Apr 29 15:49:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 15:49:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429134935.266ADCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 15:49:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: combine MemAlloc + pthread_mutex_init => pthread_mutex_new MemAlloc + pthread_cond_init => pthread_cond_new pthread_mutex_destroy + MemFree => pthread_mutex_delete pthread_cond_destroy + MemFree => pthread_cond_delete This was upon revisiting MemAlloc and was going to change to use NEW, however a REF ARRAY OF CHAR and its first byte are not at the same address, which is a bit annoying, so didn't go that route. This isn't clearly worth anything, but it also shouldn't be controversial. A small net reduction in the number of C symbols: since "size" and "init" now combine down to "new". MemAlloc and MemFree go away now, but the allocations are still done with calloc, but from the C code. While there, treat ENOMEM like other out of memory cases. Any other errors including EGAIN trigger assertion failures. Remove the avoidance of RAISE. Two of the uses are within a TRY, one is not. But the reasons are moot now, now that initialization order is better. Rename "UNDERUNDER_THREAD" to "M3CONFIG_THREAD_LOCAL_STORAGE", to be used shortly. From jkrell at elego.de Wed Apr 29 16:05:42 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 16:05:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429140542.478AFCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 16:05:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: m3makefile Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/config/: tls.c Log message: use __thread if it appears to work -- tested with gcc and Sun cc else continue to use pthread_get/setspecific This will probably usually save a few more cycles off PushEFrame. From hosking at cs.purdue.edu Wed Apr 29 20:17:21 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:17:21 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: On 29 Apr 2009, at 08:57, Jay wrote: > > This occurs before ThreadF.Init(). > (err, not clear from below, but I think so). > Would you rather that ThreadF.Init() do initialization on demand, > as pthread and win32thread currently do, > and PushEFrame forever have to check for that case and ThreadF.Init > continue to avoid NEW(), as it currently does? > > > It isn't great either way but I think this is the preferable path. > > > Code has to be contorted to avoid circularities.. > try/raise/ depend on some initialization unfortunately. > > > We'll trade contortions. Avoid try/raise/ in a few places, > get back to not having on-demand initialization nor having to use > calloc directly in place of NEW. > PushEFrame will be slightly faster for all callers, not just during > initialization. But just very slightly. This sounds like the best plan, yes. Any bootstrap code like this should probably avoid TRY/RAISE as much as possible. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Wed, 29 Apr 2009 07:44:50 +1000 >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> I don't care if there are extra instances of PushEFrame at startup. >> Let's improve performance of steady-state rather than bootstrapping. >> >> On 28 Apr 2009, at 15:38, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 09/04/28 15:38:44 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 >>> >>> Log message: >>> Remove at least one instance of PushEFrame from early >>> initialization. >>> You know, maybe PushEFrame can avoid doing initialization on-demand >>> and we can instead initialize things a little more deliberately >>> in an order that works, maybe. Win32 and pthreads do in on-demand >>> but user threads doesn't yet, maybe we can fix it and then optimize >>> the others slightly. >>> >>> #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, >>> M3_AcxOUs_n_bytes=4) >>> at ../src/runtime/common/RTType.m3:815 >>> #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ >>> runtime/common/RTType.m3:724 >>> #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, >>> M3_AcxOUs_key=-1025633461, >>> M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 >>> #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, >>> M3_DjPxE3_m=0x80ac9c0) >>> at ../src/runtime/common/RTType.m3:163 >>> #5 0x08077395 in RTLinker__DeclareModuleTypes >>> (M3_DjPxE3_m=0x80ac9c0) >>> at ../src/runtime/common/RTLinker.m3:280 >>> #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ >>> RTLinker.m3:234 >>> #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:112 >>> #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) >>> at ../src/runtime/common/RTLinker.m3:122 >>> #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >>> M3_AJWxb1_p_argv=0xbfbfec84, >>> M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ >>> runtime/common/RTLinker.m3:42 >>> #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) >>> at _m3main.mc:3 >> From hosking at cs.purdue.edu Wed Apr 29 20:19:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:19:08 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428142044.642B4CC3B6@birch.elegosoft.com> <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Message-ID: <1E699D02-8A7F-4964-BB8A-1CA96C1AC1B1@cs.purdue.edu> Yeah, I think it definitely makes sense to keep TRY out of the fast allocation path, and perhaps best also out of the slow path too. On 29 Apr 2009, at 08:53, Jay wrote: > > [oops, addressing a larger point that maybe wasn't made] > > > I think getting the TRY out of fast paths is good even for after > initialization. > Getting TRY out of even the slow paths is "needed" for > initialization to not > crash, unless you contort other code, **for some subjective > definition of contortion**. > > > If you leave try in the slow allocation path, then ThreadF.Init > cannot use NEW > and/or PushEFrame has to do on-demand initialization -- like how > pthread and > win32thread are now, but weren't for a long time and how userthread > isn't. > > > With the RTCollector.m3 changes, ThreadPthread.m3 and ThreadWin32.m3 > should > be able to go back to their historical arguably nicer slightly more > efficient form, > where GetActivation does not initialize and where initialize uses > regular NEW. > > > It is a tradeoff either way. > > > Another idea that I considered is to initialize the allocator a > little "better" > such that the first allocation goes down a fast path. But I couldn't > come > up with a nice way to do that. > > > Surely we agree getting TRY out of the fast path is reasonable? > > > I also considered reordering RTLinker.m3 or breaking up pieces but > avoided those. > > > Avoiding TRY/RAISE/ is a bit contorted but to some extent unavoidable > since they rely on initialization. > __thread might help here too but I doubt we'll ever rely on that > completely. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Wed, 29 Apr 2009 07:45:51 +1000 >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> Huh? Don't let dubious premature optimizations distort the code >> base.... >> >> On 28 Apr 2009, at 16:20, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 09/04/28 16:20:44 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 >>> >>> Log message: >>> module initializer is too late also, remove GetGCRatio for now >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> [Switching to Thread 0x28201100 (LWP 100094)] >>> 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> 1599 f.next := self.context.handlers; >>> (gdb) bt >>> #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ >>> common/RTCollector.m3:2801 >>> #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ >>> runtime/common/RTCollector.m3:2883 >>> #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:399 >>> #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:113 >>> #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) >>> at ../src/runtime/common/RTLinker.m3:122 >>> #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >>> M3_AJWxb1_p_argv=0xbfbfecec, >>> M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ >>> runtime/common/RTLinker.m3:42 >>> #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) >>> at _m3main.mc:3 >>> (gdb) >> From hosking at cs.purdue.edu Wed Apr 29 20:27:49 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:27:49 +1000 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: <03DE040E-713E-4251-839E-BCC5A617FBFF@cs.purdue.edu> I'd prefer user threads to be deprecated merely because multi-core is prevalent now. If someone needs them let them recompile. On 29 Apr 2009, at 10:06, Jay wrote: > >> I realize maybe there is a strong counteropinion, like, whatever >> inefficiences are >implied by dynamic linking are to be "fought" >> against with aggressive/creative/even fragile optimization >> techniques. > > > I realize I argue for optimizing PushEFrame and for deoptimizing > e.g. lock. > PushEFrame is presumably more common...except that it probably > occurs most often with lock? I don't know, I have no numbers. > > > I'm not sure yet what to do here. > Swapping .so files might or might not work. > If it does, that's a step but doesn't enable everything. > > > For example when I just switch compilation back and forth without > "clean", I get errors about types missing. Maybe that'll occur at > runtime, maybe not? Maybe these are different? Depends somewhat on > what "reveal" does? > Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, > but loopholed to escape these problems?? ("These problems" are > partly that I don't fully understand the Modula-3 object model, e.g. > what does "reveal" do, at a low level? What does "brand" do, at a > low level? I looked into it some and brand doesn't seem to affect > objects at all, only out of band typeinfo.) > > > Maybe just leave it as an option in m3core's m3makefile and people > can twiddle it if they want and rebuild the entire system like it is > today? > That is a bit onerous, but maybe it's all userthreads deserve? > ? > > > Anyone who actually wanted to switch back and forth (Mika) would > just have two installs and two source trees? > > > - Jay From jkrell at elego.de Wed Apr 29 22:05:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 22:05:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429200554.3FC4ECC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 22:05:54 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: go back to default to kernel/pthreads on FreeBSD4 (on 4.x pthreads are userthreads actually) From jkrell at elego.de Wed Apr 29 22:49:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 22:49:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429204935.93315CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 22:49:35 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: some SOLsun vs. SOLgnu SOLsun doesn't seem to like -pie, -dy, -pthreads -pthreads in particular is interpreted as multiple single letter switches and again complains about -h -mt is presumably the approx equivalent (plus possibly some -L, on older versions) also keep -Bstatic, though right fix might be -Bdynamic in SYSTEM_LIBS SOLgnu should be unaffected and it is used more than SOLsun From jkrell at elego.de Wed Apr 29 23:01:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:01:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210115.EB654CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:01:15 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: m3makefile ThreadPThread.m3 ThreadPThread.i3 Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/config/: tls.c Log message: go back a day From jkrell at elego.de Wed Apr 29 23:04:19 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:04:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210419.824ADCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:04:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: go back a day From jkrell at elego.de Wed Apr 29 23:07:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:07:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210706.A730ACC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:07:06 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: go back to always calling it m3core From jkrell at elego.de Wed Apr 29 23:41:32 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:41:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429214132.1DA15CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:41:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.i3 RTCollector.m3 RTLinker.m3 Log message: add call to GetGCRatio just a little later than it was From jkrell at elego.de Thu Apr 30 18:17:34 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 18:17:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430161734.F0FD2CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 18:17:34 Modified files: cm3/scripts/regression/: defs.sh Log message: mkdir missing here From jkrell at elego.de Thu Apr 30 21:52:40 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 21:52:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430195240.A3D04CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 21:52:40 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 Utils.m3 UtilsPosix.m3 UtilsWin32.m3 Log message: fix Win32 to compile including moving some code from UtilsPosix.m3 to Utils.m3 disable the Win32 hard link code (make it symlink, which copies) temporarily since it is a bootstrapping mistake (cm3 depends on newer m3core); fix will be to copy tiny bit of code From jkrell at elego.de Thu Apr 30 22:21:47 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:21:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430202147.9912ECC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:21:47 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: it is not legal to return from the caller of vfork without calling exec, therefore it is not legal to wrap vfork in C From jkrell at elego.de Thu Apr 30 22:22:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:22:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430202228.387B2CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:22:28 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix newlines (dos2unix) From jkrell at elego.de Thu Apr 30 22:52:07 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:52:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430205207.D0288CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:52:07 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 RTCollector.i3 RTCollectorSRC.i3 Log message: move GetGCRatio from RTCollector to RTCollectorSRC; that probably fixes it since RTCollectorSRC has been link and RTCollector has not From wagner at elego.de Wed Apr 1 09:09:41 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 1 Apr 2009 9:09:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090401070941.6197460C2D3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/01 09:09:41 Modified files: cm3/www/: PkgTags download.html news.html cm3/www/uploaded-archives/: update_download_index.sh Log message: add news about broken links due to server crash list source archives in uploaded-archives directory modified: www/download.html modified: www/news.html modified: www/uploaded-archives/update_download_index.sh From jkrell at elego.de Fri Apr 3 12:46:37 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 3 Apr 2009 12:46:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090403104637.EC91F60C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/03 12:46:37 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_DARWIN Log message: Darwin ld offers the following powerful confusing features -install_name @executable_path/../foo.dylib -install_name @loader_path/../foo.dylib -install_name @rpath/../foo.dylib @executable_path is the oldest and easiest to understand. I believe it was introduced sometime prior to 10.4. @loader_path -- I don't know what this means, people say it is "better" than @executable_path, it was introduced in 10.4. I suspect it means either "the referencing file" instead of "the executable" or perhaps the list of files loaded so far. @rpath was introduced in 10.5 and is said to be even "better". Though I don't know exactly what it does. There are just way way way too many options here. The web generally only has current documentation. Local man pages are appropriately out of date, but don't always give history. As well there is tool -- install_name_tool -- that can be used to "patch" the paths recorded in files. You can reserve specified or "maximum" padding for it. Let's be nice and slightly wasteful and give maximum padding. Throw in -dead_strip. Would be nice to use -dead_strip_dylibs and -pie, but they require 10.5. Would be nice to -multiply_defined error, but we can only immediately get away with that for shared libraries. For executables I get an error about __cxa_exit. Lame but oh well for now. Primary net result is that while DYLD_LIBRARY_PATH and LD_LIBRARY_PATH can presumably be used either to override install_name, or provide a fallback, such as for uninstalled binaries, (which order is the probe? Can experiment to find out...), installed binaries should work without any extra environment variable, which is nice. As long as everything is in /base/bin /base/lib But hey, we give you maximum padding, so you can use install_name_tool. A hypothetical fancy installer might do that. Might. I have half an inclination that we should write our own ELF and MachO dynamic loader and get to some sane simple small appropriately flexible and portable system...(not sure if MachO is pluggable but most ELF systems are). From jkrell at elego.de Fri Apr 3 12:50:49 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 3 Apr 2009 12:50:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090403105049.C781160C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/03 12:50:49 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_DARWIN Log message: just comments/whitespace From jkrell at elego.de Sat Apr 4 16:40:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:40:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404144043.4E8D360C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:40:43 Modified files: cm3/m3-win/: vcredist.txt Log message: add link to 2008sp1 (not like you can't just search the web or follow link from previous) From jkrell at elego.de Sat Apr 4 16:51:23 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:51:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145123.8519560C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:51:23 Modified files: cm3/m3-libs/m3core/src/Csupport/little-endian/: dtoa.c Log message: big-endian/dtoa.c From jkrell at elego.de Sat Apr 4 16:52:45 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:52:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145245.4820260C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:52:45 Modified files: cm3/m3-libs/m3core/src/Csupport/big-endian/: dtoa.c Log message: previous checkin comment flubbed address these warnings seen on Solaris with Sun cc: "../src/Csupport/Common/dtoa.h", line 523: warning: implicit function declaration: CConvert__Acquire "../src/Csupport/Common/dtoa.h", line 544: warning: implicit function declaration: CConvert__Release by declaring the functions. From jkrell at elego.de Sat Apr 4 16:54:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 16:54:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404145449.BB7BB60C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 16:54:49 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSmmap.c Log message: convert to Unix newlines That will presumably fix this warning from Sun cc: "../src/runtime/POSIX/RTOSmmap.c", line 1: warning: invalid white space character in directive From jkrell at elego.de Sat Apr 4 17:00:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 4 Apr 2009 17:00:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090404150028.28AD260C2E3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/04 17:00:27 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: address Sun cc warning: "../src/runtime/ex_frame/RTStackC.c", line 48: warning: old-style declaration or incorrect type for: RTStack__PrevFrame via #ifdef __STDC__ || __cplusplus, use ANSI syntax. From jkrell at elego.de Sun Apr 5 02:26:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 2:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405002632.0C3DD60C2E7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 02:26:31 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix From jkrell at elego.de Sun Apr 5 02:27:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 2:27:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405002715.EC5FF60C2E7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 02:27:15 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: format differently From jkrell at elego.de Sun Apr 5 10:25:20 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 10:25:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405082520.6329E60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 10:25:20 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: This should let us support multiple installed backends (ie: per target) even if there is no source tree (ie: ROOT is not defined). Previously the first feature was lost in the second condition. Still, this area needs work -- probe for fewer backends. From jkrell at elego.de Sun Apr 5 12:05:04 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 12:05:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405100505.1273A60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 12:05:04 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Unix.common Log message: add the following to linking (AMD64_LINUX only at this point, the Unix.common change only affects it; we will want this whereever supported though) -z now -- bind at load time instead of lazily -z origin -- uses $ORIGIN -Bsymbolic -- if a shared library calls some functions it exports, resolve them directly; -rpath $ORIGIN/../lib -- enable finding shared libaries without setting an environment variable (at least for installed binaries) -warn-common -- warn for any common symbols -pie for executables -no-allow-shlib-undefined not -- it causes errors -rpath most importantly rpath could be drastically reduced, but for the need to run uninstalled binaries (PklFonts) (need to double check my Darwin change here) I also tried -soname $ORIGIN/../lib/foo.so.5. That doesn't seem to work. And then also not clear if it works for uninstalled. That is what the PPC_DARWIN change resembles though From jkrell at elego.de Sun Apr 5 12:44:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 5 Apr 2009 12:44:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090405104425.1E04C60C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/05 12:44:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: Use the 'real' option instead of relying on 'compatibility'. This change is presumably applicable to all platforms that use GNU ld -- *Linux and *BSD. man ld: -R filename --just-symbols=filename Read symbol names and their addresses from filename, but do not relocate it or include it in the output. This allows your output file to refer symbolically to absolute locations of memory defined in other programs. You may use this option more than once. For compatibility with other ELF linkers, if the -R option is fol- lowed by a directory name, rather than a file name, it is treated as the -rpath option. From jkrell at elego.de Mon Apr 6 06:55:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 6:55:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406045517.AA04C60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 06:55:17 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add & " -z now -z origin -R \\$ORIGIN/../lib" From jkrell at elego.de Mon Apr 6 10:19:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:19:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406081913.BAC2F60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:19:13 Modified files: cm3/m3-ui/juno-2/juno-app/pkl-fonts/src/: m3makefile Log message: build_standalone, on all platforms, so the uninstalled binary works in more situations; was already doing this for NT386 From jkrell at elego.de Mon Apr 6 10:23:22 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:23:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406082323.0123A60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:23:22 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: Don't build up large RUNPATH with a path into the pkg store for every imported shared library; instead just use $ORIGIN/../lib which comes from other code (SOLgnu, SOLsun, etc.). This change is to be tested and applied on a few other platforms. (ie: *Linux, *BSD, but not NetBSD probably, and Darwin has a similar but different mechanism already in use (-soname = @executable_path/../lib/libfoo.dylib or somesuch)) From jkrell at elego.de Mon Apr 6 10:52:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 10:52:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406085224.962CB60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 10:52:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add -i to link command to ignore LD_LIBRARY_PATH seems to me the Unix linkers like to conflate build-time and run-time, and this lets us undo just a small part of that (NT has separately installed SDKs; Apple I think the same) Headers and libs belong with compilers, not the running system. There are valid points either way -- a "self describing" system is also nice, but it shouldn't be hard to have multiple system descriptions installed and easily point the compiler/linker at one or the other..cross building and all that...whether it is cross to a different OS or architecture or to a different version of the OS..(Modula-3 does this well, but I have sacrificed a lot of it in the interest of portability..) And installing "system description" shouldn't require "installing system".. From jkrell at elego.de Mon Apr 6 11:01:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:01:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090151.84CD260C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:01:48 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: comments only From jkrell at elego.de Mon Apr 6 11:08:12 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:08:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090812.8E2F060C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:08:12 Modified files: cm3/scripts/python/: make-dist.py Log message: small NT386 fix (the distinction here is 'temporary' only, related to bootstrapping from systems with the old m3gcdefs" make-dist.py From jkrell at elego.de Mon Apr 6 11:08:38 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:08:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406090838.902BA60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:08:38 Modified files: cm3/scripts/python/: make-dist.py Log message: small NT386 fix (the distinction here is 'temporary' only, related to bootstrapping from systems with the old m3gcdefs" make-dist.py From jkrell at elego.de Mon Apr 6 11:13:42 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:13:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406091342.55A8760C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:13:42 Modified files: cm3/scripts/python/: pylib.py Log message: make boot archives in current working directory instead of in root directory, so I can build them as non-root on non-NT From jkrell at elego.de Mon Apr 6 11:22:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 6 Apr 2009 11:22:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090406092224.29D8F60C2E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/06 11:22:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: add -R \\$ORIGIN/../../../lib" to get from pkg store to lib and then to feel a bit less sleazy, add -R \\$ORIGIN/../../lib" ahead of it, maybe that is somehow safer From wagner at elego.de Wed Apr 8 00:10:42 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:10:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407221042.5295260C149@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:10:42 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 m3makefile Log message: use Jay Krell's new config files by default add options -oldcfg|-o for old behaviour modified: cminstall/src/Main.m3 modified: cminstall/src/m3makefile From wagner at elego.de Wed Apr 8 00:18:51 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:18:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407221851.816C160C2E5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:18:51 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh cm3/scripts/regression/: defs.sh Log message: build binary archives using the new config files by default tar up standard packages by default; other distributions may be specified by e.g. DIST=core ./scripts/make-bin-dist-min.sh modified: scripts/make-bin-dist-min.sh modified: scripts/regression/defs.sh From wagner at elego.de Wed Apr 8 00:21:03 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:21:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407222103.F3CE560C149@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:21:03 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 Log message: require 250 MB for a full distribution modified: cminstall/src/Main.m3 From wagner at elego.de Wed Apr 8 00:25:48 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:25:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407222548.D4BBB60C14D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:25:48 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh Log message: add distribution kind to archive name modified: scripts/make-bin-dist-min.sh From wagner at elego.de Wed Apr 8 00:34:28 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 0:34:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407223428.839E860C14D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 00:34:28 Modified files: cm3/scripts/: PkgTags make-bin-dist-min.sh Log message: fix NEWCFG switch modified: scripts/make-bin-dist-min.sh From wagner at elego.de Wed Apr 8 01:09:21 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 1:09:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090407230921.2D1F51AC4C79@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 01:09:21 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: m3makefile Log message: check for available resources modified: cminstall/PkgTags modified: cminstall/src/m3makefile From hosking at elego.de Wed Apr 8 06:11:46 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 8 Apr 2009 6:11:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090408041146.3D51B1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/08 06:11:46 Modified files: cm3/m3-sys/m3middle/src/: M3RT.i3 Log message: Let's make all the predefined typecodes explicit here. From hosking at cs.purdue.edu Wed Apr 8 06:29:28 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 8 Apr 2009 14:29:28 +1000 Subject: [M3commit] Fwd: Undelivered Mail Returned to Sender References: <20090408041146.7B8841AC4C79@birch.elegosoft.com> Message-ID: <23CB3A42-BF2C-4371-B6B6-AC1FF746D575@cs.purdue.edu> Huh? Begin forwarded message: > From: MAILER-DAEMON at elego.de (Mail Delivery System) > Date: 8 April 2009 14:11:46 GMT+10:00 > To: hosking at elego.de > Subject: Undelivered Mail Returned to Sender > > This is the mail system at host birch.elegosoft.com. > > I'm sorry to have to inform you that your message could not > be delivered to one or more recipients. It's attached below. > > For further assistance, please send mail to postmaster. > > If you do so, please include this problem report. You can > delete your own text from the attached returned message. > > The mail system > > : Command died with > status 9: > "/usr/local/tinderbox/bonsai/handleCheckinMail.pl > /usr/local/tinderbox/bonsai". Command output: Cannot Open data > file (cwd: > /usr/local/tinderbox/bonsai; data/temp.15091): Bad file descriptor > Reporting-MTA: dns; birch.elegosoft.com > X-Postfix-Queue-ID: 620BD1AC4C78 > X-Postfix-Sender: rfc822; hosking at birch.elego.de > Arrival-Date: Wed, 8 Apr 2009 06:11:46 +0200 (CEST) > > Final-Recipient: rfc822; bonsai-checkin-daemon at tinderbox.elegosoft.com > Action: failed > Status: 5.3.0 > Diagnostic-Code: x-unix; Cannot Open data file (cwd: > /usr/local/tinderbox/bonsai; data/temp.15091): Bad file descriptor > > From: bonsai-daemon at birch > Date: 8 April 2009 14:11:46 GMT+10:00 > To: bonsai-checkin-daemon at tinderbox.elegosoft.com > Subject: cvs commit to cm3/m3-sys/m3middle/src > > > C|1239163906|hosking|/usr/cvs|cm3/m3-sys/m3middle/src|M3RT.i3|1.4||| > 7|2 > LOGCOMMENT > Let's make all the predefined typecodes explicit here. > > :ENDLOGCOMMENT > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elego.de Wed Apr 8 20:04:53 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 8 Apr 2009 20:04:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090408180454.027CC1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/08 20:04:53 Modified files: cm3/scripts/: PkgTags upgrade.sh Log message: attempt to fix broken upgrade due to cminstall changes as seen by tinderbox on niagara distinguish old and new style config files based on presence of m3_backend in cm3.cfg All this may be too simple :-/ modified: scripts/upgrade.sh From jkrell at elego.de Thu Apr 9 19:02:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 19:02:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409170205.0D1CF60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 19:02:04 cm3/m3-tools/cvsup Update of /usr/cvs/cm3/m3-tools/cvsup In directory birch:/tmp/cvs-serv5883 Log Message: import cvsup-snap-16.1h Status: Vendor Tag: cvsup Release Tags: cvsup-snap-16_1h N cm3/m3-tools/cvsup/Blurb N cm3/m3-tools/cvsup/Install N cm3/m3-tools/cvsup/License N cm3/m3-tools/cvsup/Announce N cm3/m3-tools/cvsup/Makefile N cm3/m3-tools/cvsup/ChangeLog N cm3/m3-tools/cvsup/Acknowledgments N cm3/m3-tools/cvsup/doc/faq_ru.tail N cm3/m3-tools/cvsup/doc/faq.tail N cm3/m3-tools/cvsup/doc/faq_ru.faq N cm3/m3-tools/cvsup/doc/faq.faq N cm3/m3-tools/cvsup/doc/Protocol N cm3/m3-tools/cvsup/doc/faqgen.awk N cm3/m3-tools/cvsup/doc/Makefile N cm3/m3-tools/cvsup/doc/faq.head N cm3/m3-tools/cvsup/doc/Checkouts N cm3/m3-tools/cvsup/doc/Attributes N cm3/m3-tools/cvsup/doc/faq_ru.head N cm3/m3-tools/cvsup/doc/images/yelnew.gif N cm3/m3-tools/cvsup/doc/images/cvsup128.gif N cm3/m3-tools/cvsup/client/Makefile N cm3/m3-tools/cvsup/client/src/RegularUpdater.i3 N cm3/m3-tools/cvsup/client/src/RegularUpdater.m3 N cm3/m3-tools/cvsup/client/src/exit.pbm N cm3/m3-tools/cvsup/client/src/TextPortLogger.i3 N cm3/m3-tools/cvsup/client/src/Receive.i3 N cm3/m3-tools/cvsup/client/src/TreeList.i3 N cm3/m3-tools/cvsup/client/src/RsyncUpdater.m3 N cm3/m3-tools/cvsup/client/src/Auth.i3 N cm3/m3-tools/cvsup/client/src/SyncQueue.mg N cm3/m3-tools/cvsup/client/src/SupGUI.m3 N cm3/m3-tools/cvsup/client/src/tape_play.pbm N cm3/m3-tools/cvsup/client/src/Version.i3 N cm3/m3-tools/cvsup/client/src/SupFile.m3 N cm3/m3-tools/cvsup/client/src/CheckoutUpdater.i3 N cm3/m3-tools/cvsup/client/src/EventSync.m3 N cm3/m3-tools/cvsup/client/src/SupFile.i3 N cm3/m3-tools/cvsup/client/src/CheckoutUpdater.m3 N cm3/m3-tools/cvsup/client/src/TreeList.m3 N cm3/m3-tools/cvsup/client/src/Auth.m3 N cm3/m3-tools/cvsup/client/src/FSClient.i3 N cm3/m3-tools/cvsup/client/src/TextVBTLogger.i3 N cm3/m3-tools/cvsup/client/src/CheckoutCreator.m3 N cm3/m3-tools/cvsup/client/src/cvsup.1 N cm3/m3-tools/cvsup/client/src/Updater.m3 N cm3/m3-tools/cvsup/client/src/BackoffTimer.m3 N cm3/m3-tools/cvsup/client/src/FSClient.m3 N cm3/m3-tools/cvsup/client/src/disk.pbm N cm3/m3-tools/cvsup/client/src/RCSUpdater.m3 N cm3/m3-tools/cvsup/client/src/EventSync.i3 N cm3/m3-tools/cvsup/client/src/Detailer.i3 N cm3/m3-tools/cvsup/client/src/cvsup.cat N cm3/m3-tools/cvsup/client/src/CheckoutCreator.i3 N cm3/m3-tools/cvsup/client/src/Receive.m3 N cm3/m3-tools/cvsup/client/src/Main.m3 N cm3/m3-tools/cvsup/client/src/RegularCreator.i3 N cm3/m3-tools/cvsup/client/src/FileUpdater.i3 N cm3/m3-tools/cvsup/client/src/RsyncUpdater.i3 N cm3/m3-tools/cvsup/client/src/syncqueue.tmpl N cm3/m3-tools/cvsup/client/src/stop.pbm N cm3/m3-tools/cvsup/client/src/FileUpdater.m3 N cm3/m3-tools/cvsup/client/src/TextVBTLogger.m3 N cm3/m3-tools/cvsup/client/src/SupGUIFake.m3 N cm3/m3-tools/cvsup/client/src/m3makefile N cm3/m3-tools/cvsup/client/src/BackoffTimer.i3 N cm3/m3-tools/cvsup/client/src/RegularCreator.m3 N cm3/m3-tools/cvsup/client/src/TextPortLogger.m3 N cm3/m3-tools/cvsup/client/src/SupGUI.i3 N cm3/m3-tools/cvsup/client/src/Copyright.txt N cm3/m3-tools/cvsup/client/src/SyncQueue.ig N cm3/m3-tools/cvsup/client/src/RCSUpdater.i3 N cm3/m3-tools/cvsup/client/src/Detailer.m3 N cm3/m3-tools/cvsup/client/src/Updater.i3 N cm3/m3-tools/cvsup/client/src/info.pbm N cm3/m3-tools/cvsup/client/src/Fixup.i3 N cm3/m3-tools/cvsup/client/src/SupGUI.fv N cm3/m3-tools/cvsup/cvpasswd/Makefile N cm3/m3-tools/cvsup/cvpasswd/src/Secret.i3 N cm3/m3-tools/cvsup/cvpasswd/src/Secret.m3 N cm3/m3-tools/cvsup/cvpasswd/src/Main.m3 N cm3/m3-tools/cvsup/cvpasswd/src/m3makefile N cm3/m3-tools/cvsup/cvpasswd/src/Upass.i3 N cm3/m3-tools/cvsup/cvpasswd/src/cvpasswd.cat N cm3/m3-tools/cvsup/cvpasswd/src/cvpasswd.1 N cm3/m3-tools/cvsup/examples/supfile.cvs N cm3/m3-tools/cvsup/examples/README N cm3/m3-tools/cvsup/contrib/README N cm3/m3-tools/cvsup/contrib/cvsup2httplog/cvsup2httplog N cm3/m3-tools/cvsup/contrib/cvsup2httplog/README N cm3/m3-tools/cvsup/contrib/cvsupwho/README N cm3/m3-tools/cvsup/contrib/cvsupwho/cvsupwho N cm3/m3-tools/cvsup/contrib/cvsupchk/README N cm3/m3-tools/cvsup/contrib/cvsupchk/cvsupchk N cm3/m3-tools/cvsup/contrib/cvsup2html/cvsup2html.awk N cm3/m3-tools/cvsup/contrib/cvsup2html/README N cm3/m3-tools/cvsup/contrib/cvsuplog2html/README N cm3/m3-tools/cvsup/contrib/cvsuplog2html/cvsuplog2html N cm3/m3-tools/cvsup/suplib/Makefile N cm3/m3-tools/cvsup/suplib/src/RsyncFile.i3 N cm3/m3-tools/cvsup/suplib/src/RsyncBlock.m3 N cm3/m3-tools/cvsup/suplib/src/IOWatchDog.m3 N cm3/m3-tools/cvsup/suplib/src/RCSRevNum.i3 N cm3/m3-tools/cvsup/suplib/src/FileAttrRep.i3 N cm3/m3-tools/cvsup/suplib/src/EscapedRd.i3 N cm3/m3-tools/cvsup/suplib/src/RCSError.i3 N cm3/m3-tools/cvsup/suplib/src/Merger.ig N cm3/m3-tools/cvsup/suplib/src/merger.tmpl N cm3/m3-tools/cvsup/suplib/src/UgzipP.i3 N cm3/m3-tools/cvsup/suplib/src/GzipRd.m3 N cm3/m3-tools/cvsup/suplib/src/WatchDog.m3 N cm3/m3-tools/cvsup/suplib/src/RCSString.m3 N cm3/m3-tools/cvsup/suplib/src/ErrMsg.m3 N cm3/m3-tools/cvsup/suplib/src/AuthMD5.i3 N cm3/m3-tools/cvsup/suplib/src/SplitLogger.i3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrase.i3 N cm3/m3-tools/cvsup/suplib/src/MD5.i3 N cm3/m3-tools/cvsup/suplib/src/DirEntry.i3 N cm3/m3-tools/cvsup/suplib/src/SupMisc.i3 N cm3/m3-tools/cvsup/suplib/src/RCSString.i3 N cm3/m3-tools/cvsup/suplib/src/SupMisc.m3 N cm3/m3-tools/cvsup/suplib/src/IOWatchDog.i3 N cm3/m3-tools/cvsup/suplib/src/RCSEdit.i3 N cm3/m3-tools/cvsup/suplib/src/FileAttr.i3 N cm3/m3-tools/cvsup/suplib/src/ExecRec.i3 N cm3/m3-tools/cvsup/suplib/src/Merger.mg N cm3/m3-tools/cvsup/suplib/src/MySyslog.i3 N cm3/m3-tools/cvsup/suplib/src/FileStatus.i3 N cm3/m3-tools/cvsup/suplib/src/RCSAccess.i3 N cm3/m3-tools/cvsup/suplib/src/TimeStampLogger.i3 N cm3/m3-tools/cvsup/suplib/src/SysLogger.m3 N cm3/m3-tools/cvsup/suplib/src/GzipWr.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDelta.m3 N cm3/m3-tools/cvsup/suplib/src/DevT.i3 N cm3/m3-tools/cvsup/suplib/src/TokScan.m3 N cm3/m3-tools/cvsup/suplib/src/UnixMisc.m3 N cm3/m3-tools/cvsup/suplib/src/Attic.i3 N cm3/m3-tools/cvsup/suplib/src/RCSAccess.m3 N cm3/m3-tools/cvsup/suplib/src/CVTree.i3 N cm3/m3-tools/cvsup/suplib/src/RCSFile.m3 N cm3/m3-tools/cvsup/suplib/src/WatchDog.i3 N cm3/m3-tools/cvsup/suplib/src/RegEx.m3 N cm3/m3-tools/cvsup/suplib/src/SplitLogger.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Digest.m3 N cm3/m3-tools/cvsup/suplib/src/StatusFile.i3 N cm3/m3-tools/cvsup/suplib/src/Reaper.i3 N cm3/m3-tools/cvsup/suplib/src/DirEntry.m3 N cm3/m3-tools/cvsup/suplib/src/Umd5.i3 N cm3/m3-tools/cvsup/suplib/src/TimeStampLogger.m3 N cm3/m3-tools/cvsup/suplib/src/FileStatusRaw.i3 N cm3/m3-tools/cvsup/suplib/src/Attic.m3 N cm3/m3-tools/cvsup/suplib/src/SupFileRec.m3 N cm3/m3-tools/cvsup/suplib/src/GzipRd.i3 N cm3/m3-tools/cvsup/suplib/src/RCSTag.m3 N cm3/m3-tools/cvsup/suplib/src/FileAttr.m3 N cm3/m3-tools/cvsup/suplib/src/Ugzip.i3 N cm3/m3-tools/cvsup/suplib/src/StatusFile.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Wr.m3 N cm3/m3-tools/cvsup/suplib/src/ProcTitle.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDelta.i3 N cm3/m3-tools/cvsup/suplib/src/RsyncFile.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedWr.m3 N cm3/m3-tools/cvsup/suplib/src/RCSDate.m3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrases.i3 N cm3/m3-tools/cvsup/suplib/src/CText.i3 N cm3/m3-tools/cvsup/suplib/src/AuthMD5.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedWr.i3 N cm3/m3-tools/cvsup/suplib/src/CVProto.m3 N cm3/m3-tools/cvsup/suplib/src/Glob.m3 N cm3/m3-tools/cvsup/suplib/src/EscapedRd.m3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrases.m3 N cm3/m3-tools/cvsup/suplib/src/SigHandler.i3 N cm3/m3-tools/cvsup/suplib/src/UnixMiscC.c N cm3/m3-tools/cvsup/suplib/src/Uglob.i3 N cm3/m3-tools/cvsup/suplib/src/LoggerClass.i3 N cm3/m3-tools/cvsup/suplib/src/Logger.i3 N cm3/m3-tools/cvsup/suplib/src/GlobTree.i3 N cm3/m3-tools/cvsup/suplib/src/GlobTree.m3 N cm3/m3-tools/cvsup/suplib/src/Reaper.m3 N cm3/m3-tools/cvsup/suplib/src/Logger.m3 N cm3/m3-tools/cvsup/suplib/src/SigHandler.m3 N cm3/m3-tools/cvsup/suplib/src/RCSDate.i3 N cm3/m3-tools/cvsup/suplib/src/UnixMisc.i3 N cm3/m3-tools/cvsup/suplib/src/CVTree.m3 N cm3/m3-tools/cvsup/suplib/src/WrLogger.m3 N cm3/m3-tools/cvsup/suplib/src/LockFile.m3 N cm3/m3-tools/cvsup/suplib/src/m3makefile N cm3/m3-tools/cvsup/suplib/src/ChannelMux.i3 N cm3/m3-tools/cvsup/suplib/src/TokScan.i3 N cm3/m3-tools/cvsup/suplib/src/ErrMsg.i3 N cm3/m3-tools/cvsup/suplib/src/ChannelMux.m3 N cm3/m3-tools/cvsup/suplib/src/FileStatus.m3 N cm3/m3-tools/cvsup/suplib/src/PathComp.i3 N cm3/m3-tools/cvsup/suplib/src/MD5Digest.i3 N cm3/m3-tools/cvsup/suplib/src/GzipError.i3 N cm3/m3-tools/cvsup/suplib/src/RCSKeyword.i3 N cm3/m3-tools/cvsup/suplib/src/MD5.m3 N cm3/m3-tools/cvsup/suplib/src/PathComp.m3 N cm3/m3-tools/cvsup/suplib/src/GzipError.m3 N cm3/m3-tools/cvsup/suplib/src/SysLogger.i3 N cm3/m3-tools/cvsup/suplib/src/FileID.m3 N cm3/m3-tools/cvsup/suplib/src/MD5Wr.i3 N cm3/m3-tools/cvsup/suplib/src/RCSPhrase.m3 N cm3/m3-tools/cvsup/suplib/src/RegEx.i3 N cm3/m3-tools/cvsup/suplib/src/Glob.i3 N cm3/m3-tools/cvsup/suplib/src/FileID.i3 N cm3/m3-tools/cvsup/suplib/src/SupFileRec.i3 N cm3/m3-tools/cvsup/suplib/src/RCSTag.i3 N cm3/m3-tools/cvsup/suplib/src/RCSKeyword.m3 N cm3/m3-tools/cvsup/suplib/src/WrLogger.i3 N cm3/m3-tools/cvsup/suplib/src/RCSDeltaClass.i3 N cm3/m3-tools/cvsup/suplib/src/RCSRevNum.m3 N cm3/m3-tools/cvsup/suplib/src/CVProto.i3 N cm3/m3-tools/cvsup/suplib/src/RCSFile.i3 N cm3/m3-tools/cvsup/suplib/src/LockFile.i3 N cm3/m3-tools/cvsup/suplib/src/Ugzip.m3 N cm3/m3-tools/cvsup/suplib/src/RsyncBlock.i3 N cm3/m3-tools/cvsup/suplib/src/GzipWr.m3 N cm3/m3-tools/cvsup/suplib/src/libmd/md5hl.c N cm3/m3-tools/cvsup/suplib/src/libmd/md5.h N cm3/m3-tools/cvsup/suplib/src/libmd/md5c.c N cm3/m3-tools/cvsup/suplib/src/libmd/m3makefile N cm3/m3-tools/cvsup/suplib/src/libmd/md5.copyright N cm3/m3-tools/cvsup/suplib/src/libglob/fnmatch.h N cm3/m3-tools/cvsup/suplib/src/libglob/fnmatch.c N cm3/m3-tools/cvsup/suplib/src/libglob/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/DevTLinux.i3 N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_linux/DevT.m3 N cm3/m3-tools/cvsup/suplib/src/POSIX/ProcTitle.m3 N cm3/m3-tools/cvsup/suplib/src/POSIX/m3makefile N cm3/m3-tools/cvsup/suplib/src/POSIX/FileAttrOS.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/SupMiscText.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/CText.m3 N cm3/m3-tools/cvsup/suplib/src/text_cm3/m3makefile N cm3/m3-tools/cvsup/suplib/src/text_pm3/SupMiscText.m3 N cm3/m3-tools/cvsup/suplib/src/text_pm3/CText.m3 N cm3/m3-tools/cvsup/suplib/src/text_pm3/m3makefile N cm3/m3-tools/cvsup/suplib/src/FreeBSD/UProcTitle.c N cm3/m3-tools/cvsup/suplib/src/FreeBSD/FileAttrOS.i3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/ProcTitle.m3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/m3makefile N cm3/m3-tools/cvsup/suplib/src/FreeBSD/UProcTitle.i3 N cm3/m3-tools/cvsup/suplib/src/FreeBSD/FileAttrOS.m3 N cm3/m3-tools/cvsup/suplib/src/dev_t_posix/m3makefile N cm3/m3-tools/cvsup/suplib/src/dev_t_posix/DevT.m3 N cm3/m3-tools/cvsup/config/src/m3makefile N cm3/m3-tools/cvsup/suptcp/Makefile N cm3/m3-tools/cvsup/suptcp/src/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/README N cm3/m3-tools/cvsup/suptcp/src/m3makefile N cm3/m3-tools/cvsup/suptcp/src/POSIX/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHackNull.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHack.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCP.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOptOther.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOpt.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPHack.m3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/SupTCPPosix.i3 N cm3/m3-tools/cvsup/suptcp/src/POSIX/m3makefile N cm3/m3-tools/cvsup/suptcp/src/POSIX/SockOptFBSD.m3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamWrClass.m3 N cm3/m3-tools/cvsup/suptcp/src/common/COPYRIGHT N cm3/m3-tools/cvsup/suptcp/src/common/StreamRdClass.m3 N cm3/m3-tools/cvsup/suptcp/src/common/TCPMisc.i3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamRd.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnRW.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnFD.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupErrno.i3 N cm3/m3-tools/cvsup/suptcp/src/common/m3makefile N cm3/m3-tools/cvsup/suptcp/src/common/SupTCP.i3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamWrClass.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupErrnoC.c N cm3/m3-tools/cvsup/suptcp/src/common/StreamWr.i3 N cm3/m3-tools/cvsup/suptcp/src/common/SupConnRW.m3 N cm3/m3-tools/cvsup/suptcp/src/common/StreamRdClass.i3 N cm3/m3-tools/cvsup/quake/cvsup.quake N cm3/m3-tools/cvsup/server/Makefile N cm3/m3-tools/cvsup/server/src/ClassDB.m3 N cm3/m3-tools/cvsup/server/src/ClientClass.i3 N cm3/m3-tools/cvsup/server/src/FSServer.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.cat N cm3/m3-tools/cvsup/server/src/Passwd.i3 N cm3/m3-tools/cvsup/server/src/Version.i3 N cm3/m3-tools/cvsup/server/src/ClientClass.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.class.cat N cm3/m3-tools/cvsup/server/src/FSServerU.m3 N cm3/m3-tools/cvsup/server/src/FSServer.i3 N cm3/m3-tools/cvsup/server/src/AccessRules.i3 N cm3/m3-tools/cvsup/server/src/ParsedDelta.m3 N cm3/m3-tools/cvsup/server/src/Main.m3 N cm3/m3-tools/cvsup/server/src/cvsupd.8 N cm3/m3-tools/cvsup/server/src/AccessRules.m3 N cm3/m3-tools/cvsup/server/src/TreeComp.i3 N cm3/m3-tools/cvsup/server/src/ClassDB.i3 N cm3/m3-tools/cvsup/server/src/FileInfo.i3 N cm3/m3-tools/cvsup/server/src/Passwd.m3 N cm3/m3-tools/cvsup/server/src/m3makefile N cm3/m3-tools/cvsup/server/src/FileInfo.m3 N cm3/m3-tools/cvsup/server/src/RCSComp.i3 N cm3/m3-tools/cvsup/server/src/ParsedDelta.i3 N cm3/m3-tools/cvsup/server/src/cvsupd.class.5 N cm3/m3-tools/cvsup/server/src/TreeComp.m3 N cm3/m3-tools/cvsup/server/src/RCSComp.m3 N cm3/m3-tools/cvsup/server/src/FSServerRep.i3 No conflicts created by this import From jkrell at elego.de Thu Apr 9 20:24:30 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:24:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409182430.3F44B60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:24:30 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 UstatC.c Utypes.i3 Log message: add Utypes.mode_t = INTEGER struct_stat.st_dev: LONGINT; struct_stat.st_ino: LONGINT; for cvsup. Still very portable (modulo that ino doesn't really exist on Win32 FAT, and is not well exposed on Win32 NTFS (have to open the file, slow, though native APIs expose it since XP)) From jkrell at elego.de Thu Apr 9 20:47:41 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:47:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409184741.CA2CF60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:47:41 Modified files: cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Utypes.i3 Log message: and add Utypes.ino_t = LONGINT, Utypes.dev_t = LONGINT for cvsup and alias SchedulerPosix.Enable/DisableSwitching = Scheduler.Enable/ DisableSwitching for cvsup From jkrell at elego.de Thu Apr 9 20:53:27 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 20:53:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409185327.6F02460C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 20:53:27 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 Uconstants.c Log message: add O_APPEND back, portable, for cvsup; there are other flags we could add back From jkrell at elego.de Thu Apr 9 21:15:47 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:15:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409191547.A730960C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:15:47 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: m3makefile cm3/m3-tools/cvsup/suptcp/src/common/: m3makefile Log message: - Uerrno now has variables instead of constants but then, don't compile this anyway - "one" in InitFD should be 32 bits even on 64bit systems but then, don't compile this anyway - StreamRd, StreamRdClass, StreamWr, StreamWrClass appear to be identical to code elsewhere (m3-comm), so don't compile them - even SupTCP appears redundant, don't compile it Could be this isn't all correct, wrt defering to m3-comm/tcp. From jkrell at elego.de Thu Apr 9 21:22:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:22:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409192235.58A5460C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:22:35 Modified files: cm3/m3-tools/cvsup/suplib/src/: RCSFile.m3 RsyncFile.m3 Log message: truncate file sizes to integer or cardinal. This should be reviewed. ORD is the way, right? It is probably reasonable to limit file sizes in CVS repositories to 2gig or 4gig I am not really willing to make the idealized stat use INTEGER for file sizes since file sizes are definitely beyond 4gig in general, even on 32bit systems. I assume this code is "safe", in that there will be an unhandled exception upon value-losing truncation, not silent treatment of a 4g+1 byte file as just 1 byte. However the modules are unsafe. Arguably "double" is a good type here -- 53 bits of precision and of much longer standing and greater compatibility/portability than a 64bit integer. 53 bits is a lot. But I'm not a fan of floating point.. From jkrell at elego.de Thu Apr 9 21:24:45 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 9 Apr 2009 21:24:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090409192445.8630F60C150@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/09 21:24:45 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: SupTCP.m3 Log message: actually checkin my version of the file Comments from before: - Uerrno now has variables instead of constants but then, don't compile this anyway - "one" in InitFD should be 32 bits even on 64bit systems but then, don't compile this anyway - StreamRd, StreamRdClass, StreamWr, StreamWrClass appear to be identical to code elsewhere (m3-comm), so don't compile them - even SupTCP appears redundant, don't compile it Could be this isn't all correct, wrt defering to m3-comm/tcp. From jkrell at elego.de Fri Apr 10 11:26:36 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 11:26:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410092636.4B68F60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 11:26:36 Added files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.i3 Log message: initial version of Ugrp.i3, identical to all the other copies (ugh), but we will change it to be extra safe via copying like Unetdb (cvsup uses this) From jkrell at elego.de Fri Apr 10 12:06:04 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:06:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410100604.EF35E60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:06:04 Modified files: cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 Log message: my mistake -- rebuilding m3core clean fails due to this, go back a version to version 1.5 From jkrell at elego.de Fri Apr 10 12:21:16 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:21:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102116.C5C4C60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:21:16 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.m3 Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:22:07 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:22:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102207.9439160C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:22:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:29:44 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:29:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410102944.5486C60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:29:44 Modified files: cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:30:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:30:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410103043.127AD60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:30:43 Modified files: cm3/m3-libs/m3core/src/unix/big-endian/: m3makefile Log message: fix newlines (do2unix) From jkrell at elego.de Fri Apr 10 12:32:52 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:32:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410103257.330AB60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:32:52 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c Uexec.c Ugrp.i3 Umman.i3 Unetdb.c Unix.i3 UnixC.c Upthread.i3 Usocket.c Ustat.i3 UstatC.c UtimeC.c Utypes.i3 Uucontext.c m3makefile m3unix.h cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3 Added files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Umman.c Log message: a bunch of churn here: - provide Ugrp.i3, Ugrp.c for cvsup Make it copying for safety. Though every system I checked defines the struct with the exact same members and order, though we no longer make gid_t match (below) so copying becomes possibly needed. Don't bother with passwd. - add mknod, mmap, munmap, umask for cvsup - add some mmap flags for cvsup, go ahead and add some it doesn't use either the additions to Uconstants are under #ifdef previously I had trimmed Umman to just mprotect - continue experiment where we "wrap everything" (e.g. mknod, umask, mmap, munmap, Ugrp.i3) instead of only functions with a clear need (the need hasn't always been clear!) - push more stuff into m3unix.h due to a sort of intellectual laziness unclear benefit includes now everything is prototyped, not just implemented and not used, not clear if that is any progress - widen mode_t from int to INTEGER - change gid_t, pid_t, uid_t from system dependent to not pid_t is always 32 bit signed integer gid_t and uid_t is always 32 bit integer, of varying signedness change them all to INTEGER INTEGER is more predictably laid out and aligned the same on 64bit platforms -- that is, we need to be able to duplicate structs in Modula-3 and C and have a /very/ high confidence that they match up (we should probably pass in sizes from Modula-3, and maybe even field offset?) - change pthread_t from system dependent to not on the vast majority of systems, sizeof(pthread_t) == sizeof(integer,size_t,void*) Known exceptions are 64bit Solaris and I think 64 bit HP-UX; on those pthread_t is just a 32bit integer and this change might waste a little space - assert correctness or enough correctness of various types -- that the Modula-3 types are at least as large as the C types that pid_t is signed (presumably so you can check for <0 or == -1 or something) that short/int/long/CHAR_BIT are what we expect (punt on portability to CHAR_BIT != 8 -- i.e. a conforming C implementation can have CHAR_BIT=32 and then sizeof(char)==sizeof(short)==sizeof(int)==sizeof(long)==4) - #ifdef guard on m3unix.h; extern "C" in more places - remove presumably unused passwd from Ugrp.i3 - reorder Ugrp.i3 -- size then name; this is arbitrary and unnecessary though - rename SOCKLEN_T to m3_socklen_t (tempting to just use one set of wrappers here instead of two..) - remove FreeBSD-common clock_t, appears dead (only currently affects AMD64_FREEBSD) - a lot of this is still tedious and error-prone, but at least very portable From jkrell at elego.de Fri Apr 10 12:41:39 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 12:41:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410104139.CDCEC60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 12:41:39 Modified files: cm3/m3-sys/m3tests/src/: Test.i3 TestC.c Log message: remove pid_d, gid_t, uid_t remove comment about pthreads now that the system-dependentness has been removed so the comment obvious use double for alignment instead of size_t -- actually needed.. From jkrell at elego.de Fri Apr 10 13:04:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 13:04:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410110434.D9C9A60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 13:04:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Ustat.i3 UstatC.c m3unix.h Log message: add link chmod fchmod chown fchown creat dup some of which are needed by cvsup, not all add struct stat.nlink which is used by cvsup (is LONGINT overkill?) From jkrell at elego.de Fri Apr 10 23:01:03 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:01:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210104.331C560C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:01:03 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:01:55 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:01:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210155.CBCD460C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:01:55 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:02:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:02:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210226.B96ED60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:02:26 Modified files: cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:02:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:02:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210245.C9DF460C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:02:45 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:03:29 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:03:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210330.17ED360C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:03:29 Modified files: cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 Log message: fix warning -- remove unused import of uint32_t From jkrell at elego.de Fri Apr 10 23:09:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:09:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410210956.E538360C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:09:56 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: enable PPC32_OPENBSD in list of big endian platforms From neels at elego.de Fri Apr 10 23:13:50 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Fri, 10 Apr 2009 23:13:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410211350.0BDC060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/10 23:13:50 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: updated URLs From neels at elego.de Fri Apr 10 23:15:08 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Fri, 10 Apr 2009 23:15:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410211508.9ADC060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/10 23:15:08 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: adjust copyright From jkrell at elego.de Fri Apr 10 23:54:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:54:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215457.7C86260C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:54:57 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix serious typo -- sizeof(short) is 2 not 1! From jkrell at elego.de Fri Apr 10 23:56:44 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:56:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215644.749E060C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:56:44 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: more sanity checks (will probably these to RTLinker later, here is too late) From jkrell at elego.de Fri Apr 10 23:58:21 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 10 Apr 2009 23:58:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410215821.35BDB60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/10 23:58:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: fix I386_DARWIN, AMD64_DARWIN, FreeBSD4 -- platforms still using their own Unix/*.i3 files -- take common Ugrp.i3 away from them From jkrell at elego.de Sat Apr 11 00:05:55 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 11 Apr 2009 0:05:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410220555.B575660C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/11 00:05:55 Added files: cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 Log message: re-add Csetjmp.i3 for PPC32_OPENBSD, based on m3-sys/m3middle/src/Target.m3 From jkrell at elego.de Sat Apr 11 00:09:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 11 Apr 2009 0:09:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090410220910.68A3B60C152@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/11 00:09:10 Modified files: cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: m3makefile Log message: re-add Csetjmp.i3 for PPC32_OPENBSD, based on m3-sys/m3middle/src/Target.m3 From neels at elego.de Sat Apr 11 23:57:00 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sat, 11 Apr 2009 23:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411215700.7727B60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/11 23:57:00 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: minor fixes on cm3 installation for ubuntu From neels at elego.de Sat Apr 11 23:58:54 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sat, 11 Apr 2009 23:58:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411215854.E077C60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/11 23:58:54 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: minor fixes on cm3 installation for ubuntu From neels at elego.de Sun Apr 12 00:09:22 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sun, 12 Apr 2009 0:09:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411220922.193E260C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/12 00:09:22 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: and more minor fixes on cm3 installation for ubuntu From neels at elego.de Sun Apr 12 00:15:43 2009 From: neels at elego.de (Neels Janosch Hofmeyr) Date: Sun, 12 Apr 2009 0:15:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090411221543.9ABC260C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: neels at birch. 09/04/12 00:15:43 Modified files: cm3/www/: install-cm3-on-ubuntu-7-10.html Log message: still more minor fixes on cm3 installation for ubuntu From jkrell at elego.de Sun Apr 12 05:08:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:08:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412030858.B13FE60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:08:58 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: cvsup source says even readdir is not user-thread safe (this change only makes a difference with user threads -- adds two calls to nops for kernel threads) From jkrell at elego.de Sun Apr 12 05:12:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:12:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412031239.1380260C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:12:39 Modified files: cm3/m3-tools/cvsup/suplib/src/: CVTree.m3 Ugzip.m3 Log message: small adaptions for Scheduler vs. SchedulerPosix "IMPORT Scheduler AS SchedulerPosix" could be cleaned up further (the "safe" wrappers in CVTree are not needed) From jkrell at elego.de Sun Apr 12 05:20:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:20:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412032010.56AE360C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:20:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Utypes.i3 Ustat.i3 Log message: add nlink_t that cvsup will use and does exist everywhere else; I use LONGINT here but maybe that is overkill From jkrell at elego.de Sun Apr 12 05:32:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 5:32:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412033213.BA27E60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 05:32:13 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h UnixC.c Log message: check that nlink_t is large enough, and slightly tweak the others (comments, parens, sorting) From jkrell at elego.de Sun Apr 12 06:20:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:20:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042026.A5A5460C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:20:26 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.i3 TokScan.m3 Log message: Provide AtoL, a trivial adaption of AtoI that was there, and make AtoI a one line wrapper over it. This will be used shortly, to deal with 32bit Linux's already existant 64bit dev_t, as well as the pessmistic/idealized 64bit dev_t on all systems using my Unix/*.i3 files. While we are at it, the Linux code should become portable to big endian systems such as PPC, SPARC, MIPS. I386_FREEBSD, I386_DARWIN, AMD64_DARWIN building cvsup is about to become broken, but I386_FREEBSD I will fix. From jkrell at elego.de Sun Apr 12 06:22:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:22:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042205.A43AF60C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:22:05 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.m3 Log message: fix previous From jkrell at elego.de Sun Apr 12 06:27:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:27:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412042713.7AD4860C155@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:27:13 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: Ustat.S_IFREG etc. are no longer constants, now variables -- use if/else ladder instead of switch From jkrell at elego.de Sun Apr 12 06:36:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:36:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412043607.3BD4860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:36:07 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: adapt ScanInt/ScanLong as was done for AtoI/AtoL, less clear this will be used but probably From jkrell at elego.de Sun Apr 12 06:40:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:40:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412044008.123E260C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:40:08 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: cast st_nlink as needed between INTEGER and nlink_t -- maybe I should just change Ustat's definition of it to be INTEGER though From jkrell at elego.de Sun Apr 12 06:42:34 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:42:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412044234.E02AA60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:42:34 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: cast st_size to with ORD and VAL(off_t) as needed to compile in this case Unix/*.i3 is certainly right in using LONGINT, to allow for >4gig files on 32bit platforms, and cvsup is probably ok to use INTEGER, assuming files in CVS are always under 4gig, at least on 32bit systems From jkrell at elego.de Sun Apr 12 06:50:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:50:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045041.9852960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:50:41 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 Log message: deal more with st_size (cheat a little less, but ultimately still truncate to integer) st_ino (always 64bits) gettimeofday (use NIL instead of VAR tz) st_mtime (always 64bit LONGINT, wishful thinking?) Ugrp (provide space for copy) FileAttr compiles now From jkrell at elego.de Sun Apr 12 06:55:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:55:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045536.EA15860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:55:36 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile cm3/m3-tools/cvsup/suplib/src/dev_t_posix/: DevT.m3 Removed files: cm3/m3-tools/cvsup/suplib/src/dev_t_linux/: DevT.m3 DevTLinux.i3 m3makefile Log message: adapt to an always 64bit dev_t, including fixing big endian Linux From jkrell at elego.de Sun Apr 12 06:57:52 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 6:57:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412045752.3923660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 06:57:52 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileID.m3 Log message: Likewise, adapt to an always 64bit ino_t. Cygwin for example has a 64bit ino_t on a 32bit system. This is a little sleazy in that it uses DevT.Hash(inode). Really it should be some Int64.Hash() function. From jkrell at elego.de Sun Apr 12 07:00:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:00:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412050051.A32BD60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:00:51 Modified files: cm3/m3-tools/cvsup/suplib/src/: UnixMisc.m3 Log message: cast st_size to integer for mmap (ORD) convert to copying Unetdb cast mmap's 0 to off_t it compiles From jkrell at elego.de Sun Apr 12 07:26:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:26:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412052602.7522F60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:26:02 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: add libz to system libs for cygwin for cvsup, others need this IF they have e.g. /usr/libz.a and NOT /usr/local/libz.a, I think From jkrell at elego.de Sun Apr 12 07:33:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:33:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053303.EC4F560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:33:03 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: Try SYSTEM_LIBS{"Z"} ahead of /usr/local/libz.a. From jkrell at elego.de Sun Apr 12 07:33:21 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:33:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053321.870F360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:33:21 Modified files: cm3/m3-tools/cvsup/suplib/src/: ErrMsg.m3 SupMisc.i3 SupMisc.m3 Log message: Experimentally try replacing SupTCP with TCP. From jkrell at elego.de Sun Apr 12 07:36:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 7:36:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412053602.7BA7660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 07:36:02 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: m3makefile Log message: experimentaly remove SupTCP, SupTCPPosix (my basic problem here is that I can't compile SupTCP because it imports TCP and implements functions with the same name as TCP From jkrell at elego.de Sun Apr 12 08:17:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:17:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061708.0386360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:17:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Log message: reverse -- more important to match the C code than to use indirect names From jkrell at elego.de Sun Apr 12 08:17:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:17:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061742.5160A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:17:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Utypes.i3 Log message: fix newlines (dos2unix) From jkrell at elego.de Sun Apr 12 08:18:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:18:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412061839.7AD6660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:18:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Uerror.i3 UerrorX.h Unix.i3 UnixC.c Usignal.i3 Log message: add more for cvsup: Unix.fork Usignal.SIGALRM Usignal.SIGCHLD Uerror.ENOBUFS Uerror.ENOTDIR all portably. From jkrell at elego.de Sun Apr 12 08:21:35 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:21:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412062135.D720160C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:21:35 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: change how libz is added to SYSTEM_LIBORDER to a terser way that I thought I had unsuccessfully tried, but now works, whereas other way doesn't. From jkrell at elego.de Sun Apr 12 08:23:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:23:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412062343.6C4C260C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:23:43 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: fix last minute edit from a bit ago From jkrell at elego.de Sun Apr 12 08:43:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:43:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412064310.24E9A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:43:10 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: detect cm3 via CM3_VERSION From jkrell at elego.de Sun Apr 12 08:54:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 8:54:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412065408.9BF6C60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 08:54:08 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: use cm3 quake built in datenow() instead of Unix date This fixes problems on NT. Granted, before it was printing: Sat Apr 11 23:52:50 PDT 2009 and now it prints: 2009-04-12 06:51:38 should be ok. From jkrell at elego.de Sun Apr 12 09:08:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412070844.134B360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:08:43 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: executables were missing Uconstants.c; also add in other switches that libraries had that executables did not -- -disable-auto-import, -disable-runtime-pseudo-reloc whatever that is, -large-address-aware (large means >2gig, and has no meaning on .dlls, only .exes); found via warnings building cvsupd on cygwin From jkrell at elego.de Sun Apr 12 09:10:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:10:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412071039.45F7760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:10:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Usignal.i3 Uconstants.c Log message: add SIGHUP and SIGTERM, portable, for cvsup client From jkrell at elego.de Sun Apr 12 09:14:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:14:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412071437.DE26960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:14:37 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: don't link Uconstants.obj into standalone executables, that is redundant with m3core.lib.sa and produces errors about duplicate symbols (though this seems like dubious behavior by GNU ld to me -- objects in libs only get pulled in if they resolved something, and loose objs are always pulled in, so there's no reason to get that object and find the duplicates..granted..it is also bad/ambiguous to have duplicates but rely on this behavior to 'hide' them From jkrell at elego.de Sun Apr 12 09:21:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:21:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412072114.5179560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:21:14 Modified files: cm3/m3-tools/cvsup/client/src/: FSClient.m3 m3makefile cm3/m3-tools/cvsup/server/src/: FSServer.m3 FSServerRep.i3 m3makefile cm3/m3-tools/cvsup/suplib/src/: ChannelMux.i3 ChannelMux.m3 SigHandler.m3 m3makefile cm3/m3-tools/cvsup/suptcp/src/common/: TCPMisc.i3 m3makefile Log message: per Olaf's dccs (thanks!): SupTCP => TCP SupConnRW => ConnRW import(suptcp) => import(tcp) SupErrno => Cerrno SupConnFD => ConnFD the suptcp directory is dead, and adapt to Uerror having variables instead of constants cvsupd.exe (server) and cvsup.exe can now build on cygwin. Testing them is another matter. From jkrell at elego.de Sun Apr 12 09:34:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:34:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412073415.2D16360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:34:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/aix-3-2/: m3makefile cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: m3makefile cm3/m3-libs/m3core/src/unix/darwin-generic/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-1/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-2/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-3/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile cm3/m3-libs/m3core/src/unix/hpux-7-0/: m3makefile cm3/m3-libs/m3core/src/unix/ibm-4-3/: m3makefile cm3/m3-libs/m3core/src/unix/irix-5.2/: m3makefile cm3/m3-libs/m3core/src/unix/linux/: m3makefile cm3/m3-libs/m3core/src/unix/linux-libc6/: m3makefile cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile cm3/m3-libs/m3core/src/unix/os2/: m3makefile cm3/m3-libs/m3core/src/unix/osf-1.generic/: m3makefile cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile cm3/m3-libs/m3core/src/unix/sunos-4-x/: m3makefile cm3/m3-libs/m3core/src/unix/sysv-4.0/: m3makefile cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: m3makefile Log message: give all platforms common altered Ugrp.i3 This isn't tested, but given that common had no Ugrp.i3, odds are high that no code (except cvsup) depends on it. From jkrell at elego.de Sun Apr 12 09:58:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 9:58:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412075829.7C48460C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 09:58:29 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: Take Olaf's dccs code for finding libz. From jkrell at elego.de Sun Apr 12 10:06:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:06:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412080631.8052560C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:06:31 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: The world is not yet ready for position independent executables, instead of the small amount of extra security they offer, we have probably-over-optimized non-relocatable libs. e.g. /usr/lib/libz.a on new Birch. (besides that, it would be nice to be able to statically link libz.a into a position independent shared library; personally I'd just as soon have no position dependent code at all) From jkrell at elego.de Sun Apr 12 10:57:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412085700.E307960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:57:00 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-4/: Uucontext.i3 Log message: change Utypes.u_long to Ctypes.unsigned_long because I omitted the first, maybe should put it back From jkrell at elego.de Sun Apr 12 10:57:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 10:57:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412085751.432E860C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 10:57:51 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: FileAttrOS.i3 Log message: change Utypes.u_long to Ctypes.unsigned_long because I omitted the first, maybe should put it back From jkrell at elego.de Sun Apr 12 11:34:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 11:34:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412093400.7F4C760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 11:34:00 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Ustat.i3 UstatC.c m3unix.h Log message: For Darwin, FreeBSD, OpenBSD, NetBSD, add chflags, fchflags, and variables holding the possible values. We should see if some of the flags are common and long standing and remove the #ifdefs for them. cvsup knows about these flags on FreeBSD, at least to get/set them, and it could be improved to handle the other platforms. From jkrell at elego.de Sun Apr 12 11:56:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 11:56:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412095605.4CEA460C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 11:56:05 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Ustat.i3 Log message: add UF_SETTABLE, SF_SETTABLE, comments From jkrell at elego.de Sun Apr 12 12:01:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:01:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100151.0551660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:01:50 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: extent FreeBSD source to all architectures/FreeBSD, extend chflags/fchflags to *BSD, Darwin, From jkrell at elego.de Sun Apr 12 12:02:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:02:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100254.DEFB360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:02:54 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: don't extend this beyond FreeBSD (should move the chflags/fchflags code into another directory) From jkrell at elego.de Sun Apr 12 12:05:31 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:05:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412100531.16DB660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:05:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix typo on *BSD, Darwin From jkrell at elego.de Sun Apr 12 12:31:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 12:31:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412103124.556F160C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 12:31:24 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: fix for non-FreeBSD platforms that have chflags/fchflags (e.g. Darwin) From jkrell at elego.de Sun Apr 12 13:00:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:00:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110029.0A4FF60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:00:26 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: m3makefile Log message: only import libutil on FreeBSD; a bit misfatored around here, my fault From jkrell at elego.de Sun Apr 12 13:01:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:01:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110125.9A07B60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:01:25 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: always foist -lz into SYSTEM_LIBS{LIBC} as comment elsewhere suggests From jkrell at elego.de Sun Apr 12 13:02:21 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:02:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412110221.3195C60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:02:21 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: add AMD64_DARWIN and add comment about cvsup.quake putting in -lz -- the probe for the lib is still useful here so that we can error clearly if not found..slightly more early/clear than going ahead with link -lz..really? maybe not From jkrell at elego.de Sun Apr 12 13:18:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:18:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412111854.B4C9660C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:18:54 Modified files: cm3/m3-tools/cvsup/client/src/: m3makefile cm3/m3-tools/cvsup/server/src/: m3makefile cm3/m3-tools/cvsup/suplib/src/: m3makefile Added files: cm3/m3-tools/cvsup/client/src/: m3overrides cm3/m3-tools/cvsup/server/src/: m3overrides Log message: move overrides to overrides file, so we can ship change lowercase program to capital Program so the programs ship to cm3install/bin; is there a reason why not? From jkrell at elego.de Sun Apr 12 13:56:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:56:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412115659.E5DC760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:56:59 Modified files: cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 Log message: remove unused uint16_t import From jkrell at elego.de Sun Apr 12 13:57:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 13:57:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412115710.764C960C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 13:57:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile Log message: switch FreeBSD4 (x86) to new smaller more portable Unix/*.i3 files, plus leaving some of the signal/context stuff for user threads I386_DARWIN and AMD4_DARWIN are the only active platforms remaining with more complete target-specific Unix/*.i3 From jkrell at elego.de Sun Apr 12 14:14:26 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 14:14:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412121426.6F10A60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 14:14:26 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: FreeBSD4 Log message: update locations of odbc and postgres -- where the 'ports' install them From jkrell at elego.de Sun Apr 12 21:35:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 21:35:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412193500.9517A60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 21:35:00 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: remove -as-needed here until I understand why it breaks Linux/x86 From jkrell at elego.de Sun Apr 12 21:37:53 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 12 Apr 2009 21:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090412193753.E064B60C153@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/12 21:37:53 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_LINUX Log message: comments only, about disabling -as-needed and -pie From jkrell at elego.de Mon Apr 13 10:50:53 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 10:50:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413085053.ACE5D60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 10:50:53 Modified files: cm3/m3-sys/cm3/src/: Makefile.m3 Log message: expose the -override aka -x switch through new global M3_USE_OVERRIDES that is always defined, to be TRUE or FALSE (calling it M3_OVERRIDE or M3_OVERRIDES would also be reasonable); do this easly enough such that the central cm3.cfg can see it; a lot of processing happens after cm3.cfg (such as reading of defines from the command line, deciding if we are doing build or ship..); this will let cm3.cfg chose like runpath=$ORIGIN/../lib or INSTALL_ROOT/lib or big path to output directory From jkrell at elego.de Mon Apr 13 12:37:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 12:37:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413103710.82D9A60C157@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 12:37:10 Modified files: cm3/m3-sys/cm3/src/: Makefile.m3 Log message: "FALSE" is TRUE "" is FALSE use "" From jkrell at elego.de Mon Apr 13 12:55:50 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 12:55:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413105551.040C760C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 12:55:50 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: FreeBSD4 Log message: working experiment/prototype for issue of "how to find dependent shared paths" vs. "do uninstalled binaries work" vs. buildlocal vs. buildglobal There are many possibilities. This implements the following. Note that libm3 is the easiest file to experiment with. m3core has no dependencies, libm3 is dependent only on m3core. ---- prepare, build m3core and libm3 cd $CVSROOT/m3-libs/m3core /cm3/bin/cm3 cd ../libm3 /cm3/bin/cm3 ---- show some scenarios ---- regular cm3 with no switches/env -- "buildglobal" rm FreeBSD4/*a /cm3/bin/cm3 objdump -x FreeBSD4/libm3.so | grep PATH RPATH $ORIGIN/../lib:$ORIGIN/../../lib:$ORIGIN/../../../lib:/cm3/bin/../lib The resulting file is generally machine portable and in a pinch contains a full local path to libraries. Or in a worse pinch, LD_LIBRARY_PATH will still work. That is, if you install it to cm3installroot/bin or cm3installroot/pkg/package/target, it will find dependendent libraries via $ORIGIN. If you installed it elsewhere or leave it uninstalled, it will still most likely find the exactly correct file, still with a short rpath. Note that this "../../../lib" business is a little sloppy. 1) ../../lib preceding it is some "insurance", but not much 2) better slower insurance would be to use $ORIGIN/../pkg/m3core/target/../../../lib $ORIGIN/../../../pkg/m3core/target/../../../lib If you assume dots are not smushed out early, as they generally aren't on Unix (but they generally are on Windows), then this kind of makes sure the directory structure is as expected by walking through known must-exist directories. What would be even better along these lines is knowing the finall install point of the file and compute the exact relative path to the cm3 installed libraries. For cm3 itself, this will yield just one of $ORIGIN/../lib or $ORIGIN/../../../lib. For files installed arbitrarily elsewhere, this would be otherwise. Consider for example: /opt/cm3/lib/libm3core.so /opt/package-written-in-modula3/bin/foo There you would want $ORIGIN/../../cm3/lib. This exact computation of relative path for installroot/lib should probably be implemented, very soon. It would also be nice if runpath could read like if CM3_INSTALL defined, runpath=$CM3_INSTALL/lib. but it cannot. ---- buildlocal aka with "overrides" rm FreeBSD4/*a /cm3/bin/cm3 -override objdump -x FreeBSD4/libm3.so | grep PATH RPATH /dev2/cm3/m3-libs/m3core/FreeBSD4 This gives you an rpath entry for each dependent file, and they are each found directly, in their non-installed locations. This is the historical default. It gives you a long runpath. Almost nobody noticed. It requires that extra switch -override or -x, but gives you binaries that do work without installing, but are not particularly machine portable and again, long runpath. ---- buildglobal with an extra option rm FreeBSD4/*a M3_PORTABLE_RUN_PATH=1 /cm3/bin/cm3 objdump -x FreeBSD4/libm3.so | grep PATH RPATH $ORIGIN/../lib:$ORIGIN/../../lib:$ORIGIN/../../../lib This is the same rpath as the first, but containing only the $ORIGIN entries and omitting the last exact full path. This is good for building machine-portable archives. Again, a more precise origin to lib path should be computed, thereby going from three paths to one. A command line switch for M3_PORTABLE_RUN_PATH should probably be invented. It is hard to name this thing though. ---- This does not fit all scenarios easily or automatically, unfortunately. However it does seem like a good mix of compromises. Main thing to still do is compute relative path for $ORIGIN to cm3installroot/lib. Might be trivial with path_of(). ---- From jkrell at elego.de Mon Apr 13 13:57:11 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 13:57:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413115711.46C7F60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 13:57:11 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: Unix.common cm3cfg.common Log message: move skip_link to common code From jkrell at elego.de Mon Apr 13 14:05:49 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 14:05:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413120549.E9EBA60C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 14:05:49 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: fix for moving skip_link From jkrell at elego.de Mon Apr 13 14:12:41 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 13 Apr 2009 14:12:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090413121241.66D6360C156@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/13 14:12:41 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: fix for moving skip_link From wagner at elego.de Tue Apr 14 12:30:49 2009 From: wagner at elego.de (Olaf Wagner) Date: Tue, 14 Apr 2009 12:30:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090414103049.A947860C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/14 12:30:49 Modified files: cm3/m3-sys/cminstall/: PkgTags cm3/m3-sys/cminstall/src/: Main.m3 OS.i3 OS.m3 OSPOSIX.m3 Log message: improved disk space support modified: cminstall/src/Main.m3 modified: cminstall/src/OS.i3 modified: cminstall/src/OS.m3 modified: cminstall/src/OSPOSIX.m3 From wagner at elego.de Tue Apr 14 12:32:58 2009 From: wagner at elego.de (Olaf Wagner) Date: Tue, 14 Apr 2009 12:32:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090414103258.9B30760C064@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/04/14 12:32:58 Modified files: cm3/scripts/: make-bin-dist-min.sh Log message: disk space support and naming changes From jkrell at elego.de Wed Apr 15 13:02:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:02:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415110206.86F9460C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:02:06 Modified files: cm3/m3-tools/cvsup/quake/: cvsup.quake Log message: just alwys use CM3 From jkrell at elego.de Wed Apr 15 13:09:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:09:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415110955.B02EC60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:09:55 Modified files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: SupTCPHack.m3 Log message: dead code: presumably fix for big endian 64bit systems -- use int instead of INTEGER From jkrell at elego.de Wed Apr 15 13:11:00 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:11:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415111100.23DC560C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:11:00 Added files: cm3/m3-tools/cvsup/suptcp/src/POSIX/: make_diffable.cmd Log message: dead code: make it easier to compare with mainline From jkrell at elego.de Wed Apr 15 13:13:59 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:13:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415111359.BBB5A60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:13:59 Added files: cm3/m3-tools/cvsup/suptcp/src/common/: make_diffable.cmd Log message: make this diffable with mainline too (they appear to already match) From jkrell at elego.de Wed Apr 15 13:41:20 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 13:41:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415114120.9F9CB60C066@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 13:41:20 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h cm3/m3-libs/m3core/src/unix/uin-common/: Uin.i3 cm3/m3-libs/m3core/src/unix/uin-len/: Uin.i3 Added files: cm3/m3-libs/m3core/src/unix/Common/: Uin.c Log message: #include what we can for windows reorder includes sys first, then alphabetical; if this breaks, reorder to make it work implement ntohs, etc. in C This is just a little more portable and maybe just a little faster. To wit, the tcp library even wrap these up. Let's undo that shortly, saving a layer. From jkrell at elego.de Wed Apr 15 14:48:57 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:48:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415124857.1627560C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:48:57 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c UerrorX.h Uexec.c Ugrp.c Uin.c Umman.c Unix.i3 UnixC.c UstatC.c Uucontext.c m3makefile m3unix.h Log message: A lot of this works pretty directly with the MS C runtime, so #ifdef to let a lot through there, while blocking other. From jkrell at elego.de Wed Apr 15 14:52:02 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:52:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125202.6D91C60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:52:02 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: use the correct types, which lets is compiler fo Win32 too From jkrell at elego.de Wed Apr 15 14:55:18 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:55:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125518.6535A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:55:18 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Log message: use correct type From jkrell at elego.de Wed Apr 15 14:56:04 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125604.DF52160C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: use correct type From jkrell at elego.de Wed Apr 15 14:56:37 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125637.81CD460C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 14:56:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:56:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125656.81E1760C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:56:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 14:58:25 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 14:58:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415125825.7AAF460C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 14:58:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: fix From jkrell at elego.de Wed Apr 15 16:14:10 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 16:14:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415141410.9C13A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 16:14:10 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: reformat one tiny function somewhat From jkrell at elego.de Wed Apr 15 16:20:11 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 16:20:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415142011.CCF5E1AC4C78@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 16:20:11 Modified files: cm3/m3-tools/cvsup/suplib/src/: CVTree.m3 Ugzip.m3 Log message: SchedulerPosix => Scheduler (adapt closely to cm3 and without regard to other versions/distributions or minimizing the diff to them) From jkrell at elego.de Wed Apr 15 21:34:21 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 15 Apr 2009 21:34:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090415193421.64E7560C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/15 21:34:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Uin.c Log message: fix -- matching names, double underscores From jkrell at elego.de Thu Apr 16 22:49:37 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 16 Apr 2009 22:49:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090416204937.3A00A60C065@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/16 22:49:37 Modified files: cm3/m3-libs/m3core/src/thread/: m3makefile Log message: twitch cygwin over to win32 threads but test case: p007 --- a whole bunch of threads - does the memory grow ? still hangs From jkrell at elego.de Sun Apr 19 04:10:13 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 19 Apr 2009 4:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090419021013.40D5BCC7DC@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/19 04:10:13 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: very minor update to criticalsection and image flags From hosking at elego.de Mon Apr 20 08:41:15 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 20 Apr 2009 8:41:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420064115.3936ECC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/20 08:41:15 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's clean things up a little and make easier to diff with prior versions. From hosking at elego.de Mon Apr 20 09:09:51 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 20 Apr 2009 9:09:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420070951.AD33CCC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/20 09:09:51 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 Log message: Ignore low-bit tagged pseudo-references. From jkrell at elego.de Mon Apr 20 09:58:37 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 9:58:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420075837.67250CC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 09:58:37 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: no need for DisableSwitch/EnableSwitching here -- they are implemented nearby and do nothing From jkrell at elego.de Mon Apr 20 10:14:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 10:14:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420081421.66EC9CC7DD@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 10:14:21 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: use denser style like the Modula-3 code From jkrell at elego.de Mon Apr 20 12:34:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 12:34:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420103409.D927BCC7DE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 12:34:09 Modified files: cm3/m3-ui/m3zume/src/: m3makefile Log message: build_standalone From jkrell at elego.de Mon Apr 20 15:05:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:05:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420130507.A731DCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:05:07 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: fix C++ warning -- signal returns a function pointer not a void pointer From jkrell at elego.de Mon Apr 20 15:09:27 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:09:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420130927.6F287CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:09:27 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 m3makefile Added files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: convert more code to C This trades some thin C wrappers for more code in C but with a general reduction in "wrappers". In particular, users of thin wrappers are written in C. It is NOT clearly worthwhile. The wrappers that are gone are: pthread_setspecific_activations heapCond wrappers heapMu wrappers The functions that are now implemented in C for pthreads are: GetActivation SetActivation (and new SetActivationUnsafeFast, when initialization must have already occured) PushEFrame PopEFrame GetCurrentHandlers SetCurrentHandlers LockHeap UnlockHeap BroadcastHeap WaitHeap posix and Win32 vary somewhat. Win32 C: GetActivation SetActivation PushEFrame PopEFrame GetCurrentHandlers SetCurrentHandlers LockHeap UnlockHeap BroadcastHeap, but it just calls back to the Modula-3 WaitHeap, but it just calls back to the Modula-3 posix user threads: PushEFrame -- just due it being extern, calls back to the Modula-3 PopEFrame -- just due it being extern, calls back to the Modula-3 On the Win32 side, there is also a reduction in dependency on cloned headers, particularly the static allocation of CRITICAL_SECTION, though this is an area (Win32 cloned headers) I've generally left alone and probably will continue to. Win32 in a sense has multiplicity comparable to Posix: 3 kernels: 9x, NT, CE but 9x is only x86 and is binary compatible with NT/x86 CE is not binary compatible with 9x/NT, but does have processor overlap (at least, .dll names change) many processors: x86, AMD64, ARM (CE), PowerPC (historical NT, CE, Xbox360), Alpha (historical), MIPS (historical NT, current CE?), SH (CE), Itanium, SH (CE), I860 (never shipped?) 32bit and 64bit but it seems like less of a problem? Well, Modula-3 has only ported to Win32/x86 so far.. On the Win32 side this is just a step short of eliminating a thread local that has already been eliminated from the pthread side (ie: activation vs. handlers -- store the handlers stack in the activation). (Probably no point for posix user threads.) some "vertical compression" wrt #ifdef apple some name compression wrt "handle" From jkrell at elego.de Mon Apr 20 15:28:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:28:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420132821.7D4CBCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:28:21 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h Log message: Forgot to add file From jkrell at elego.de Mon Apr 20 15:34:22 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:34:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420133422.D70D4CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:34:22 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: Sun cc interpets -shared as a bunch of single character options, you get warnings like -s conflicts with -g, -s disabled -h encountered multiple times, first one wins From jkrell at elego.de Mon Apr 20 15:36:02 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 15:36:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420133602.C93FACC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 15:36:02 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h Log message: add #include stddef.h for some systems to get ptrdiff_t (Linux) From jkrell at elego.de Mon Apr 20 16:04:08 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 16:04:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420140408.BFCD6CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 16:04:08 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 RTOS.i3 Log message: I forgot to check these in too. From jkrell at elego.de Mon Apr 20 16:20:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 20 Apr 2009 16:20:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090420142056.98EABCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/20 16:20:56 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTOS.i3 Log message: slight reformat new and recent content From hosking at elego.de Tue Apr 21 03:33:42 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:33:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421013343.202D7CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:33:42 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:36:22 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:36:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421013622.A37DDCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:36:22 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:42:23 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:42:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421014223.67DA4CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:42:23 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:45:38 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:45:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421014538.3EDA1CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:45:38 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 03:59:42 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 3:59:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421015942.94F72CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 03:59:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:02:09 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:02:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421020210.3A1CECC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:02:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:03:59 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:03:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421020359.D7858CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:03:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 Log message: Tidier. From hosking at elego.de Tue Apr 21 04:15:07 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 21 Apr 2009 4:15:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421021508.01DAECC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/21 04:15:07 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Tidier. From jkrell at elego.de Tue Apr 21 08:47:10 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:47:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421064710.AB4C2CC7EF@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:47:10 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: huh oops, remove two out of three duplicates From jkrell at elego.de Tue Apr 21 08:34:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:34:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421063456.A2431CC7E4@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:34:56 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTHooks.i3 RTOS.i3 cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.h cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: go back mostly to yesterday put back the thin C wrappers and more Modula-3 code Only small change that I think survives: indentation (columns) on #defines in ThreadPosixC.c From jkrell at elego.de Tue Apr 21 08:54:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:54:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421065406.578DECC7F5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:54:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 Log message: move this back too From jkrell at elego.de Tue Apr 21 08:52:14 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 8:52:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421065215.10DCDCC7F3@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 08:52:14 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: try again, I must not have switched cygwin to pthreads when testing this From jkrell at elego.de Tue Apr 21 09:48:31 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 9:48:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421074831.DF81BCC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 09:48:31 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove unused Scheduler import From jkrell at elego.de Tue Apr 21 09:56:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 9:56:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421075649.B91FDCC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 09:56:49 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: some reformatting From jkrell at elego.de Tue Apr 21 11:24:11 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 11:24:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421092411.B4F91CC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 11:24:11 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: eliminate a thread local as was done for pthread including moving initialization out of the module initializer that runs pretty late and into code that the runtime startup calls explicitly also flatten various two level names From jkrell at elego.de Tue Apr 21 11:57:00 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 11:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421095700.70824CC7DB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 11:57:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: make sure that Self() returns NIL instead of initializing on-demand speed up PopEFrame by removing check for initialization, since PushEFrame must have already done it From jkrell at elego.de Tue Apr 21 13:02:12 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 21 Apr 2009 13:02:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090421110213.1F37ECC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/21 13:02:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile Added files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: Experimentally transform like pthread and move the criticalsections and threadlocal to C and wrap thinly. This hides from Modula-3 the need to know the size of a critical section, though this seems like a smaller problem on the single vendor few kernel Win32 (NT, CE, and NT and 9x are binary compatible) than the multi vendor many kernel Posix. There are other cloned header dependencies here not factored into C (SuspendThread, ResumeThread, MEMORY_BASIC_INFO, etc.) Note that Modula-3 does and long has done leak its criticalsections and threadlocals. We should probably address that. More generally there should perhaps be module destructors, though like Win32 it helps to know the ExitProcess() vs. FreeLibrary case. In ExitProcess() it is a waste of time and to try to cleanup whereas in FreeLibrary is a is good idea to cleanup. EnterCriticalSection(foo) => EnterCriticalSection_foo() likewise for LeaveCriticalSection TlsGetValue TlsSetValue InitializeCriticalSection and TlsAlloc bundled into InitC. Logic for TlsGetValue_foo() before TlsAlloc_foo() buried in TlsGetValue_foo(). In future, in Vista-specific code, besides condition variables, we can use __declspec(thread) or such. (Posix/gcc platforms should use __thread..and more generally, no matter the deficient underyling platforms, Modula-3 should consider <*threadlocal*>) From hosking at cs.purdue.edu Wed Apr 22 02:05:44 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 22 Apr 2009 10:05:44 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090421110213.1F37ECC7DA@birch.elegosoft.com> References: <20090421110213.1F37ECC7DA@birch.elegosoft.com> Message-ID: <482DD773-E9E4-4C1B-BEAD-A934CD0836CE@cs.purdue.edu> I believe gcc has some threadlocal declaration mechanisms too that we might exploit from C. On 21 Apr 2009, at 13:02, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/21 13:02:12 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > Added files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32C.c > > Log message: > Experimentally transform like pthread and move the criticalsections > and threadlocal > to C and wrap thinly. > > This hides from Modula-3 the need to know the size of a critical > section, though > this seems like a smaller problem on the single vendor few kernel > Win32 (NT, CE, > and NT and 9x are binary compatible) than > the multi vendor many kernel Posix. There are other cloned header > dependencies here > not factored into C (SuspendThread, ResumeThread, > MEMORY_BASIC_INFO, etc.) > > Note that Modula-3 does and long has done leak its criticalsections > and threadlocals. > We should probably address that. > More generally there should perhaps be module destructors, though > like Win32 > it helps to know the ExitProcess() vs. FreeLibrary case. In > ExitProcess() > it is a waste of time and to try to cleanup whereas in FreeLibrary > is a is good idea > to cleanup. > > EnterCriticalSection(foo) => EnterCriticalSection_foo() > likewise for > LeaveCriticalSection > TlsGetValue > TlsSetValue > InitializeCriticalSection and TlsAlloc bundled into InitC. > Logic for TlsGetValue_foo() before TlsAlloc_foo() buried in > TlsGetValue_foo(). > > In future, in Vista-specific code, besides condition variables, we > can use __declspec(thread) or such. > (Posix/gcc platforms should use __thread..and more generally, no > matter the deficient underyling > platforms, Modula-3 should consider <*threadlocal*>) From hosking at elego.de Wed Apr 22 09:54:31 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 22 Apr 2009 9:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090422075431.A8BF5CC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/04/22 09:54:31 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 RTHeapRep.i3 Log message: Cleanup allocation sequences. Improve efficiency of Clone. From mika at elego.de Fri Apr 24 18:22:47 2009 From: mika at elego.de (Mika Nystrom) Date: Fri, 24 Apr 2009 18:22:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090424162247.3A1A1CC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/24 18:22:47 Modified files: cm3/m3-libs/libbuf/src/: Wx.m3 Log message: PM3's NEW (TEXT, n) should be Text8.Create(n-1) in CM3. (Compare same stretch of code from PM3.) From jkrell at elego.de Sat Apr 25 00:12:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 25 Apr 2009 0:12:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090424221210.7248BCC7DA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/25 00:12:10 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: remove C++ style -- don't need the intermediates anyway From mika at elego.de Sat Apr 25 10:03:08 2009 From: mika at elego.de (Mika Nystrom) Date: Sat, 25 Apr 2009 10:03:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090425080309.08845CC3D7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/25 10:03:08 Modified files: cm3/m3-comm/stubgen/src/: Type.m3 Log message: added missing initialization of widechar From mika at elego.de Sat Apr 25 23:44:51 2009 From: mika at elego.de (Mika Nystrom) Date: Sat, 25 Apr 2009 23:44:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090425214451.59BCCCC7D9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/25 23:44:51 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Fixed a long-standing gap in M3CBackEnd_C: constants FIRST(t), LAST(t) for t REAL, LONGREAL, EXTENDED. They now return the correct values of the correct types rather than, as before, integer 0. From jay.krell at cornell.edu Tue Apr 28 13:23:31 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 11:23:31 +0000 Subject: [M3commit] test Message-ID: ... From jkrell at elego.de Tue Apr 28 14:29:39 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 14:29:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428122940.0D93ECC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 14:29:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add system(), probably a good alternative for Olaf's diskspace checks (and it is portable to older cm3 releases) From jkrell at elego.de Tue Apr 28 14:42:40 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 14:42:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428124240.7B5A0CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 14:42:40 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add isatty and truncate(const char* filepath) (msvcrt does have ftruncate(int file, long size), but limited to 2gig) From jkrell at elego.de Tue Apr 28 15:04:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 15:04:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428130454.D88E6CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 15:04:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c m3unix.h Log message: add more wrappers, and fix readlink to traffic in INTEGER (aka ssize_t) instead of int (note that the standard has changed here) From jkrell at elego.de Tue Apr 28 15:38:44 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 15:38:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428133844.4E525CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 15:38:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 Log message: Remove at least one instance of PushEFrame from early initialization. You know, maybe PushEFrame can avoid doing initialization on-demand and we can instead initialize things a little more deliberately in an order that works, maybe. Win32 and pthreads do in on-demand but user threads doesn't yet, maybe we can fix it and then optimize the others slightly. #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, M3_AcxOUs_n_bytes=4) at ../src/runtime/common/RTType.m3:815 #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/runtime/common/RTType.m3:724 #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, M3_AcxOUs_key=-1025633461, M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, M3_DjPxE3_m=0x80ac9c0) at ../src/runtime/common/RTType.m3:163 #5 0x08077395 in RTLinker__DeclareModuleTypes (M3_DjPxE3_m=0x80ac9c0) at ../src/runtime/common/RTLinker.m3:280 #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/RTLinker.m3:234 #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:112 #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) at ../src/runtime/common/RTLinker.m3:122 #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfec84, M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:42 #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) at _m3main.mc:3 From jkrell at elego.de Tue Apr 28 16:08:43 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428140843.AC1F7CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:08:43 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: fix another case where PushEFrame is called before ThreadF.Init is called That causes user threads to crash; pthreads and ntthreads work via arguably poor on-demand initialization (which is also related to why they can't use NEW where the used to) see revision 14 move GetGCRatio to later; that appears to be ok, right? (gdb) bt #0 0x08089570 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb90) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x0807581e in RTCollector__GetGCRatio () at ../src/runtime/common/RTCollector.m3:2802 #2 0x08075650 in RTHeapRep__Init () at ../src/runtime/common/RTCollector.m3:2769 #3 0x08076a87 in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfec84, M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:58 #4 0x0804af30 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) at _m3main.mc:3 From jkrell at elego.de Tue Apr 28 16:20:44 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:20:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428142044.642B4CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:20:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: module initializer is too late also, remove GetGCRatio for now Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x28201100 (LWP 100094)] 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) at ../src/thread/POSIX/ThreadPosix.m3:1599 1599 f.next := self.context.handlers; (gdb) bt #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) at ../src/thread/POSIX/ThreadPosix.m3:1599 #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/common/RTCollector.m3:2801 #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/runtime/common/RTCollector.m3:2883 #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:399 #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) at ../src/runtime/common/RTLinker.m3:113 #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) at ../src/runtime/common/RTLinker.m3:122 #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, M3_AJWxb1_p_argv=0xbfbfecec, M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/runtime/common/RTLinker.m3:42 #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) at _m3main.mc:3 (gdb) From jkrell at elego.de Tue Apr 28 16:23:39 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:23:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428142339.6B930CC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:23:39 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: put userthreads in m3coreuserthreads.so (even if this is the only thread implementation for the platform) This isn't likely the right long term solution, there seems to be an interface incompatibility between the two (I /really/ think IF user threads are to exist, they should be in the same .so and switch function pointers during initialization...) From jkrell at elego.de Tue Apr 28 16:50:23 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 16:50:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428145023.8CE4DCC3B6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 16:50:23 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: move expensive TRY out of fast allocation path (still, ThreadF.Init attempts the first allocation and goes down this path and crashes, still being pondered, but this change should speed up allocation-intensive scenarios) From jkrell at elego.de Tue Apr 28 17:28:42 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 17:28:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428152842.57AB7CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 17:28:42 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: go back a version; something similar will be done instead that gets the same perf benefit and fixes the crash -- the raise will be moved out of LongAlloc to its two callers From jkrell at elego.de Tue Apr 28 17:52:15 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 17:52:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428155215.A8460CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 17:52:15 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: move pusheframe out of the success paths (not just the fast paths), thereby letting userthreads progress much further, without giving in and making PushEFrame initialize on demand; this should speed up allocation-intensive scenarios for all threading models; userthreads now gets as far as..the initialization code for the current version appears to never have been finished From jkrell at elego.de Tue Apr 28 18:03:41 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 18:03:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428160341.B4067CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 18:03:41 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 Log message: initialize heapCond, now userthreads works at least well enough that m3bundle in do-cm3-std.py doesn't crash From jkrell at elego.de Tue Apr 28 18:39:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 28 Apr 2009 18:39:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428163946.15507CC3B5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/28 18:39:46 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: twitch I386_FREEBSD to user threads for a few days From hosking at cs.purdue.edu Tue Apr 28 23:45:51 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:45:51 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428142044.642B4CC3B6@birch.elegosoft.com> References: <20090428142044.642B4CC3B6@birch.elegosoft.com> Message-ID: <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Huh? Don't let dubious premature optimizations distort the code base.... On 28 Apr 2009, at 16:20, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 16:20:44 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 > > Log message: > module initializer is too late also, remove GetGCRatio for now > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x28201100 (LWP 100094)] > 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > 1599 f.next := self.context.handlers; > (gdb) bt > #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ > common/RTCollector.m3:2801 > #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ > runtime/common/RTCollector.m3:2883 > #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:399 > #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:113 > #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) > at ../src/runtime/common/RTLinker.m3:122 > #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, > M3_AJWxb1_p_argv=0xbfbfecec, > M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ > runtime/common/RTLinker.m3:42 > #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) > at _m3main.mc:3 > (gdb) From hosking at cs.purdue.edu Tue Apr 28 23:44:50 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:44:50 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428133844.4E525CC3B6@birch.elegosoft.com> References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: I don't care if there are extra instances of PushEFrame at startup. Let's improve performance of steady-state rather than bootstrapping. On 28 Apr 2009, at 15:38, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 15:38:44 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 > > Log message: > Remove at least one instance of PushEFrame from early initialization. > You know, maybe PushEFrame can avoid doing initialization on-demand > and we can instead initialize things a little more deliberately > in an order that works, maybe. Win32 and pthreads do in on-demand > but user threads doesn't yet, maybe we can fix it and then optimize > the others slightly. > > #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) > at ../src/thread/POSIX/ThreadPosix.m3:1599 > #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, > M3_AcxOUs_n_bytes=4) > at ../src/runtime/common/RTType.m3:815 > #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ > runtime/common/RTType.m3:724 > #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, > M3_AcxOUs_key=-1025633461, > M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 > #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, > M3_DjPxE3_m=0x80ac9c0) > at ../src/runtime/common/RTType.m3:163 > #5 0x08077395 in RTLinker__DeclareModuleTypes > (M3_DjPxE3_m=0x80ac9c0) > at ../src/runtime/common/RTLinker.m3:280 > #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ > RTLinker.m3:234 > #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) > at ../src/runtime/common/RTLinker.m3:112 > #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) > at ../src/runtime/common/RTLinker.m3:122 > #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, > M3_AJWxb1_p_argv=0xbfbfec84, > M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ > runtime/common/RTLinker.m3:42 > #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) > at _m3main.mc:3 From hosking at cs.purdue.edu Tue Apr 28 23:46:48 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 29 Apr 2009 07:46:48 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20090428142339.6B930CC3B6@birch.elegosoft.com> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> Message-ID: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Huh? I thought we decided against this... On 28 Apr 2009, at 16:23, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/04/28 16:23:39 > > Modified files: > cm3/m3-libs/m3core/src/: m3makefile > > Log message: > put userthreads in m3coreuserthreads.so (even if this is the only > thread implementation for the platform) > This isn't likely the right long term solution, there seems to be an > interface incompatibility between the two (I /really/ think IF user > threads are to exist, they should be in the same .so and switch > function pointers during initialization...) From jay.krell at cornell.edu Wed Apr 29 00:53:11 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 22:53:11 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> References: <20090428142044.642B4CC3B6@birch.elegosoft.com> <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Message-ID: [oops, addressing a larger point that maybe wasn't made] I think getting the TRY out of fast paths is good even for after initialization. Getting TRY out of even the slow paths is "needed" for initialization to not crash, unless you contort other code, **for some subjective definition of contortion**. If you leave try in the slow allocation path, then ThreadF.Init cannot use NEW and/or PushEFrame has to do on-demand initialization -- like how pthread and win32thread are now, but weren't for a long time and how userthread isn't. With the RTCollector.m3 changes, ThreadPthread.m3 and ThreadWin32.m3 should be able to go back to their historical arguably nicer slightly more efficient form, where GetActivation does not initialize and where initialize uses regular NEW. It is a tradeoff either way. Another idea that I considered is to initialize the allocator a little "better" such that the first allocation goes down a fast path. But I couldn't come up with a nice way to do that. Surely we agree getting TRY out of the fast path is reasonable? I also considered reordering RTLinker.m3 or breaking up pieces but avoided those. Avoiding TRY/RAISE/ is a bit contorted but to some extent unavoidable since they rely on initialization. __thread might help here too but I doubt we'll ever rely on that completely. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:45:51 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Huh? Don't let dubious premature optimizations distort the code > base.... > > On 28 Apr 2009, at 16:20, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 16:20:44 >> >> Modified files: >> cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 >> >> Log message: >> module initializer is too late also, remove GetGCRatio for now >> >> Program received signal SIGSEGV, Segmentation fault. >> [Switching to Thread 0x28201100 (LWP 100094)] >> 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> 1599 f.next := self.context.handlers; >> (gdb) bt >> #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ >> common/RTCollector.m3:2801 >> #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ >> runtime/common/RTCollector.m3:2883 >> #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:399 >> #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:113 >> #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) >> at ../src/runtime/common/RTLinker.m3:122 >> #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >> M3_AJWxb1_p_argv=0xbfbfecec, >> M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ >> runtime/common/RTLinker.m3:42 >> #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) >> at _m3main.mc:3 >> (gdb) > From jay.krell at cornell.edu Wed Apr 29 00:57:41 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 22:57:41 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: This occurs before ThreadF.Init(). (err, not clear from below, but I think so). Would you rather that ThreadF.Init() do initialization on demand, as pthread and win32thread currently do, and PushEFrame forever have to check for that case and ThreadF.Init continue to avoid NEW(), as it currently does? It isn't great either way but I think this is the preferable path. Code has to be contorted to avoid circularities.. try/raise/ depend on some initialization unfortunately. We'll trade contortions. Avoid try/raise/ in a few places, get back to not having on-demand initialization nor having to use calloc directly in place of NEW. PushEFrame will be slightly faster for all callers, not just during initialization. But just very slightly. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:44:50 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I don't care if there are extra instances of PushEFrame at startup. > Let's improve performance of steady-state rather than bootstrapping. > > On 28 Apr 2009, at 15:38, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 15:38:44 >> >> Modified files: >> cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 >> >> Log message: >> Remove at least one instance of PushEFrame from early initialization. >> You know, maybe PushEFrame can avoid doing initialization on-demand >> and we can instead initialize things a little more deliberately >> in an order that works, maybe. Win32 and pthreads do in on-demand >> but user threads doesn't yet, maybe we can fix it and then optimize >> the others slightly. >> >> #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) >> at ../src/thread/POSIX/ThreadPosix.m3:1599 >> #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, >> M3_AcxOUs_n_bytes=4) >> at ../src/runtime/common/RTType.m3:815 >> #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ >> runtime/common/RTType.m3:724 >> #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, >> M3_AcxOUs_key=-1025633461, >> M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 >> #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, >> M3_DjPxE3_m=0x80ac9c0) >> at ../src/runtime/common/RTType.m3:163 >> #5 0x08077395 in RTLinker__DeclareModuleTypes >> (M3_DjPxE3_m=0x80ac9c0) >> at ../src/runtime/common/RTLinker.m3:280 >> #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ >> RTLinker.m3:234 >> #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >> at ../src/runtime/common/RTLinker.m3:112 >> #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) >> at ../src/runtime/common/RTLinker.m3:122 >> #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >> M3_AJWxb1_p_argv=0xbfbfec84, >> M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ >> runtime/common/RTLinker.m3:42 >> #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) >> at _m3main.mc:3 > From jay.krell at cornell.edu Wed Apr 29 01:06:14 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 23:06:14 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: We didn't really decide. You insisted on no function pointers. I did nothing. As long as userthreads not working anyway, moot. I think the below is close to what you want, though I think in reality we should probably have m3-libs/m3coreuserthreads m3-libs/m3coreuserthreads/src/m3makefile USER_THREADS = TRUE or whatever include(../../m3core/m3makefile) always building two .so files. And then maybe have a quake directive that replaces m3core with m3coreuserthreads, and implies build_standalone, or something. Though that won't quite work I think, I'll see. But I still suspect one .so with both implementations is reasonable. Switchable with a command line option @M3userthreads, and a quake directive to alter the default (and offer @M3kernelthreads, we, well..cygwin for example could offer @M3win32threads and @M3pthreads, so maybe rename @M3kernelthreads to @M3pthreads). There is a certain level of inlining that I think should never be expected. Stuff that is dynamic linking should have not implementation details leaked across the dynamic link boundary. (For some definition of "implementation detail" though.. struct sizes do leak for example). If you are willing to dynamic link usually, then is it really interesting to have static linking be slightly faster? I'm not sure. Therefore, point being -- dynamic linking implies there is already a presence of function pointers (since dynamic linked function calls are always somehow indirect) and a lack of inlining. You might as well then have function pointers immediately on the "landing" site of the dynamically linked function calls that switch between userthreads and kernelthreads. Could be that there is an option to build more optimally where userthread option is omitted and kernelthreads unconditionally used -- that would be used currently for instance on Linux where userthreads don't work (though that might be fixed), and also on Win32 where user threads never worked and nobody asked for them (though they are fixable there -- fibers). I realize maybe there is a strong counteropinion, like, whatever inefficiences are implied by dynamic linking are to be "fought" against with aggressive/creative/even fragile optimization techniques. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Wed, 29 Apr 2009 07:46:48 +1000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Huh? I thought we decided against this... > > On 28 Apr 2009, at 16:23, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 09/04/28 16:23:39 >> >> Modified files: >> cm3/m3-libs/m3core/src/: m3makefile >> >> Log message: >> put userthreads in m3coreuserthreads.so (even if this is the only >> thread implementation for the platform) >> This isn't likely the right long term solution, there seems to be an >> interface incompatibility between the two (I /really/ think IF user >> threads are to exist, they should be in the same .so and switch >> function pointers during initialization...) > From jay.krell at cornell.edu Wed Apr 29 01:14:16 2009 From: jay.krell at cornell.edu (Jay) Date: Tue, 28 Apr 2009 23:14:16 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: angle brackets again messed up, you have to imagine *fatal* occuring in a few places in my mail, with angle brackets.. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > > try/raise/ depend on some initialization unfortunately. > We'll trade contortions. Avoid try/raise/ in a few places, From jkrell at elego.de Wed Apr 29 01:21:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 1:21:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090428232156.8E658CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 01:21:56 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: start of __thread use, not yet active From jay.krell at cornell.edu Wed Apr 29 02:06:02 2009 From: jay.krell at cornell.edu (Jay) Date: Wed, 29 Apr 2009 00:06:02 +0000 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: > I realize maybe there is a strong counteropinion, like, whatever > inefficiences are >implied by dynamic linking are to be "fought" > against with aggressive/creative/even fragile optimization techniques. I realize I argue for optimizing PushEFrame and for deoptimizing e.g. lock. PushEFrame is presumably more common...except that it probably occurs most often with lock? I don't know, I have no numbers. I'm not sure yet what to do here. Swapping .so files might or might not work. If it does, that's a step but doesn't enable everything. For example when I just switch compilation back and forth without "clean", I get errors about types missing. Maybe that'll occur at runtime, maybe not? Maybe these are different? Depends somewhat on what "reveal" does? Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, but loopholed to escape these problems?? ("These problems" are partly that I don't fully understand the Modula-3 object model, e.g. what does "reveal" do, at a low level? What does "brand" do, at a low level? I looked into it some and brand doesn't seem to affect objects at all, only out of band typeinfo.) Maybe just leave it as an option in m3core's m3makefile and people can twiddle it if they want and rebuild the entire system like it is today? That is a bit onerous, but maybe it's all userthreads deserve? ? Anyone who actually wanted to switch back and forth (Mika) would just have two installs and two source trees? - Jay From jkrell at elego.de Wed Apr 29 02:21:07 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 2:21:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429002107.C2BDCCC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 02:21:07 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: now that initialization is in better shape, go back to PushEFrame assumes initialization has already occured, else crashes. This should save a few cycles off functions that use try or lock. NEW used in InitActivations Could now use NEW/DISPOSE for mutexes/conditions also, ref array of char, but not yet (I just need to lookup syntax) (Tony prefers all allocations use NEW and not Cstdlib.calloc; calloc was used here before because NEW used TRY/RAISE, TRY/RAISED used PushEFrame, PushEFrame used NEW => circularity, fixed previously by having PushEFrame use calloc instead of NEW, now fixed by having NEW only use TRY/RAISE (just RAISE actually) in the failure path -- early initialization/allocation is "fragile" in that if you can't allocate much of anything at all, you'll crash or infinitely recurse, whereas before, well, we left it derefing NULL from calloc anyway; note that "startup" isn't "necessarily" early, such as in a dynamically loaded case -- better might be on Win32 to push early allocation into DllMain and fail that if low on resources, or try to somehow propagate the errors whenever they occur -- i.e. raising an exception should require very little resources, allocated up front with the process or thread). From jkrell at elego.de Wed Apr 29 02:32:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 2:32:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429003255.DBFFBCC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 02:32:55 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: put back assert allThreads # me, still reasonable even if they are all allocated the same now From jay.krell at cornell.edu Wed Apr 29 03:07:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 28 Apr 2009 18:07:27 -0700 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: <4476E40C-0735-41E1-B261-4B91005BC8A6@hotmail.com> I've also been forgetting that I upset the apple cart by merging the two thread locals into one. Pusheframe did not otherwise depend on heap allocation. Still I think current is good. - Jay (phone) On Apr 28, 2009, at 5:06 PM, Jay wrote: > >> I realize maybe there is a strong counteropinion, like, whatever >> inefficiences are >implied by dynamic linking are to be "fought" >> against with aggressive/creative/even fragile optimization >> techniques. > > > I realize I argue for optimizing PushEFrame and for deoptimizing > e.g. lock. > PushEFrame is presumably more common...except that it probably > occurs most often with lock? I don't know, I have no numbers. > > > I'm not sure yet what to do here. > Swapping .so files might or might not work. > If it does, that's a step but doesn't enable everything. > > > For example when I just switch compilation back and forth without > "clean", I get errors about types missing. Maybe that'll occur at > runtime, maybe not? Maybe these are different? Depends somewhat on > what "reveal" does? > Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, > but loopholed to escape these problems?? ("These problems" are > partly that I don't fully understand the Modula-3 object model, e.g. > what does "reveal" do, at a low level? What does "brand" do, at a > low level? I looked into it some and brand doesn't seem to affect > objects at all, only out of band typeinfo.) > > > Maybe just leave it as an option in m3core's m3makefile and people > can twiddle it if they want and rebuild the entire system like it is > today? > That is a bit onerous, but maybe it's all userthreads deserve? > ? > > > Anyone who actually wanted to switch back and forth (Mika) would > just have two installs and two source trees? > > > - Jay From mika at elego.de Wed Apr 29 07:49:41 2009 From: mika at elego.de (Mika Nystrom) Date: Wed, 29 Apr 2009 7:49:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429054941.71DBACC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 09/04/29 07:49:41 Modified files: cm3/m3-comm/stubgen/src/: Type.m3 Log message: How did I let this slip through? widechar initialization had the wrong type. From jkrell at elego.de Wed Apr 29 15:27:29 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 15:27:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429132729.7080FCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 15:27:29 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 M3Build.m3 Utils.i3 UtilsPosix.m3 UtilsWin32.m3 Log message: whereever there is a function to "link" a file, add a more verbosely named function "symbolic link" a file, and another function to hard link a file, leaving the original plain "link" unchanged. Hard link functions not used yet. Symlink aliases not used. Change the output command from "link" to "ln". I believe this is just for humans. "link" is the linker on NT ("ld") From jkrell at elego.de Wed Apr 29 15:49:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 15:49:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429134935.266ADCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 15:49:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: combine MemAlloc + pthread_mutex_init => pthread_mutex_new MemAlloc + pthread_cond_init => pthread_cond_new pthread_mutex_destroy + MemFree => pthread_mutex_delete pthread_cond_destroy + MemFree => pthread_cond_delete This was upon revisiting MemAlloc and was going to change to use NEW, however a REF ARRAY OF CHAR and its first byte are not at the same address, which is a bit annoying, so didn't go that route. This isn't clearly worth anything, but it also shouldn't be controversial. A small net reduction in the number of C symbols: since "size" and "init" now combine down to "new". MemAlloc and MemFree go away now, but the allocations are still done with calloc, but from the C code. While there, treat ENOMEM like other out of memory cases. Any other errors including EGAIN trigger assertion failures. Remove the avoidance of RAISE. Two of the uses are within a TRY, one is not. But the reasons are moot now, now that initialization order is better. Rename "UNDERUNDER_THREAD" to "M3CONFIG_THREAD_LOCAL_STORAGE", to be used shortly. From jkrell at elego.de Wed Apr 29 16:05:42 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 16:05:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429140542.478AFCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 16:05:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: m3makefile Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/config/: tls.c Log message: use __thread if it appears to work -- tested with gcc and Sun cc else continue to use pthread_get/setspecific This will probably usually save a few more cycles off PushEFrame. From hosking at cs.purdue.edu Wed Apr 29 20:17:21 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:17:21 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428133844.4E525CC3B6@birch.elegosoft.com> Message-ID: On 29 Apr 2009, at 08:57, Jay wrote: > > This occurs before ThreadF.Init(). > (err, not clear from below, but I think so). > Would you rather that ThreadF.Init() do initialization on demand, > as pthread and win32thread currently do, > and PushEFrame forever have to check for that case and ThreadF.Init > continue to avoid NEW(), as it currently does? > > > It isn't great either way but I think this is the preferable path. > > > Code has to be contorted to avoid circularities.. > try/raise/ depend on some initialization unfortunately. > > > We'll trade contortions. Avoid try/raise/ in a few places, > get back to not having on-demand initialization nor having to use > calloc directly in place of NEW. > PushEFrame will be slightly faster for all callers, not just during > initialization. But just very slightly. This sounds like the best plan, yes. Any bootstrap code like this should probably avoid TRY/RAISE as much as possible. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Wed, 29 Apr 2009 07:44:50 +1000 >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> I don't care if there are extra instances of PushEFrame at startup. >> Let's improve performance of steady-state rather than bootstrapping. >> >> On 28 Apr 2009, at 15:38, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 09/04/28 15:38:44 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/runtime/common/: RTType.m3 >>> >>> Log message: >>> Remove at least one instance of PushEFrame from early >>> initialization. >>> You know, maybe PushEFrame can avoid doing initialization on-demand >>> and we can instead initialize things a little more deliberately >>> in an order that works, maybe. Win32 and pthreads do in on-demand >>> but user threads doesn't yet, maybe we can fix it and then optimize >>> the others slightly. >>> >>> #0 0x08089490 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfe9fc) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> #1 0x0807fe09 in RTType__Calloc (M3_AcxOUs_n=1024, >>> M3_AcxOUs_n_bytes=4) >>> at ../src/runtime/common/RTType.m3:815 >>> #2 0x0807f84d in RTType__Expand (M3_DaARCY_m=0x80b238c) at ../src/ >>> runtime/common/RTType.m3:724 >>> #3 0x0807f715 in RTType__FindSlot (M3_DaARCY_m=0x80b238c, >>> M3_AcxOUs_key=-1025633461, >>> M3_AJWxb1_aux=0x0) at ../src/runtime/common/RTType.m3:699 >>> #4 0x0807e2a1 in RTTypeSRC__AddTypecell (M3_Eic7CK_def=0x80ac9f4, >>> M3_DjPxE3_m=0x80ac9c0) >>> at ../src/runtime/common/RTType.m3:163 >>> #5 0x08077395 in RTLinker__DeclareModuleTypes >>> (M3_DjPxE3_m=0x80ac9c0) >>> at ../src/runtime/common/RTLinker.m3:280 >>> #6 0x08077115 in RTLinker__FixTypes () at ../src/runtime/common/ >>> RTLinker.m3:234 >>> #7 0x08076bee in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:112 >>> #8 0x08076c94 in RTLinker__AddUnit (M3_DjPxE5_b=0x8076820) >>> at ../src/runtime/common/RTLinker.m3:122 >>> #9 0x0807690e in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >>> M3_AJWxb1_p_argv=0xbfbfec84, >>> M3_AJWxb1_p_envp=0xbfbfec8c, M3_AJWxb1_p_instance=0x0) at ../src/ >>> runtime/common/RTLinker.m3:42 >>> #10 0x0804ae60 in main (argc=1, argv=0xbfbfec84, envp=0xbfbfec8c) >>> at _m3main.mc:3 >> From hosking at cs.purdue.edu Wed Apr 29 20:19:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:19:08 +1000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20090428142044.642B4CC3B6@birch.elegosoft.com> <47551CAD-5E87-429D-AACB-0A574231E901@cs.purdue.edu> Message-ID: <1E699D02-8A7F-4964-BB8A-1CA96C1AC1B1@cs.purdue.edu> Yeah, I think it definitely makes sense to keep TRY out of the fast allocation path, and perhaps best also out of the slow path too. On 29 Apr 2009, at 08:53, Jay wrote: > > [oops, addressing a larger point that maybe wasn't made] > > > I think getting the TRY out of fast paths is good even for after > initialization. > Getting TRY out of even the slow paths is "needed" for > initialization to not > crash, unless you contort other code, **for some subjective > definition of contortion**. > > > If you leave try in the slow allocation path, then ThreadF.Init > cannot use NEW > and/or PushEFrame has to do on-demand initialization -- like how > pthread and > win32thread are now, but weren't for a long time and how userthread > isn't. > > > With the RTCollector.m3 changes, ThreadPthread.m3 and ThreadWin32.m3 > should > be able to go back to their historical arguably nicer slightly more > efficient form, > where GetActivation does not initialize and where initialize uses > regular NEW. > > > It is a tradeoff either way. > > > Another idea that I considered is to initialize the allocator a > little "better" > such that the first allocation goes down a fast path. But I couldn't > come > up with a nice way to do that. > > > Surely we agree getting TRY out of the fast path is reasonable? > > > I also considered reordering RTLinker.m3 or breaking up pieces but > avoided those. > > > Avoiding TRY/RAISE/ is a bit contorted but to some extent unavoidable > since they rely on initialization. > __thread might help here too but I doubt we'll ever rely on that > completely. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Wed, 29 Apr 2009 07:45:51 +1000 >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> Huh? Don't let dubious premature optimizations distort the code >> base.... >> >> On 28 Apr 2009, at 16:20, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 09/04/28 16:20:44 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 >>> >>> Log message: >>> module initializer is too late also, remove GetGCRatio for now >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> [Switching to Thread 0x28201100 (LWP 100094)] >>> 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> 1599 f.next := self.context.handlers; >>> (gdb) bt >>> #0 0x08089580 in RTHooks__PushEFrame (M3_AJWxb1_frame=0xbfbfeb80) >>> at ../src/thread/POSIX/ThreadPosix.m3:1599 >>> #1 0x08075819 in RTCollector__GetGCRatio () at ../src/runtime/ >>> common/RTCollector.m3:2801 >>> #2 0x08075f2e in RTCollector_M3 (M3_AcxOUs_mode=1) at ../src/ >>> runtime/common/RTCollector.m3:2883 >>> #3 0x08077928 in RTLinker__RunMainBody (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:399 >>> #4 0x08076ce2 in RTLinker__AddUnitI (M3_DjPxE3_m=0x80b0020) >>> at ../src/runtime/common/RTLinker.m3:113 >>> #5 0x08076d70 in RTLinker__AddUnit (M3_DjPxE5_b=0x80768fc) >>> at ../src/runtime/common/RTLinker.m3:122 >>> #6 0x080769ea in RTLinker__InitRuntime (M3_AcxOUs_p_argc=1, >>> M3_AJWxb1_p_argv=0xbfbfecec, >>> M3_AJWxb1_p_envp=0xbfbfecf4, M3_AJWxb1_p_instance=0x0) at ../src/ >>> runtime/common/RTLinker.m3:42 >>> #7 0x0804af30 in main (argc=1, argv=0xbfbfecec, envp=0xbfbfecf4) >>> at _m3main.mc:3 >>> (gdb) >> From hosking at cs.purdue.edu Wed Apr 29 20:27:49 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 30 Apr 2009 04:27:49 +1000 Subject: [M3commit] how to switch userthreads on/off In-Reply-To: References: <20090428142339.6B930CC3B6@birch.elegosoft.com> <177C1372-411C-41DA-A57D-D20660C2EEB0@cs.purdue.edu> Message-ID: <03DE040E-713E-4251-839E-BCC5A617FBFF@cs.purdue.edu> I'd prefer user threads to be deprecated merely because multi-core is prevalent now. If someone needs them let them recompile. On 29 Apr 2009, at 10:06, Jay wrote: > >> I realize maybe there is a strong counteropinion, like, whatever >> inefficiences are >implied by dynamic linking are to be "fought" >> against with aggressive/creative/even fragile optimization >> techniques. > > > I realize I argue for optimizing PushEFrame and for deoptimizing > e.g. lock. > PushEFrame is presumably more common...except that it probably > occurs most often with lock? I don't know, I have no numbers. > > > I'm not sure yet what to do here. > Swapping .so files might or might not work. > If it does, that's a step but doesn't enable everything. > > > For example when I just switch compilation back and forth without > "clean", I get errors about types missing. Maybe that'll occur at > runtime, maybe not? Maybe these are different? Depends somewhat on > what "reveal" does? > Maybe Thread.T/Mutex/Condition should be ADDRESS and never revealed, > but loopholed to escape these problems?? ("These problems" are > partly that I don't fully understand the Modula-3 object model, e.g. > what does "reveal" do, at a low level? What does "brand" do, at a > low level? I looked into it some and brand doesn't seem to affect > objects at all, only out of band typeinfo.) > > > Maybe just leave it as an option in m3core's m3makefile and people > can twiddle it if they want and rebuild the entire system like it is > today? > That is a bit onerous, but maybe it's all userthreads deserve? > ? > > > Anyone who actually wanted to switch back and forth (Mika) would > just have two installs and two source trees? > > > - Jay From jkrell at elego.de Wed Apr 29 22:05:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 22:05:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429200554.3FC4ECC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 22:05:54 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: go back to default to kernel/pthreads on FreeBSD4 (on 4.x pthreads are userthreads actually) From jkrell at elego.de Wed Apr 29 22:49:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 22:49:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429204935.93315CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 22:49:35 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: some SOLsun vs. SOLgnu SOLsun doesn't seem to like -pie, -dy, -pthreads -pthreads in particular is interpreted as multiple single letter switches and again complains about -h -mt is presumably the approx equivalent (plus possibly some -L, on older versions) also keep -Bstatic, though right fix might be -Bdynamic in SYSTEM_LIBS SOLgnu should be unaffected and it is used more than SOLsun From jkrell at elego.de Wed Apr 29 23:01:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:01:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210115.EB654CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:01:15 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: m3makefile ThreadPThread.m3 ThreadPThread.i3 Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/config/: tls.c Log message: go back a day From jkrell at elego.de Wed Apr 29 23:04:19 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:04:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210419.824ADCC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:04:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: go back a day From jkrell at elego.de Wed Apr 29 23:07:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:07:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429210706.A730ACC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:07:06 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: go back to always calling it m3core From jkrell at elego.de Wed Apr 29 23:41:32 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 29 Apr 2009 23:41:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090429214132.1DA15CC363@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/29 23:41:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.i3 RTCollector.m3 RTLinker.m3 Log message: add call to GetGCRatio just a little later than it was From jkrell at elego.de Thu Apr 30 18:17:34 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 18:17:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430161734.F0FD2CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 18:17:34 Modified files: cm3/scripts/regression/: defs.sh Log message: mkdir missing here From jkrell at elego.de Thu Apr 30 21:52:40 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 21:52:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430195240.A3D04CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 21:52:40 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 Utils.m3 UtilsPosix.m3 UtilsWin32.m3 Log message: fix Win32 to compile including moving some code from UtilsPosix.m3 to Utils.m3 disable the Win32 hard link code (make it symlink, which copies) temporarily since it is a bootstrapping mistake (cm3 depends on newer m3core); fix will be to copy tiny bit of code From jkrell at elego.de Thu Apr 30 22:21:47 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:21:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430202147.9912ECC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:21:47 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: it is not legal to return from the caller of vfork without calling exec, therefore it is not legal to wrap vfork in C From jkrell at elego.de Thu Apr 30 22:22:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:22:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430202228.387B2CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:22:28 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix newlines (dos2unix) From jkrell at elego.de Thu Apr 30 22:52:07 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 30 Apr 2009 22:52:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20090430205207.D0288CC361@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/04/30 22:52:07 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 RTCollector.i3 RTCollectorSRC.i3 Log message: move GetGCRatio from RTCollector to RTCollectorSRC; that probably fixes it since RTCollectorSRC has been link and RTCollector has not