From jkrell at elego.de Sat Jul 14 10:03:39 2012 From: jkrell at elego.de (Jay Krell) Date: Sat, 14 Jul 2012 10:03:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120714080343.697CD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/14 10:03:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unetdb.c Log message: Disable/Enable switching; probably fixes unseen thread safety problem in user-threads; no effective change for Win32 and pthreads. From jkrell at elego.de Sat Jul 14 10:20:04 2012 From: jkrell at elego.de (Jay Krell) Date: Sat, 14 Jul 2012 10:20:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120714082005.1DB612474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/14 10:20:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Log message: DisableSwitching/EnableSwitching probably needed for user-threads. No change for Win32 and pthreads. Should we use the _r functions instead? Which systems have them? Need to see when Posix added them and survey systems. From jkrell at elego.de Sun Jul 15 23:51:14 2012 From: jkrell at elego.de (Jay Krell) Date: Sun, 15 Jul 2012 23:51:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120715215115.06A482474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/15 23:51:14 Modified files: cm3/m3-sys/m3cc/gcc-4.7/gcc/: sel-sched.c Log message: initialize locals From rodney at elego.de Mon Jul 16 18:10:22 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:10:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161023.071A62474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:10:22 Added files: cm3/m3-libs/ordsets/: README Log message: Initial commit, README file for upper level of ordsets. OrdSets is a generic interface and module for sets of large-range ordinal types, in functional style. See comments in OrdSets.ig for details on the package and its use. From ordsets/ordsets/src/OrdSets.i3: (* This interface provides operations on sets whose members are of an ordinal type. It is written in a functional style. It never mutates a set value, (except for some internal lazy computation--not visible to clients), and thus it sometimes is able to share heap objects. Its primary use pattern is where the set values can have widely varying sizes, you want a very large maximum size limit, but many of the sets are expected to be much smaller than the maximum. For this to happen, you probably want to instantiate only with INTEGER or WIDECHAR. It will work with LONGINT, but only if its target-machine- dependent range is a subrange of INTEGER. There is no space or time performance benefit to instantiating with a subrange of the base type. If this does not fit your needs, you probably want to use Modula-3's builtin set type, or some other package. The set representations occupy variable-sized heap objects, just sufficient for the set value. In the most general case, these use heap-allocated open arrays of machine words, with one bit per actual set member, plus some overhead, of course. If you compile with a later CM3 Modula-3 compiler and garbage collector that tolerate misaligned "pseudo" pointers, i.e, with the least significant bit set to one, you can set a boolean constant in the corresponding module OrdSets.mg. This will cause it to utilize this Modula-3 implementation feature to store sufficiently small set values entirely within the pointer word, avoiding the high space and time overheads of heap allocation. The CM3 5-8 compiler is sufficient. SRC M3, PM3, EZM3, and earlier CM3 versions are not. As of 2012-7-15, Pickles do not handle these. Enable this with DoPseudoPointers, in OrdSets.mg. *) From rodney at elego.de Mon Jul 16 18:12:52 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:12:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161252.CE6642474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:12:52 Added files: cm3/m3-libs/ordsets/bitnos/: README Log message: Program GenBitNoArrays mechanically generates source file BitNoTable.i3, needed by any instantiation of OrdSets.[im]g, which are found in directory ordsets, beside this directory, bitnos. From rodney at elego.de Mon Jul 16 18:15:08 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:15:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161508.654932474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:15:08 Added files: cm3/m3-libs/ordsets/bitnos/src/: GenBitNoArrays.m3 m3makefile Log message: Program GenBitNoArrays mechanically generates source file BitNoTable.i3, needed by any instantiation of OrdSets.[im]g, which are found in directory ordsets, beside this directory, bitnos. From rodney at elego.de Mon Jul 16 18:17:26 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:17:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161726.D11D12474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:17:26 Added files: cm3/m3-libs/ordsets/ordsets/: README Log message: README file for inner directory ordsets/ordsets. From rodney at elego.de Mon Jul 16 18:20:19 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:20:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162019.8FD292474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:20:19 Added files: cm3/m3-libs/ordsets/ordsets/src/: BitNoTable.i3 Log message: BitNoTable.i3. Some tables used by OrdSets.mg. Mechanically generated by GenBitNoArrays. From rodney at elego.de Mon Jul 16 18:21:44 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:21:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162144.89DC22474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:21:44 Added files: cm3/m3-libs/ordsets/ordsets/src/: IntForOrdSets.i3 Log message: IntForOrdSets.i3 Used to instantiate OrdSets for sets of INTEGER. From rodney at elego.de Mon Jul 16 18:23:38 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:23:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162338.2BBD82474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:23:38 Added files: cm3/m3-libs/ordsets/ordsets/src/: IntSets.i3 IntSets.m3 Log message: IntSets.i3 IntSets.m3 Source-code instantiations of OrdSets.ig and OrdSets.mg, for sets of INTEGER. From rodney at elego.de Mon Jul 16 18:27:10 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:27:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162710.2B7D42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:27:10 Added files: cm3/m3-libs/ordsets/ordsets/src/: OrdSets.ig OrdSets.mg Log message: OrdSets.ig OrdSets.mg OrdSets is a generic interface and module for sets of large-range, dynamically-sized ordinal types, in functional style. From rodney at elego.de Mon Jul 16 18:29:16 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:29:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162916.EC0A92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:29:16 Added files: cm3/m3-libs/ordsets/ordsets/src/: Sets.i3 Sets.m3 Log message: Sets.i3 Sets.m3 Sets is an old package that OrdSets replaces. Used here to compare results between the packages, for testing OrdSets. From rodney at elego.de Mon Jul 16 18:30:30 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:30:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163030.81E952474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:30:30 Added files: cm3/m3-libs/ordsets/ordsets/src/: Test.m3 Log message: Test.m3 Test program for OrdSets From rodney at elego.de Mon Jul 16 18:32:35 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:32:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163235.18BB32474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:32:35 Added files: cm3/m3-libs/ordsets/ordsets/src/: UnsafeUtils.i3 UnsafeUtils.m3 Log message: UnsafeUtils.i3 UnsafeUtils.m3 Encapsulated unsafe code used by OrdSets and its test program. From rodney at elego.de Mon Jul 16 18:34:28 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:34:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163428.E04422474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:34:28 Added files: cm3/m3-libs/ordsets/ordsets/src/: WidecharForOrdSets.i3 Log message: WidecharForOrdSets.i3 Used to instantiate OrdSets for WIDECHAR. From rodney at elego.de Mon Jul 16 18:35:59 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:35:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163559.D62EB2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:35:59 Added files: cm3/m3-libs/ordsets/ordsets/src/: WidecharSets.i3 WidecharSets.m3 Log message: WidecharSets.i3 WidecharSets.m3 Instantiations of OrdSets.[im]g for WIDECHAR. From rodney at elego.de Mon Jul 16 20:03:00 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 20:03:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716180300.8A9892474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 20:03:00 Added files: cm3/m3-libs/ordsets/ordsets/src/: m3makefile Log message: m3makefile For ordsets test program. From rodney at elego.de Thu Jul 19 20:43:56 2012 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 19 Jul 2012 20:43:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120719184356.6058E2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/19 20:43:56 Modified files: cm3/m3-libs/ordsets/ordsets/src/: Sets.i3 Sets.m3 Log message: Fix damage from initial checkin. From jkrell at elego.de Sat Jul 14 10:03:39 2012 From: jkrell at elego.de (Jay Krell) Date: Sat, 14 Jul 2012 10:03:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120714080343.697CD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/14 10:03:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unetdb.c Log message: Disable/Enable switching; probably fixes unseen thread safety problem in user-threads; no effective change for Win32 and pthreads. From jkrell at elego.de Sat Jul 14 10:20:04 2012 From: jkrell at elego.de (Jay Krell) Date: Sat, 14 Jul 2012 10:20:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120714082005.1DB612474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/14 10:20:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Log message: DisableSwitching/EnableSwitching probably needed for user-threads. No change for Win32 and pthreads. Should we use the _r functions instead? Which systems have them? Need to see when Posix added them and survey systems. From jkrell at elego.de Sun Jul 15 23:51:14 2012 From: jkrell at elego.de (Jay Krell) Date: Sun, 15 Jul 2012 23:51:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120715215115.06A482474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/15 23:51:14 Modified files: cm3/m3-sys/m3cc/gcc-4.7/gcc/: sel-sched.c Log message: initialize locals From rodney at elego.de Mon Jul 16 18:10:22 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:10:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161023.071A62474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:10:22 Added files: cm3/m3-libs/ordsets/: README Log message: Initial commit, README file for upper level of ordsets. OrdSets is a generic interface and module for sets of large-range ordinal types, in functional style. See comments in OrdSets.ig for details on the package and its use. From ordsets/ordsets/src/OrdSets.i3: (* This interface provides operations on sets whose members are of an ordinal type. It is written in a functional style. It never mutates a set value, (except for some internal lazy computation--not visible to clients), and thus it sometimes is able to share heap objects. Its primary use pattern is where the set values can have widely varying sizes, you want a very large maximum size limit, but many of the sets are expected to be much smaller than the maximum. For this to happen, you probably want to instantiate only with INTEGER or WIDECHAR. It will work with LONGINT, but only if its target-machine- dependent range is a subrange of INTEGER. There is no space or time performance benefit to instantiating with a subrange of the base type. If this does not fit your needs, you probably want to use Modula-3's builtin set type, or some other package. The set representations occupy variable-sized heap objects, just sufficient for the set value. In the most general case, these use heap-allocated open arrays of machine words, with one bit per actual set member, plus some overhead, of course. If you compile with a later CM3 Modula-3 compiler and garbage collector that tolerate misaligned "pseudo" pointers, i.e, with the least significant bit set to one, you can set a boolean constant in the corresponding module OrdSets.mg. This will cause it to utilize this Modula-3 implementation feature to store sufficiently small set values entirely within the pointer word, avoiding the high space and time overheads of heap allocation. The CM3 5-8 compiler is sufficient. SRC M3, PM3, EZM3, and earlier CM3 versions are not. As of 2012-7-15, Pickles do not handle these. Enable this with DoPseudoPointers, in OrdSets.mg. *) From rodney at elego.de Mon Jul 16 18:12:52 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:12:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161252.CE6642474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:12:52 Added files: cm3/m3-libs/ordsets/bitnos/: README Log message: Program GenBitNoArrays mechanically generates source file BitNoTable.i3, needed by any instantiation of OrdSets.[im]g, which are found in directory ordsets, beside this directory, bitnos. From rodney at elego.de Mon Jul 16 18:15:08 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:15:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161508.654932474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:15:08 Added files: cm3/m3-libs/ordsets/bitnos/src/: GenBitNoArrays.m3 m3makefile Log message: Program GenBitNoArrays mechanically generates source file BitNoTable.i3, needed by any instantiation of OrdSets.[im]g, which are found in directory ordsets, beside this directory, bitnos. From rodney at elego.de Mon Jul 16 18:17:26 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:17:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161726.D11D12474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:17:26 Added files: cm3/m3-libs/ordsets/ordsets/: README Log message: README file for inner directory ordsets/ordsets. From rodney at elego.de Mon Jul 16 18:20:19 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:20:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162019.8FD292474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:20:19 Added files: cm3/m3-libs/ordsets/ordsets/src/: BitNoTable.i3 Log message: BitNoTable.i3. Some tables used by OrdSets.mg. Mechanically generated by GenBitNoArrays. From rodney at elego.de Mon Jul 16 18:21:44 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:21:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162144.89DC22474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:21:44 Added files: cm3/m3-libs/ordsets/ordsets/src/: IntForOrdSets.i3 Log message: IntForOrdSets.i3 Used to instantiate OrdSets for sets of INTEGER. From rodney at elego.de Mon Jul 16 18:23:38 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:23:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162338.2BBD82474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:23:38 Added files: cm3/m3-libs/ordsets/ordsets/src/: IntSets.i3 IntSets.m3 Log message: IntSets.i3 IntSets.m3 Source-code instantiations of OrdSets.ig and OrdSets.mg, for sets of INTEGER. From rodney at elego.de Mon Jul 16 18:27:10 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:27:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162710.2B7D42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:27:10 Added files: cm3/m3-libs/ordsets/ordsets/src/: OrdSets.ig OrdSets.mg Log message: OrdSets.ig OrdSets.mg OrdSets is a generic interface and module for sets of large-range, dynamically-sized ordinal types, in functional style. From rodney at elego.de Mon Jul 16 18:29:16 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:29:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162916.EC0A92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:29:16 Added files: cm3/m3-libs/ordsets/ordsets/src/: Sets.i3 Sets.m3 Log message: Sets.i3 Sets.m3 Sets is an old package that OrdSets replaces. Used here to compare results between the packages, for testing OrdSets. From rodney at elego.de Mon Jul 16 18:30:30 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:30:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163030.81E952474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:30:30 Added files: cm3/m3-libs/ordsets/ordsets/src/: Test.m3 Log message: Test.m3 Test program for OrdSets From rodney at elego.de Mon Jul 16 18:32:35 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:32:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163235.18BB32474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:32:35 Added files: cm3/m3-libs/ordsets/ordsets/src/: UnsafeUtils.i3 UnsafeUtils.m3 Log message: UnsafeUtils.i3 UnsafeUtils.m3 Encapsulated unsafe code used by OrdSets and its test program. From rodney at elego.de Mon Jul 16 18:34:28 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:34:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163428.E04422474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:34:28 Added files: cm3/m3-libs/ordsets/ordsets/src/: WidecharForOrdSets.i3 Log message: WidecharForOrdSets.i3 Used to instantiate OrdSets for WIDECHAR. From rodney at elego.de Mon Jul 16 18:35:59 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:35:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163559.D62EB2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:35:59 Added files: cm3/m3-libs/ordsets/ordsets/src/: WidecharSets.i3 WidecharSets.m3 Log message: WidecharSets.i3 WidecharSets.m3 Instantiations of OrdSets.[im]g for WIDECHAR. From rodney at elego.de Mon Jul 16 20:03:00 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 20:03:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716180300.8A9892474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 20:03:00 Added files: cm3/m3-libs/ordsets/ordsets/src/: m3makefile Log message: m3makefile For ordsets test program. From rodney at elego.de Thu Jul 19 20:43:56 2012 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 19 Jul 2012 20:43:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120719184356.6058E2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/19 20:43:56 Modified files: cm3/m3-libs/ordsets/ordsets/src/: Sets.i3 Sets.m3 Log message: Fix damage from initial checkin. From jkrell at elego.de Sat Jul 14 10:03:39 2012 From: jkrell at elego.de (Jay Krell) Date: Sat, 14 Jul 2012 10:03:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120714080343.697CD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/14 10:03:39 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unetdb.c Log message: Disable/Enable switching; probably fixes unseen thread safety problem in user-threads; no effective change for Win32 and pthreads. From jkrell at elego.de Sat Jul 14 10:20:04 2012 From: jkrell at elego.de (Jay Krell) Date: Sat, 14 Jul 2012 10:20:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120714082005.1DB612474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/14 10:20:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ugrp.c Log message: DisableSwitching/EnableSwitching probably needed for user-threads. No change for Win32 and pthreads. Should we use the _r functions instead? Which systems have them? Need to see when Posix added them and survey systems. From jkrell at elego.de Sun Jul 15 23:51:14 2012 From: jkrell at elego.de (Jay Krell) Date: Sun, 15 Jul 2012 23:51:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120715215115.06A482474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 12/07/15 23:51:14 Modified files: cm3/m3-sys/m3cc/gcc-4.7/gcc/: sel-sched.c Log message: initialize locals From rodney at elego.de Mon Jul 16 18:10:22 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:10:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161023.071A62474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:10:22 Added files: cm3/m3-libs/ordsets/: README Log message: Initial commit, README file for upper level of ordsets. OrdSets is a generic interface and module for sets of large-range ordinal types, in functional style. See comments in OrdSets.ig for details on the package and its use. From ordsets/ordsets/src/OrdSets.i3: (* This interface provides operations on sets whose members are of an ordinal type. It is written in a functional style. It never mutates a set value, (except for some internal lazy computation--not visible to clients), and thus it sometimes is able to share heap objects. Its primary use pattern is where the set values can have widely varying sizes, you want a very large maximum size limit, but many of the sets are expected to be much smaller than the maximum. For this to happen, you probably want to instantiate only with INTEGER or WIDECHAR. It will work with LONGINT, but only if its target-machine- dependent range is a subrange of INTEGER. There is no space or time performance benefit to instantiating with a subrange of the base type. If this does not fit your needs, you probably want to use Modula-3's builtin set type, or some other package. The set representations occupy variable-sized heap objects, just sufficient for the set value. In the most general case, these use heap-allocated open arrays of machine words, with one bit per actual set member, plus some overhead, of course. If you compile with a later CM3 Modula-3 compiler and garbage collector that tolerate misaligned "pseudo" pointers, i.e, with the least significant bit set to one, you can set a boolean constant in the corresponding module OrdSets.mg. This will cause it to utilize this Modula-3 implementation feature to store sufficiently small set values entirely within the pointer word, avoiding the high space and time overheads of heap allocation. The CM3 5-8 compiler is sufficient. SRC M3, PM3, EZM3, and earlier CM3 versions are not. As of 2012-7-15, Pickles do not handle these. Enable this with DoPseudoPointers, in OrdSets.mg. *) From rodney at elego.de Mon Jul 16 18:12:52 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:12:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161252.CE6642474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:12:52 Added files: cm3/m3-libs/ordsets/bitnos/: README Log message: Program GenBitNoArrays mechanically generates source file BitNoTable.i3, needed by any instantiation of OrdSets.[im]g, which are found in directory ordsets, beside this directory, bitnos. From rodney at elego.de Mon Jul 16 18:15:08 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:15:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161508.654932474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:15:08 Added files: cm3/m3-libs/ordsets/bitnos/src/: GenBitNoArrays.m3 m3makefile Log message: Program GenBitNoArrays mechanically generates source file BitNoTable.i3, needed by any instantiation of OrdSets.[im]g, which are found in directory ordsets, beside this directory, bitnos. From rodney at elego.de Mon Jul 16 18:17:26 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:17:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716161726.D11D12474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:17:26 Added files: cm3/m3-libs/ordsets/ordsets/: README Log message: README file for inner directory ordsets/ordsets. From rodney at elego.de Mon Jul 16 18:20:19 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:20:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162019.8FD292474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:20:19 Added files: cm3/m3-libs/ordsets/ordsets/src/: BitNoTable.i3 Log message: BitNoTable.i3. Some tables used by OrdSets.mg. Mechanically generated by GenBitNoArrays. From rodney at elego.de Mon Jul 16 18:21:44 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:21:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162144.89DC22474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:21:44 Added files: cm3/m3-libs/ordsets/ordsets/src/: IntForOrdSets.i3 Log message: IntForOrdSets.i3 Used to instantiate OrdSets for sets of INTEGER. From rodney at elego.de Mon Jul 16 18:23:38 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:23:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162338.2BBD82474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:23:38 Added files: cm3/m3-libs/ordsets/ordsets/src/: IntSets.i3 IntSets.m3 Log message: IntSets.i3 IntSets.m3 Source-code instantiations of OrdSets.ig and OrdSets.mg, for sets of INTEGER. From rodney at elego.de Mon Jul 16 18:27:10 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:27:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162710.2B7D42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:27:10 Added files: cm3/m3-libs/ordsets/ordsets/src/: OrdSets.ig OrdSets.mg Log message: OrdSets.ig OrdSets.mg OrdSets is a generic interface and module for sets of large-range, dynamically-sized ordinal types, in functional style. From rodney at elego.de Mon Jul 16 18:29:16 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:29:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716162916.EC0A92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:29:16 Added files: cm3/m3-libs/ordsets/ordsets/src/: Sets.i3 Sets.m3 Log message: Sets.i3 Sets.m3 Sets is an old package that OrdSets replaces. Used here to compare results between the packages, for testing OrdSets. From rodney at elego.de Mon Jul 16 18:30:30 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:30:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163030.81E952474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:30:30 Added files: cm3/m3-libs/ordsets/ordsets/src/: Test.m3 Log message: Test.m3 Test program for OrdSets From rodney at elego.de Mon Jul 16 18:32:35 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:32:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163235.18BB32474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:32:35 Added files: cm3/m3-libs/ordsets/ordsets/src/: UnsafeUtils.i3 UnsafeUtils.m3 Log message: UnsafeUtils.i3 UnsafeUtils.m3 Encapsulated unsafe code used by OrdSets and its test program. From rodney at elego.de Mon Jul 16 18:34:28 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:34:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163428.E04422474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:34:28 Added files: cm3/m3-libs/ordsets/ordsets/src/: WidecharForOrdSets.i3 Log message: WidecharForOrdSets.i3 Used to instantiate OrdSets for WIDECHAR. From rodney at elego.de Mon Jul 16 18:35:59 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 18:35:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716163559.D62EB2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 18:35:59 Added files: cm3/m3-libs/ordsets/ordsets/src/: WidecharSets.i3 WidecharSets.m3 Log message: WidecharSets.i3 WidecharSets.m3 Instantiations of OrdSets.[im]g for WIDECHAR. From rodney at elego.de Mon Jul 16 20:03:00 2012 From: rodney at elego.de (Rodney M. Bates) Date: Mon, 16 Jul 2012 20:03:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120716180300.8A9892474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/16 20:03:00 Added files: cm3/m3-libs/ordsets/ordsets/src/: m3makefile Log message: m3makefile For ordsets test program. From rodney at elego.de Thu Jul 19 20:43:56 2012 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 19 Jul 2012 20:43:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20120719184356.6058E2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 12/07/19 20:43:56 Modified files: cm3/m3-libs/ordsets/ordsets/src/: Sets.i3 Sets.m3 Log message: Fix damage from initial checkin.