You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
(27) |
Apr
(11) |
May
(112) |
Jun
(8) |
Jul
(10) |
Aug
(68) |
Sep
(12) |
Oct
(3) |
Nov
(19) |
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(15) |
Mar
(20) |
Apr
(22) |
May
(131) |
Jun
(27) |
Jul
(19) |
Aug
(207) |
Sep
(61) |
Oct
(27) |
Nov
(28) |
Dec
(21) |
| 2004 |
Jan
(7) |
Feb
(25) |
Mar
(14) |
Apr
(55) |
May
(15) |
Jun
(2) |
Jul
(14) |
Aug
(28) |
Sep
(29) |
Oct
|
Nov
|
Dec
|
|
From: Andreas R. <and...@us...> - 2002-05-04 22:11:35
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/SqueakFFIPrims In directory usw-pr-cvs1:/tmp/cvs-serv26403/SqueakFFIPrims Log Message: Directory /cvsroot/squeak/squeak/platforms/win32/plugins/SqueakFFIPrims added to the repository |
|
From: Andreas R. <and...@us...> - 2002-05-04 22:09:12
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/UUIDPlugin In directory usw-pr-cvs1:/tmp/cvs-serv25921/UUIDPlugin Log Message: Directory /cvsroot/squeak/squeak/platforms/win32/plugins/UUIDPlugin added to the repository |
|
From: Andreas R. <and...@us...> - 2002-05-04 22:08:01
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/DropPlugin In directory usw-pr-cvs1:/tmp/cvs-serv25679/DropPlugin Log Message: Directory /cvsroot/squeak/squeak/platforms/win32/plugins/DropPlugin added to the repository |
|
From: Andreas R. <and...@us...> - 2002-05-04 21:34:53
|
Update of /cvsroot/squeak/squeak/platforms/win32/misc In directory usw-pr-cvs1:/tmp/cvs-serv17804/win32/misc Added Files: makefile.cvs Log Message: Initial attempt for automatic updating from cvs@sourceforge --- NEW FILE: makefile.cvs --- # CVS specific makefile # # Targets: # update: update all files from cvs@sourceforge # commit: commit changes to win32 tree to cvs@sourceforge # commit-cross: commit cross platform changes to cvs@sourceforge # # IMPORTANT: # In order to be able to check in CVS files you MUST have checked # them out with a valid user account from SF. CVS sucks (yeah, big time) # since it will treat a different user name and authorization scheme # (e.g. pserver vs. ext) as different CVS root locations (hah!). # In other words, if you do _not_ provide a valid account at check out # time you will not be able to check the files in anymore. # My recommendation is to insert a valid CVSUSER right below as the # very first thing to do. # Note to developers: # The following is a place where you may add your 'common' # user names, so you don't have to remember it all the time. ifndef CVSUSER ifeq ($(USERNAME), andreas) CVSUSER=AndreasRaab endif endif ifdef CVSUSER # # if CVSUSER is present use :ext:user@ so we can commit changes # update: cvs -z3 -d:ext:$(CVSUSER)@cvs.squeak.sourceforge.net:/cvsroot/squeak co win32-solo Cross-solo commit: cvs -z3 -d:ext:$(CVSUSER)@cvs.squeak.sourceforge.net:/cvsroot/squeak commit win32 commit-cross: cvs -z3 -d:ext:$(CVSUSER)@cvs.squeak.sourceforge.net:/cvsroot/squeak commit cross else # # if CVSUSER is absent use :pserver:anon for checkouts # update: @echo ***************************************************** @echo ***************************************************** @echo ATTENTION: @echo When asked for a password, just hit ENTER @echo ***************************************************** @echo ***************************************************** cvs -d:pserver:ano...@cv...:/cvsroot/squeak login cvs -z3 -d:pserver:ano...@cv...:/cvsroot/squeak co win32-solo Cross-solo endif |
|
From: Andreas R. <and...@us...> - 2002-05-04 21:16:51
|
Update of /cvsroot/squeak/squeak/platforms/win32/misc In directory usw-pr-cvs1:/tmp/cvs-serv14442/win32/misc Modified Files: build.bat Log Message: makefile test Index: build.bat =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/win32/misc/build.bat,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** build.bat 4 May 2002 20:44:25 -0000 1.2 --- build.bat 4 May 2002 21:16:49 -0000 1.3 *************** *** 1,2 **** ! @make -f Makefile.mingw32 %1 %2 %3 --- 1,2 ---- ! make -f Makefile.mingw32 %1 %2 %3 |
|
From: Andreas R. <and...@us...> - 2002-05-04 20:44:28
|
Update of /cvsroot/squeak/squeak/platforms/win32/misc In directory usw-pr-cvs1:/tmp/cvs-serv8494/win32/misc Modified Files: build.bat Log Message: makefile test Index: build.bat =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/win32/misc/build.bat,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** build.bat 19 Jan 2002 19:36:16 -0000 1.1 --- build.bat 4 May 2002 20:44:25 -0000 1.2 *************** *** 1,2 **** ! make -f Makefile.mingw32 %1 %2 %3 --- 1,2 ---- ! @make -f Makefile.mingw32 %1 %2 %3 |
|
From: John M M. <jo...@us...> - 2002-05-04 17:49:07
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/specialChangeSets
In directory usw-pr-cvs1:/tmp/cvs-serv27621/squeak/platforms/Mac OS/vm/specialChangeSets
Modified Files:
Gnuifier.2.cs
Log Message:
3.2.7b3 - missed another modification. need local referal to foo in interpreter()
Index: Gnuifier.2.cs
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/specialChangeSets/Gnuifier.2.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Gnuifier.2.cs 27 Apr 2002 19:08:38 -0000 1.1
--- Gnuifier.2.cs 4 May 2002 17:49:05 -0000 1.2
***************
*** 1,3 ****
! 'From Squeak3.2gamma of 15 January 2002 [latest update: #4823] on 20 April 2002 at 7:39 am'!
"Change Set: Gnuifier
Date: 1 January 2002
--- 1,3 ----
! 'From Squeak3.2gamma of 15 January 2002 [latest update: #4823] on 4 May 2002 at 10:46:06 am'!
"Change Set: Gnuifier
Date: 1 January 2002
***************
*** 74,78 ****
directory deleteFileNamed: 'interp.c.old'! !
! !Gnuifier methodsFor: 'as yet unclassified' stamp: 'JMM 4/20/2002 07:38'!
gnuify
--- 74,78 ----
directory deleteFileNamed: 'interp.c.old'! !
! !Gnuifier methodsFor: 'as yet unclassified' stamp: 'acg 1/1/2002 11:16'!
gnuify
***************
*** 92,98 ****
to: (directory newFileNamed: 'interp.c').
! ! !
! !Gnuifier methodsFor: 'as yet unclassified' stamp: 'acg 12/30/2001 14:17'!
gnuifyFrom: inFileStream to: outFileStream
--- 92,101 ----
to: (directory newFileNamed: 'interp.c').
! directory fileExists: 'sqGnu.h'.
! self
! copyFrom: (ReadStream on: (self sqGnuFile))
! to: (directory newFileNamed: 'sqGnu.h')! !
! !Gnuifier methodsFor: 'as yet unclassified' stamp: 'JMM 5/4/2002 10:46'!
gnuifyFrom: inFileStream to: outFileStream
***************
*** 135,139 ****
inInterpretVars ifTrue: [
(inLine findString: ' localIP;') > 0 ifTrue: [
! outLine := ' register char* localIP IP_REG;' ].
(inLine findString: ' localSP;') > 0 ifTrue: [
outLine := ' register char* localSP SP_REG;'. ].
--- 138,145 ----
inInterpretVars ifTrue: [
(inLine findString: ' localIP;') > 0 ifTrue: [
! outLine := '#ifdef FOO_REG
! struct foo * foo = &fum;
! #endif
! register char* localIP IP_REG;' ].
(inLine findString: ' localSP;') > 0 ifTrue: [
outLine := ' register char* localSP SP_REG;'. ].
***************
*** 187,190 ****
--- 193,391 ----
directory _ aFileDirectory! !
+ !Gnuifier methodsFor: 'as yet unclassified' stamp: 'acg 1/1/2002 09:54'!
+ sqGnuFile
+
+ ^'/* Definitions for "gnuified" interp.c
+ *
+ * Copyright (C) 1996 1997 1998 1999 2000 Ian Piumarta and any individual
+ * authors/contributors listed elsewhere in this file.
+ * All rights reserved.
+ *
+ * This file is part of Unix Squeak.
+ *
+ * This file is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * You may use and/or distribute this file ONLY as part of Squeak, under
+ * the terms of the Squeak License as described in ''LICENSE'' in the base of
+ * this distribution, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment to the original author(s) (and any
+ * other contributors mentioned herein) in the product documentation
+ * would be appreciated but is not required.
+ *
+ * 2. This notice may not be removed or altered in any source distribution.
+ *
+ * Using or modifying this file for use in any context other than Squeak
+ * changes these copyright conditions. Read the file ''COPYING'' in the base
+ * of the distribution before proceeding with any such use.
+ *
+ * You are STRONGLY DISCOURAGED from distributing a modified version of
+ * this file under its original name without permission. If you must
+ * change it, rename it first.
+ */
+
+ /* Author: Ian...@in...
+ *
+ * Last edited: Fri Aug 11 08:20:28 2000 by piumarta (Ian Piumarta) on emilia
+ *
+ * NOTES:
+ * this file is #included IN PLACE OF sq.h
+ */
+
+ #include "sq.h"
+
+ #define CASE(N) case N: _##N:
+ #define BREAK goto *jumpTable[currentBytecode]
+ #define PRIM_DISPATCH goto *jumpTable[primitiveIndex]
+ #define JUMP_TABLE \
+ static void *jumpTable[256]= { \
+ &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
+ &&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
+ &&_20, &&_21, &&_22, &&_23, &&_24, &&_25, &&_26, &&_27, &&_28, &&_29, \
+ &&_30, &&_31, &&_32, &&_33, &&_34, &&_35, &&_36, &&_37, &&_38, &&_39, \
+ &&_40, &&_41, &&_42, &&_43, &&_44, &&_45, &&_46, &&_47, &&_48, &&_49, \
+ &&_50, &&_51, &&_52, &&_53, &&_54, &&_55, &&_56, &&_57, &&_58, &&_59, \
+ &&_60, &&_61, &&_62, &&_63, &&_64, &&_65, &&_66, &&_67, &&_68, &&_69, \
+ &&_70, &&_71, &&_72, &&_73, &&_74, &&_75, &&_76, &&_77, &&_78, &&_79, \
+ &&_80, &&_81, &&_82, &&_83, &&_84, &&_85, &&_86, &&_87, &&_88, &&_89, \
+ &&_90, &&_91, &&_92, &&_93, &&_94, &&_95, &&_96, &&_97, &&_98, &&_99, \
+ &&_100, &&_101, &&_102, &&_103, &&_104, &&_105, &&_106, &&_107, &&_108, &&_109, \
+ &&_110, &&_111, &&_112, &&_113, &&_114, &&_115, &&_116, &&_117, &&_118, &&_119, \
+ &&_120, &&_121, &&_122, &&_123, &&_124, &&_125, &&_126, &&_127, &&_128, &&_129, \
+ &&_130, &&_131, &&_132, &&_133, &&_134, &&_135, &&_136, &&_137, &&_138, &&_139, \
+ &&_140, &&_141, &&_142, &&_143, &&_144, &&_145, &&_146, &&_147, &&_148, &&_149, \
+ &&_150, &&_151, &&_152, &&_153, &&_154, &&_155, &&_156, &&_157, &&_158, &&_159, \
+ &&_160, &&_161, &&_162, &&_163, &&_164, &&_165, &&_166, &&_167, &&_168, &&_169, \
+ &&_170, &&_171, &&_172, &&_173, &&_174, &&_175, &&_176, &&_177, &&_178, &&_179, \
+ &&_180, &&_181, &&_182, &&_183, &&_184, &&_185, &&_186, &&_187, &&_188, &&_189, \
+ &&_190, &&_191, &&_192, &&_193, &&_194, &&_195, &&_196, &&_197, &&_198, &&_199, \
+ &&_200, &&_201, &&_202, &&_203, &&_204, &&_205, &&_206, &&_207, &&_208, &&_209, \
+ &&_210, &&_211, &&_212, &&_213, &&_214, &&_215, &&_216, &&_217, &&_218, &&_219, \
+ &&_220, &&_221, &&_222, &&_223, &&_224, &&_225, &&_226, &&_227, &&_228, &&_229, \
+ &&_230, &&_231, &&_232, &&_233, &&_234, &&_235, &&_236, &&_237, &&_238, &&_239, \
+ &&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
+ &&_250, &&_251, &&_252, &&_253, &&_254, &&_255 \
+ }
+
+ #define PRIM_TABLE \
+ static void *jumpTable[700]= { \
+ &&_0, &&_1, &&_2, &&_3, &&_4, &&_5, &&_6, &&_7, &&_8, &&_9, \
+ &&_10, &&_11, &&_12, &&_13, &&_14, &&_15, &&_16, &&_17, &&_18, &&_19, \
+ &&_20, &&_21, &&_22, &&_23, &&_24, &&_25, &&_26, &&_27, &&_28, &&_29, \
+ &&_30, &&_31, &&_32, &&_33, &&_34, &&_35, &&_36, &&_37, &&_38, &&_39, \
+ &&_40, &&_41, &&_42, &&_43, &&_44, &&_45, &&_46, &&_47, &&_48, &&_49, \
+ &&_50, &&_51, &&_52, &&_53, &&_54, &&_55, &&_56, &&_57, &&_58, &&_59, \
+ &&_60, &&_61, &&_62, &&_63, &&_64, &&_65, &&_66, &&_67, &&_68, &&_69, \
+ &&_70, &&_71, &&_72, &&_73, &&_74, &&_75, &&_76, &&_77, &&_78, &&_79, \
+ &&_80, &&_81, &&_82, &&_83, &&_84, &&_85, &&_86, &&_87, &&_88, &&_89, \
+ &&_90, &&_91, &&_92, &&_93, &&_94, &&_95, &&_96, &&_97, &&_98, &&_99, \
+ &&_100, &&_101, &&_102, &&_103, &&_104, &&_105, &&_106, &&_107, &&_108, &&_109, \
+ &&_110, &&_111, &&_112, &&_113, &&_114, &&_115, &&_116, &&_117, &&_118, &&_119, \
+ &&_120, &&_121, &&_122, &&_123, &&_124, &&_125, &&_126, &&_127, &&_128, &&_129, \
+ &&_130, &&_131, &&_132, &&_133, &&_134, &&_135, &&_136, &&_137, &&_138, &&_139, \
+ &&_140, &&_141, &&_142, &&_143, &&_144, &&_145, &&_146, &&_147, &&_148, &&_149, \
+ &&_150, &&_151, &&_152, &&_153, &&_154, &&_155, &&_156, &&_157, &&_158, &&_159, \
+ &&_160, &&_161, &&_162, &&_163, &&_164, &&_165, &&_166, &&_167, &&_168, &&_169, \
+ &&_170, &&_171, &&_172, &&_173, &&_174, &&_175, &&_176, &&_177, &&_178, &&_179, \
+ &&_180, &&_181, &&_182, &&_183, &&_184, &&_185, &&_186, &&_187, &&_188, &&_189, \
+ &&_190, &&_191, &&_192, &&_193, &&_194, &&_195, &&_196, &&_197, &&_198, &&_199, \
+ &&_200, &&_201, &&_202, &&_203, &&_204, &&_205, &&_206, &&_207, &&_208, &&_209, \
+ &&_210, &&_211, &&_212, &&_213, &&_214, &&_215, &&_216, &&_217, &&_218, &&_219, \
+ &&_220, &&_221, &&_222, &&_223, &&_224, &&_225, &&_226, &&_227, &&_228, &&_229, \
+ &&_230, &&_231, &&_232, &&_233, &&_234, &&_235, &&_236, &&_237, &&_238, &&_239, \
+ &&_240, &&_241, &&_242, &&_243, &&_244, &&_245, &&_246, &&_247, &&_248, &&_249, \
+ &&_250, &&_251, &&_252, &&_253, &&_254, &&_255, &&_256, &&_257, &&_258, &&_259, \
+ &&_260, &&_261, &&_262, &&_263, &&_264, &&_265, &&_266, &&_267, &&_268, &&_269, \
+ &&_270, &&_271, &&_272, &&_273, &&_274, &&_275, &&_276, &&_277, &&_278, &&_279, \
+ &&_280, &&_281, &&_282, &&_283, &&_284, &&_285, &&_286, &&_287, &&_288, &&_289, \
+ &&_290, &&_291, &&_292, &&_293, &&_294, &&_295, &&_296, &&_297, &&_298, &&_299, \
+ &&_300, &&_301, &&_302, &&_303, &&_304, &&_305, &&_306, &&_307, &&_308, &&_309, \
+ &&_310, &&_311, &&_312, &&_313, &&_314, &&_315, &&_316, &&_317, &&_318, &&_319, \
+ &&_320, &&_321, &&_322, &&_323, &&_324, &&_325, &&_326, &&_327, &&_328, &&_329, \
+ &&_330, &&_331, &&_332, &&_333, &&_334, &&_335, &&_336, &&_337, &&_338, &&_339, \
+ &&_340, &&_341, &&_342, &&_343, &&_344, &&_345, &&_346, &&_347, &&_348, &&_349, \
+ &&_350, &&_351, &&_352, &&_353, &&_354, &&_355, &&_356, &&_357, &&_358, &&_359, \
+ &&_360, &&_361, &&_362, &&_363, &&_364, &&_365, &&_366, &&_367, &&_368, &&_369, \
+ &&_370, &&_371, &&_372, &&_373, &&_374, &&_375, &&_376, &&_377, &&_378, &&_379, \
+ &&_380, &&_381, &&_382, &&_383, &&_384, &&_385, &&_386, &&_387, &&_388, &&_389, \
+ &&_390, &&_391, &&_392, &&_393, &&_394, &&_395, &&_396, &&_397, &&_398, &&_399, \
+ &&_400, &&_401, &&_402, &&_403, &&_404, &&_405, &&_406, &&_407, &&_408, &&_409, \
+ &&_410, &&_411, &&_412, &&_413, &&_414, &&_415, &&_416, &&_417, &&_418, &&_419, \
+ &&_420, &&_421, &&_422, &&_423, &&_424, &&_425, &&_426, &&_427, &&_428, &&_429, \
+ &&_430, &&_431, &&_432, &&_433, &&_434, &&_435, &&_436, &&_437, &&_438, &&_439, \
+ &&_440, &&_441, &&_442, &&_443, &&_444, &&_445, &&_446, &&_447, &&_448, &&_449, \
+ &&_450, &&_451, &&_452, &&_453, &&_454, &&_455, &&_456, &&_457, &&_458, &&_459, \
+ &&_460, &&_461, &&_462, &&_463, &&_464, &&_465, &&_466, &&_467, &&_468, &&_469, \
+ &&_470, &&_471, &&_472, &&_473, &&_474, &&_475, &&_476, &&_477, &&_478, &&_479, \
+ &&_480, &&_481, &&_482, &&_483, &&_484, &&_485, &&_486, &&_487, &&_488, &&_489, \
+ &&_490, &&_491, &&_492, &&_493, &&_494, &&_495, &&_496, &&_497, &&_498, &&_499, \
+ &&_500, &&_501, &&_502, &&_503, &&_504, &&_505, &&_506, &&_507, &&_508, &&_509, \
+ &&_510, &&_511, &&_512, &&_513, &&_514, &&_515, &&_516, &&_517, &&_518, &&_519, \
+ &&_520, &&_521, &&_522, &&_523, &&_524, &&_525, &&_526, &&_527, &&_528, &&_529, \
+ &&_530, &&_531, &&_532, &&_533, &&_534, &&_535, &&_536, &&_537, &&_538, &&_539, \
+ &&_540, &&_541, &&_542, &&_543, &&_544, &&_545, &&_546, &&_547, &&_548, &&_549, \
+ &&_550, &&_551, &&_552, &&_553, &&_554, &&_555, &&_556, &&_557, &&_558, &&_559, \
+ &&_560, &&_561, &&_562, &&_563, &&_564, &&_565, &&_566, &&_567, &&_568, &&_569, \
+ &&_570, &&_571, &&_572, &&_573, &&_574, &&_575, &&_576, &&_577, &&_578, &&_579, \
+ &&_580, &&_581, &&_582, &&_583, &&_584, &&_585, &&_586, &&_587, &&_588, &&_589, \
+ &&_590, &&_591, &&_592, &&_593, &&_594, &&_595, &&_596, &&_597, &&_598, &&_599, \
+ &&_600, &&_601, &&_602, &&_603, &&_604, &&_605, &&_606, &&_607, &&_608, &&_609, \
+ &&_610, &&_611, &&_612, &&_613, &&_614, &&_615, &&_616, &&_617, &&_618, &&_619, \
+ &&_620, &&_621, &&_622, &&_623, &&_624, &&_625, &&_626, &&_627, &&_628, &&_629, \
+ &&_630, &&_631, &&_632, &&_633, &&_634, &&_635, &&_636, &&_637, &&_638, &&_639, \
+ &&_640, &&_641, &&_642, &&_643, &&_644, &&_645, &&_646, &&_647, &&_648, &&_649, \
+ &&_650, &&_651, &&_652, &&_653, &&_654, &&_655, &&_656, &&_657, &&_658, &&_659, \
+ &&_660, &&_661, &&_662, &&_663, &&_664, &&_665, &&_666, &&_667, &&_668, &&_669, \
+ &&_670, &&_671, &&_672, &&_673, &&_674, &&_675, &&_676, &&_677, &&_678, &&_679, \
+ &&_680, &&_681, &&_682, &&_683, &&_684, &&_685, &&_686, &&_687, &&_688, &&_689, \
+ &&_690, &&_691, &&_692, &&_693, &&_694, &&_695, &&_696, &&_697, &&_698, &&_699, \
+ }
+
+ /*
+ IP_REG, SP_REG, CB_REG
+ the machine registers in which to place localIP, localSP and
+ currentBytecode. Wins big on register-deficient architectures --
+ especially Intel.
+ */
+ #if defined(__mips__)
+ # define IP_REG asm("$16")
+ # define SP_REG asm("$17")
+ # define CB_REG asm("$18")
+ #endif
+ #if defined(__sparc__)
+ # define IP_REG asm("%l0")
+ # define SP_REG asm("%l1")
+ # define CB_REG asm("%l2")
+ #endif
+ #if defined(__alpha__)
+ # define IP_REG asm("$9")
+ # define SP_REG asm("$10")
+ # define CB_REG asm("$11")
+ #endif
+ #if defined(__i386__)
+ # define IP_REG asm("%esi")
+ # define SP_REG asm("%edi")
+ # define CB_REG /* asm("%ebx") ; avoid undue register pressure */
+ #endif
+ #if defined(PPC) || defined(_POWER) || defined(_IBMR2) || defined(__MACH__)
+ # define IP_REG asm("26")
+ # define SP_REG asm("27")
+ # define CB_REG asm("28")
+ #endif
+ #if defined(__hppa__)
+ # define IP_REG asm("%r18")
+ # define SP_REG asm("%r17")
+ # define CB_REG asm("%r16")
+ #endif
+ #if defined(__mc68000__)
+ # define IP_REG asm("a5")
+ # define SP_REG asm("a4")
+ # define CB_REG asm("d7")
+ #endif'! !
+
!Gnuifier class methodsFor: 'as yet unclassified' stamp: 'acg 12/30/2001 14:13'!
***************
*** 193,195 ****
^self new setDirectory: (FileDirectory on: aFilePathString)! !
- Gnuifier removeSelector: #sqGnuFile!
--- 394,395 ----
|
|
From: John M M. <jo...@us...> - 2002-05-04 17:40:33
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/specialChangeSets In directory usw-pr-cvs1:/tmp/cvs-serv25923/squeak/platforms/Mac OS/vm/specialChangeSets Modified Files: Globalstructure-JMM.1.cs Log Message: 3.2.7b3 - Missed a change on distribution. Want to avoid putting arrays into the global structure because it produces poor code on the powerpc. Index: Globalstructure-JMM.1.cs =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/specialChangeSets/Globalstructure-JMM.1.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Globalstructure-JMM.1.cs 27 Apr 2002 19:08:32 -0000 1.1 --- Globalstructure-JMM.1.cs 4 May 2002 17:40:28 -0000 1.2 *************** *** 1,3 **** ! 'From Squeak3.2gamma of 15 January 2002 [latest update: #4823] on 17 April 2002 at 12:00:32 pm'! "Change Set: Globalstructure-JMM Date: 5 April 2002 --- 1,3 ---- ! 'From Squeak3.2gamma of 15 January 2002 [latest update: #4823] on 4 May 2002 at 10:31:32 am'! "Change Set: Globalstructure-JMM Date: 5 April 2002 *************** *** 102,106 **** ^globalVariables! ! ! !CCodeGeneratorGlobalStructure methodsFor: 'C code generator' stamp: 'JMM 4/16/2002 22:58'! placeInStructure: var "See if we should put this array into a structure --- 102,106 ---- ^globalVariables! ! ! !CCodeGeneratorGlobalStructure methodsFor: 'C code generator' stamp: 'JMM 4/17/2002 16:15'! placeInStructure: var "See if we should put this array into a structure *************** *** 114,117 **** --- 114,118 ---- (check includes: $=) ifTrue: [^false]. (check includes: $() ifTrue: [^false]. + (check includes: $[) ifTrue: [^false]. (#( 'showSurfaceFn' 'memory' 'extraVMMemory' 'interpreterProxy') includes: var) ifTrue: [^false]. ^true. |
|
From: Tim R. <row...@us...> - 2002-04-23 22:37:34
|
Update of /cvsroot/squeak/squeak/platforms/Cross/plugins/FilePlugin
In directory usw-pr-cvs1:/tmp/cvs-serv16925/platforms/Cross/plugins/FilePlugin
Modified Files:
sqFilePluginBasicPrims.c
Log Message:
remove extraneous 'fileno()' from use of sqFTruncate - it's already in the macro. Unsure how it ever comiled...
Index: sqFilePluginBasicPrims.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sqFilePluginBasicPrims.c 31 Jan 2002 21:15:33 -0000 1.5
--- sqFilePluginBasicPrims.c 23 Apr 2002 22:37:31 -0000 1.6
***************
*** 256,260 ****
if (!sqFileValid(f)) return interpreterProxy->success(false);
! if (sqFTruncate(fileno(f->file),offset)) {
return interpreterProxy->success(false);
}
--- 256,260 ----
if (!sqFileValid(f)) return interpreterProxy->success(false);
! if (sqFTruncate(f->file,offset)) {
return interpreterProxy->success(false);
}
|
|
From: Tim R. <row...@us...> - 2002-04-23 22:08:50
|
Update of /cvsroot/squeak/squeak/platforms/RiscOS/plugins/FileCopyPlugin
In directory usw-pr-cvs1:/tmp/cvs-serv9597/platforms/RiscOS/plugins/FileCopyPlugin
Modified Files:
sqRPCFileCopy.c
Log Message:
updating includes to handle new OSLib release
Index: sqRPCFileCopy.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/plugins/FileCopyPlugin/sqRPCFileCopy.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCFileCopy.c 24 Oct 2001 23:14:01 -0000 1.1.1.1
--- sqRPCFileCopy.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 7,16 ****
/* Copying files via OS calls */
/**************************************************************************/
! #include "os.h"
! #include "osfile.h"
! #include "osfscontrol.h"
#include "sq.h"
#define MAXDIRNAMELENGTH 1024
/*** Functions ***/
--- 7,31 ----
/* Copying files via OS calls */
/**************************************************************************/
! #include "oslib/os.h"
! #include "oslib/osfile.h"
! #include "oslib/osfscontrol.h"
#include "sq.h"
#define MAXDIRNAMELENGTH 1024
+ /* debugging stuff; can probably be deleted */
+ //#define DEBUG
+
+ #ifdef DEBUG
+ #define FPRINTF(s)\
+ {\
+ extern os_error privateErr;\
+ extern void platReportError( os_error * e);\
+ privateErr.errnum = (bits)0;\
+ sprintf s;\
+ platReportError((os_error *)&privateErr);\
+ };
+ #else
+ # define FPRINTF(X)
+ #endif
/*** Functions ***/
***************
*** 20,23 ****
--- 35,39 ----
char toname[MAXDIRNAMELENGTH];
osfscontrol_copy_flags flag = osfscontrol_COPY_FORCE;
+ FPRINTF((privateErr.errmess, "platcopy called\n"));
if( srcNameSize > MAXDIRNAMELENGTH) return false;
***************
*** 25,28 ****
--- 41,45 ----
if( dstNameSize > MAXDIRNAMELENGTH) return false;
sqFilenameFromString( toname, (int)dstName, dstNameSize);
+ FPRINTF((privateErr.errmess, "platcopy names ok\n"));
e = xosfscontrol_copy(
***************
*** 32,35 ****
--- 49,53 ----
(bits)0,(bits)0,(bits)0,(bits)0,(osfscontrol_descriptor *)0 );
if (e != NULL) return false;
+ FPRINTF((privateErr.errmess, "platcopy ok\n"));
return true;
}
|
|
From: Tim R. <row...@us...> - 2002-04-23 22:08:50
|
Update of /cvsroot/squeak/squeak/platforms/RiscOS/plugins/FilePlugin
In directory usw-pr-cvs1:/tmp/cvs-serv9597/platforms/RiscOS/plugins/FilePlugin
Modified Files:
sqRPCDirectory.c
Log Message:
updating includes to handle new OSLib release
Index: sqRPCDirectory.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/plugins/FilePlugin/sqRPCDirectory.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCDirectory.c 24 Oct 2001 23:14:01 -0000 1.1.1.1
--- sqRPCDirectory.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 7,19 ****
/* Directory reading etc */
/**************************************************************************/
! #include "os.h"
! #include "osbyte.h"
! #include "osgbpb.h"
! #include "osfile.h"
! #include "osfscontrol.h"
! #include "scsifs.h"
! #include "adfs.h"
! #include "ramfs.h"
! #include "cdfs.h"
#include "sq.h"
#include <kernel.h>
--- 7,19 ----
/* Directory reading etc */
/**************************************************************************/
! #include "oslib/os.h"
! #include "oslib/osbyte.h"
! #include "oslib/osgbpb.h"
! #include "oslib/osfile.h"
! #include "oslib/osfscontrol.h"
! #include "oslib/scsifs.h"
! #include "oslib/adfs.h"
! #include "oslib/ramfs.h"
! #include "oslib/cdfs.h"
#include "sq.h"
#include <kernel.h>
***************
*** 28,34 ****
#define DELIMITOR '.'
! extern int ImageVersionNumber;
! extern struct VirtualMachine * interpreterProxy;
/*** Functions ***/
int convertToSqueakTime(os_date_and_time fileTime);
--- 28,50 ----
#define DELIMITOR '.'
! /* debugging stuff; can probably be deleted */
! //#define DEBUG
!
! #ifdef DEBUG
! #define FPRINTF(s)\
! {\
! extern os_error privateErr;\
! extern void platReportError( os_error * e);\
! privateErr.errnum = (bits)0;\
! sprintf s;\
! platReportError((os_error *)&privateErr);\
! };
! #else
! # define FPRINTF(X)
! #endif
+
+ extern struct VirtualMachine * interpreterProxy;
+ extern void sqStringFromFilename( int sqString, char*fileName, int sqSize);
/*** Functions ***/
int convertToSqueakTime(os_date_and_time fileTime);
***************
*** 72,76 ****
int dir_Delete(char *pathString, int pathStringLength) {
/* Delete the existing directory with the given path. */
! /* For now replicate the normal sqFileDeleteNameSize, since that appears to be adequate */
char cFileName[MAXDIRNAMELENGTH];
int err;
--- 88,92 ----
int dir_Delete(char *pathString, int pathStringLength) {
/* Delete the existing directory with the given path. */
! /* For now replicate the normal sqFileDeleteNameSize, since that appears to be adequate, except for returning true if all is well - essential ! */
char cFileName[MAXDIRNAMELENGTH];
int err;
***************
*** 82,90 ****
/* copy the file name into a null-terminated C string */
sqFilenameFromString(cFileName, (int)pathString, pathStringLength);
!
! err = remove(cFileName);
! if (err) {
return interpreterProxy->success(false);
}
}
--- 98,106 ----
/* copy the file name into a null-terminated C string */
sqFilenameFromString(cFileName, (int)pathString, pathStringLength);
! if (remove(cFileName) != 0) {
! FPRINTF((privateErr.errmess, "dir delete error %d\n", err));
return interpreterProxy->success(false);
}
+ return true;
}
|
Update of /cvsroot/squeak/squeak/platforms/RiscOS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv9597/platforms/RiscOS/vm
Modified Files:
sqPlatformSpecific.h sqRPCClipboard.c sqRPCEvents.c
sqRPCExternalPrims.c sqRPCSyscall.c sqRPCWindows.c
Log Message:
updating includes to handle new OSLib release
Index: sqPlatformSpecific.h
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqPlatformSpecific.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** sqPlatformSpecific.h 12 Feb 2002 20:45:41 -0000 1.3
--- sqPlatformSpecific.h 23 Apr 2002 22:08:47 -0000 1.4
***************
*** 12,20 ****
#ifdef ACORN
! #include "os.h"
/* acorn memory allocation */
#undef sqAllocateMemory
#define sqAllocateMemory(minHeapSize, desiredHeapSize) platAllocateMemory(desiredHeapSize)
#undef sqFilenameFromString
#define sqFilenameFromString(dst, src, num) sqFilenameFromString(dst, src, num)
--- 12,22 ----
#ifdef ACORN
! #include "oslib/os.h"
/* acorn memory allocation */
#undef sqAllocateMemory
#define sqAllocateMemory(minHeapSize, desiredHeapSize) platAllocateMemory(desiredHeapSize)
+
#undef sqFilenameFromString
+ extern void sqFilenameFromString(char*fileName, int sqString, int sqSize);
#define sqFilenameFromString(dst, src, num) sqFilenameFromString(dst, src, num)
Index: sqRPCClipboard.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqRPCClipboard.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCClipboard.c 24 Oct 2001 23:14:03 -0000 1.1.1.1
--- sqRPCClipboard.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 12,21 ****
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "os.h"
! #include "osbyte.h"
! #include "osfscontrol.h"
! #include "wimp.h"
! #include "wimpsprite.h"
! #include "colourtrans.h"
#include "sq.h"
#include "sqArguments.h"
--- 12,21 ----
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "oslib/os.h"
! #include "oslib/osbyte.h"
! #include "oslib/osfscontrol.h"
! #include "oslib/wimp.h"
! #include "oslib/wimpspriteop.h"
! #include "oslib/colourtrans.h"
#include "sq.h"
#include "sqArguments.h"
Index: sqRPCEvents.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqRPCEvents.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCEvents.c 24 Oct 2001 23:14:03 -0000 1.1.1.1
--- sqRPCEvents.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 12,21 ****
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "os.h"
! #include "osbyte.h"
! #include "osfscontrol.h"
! #include "wimp.h"
! #include "wimpsprite.h"
! #include "colourtrans.h"
#include "sq.h"
#include "sqArguments.h"
--- 12,21 ----
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "oslib/os.h"
! #include "oslib/osbyte.h"
! #include "oslib/osfscontrol.h"
! #include "oslib/wimp.h"
! #include "oslib/wimpspriteop.h"
! #include "oslib/colourtrans.h"
#include "sq.h"
#include "sqArguments.h"
***************
*** 251,254 ****
--- 251,255 ----
void eventBufAppendMouseUp(int buttons, int x, int y);
void eventBufAppendMouseMove(int x, int y);
+ extern void platReportError( os_error * e);
***************
*** 261,265 ****
{
extern os_error privateErr;
- extern void platReportError( os_error * e);
privateErr.errnum = (bits)0;
--- 262,265 ----
***************
*** 311,315 ****
{
extern os_error privateErr;
- extern void platReportError( os_error * e);
privateErr.errnum = (bits)0;
--- 311,314 ----
Index: sqRPCExternalPrims.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqRPCExternalPrims.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCExternalPrims.c 24 Oct 2001 23:14:03 -0000 1.1.1.1
--- sqRPCExternalPrims.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 4,8 ****
of possible failures here - compiling with function names removed is just the most egregious
*/
! #include "os.h"
#include "sq.h"
#include <kernel.h>
--- 4,8 ----
of possible failures here - compiling with function names removed is just the most egregious
*/
! #include "oslib/os.h"
#include "sq.h"
#include <kernel.h>
Index: sqRPCSyscall.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqRPCSyscall.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCSyscall.c 24 Oct 2001 23:14:03 -0000 1.1.1.1
--- sqRPCSyscall.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 12,21 ****
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "os.h"
! #include "osbyte.h"
! #include "osfscontrol.h"
! #include "wimp.h"
! #include "wimpsprite.h"
! #include "colourtran.h"
#include "sq.h"
#include <kernel.h>
--- 12,21 ----
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "oslib/os.h"
! #include "oslib/osbyte.h"
! #include "oslib/osfscontrol.h"
! #include "oslib/wimp.h"
! #include "oslib/wimpspriteop.h"
! #include "oslib/colourtran.h"
#include "sq.h"
#include <kernel.h>
Index: sqRPCWindows.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqRPCWindows.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** sqRPCWindows.c 24 Oct 2001 23:14:04 -0000 1.1.1.1
--- sqRPCWindows.c 23 Apr 2002 22:08:47 -0000 1.2
***************
*** 12,21 ****
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "os.h"
! #include "osbyte.h"
! #include "osfscontrol.h"
! #include "wimp.h"
! #include "wimpsprite.h"
! #include "colourtrans.h"
#include "sq.h"
#include "sqArguments.h"
--- 12,21 ----
/* AcornC_C++, the Acorn sockets libs */
/* and a little luck */
! #include "oslib/os.h"
! #include "oslib/osbyte.h"
! #include "oslib/osfscontrol.h"
! #include "oslib/wimp.h"
! #include "oslib/wimpspriteop.h"
! #include "oslib/colourtrans.h"
#include "sq.h"
#include "sqArguments.h"
|
|
From: Tim R. <row...@us...> - 2002-04-23 22:08:50
|
Update of /cvsroot/squeak/squeak/platforms/RiscOS/misc In directory usw-pr-cvs1:/tmp/cvs-serv9597/platforms/RiscOS/misc Modified Files: MakePlug,fe1 MakePlugins,fe1 Log Message: updating includes to handle new OSLib release ***** Bogus filespec: MakePlug,fe1,1.1.1.1,1.2 ***** Bogus filespec: MakePlugins,fe1,1.2,1.3 |
|
From: Bert F. <be...@us...> - 2002-04-11 21:50:31
|
Update of /cvsroot/squeak/squeak/platforms/unix/vm
In directory usw-pr-cvs1:/tmp/cvs-serv1066
Modified Files:
sqXWindow.c
Log Message:
Clipboard handling fix by Ned Konz:
Make clipboard text *from* Squeak be available as both PRIMARY and
CLIPBOARD, and copy only the PRIMARY *to* Squeak.
Index: sqXWindow.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/unix/vm/sqXWindow.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** sqXWindow.c 12 Mar 2002 04:09:33 -0000 1.29
--- sqXWindow.c 11 Apr 2002 21:50:25 -0000 1.30
***************
*** 207,211 ****
char *stEmptySelection= ""; /* immutable "empty string" value */
int stPrimarySelectionSize;/* size of buffer holding selection */
! int stOwnsSelection= 0; /* true if we own the X selection */
XColor stColorBlack; /* black pixel value in stColormap */
XColor stColorWhite; /* white pixel value in stColormap */
--- 207,212 ----
char *stEmptySelection= ""; /* immutable "empty string" value */
int stPrimarySelectionSize;/* size of buffer holding selection */
! int stOwnsSelection= 0; /* true if we own the X PRIMARY selection */
! int stOwnsClipboard= 0; /* true if we own the X CLIPBOARD selection */
XColor stColorBlack; /* black pixel value in stColormap */
XColor stColorWhite; /* white pixel value in stColormap */
***************
*** 234,237 ****
--- 235,240 ----
int browserPipes[]= {-1, -1}; /* read/write fd for communication with browser */
int headless= 0;
+ Atom clipboardAtom= 0;
+ Atom primaryAtom= 0;
#define inBrowser\
***************
*** 641,645 ****
case SelectionClear:
! stOwnsSelection= 0;
break;
--- 644,651 ----
case SelectionClear:
! if (((XSelectionClearEvent *)theEvent)->selection == clipboardAtom)
! stOwnsClipboard= 0;
! else if (((XSelectionClearEvent *)theEvent)->selection == primaryAtom)
! stOwnsSelection= 0;
break;
***************
*** 688,692 ****
{
case SelectionClear:
! stOwnsSelection= 0;
break;
case SelectionRequest:
--- 694,701 ----
{
case SelectionClear:
! if (((XSelectionClearEvent*)&theEvent)->selection == clipboardAtom)
! stOwnsClipboard= 0;
! else if (((XSelectionClearEvent*)&theEvent)->selection == primaryAtom)
! stOwnsSelection= 0;
break;
case SelectionRequest:
***************
*** 752,758 ****
void claimSelection(void)
{
! XSetSelectionOwner(stDisplay, XA_PRIMARY, stWindow, lastKeystrokeTime);
XFlush(stDisplay);
! stOwnsSelection= (XGetSelectionOwner(stDisplay, XA_PRIMARY) == stWindow);
}
--- 761,769 ----
void claimSelection(void)
{
! XSetSelectionOwner(stDisplay, clipboardAtom, stWindow, lastKeystrokeTime);
! XSetSelectionOwner(stDisplay, primaryAtom, stWindow, lastKeystrokeTime);
XFlush(stDisplay);
! stOwnsClipboard= (XGetSelectionOwner(stDisplay, clipboardAtom) == stWindow);
! stOwnsSelection= (XGetSelectionOwner(stDisplay, primaryAtom) == stWindow);
}
***************
*** 805,810 ****
char *data;
! /* request the selection */
! XConvertSelection(stDisplay, XA_PRIMARY, XA_STRING, XA_STRING, stWindow, CurrentTime);
/* wait for selection notification, ignoring (most) other events. */
--- 816,821 ----
char *data;
! /* request the PRIMARY selection, since this should be the same as the CLIPBOARD */
! XConvertSelection(stDisplay, primaryAtom, XA_STRING, XA_STRING, stWindow, CurrentTime);
/* wait for selection notification, ignoring (most) other events. */
***************
*** 1606,1609 ****
--- 1617,1623 ----
completionType= XShmGetEventBase(stDisplay) + ShmCompletion;
# endif
+
+ clipboardAtom = XInternAtom(stDisplay, "CLIPBOARD", False);
+ primaryAtom = XInternAtom(stDisplay, "PRIMARY", False);
}
***************
*** 3749,3752 ****
--- 3763,3767 ----
stPrimarySelectionSize= 0;
stOwnsSelection= 0;
+ stOwnsClipboard= 0;
}
#endif
***************
*** 3755,3759 ****
{
#ifndef HEADLESS
! if (stOwnsSelection)
return stPrimarySelection ? strlen(stPrimarySelection) : 0;
return strlen(getSelection());
--- 3770,3774 ----
{
#ifndef HEADLESS
! if (stOwnsSelection || stOwnsClipboard)
return stPrimarySelection ? strlen(stPrimarySelection) : 0;
return strlen(getSelection());
***************
*** 3815,3819 ****
return 0;
! if (!stOwnsSelection)
{
char *newSelection;
--- 3830,3834 ----
return 0;
! if (!stOwnsSelection && !stOwnsClipboard)
{
char *newSelection;
|
|
From: Lex S. <lex...@us...> - 2002-04-08 19:57:56
|
Update of /cvsroot/squeak/squeak/platforms/unix/plugins/SerialPlugin In directory usw-pr-cvs1:/tmp/cvs-serv29198 Modified Files: sqUnixSerial.c Log Message: put in Ned Konz's tweaks to the default termios. Index: sqUnixSerial.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/unix/plugins/SerialPlugin/sqUnixSerial.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** sqUnixSerial.c 24 Oct 2001 23:14:15 -0000 1.1.1.1 --- sqUnixSerial.c 8 Apr 2002 19:57:52 -0000 1.2 *************** *** 335,344 **** /* defaultTermios.c_oflag = 0; */ /* tcflag_t c_cflag control modes */ ! /* defaultTermios.c_cflag = 0; */ /* tcflag_t c_lflag local modes */ /* defaultTermios.c_lflag = 0; */ /* cc_t c_cc[NCCS] control chars */ ! defaultTermios.c_cc[VTIME] = 5; ! defaultTermios.c_cc[VMIN] = 1; success(true); --- 335,344 ---- /* defaultTermios.c_oflag = 0; */ /* tcflag_t c_cflag control modes */ ! defaultTermios.c_cflag = CREAD; /* tcflag_t c_lflag local modes */ /* defaultTermios.c_lflag = 0; */ /* cc_t c_cc[NCCS] control chars */ ! defaultTermios.c_cc[VTIME] = 0; ! defaultTermios.c_cc[VMIN] = 0; success(true); |
|
From: Tim R. <row...@us...> - 2002-04-05 01:54:52
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/AsynchFilePlugin
In directory usw-pr-cvs1:/tmp/cvs-serv26505
Added Files:
sqWin32AsyncFilePrims.c
Log Message:
moving win32 plugin AsyncFilePlugin to correct spelling (needs )
--- NEW FILE: sqWin32AsyncFilePrims.c ---
/****************************************************************************
* PROJECT: Squeak port for Win32 (NT / Win95)
* FILE: sqWin32AsyncFilePrims.c
* CONTENT: Asynchronous File functions
*
* AUTHOR: Andreas Raab (ar)
* ADDRESS: University of Magdeburg, Germany
* EMAIL: ra...@is...
* RCSID: $Id: sqWin32AsyncFilePrims.c,v 1.1 2002/04/05 01:54:47 rowledge Exp $
*
* NOTES:
* 1) Instead of the async io functions (e.g., ReadFileEx/WriteFileEx)
* provided with Win32 threads are used because Win95 does not support
* async io on disk files.
*
*****************************************************************************/
/*
Experimental support for asynchronous file reading and writing.
When a read or write operation is initiated, control is returned to Squeak
immediately. A semaphore is signaled when the operation completes, at which
time the client can find out how many bytes were actually read or written
and copy the results of the read operation from the file buffer into a Squeak
buffer. Only one operation may be in progress on a given file at a given time,
but operations on different files may be done in parallel.
The semaphore is signalled once for each transfer operation that is successfully
started, even if that operation later fails. Write operations always write
their entire buffer if they succeed, but read operations may transfer less than
their buffer size if they are started less than a buffer''s size from the end
of the file.
The state of a file is kept in the following structure, which is stored directly
in a Squeak ByteArray object:
typedef struct {
int sessionID;
AsyncFileState *state;
} AsyncFile;
The session ID is used to detect stale files--files that were open
when the image was saved. The state pointer of such files is meaningless.
Async file handles use the same session ID as ordinary file handles.
Note: These primitives are experimental! They need not be implemented on
every platform, and they may be withdrawn or replaced in a future release.
*/
#include <windows.h>
#include "sq.h"
#include "AsynchFilePlugin.h"
#ifndef NO_ASYNC_FILES
/* Async file handle (defined in header file):
*/
typedef struct {
/* Win stuff */
HANDLE hFile; /* The file handle we're operating on */
HANDLE hThread; /* The thread running async IO */
HANDLE hEvent; /* Event for communicating with the thread */
DWORD dwPosition; /* File position to start reading */
DWORD dwSize; /* Number of bytes to transfer */
BOOL rFlag; /* Do we read or write?! */
/* Squeak stuff */
int writable; /* Was the file opened for write? */
int semaIndex; /* The semaphore to signal upon completion */
int status; /* State of affairs */
DWORD bytesTransferred; /* The number of bytes actually transferred */
int bufferSize; /* the size of the buffer */
char *bufferPtr; /* the data buffer */
} AsyncFileState;
/*** Status Values ***/
#define IDLE 0
#define LAST_OP_FAILED 1
#define BUSY 2
/*** Imported Variables ***/
extern int successFlag;
extern int thisSession;
/*** Exported Functions ***/
int asyncFileClose(AsyncFile *f);
int asyncFileOpen(AsyncFile *f, int fileNamePtr, int fileNameSize, int writeFlag, int semaIndex);
int asyncFileRecordSize();
int asyncFileReadResult(AsyncFile *f, int bufferPtr, int bufferSize);
int asyncFileReadStart(AsyncFile *f, int fPosition, int count);
int asyncFileWriteResult(AsyncFile *f);
int asyncFileWriteStart(AsyncFile *f, int fPosition, int bufferPtr, int bufferSize);
/*****************************************************************************
Threads for async read/write
*****************************************************************************/
DWORD WINAPI sqAsyncFileThread(AsyncFileState *state)
{
BOOL ok;
while(state->hFile != INVALID_HANDLE_VALUE) {
WaitForSingleObject(state->hEvent, INFINITE);
if(state->hFile == INVALID_HANDLE_VALUE) break;
if(!state->bufferPtr) {
state->status = LAST_OP_FAILED;
continue;
}
/* Seek to r/w position */
if(SetFilePointer(state->hFile, state->dwPosition, NULL, FILE_BEGIN) == (DWORD)-1) {
state->status = LAST_OP_FAILED;
continue;
}
if(state->rFlag) {
ok = ReadFile(state->hFile, state->bufferPtr, state->dwSize, &state->bytesTransferred, NULL);
} else {
ok = WriteFile(state->hFile, state->bufferPtr, state->dwSize, &state->bytesTransferred, NULL);
}
if(ok)
state->status = IDLE;
else
state->status = LAST_OP_FAILED;
synchronizedSignalSemaphoreWithIndex(state->semaIndex);
}
state->hThread = NULL;
ExitThread(0);
return 1;
}
/*****************************************************************************
Local Functions
*****************************************************************************/
void *asyncAlloc(DWORD size) {
return GlobalLock(GlobalAlloc(GMEM_MOVEABLE, size));
}
void asyncFree(void *ptr) {
GlobalFree(GlobalHandle(ptr));
}
int asyncFileAllocateBuffer(AsyncFileState *state, int byteCount) {
/* Allocate a new buffer of the given size if necessary. If the current buffer
is already allocated and of the desired size, do nothing. */
if ((state->bufferPtr != NULL) && (state->bufferSize >= byteCount)) {
return 0; /* buffer is already allocated and of (at least) the desired size */
}
/* free old buffer, if any */
if (state->bufferPtr != NULL) {
asyncFree(state->bufferPtr);
state->bufferSize = 0;
state->bufferPtr = NULL;
}
/* allocate new buffer */
state->bufferPtr = asyncAlloc(byteCount);
if (state->bufferPtr == NULL) {
state->bufferSize = 0;
return success(false); /* could not allocate a buffer of size count */
}
state->bufferSize = byteCount;
return 1;
}
int asyncFileValid(AsyncFile *f) {
return (
(f != NULL) &&
(f->sessionID == thisSession) &&
(f->state != NULL) &&
(((AsyncFileState *) f->state)->hFile != INVALID_HANDLE_VALUE));
}
/*****************************************************************************
Exported Functions
*****************************************************************************/
int asyncFileClose(AsyncFile *f) {
/* Close the given asynchronous file. */
AsyncFileState *state;
if (!asyncFileValid(f)) return 0; /* already closed */
state = (AsyncFileState*) f->state;
if(!CloseHandle(state->hFile)) {
printLastError(TEXT("AsyncFileClose failed"));
success(false);
}
state->hFile = INVALID_HANDLE_VALUE;
SetEvent(state->hEvent);
WaitForSingleObject(state->hThread, 5000);
if(state->hThread) {
warnPrintf(TEXT("Terminating async thread"));
TerminateThread(state->hThread,0);
}
CloseHandle(state->hEvent);
if (state->bufferPtr != NULL) asyncFree(state->bufferPtr);
free((void *) f->state);
f->state = NULL;
f->sessionID = 0;
return 1;
}
int asyncFileOpen(AsyncFile *f, int fileNamePtr, int fileNameSize, int writeFlag, int semaIndex) {
/* Opens the given file using the supplied AsyncFile structure to record
its state. Fails with no side effects if f is already open. Files are
always opened in binary mode. */
int i;
TCHAR cFileName[256];
AsyncFileState *state;
HANDLE hFile;
DWORD id;
/* don''t open an already open file */
if (asyncFileValid(f)) return success(false);
/* copy the file name into a null-terminated C string */
if (fileNameSize > 255) return success(false);
for (i = 0; i < fileNameSize; i++) {
cFileName[i] = *((char *) (fileNamePtr + i));
}
cFileName[fileNameSize] = 0;
f->sessionID = 0;
hFile = CreateFile(cFileName,
writeFlag ? (GENERIC_READ | GENERIC_WRITE) : GENERIC_READ,
writeFlag ? FILE_SHARE_READ : (FILE_SHARE_READ | FILE_SHARE_WRITE),
NULL, /* No security descriptor */
writeFlag ? OPEN_ALWAYS : OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL /* No template */);
if(hFile == INVALID_HANDLE_VALUE)
return success(false);
f->state = (AsyncFileState *) calloc(1,sizeof(AsyncFileState)); /* allocate state record */
if (f->state == NULL) {
CloseHandle(hFile);
return success(false);
}
f->sessionID = thisSession;
state = (AsyncFileState *) f->state;
state->hFile = hFile;
state->writable = writeFlag;
state->semaIndex = semaIndex;
state->status = IDLE;
state->bytesTransferred = 0;
state->bufferSize = 0;
state->bufferPtr = NULL;
state->hEvent = CreateEvent(NULL, 0, 0, NULL);
state->hThread =
CreateThread(NULL, /* No security descriptor */
0, /* default stack size */
(LPTHREAD_START_ROUTINE) &sqAsyncFileThread, /* what to do */
(LPVOID) state, /* parameter for thread */
CREATE_SUSPENDED, /* creation parameter -- create suspended so we can check the return value */
&id); /* return value for thread id */
if(!state->hThread) {
printLastError(TEXT("CreateThread() failed"));
return success(false);
}
/* file operations run with high priority */
if(!SetThreadPriority(state->hThread, THREAD_PRIORITY_HIGHEST))
printLastError(TEXT("SetThreadPriority() failed"));
if(!ResumeThread(state->hThread)) {
printLastError(TEXT("ResumeThread() failed"));
return success(false);
}
return 1;
}
int asyncFileReadResult(AsyncFile *f, int bufferPtr, int bufferSize) {
/* Copy up to bufferSize bytes from the buffer of the last read operation
into the given Squeak buffer, and return the number of bytes copied.
Negative values indicate:
-1 -- busy; the last operation has not finished yet
-2 -- error; the last operation failed
Note that a read operation may read fewer bytes than requested if, for
example, there are fewer than the requested number of bytes between the
starting file position of the read operation and the end-of-file. */
AsyncFileState *state = (AsyncFileState *) f->state;
int bytesRead;
if (!asyncFileValid(f)) return success(false);
if (state->status == BUSY) return -1;
if (state->status == LAST_OP_FAILED) return -2;
/* copy the file buffer into the squeak buffer */
bytesRead = (bufferSize < state->bytesTransferred) ? bufferSize : state->bytesTransferred;
MoveMemory((void *) bufferPtr, (void *)state->bufferPtr, bytesRead);
return bytesRead;
}
int asyncFileReadStart(AsyncFile *f, int fPosition, int count) {
/* Start an asynchronous operation to read count bytes from the given file
starting at the given file position. The file''s semaphore will be signalled when
the operation is complete. The client may then use asyncFileReadResult() to
find out if the operation succeeded and to get the data that was read. */
AsyncFileState *state = (AsyncFileState *) f->state;
if (!asyncFileValid(f)) return success(false);
if (state->status == BUSY) return success(false); /* operation in progress */
/* allocate a new buffer if necessary */
asyncFileAllocateBuffer(state, count);
if (state->bufferPtr == NULL) return success(false); /* could not allocate buffer */
state->dwPosition = fPosition;
state->dwSize = count;
state->status = BUSY;
state->rFlag = TRUE;
SetEvent(state->hEvent);
return 1;
}
int asyncFileRecordSize() {
return sizeof(AsyncFile);
}
int asyncFileWriteResult(AsyncFile *f) {
/* Return the number of bytes copied by the last write operation.
Negative values indicate:
-1 -- busy; the last operation has not finished yet
-2 -- error; the last operation failed */
AsyncFileState *state = (AsyncFileState *) f->state;
if (!asyncFileValid(f)) return success(false);
if (state->status == BUSY) return -1;
if (state->status == LAST_OP_FAILED) return -2;
return state->bytesTransferred;
}
int asyncFileWriteStart(AsyncFile *f, int fPosition, int bufferPtr, int bufferSize) {
/* Start an asynchronous operation to write bufferSize bytes to the given file
starting at the given file position. The file''s semaphore will be signalled when
the operation is complete. The client may then use asyncFileWriteResult() to
find out if the operation succeeded and how many bytes were actually written. */
AsyncFileState *state = (AsyncFileState *) f->state;
if (!asyncFileValid(f)) return success(false);
if (state->status == BUSY) return success(false); /* operation in progress */
if (!state->writable) return success(false);
/* allocate a new buffer if necessary */
asyncFileAllocateBuffer(state, bufferSize);
if (state->bufferPtr == NULL) return success(false); /* could not allocate buffer */
/* copy the squeak buffer into the file buffer */
MoveMemory((void*)state->bufferPtr, (void*) bufferPtr, bufferSize);
state->dwPosition = fPosition;
state->dwSize = bufferSize;
state->status = BUSY;
state->rFlag = FALSE;
SetEvent(state->hEvent);
return 1;
}
int asyncFileInit(void)
{
return 1;
}
int asyncFileShutdown(void)
{
return 1;
}
#endif /* NO_ASYNC_FILES */
|
|
From: Tim R. <row...@us...> - 2002-04-05 01:53:34
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/AsynchFilePlugin In directory usw-pr-cvs1:/tmp/cvs-serv26139/AsynchFilePlugin Log Message: Directory /cvsroot/squeak/squeak/platforms/win32/plugins/AsynchFilePlugin added to the repository |
|
From: Tim R. <row...@us...> - 2002-04-05 00:42:32
|
Update of /cvsroot/squeak/squeak/platforms/RiscOS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv9999/platforms/RiscOS/vm
Modified Files:
sqArgument.c
Log Message:
Add fix for checking for image files - fseek 512 if initial peek fails to allowfor unix added pre-header
Index: sqArgument.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/RiscOS/vm/sqArgument.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** sqArgument.c 29 Jan 2002 04:54:09 -0000 1.2
--- sqArgument.c 5 Apr 2002 00:42:25 -0000 1.3
***************
*** 40,51 ****
/* no luck at beginning of file, seek to 512 and try again */
if(fseek( fp, 512, SEEK_SET)) {
! /* seek failed, which implies fileis too small */
fclose(fp);
return false;
}
! if(fread(&magic, 1, sizeof(magic), fp) != sizeof(magic)) {
! /* could not read an int from file */
! fclose(fp);
! return 0;
}
if (magic > 0xFFFF) {
--- 40,51 ----
/* no luck at beginning of file, seek to 512 and try again */
if(fseek( fp, 512, SEEK_SET)) {
! /* seek failed, which implies file is too small */
fclose(fp);
return false;
}
! if(fread(&magic, 1, sizeof(magic), fp) != sizeof(magic)) {
! /* could not read an int from file */
! fclose(fp);
! return 0;
}
if (magic > 0xFFFF) {
***************
*** 57,60 ****
--- 57,61 ----
return true;
}
+ fclose(fp);
return false;
}
|
|
From: Tim R. <row...@us...> - 2002-04-05 00:42:32
|
Update of /cvsroot/squeak/squeak/platforms/win32/vm
In directory usw-pr-cvs1:/tmp/cvs-serv9999/platforms/win32/vm
Modified Files:
sqWin32Args.c
Log Message:
Add fix for checking for image files - fseek 512 if initial peek fails to allowfor unix added pre-header
Index: sqWin32Args.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/vm/sqWin32Args.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** sqWin32Args.c 19 Jan 2002 22:34:27 -0000 1.1
--- sqWin32Args.c 5 Apr 2002 00:42:25 -0000 1.2
***************
*** 31,34 ****
--- 31,50 ----
return 0;
}
+ if (readableFormat(magic) || readableFormat(byteSwapped(magic))) {
+ fclose(fp);
+ return true;
+ }
+
+ /* no luck at beginning of file, seek to 512 and try again */
+ if(fseek( fp, 512, SEEK_SET)) {
+ /* seek failed, which implies file is too small */
+ fclose(fp);
+ return false;
+ };
+ if(fread(&magic, 1, sizeof(magic), fp) != sizeof(magic))
+ {
+ fclose(fp);
+ return 0;
+ }
fclose(fp);
return readableFormat(magic) || readableFormat(byteSwapped(magic));
|
|
From: Bert F. <be...@us...> - 2002-03-29 11:44:54
|
Update of /cvsroot/squeak/squeak/platforms/unix/plugins/FilePlugin
In directory usw-pr-cvs1:/tmp/cvs-serv19886
Modified Files:
sqUnixFile.c
Log Message:
Do not fail if one directory entry can't be stat()'ed.
Index: sqUnixFile.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/unix/plugins/FilePlugin/sqUnixFile.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** sqUnixFile.c 27 Feb 2002 13:50:14 -0000 1.4
--- sqUnixFile.c 29 Mar 2002 11:44:50 -0000 1.5
***************
*** 34,38 ****
/* Author: Ian...@IN...
*
! * Last edited: Wed 27 Feb 2002 14:29:48 by bert on balloon
*/
--- 34,38 ----
/* Author: Ian...@IN...
*
! * Last edited: Fri 29 Mar 2002 12:39:53 by bert on balloon
*/
***************
*** 208,212 ****
if (stat(unixPath, &statBuf) && lstat(unixPath, &statBuf))
{
! return BAD_PATH;
}
}
--- 208,214 ----
if (stat(unixPath, &statBuf) && lstat(unixPath, &statBuf))
{
! /* We can't stat the entry, but failing here would invalidate
! the whole directory --bertf */
! return ENTRY_FOUND;
}
}
|
|
From: John M M. <jo...@us...> - 2002-03-25 08:21:17
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory usw-pr-cvs1:/tmp/cvs-serv10361/squeak/platforms/Mac OS/vm Modified Files: 3.2.6 Release Notes.rtf Log Message: 3.2.6b8 comments about clock rollover issues Index: 3.2.6 Release Notes.rtf =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/3.2.6 Release Notes.rtf,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** 3.2.6 Release Notes.rtf 19 Mar 2002 21:31:42 -0000 1.4 --- 3.2.6 Release Notes.rtf 25 Mar 2002 08:21:12 -0000 1.5 *************** *** 19,22 **** --- 19,25 ---- Pre OS-X users should read about OS-9 packages in the 3.2.4 change notes.\ Notes About previous VM.\ + 3.2.6b6 Classic or earlier has a bug that makes it stop collecting user input on a 19.88 hour cycle depending on reboot time.\ + Seems many systems don't run for more than 19 hours so we've not had major complains about this issue. \ + Bug was introduced in 3.2.1.\ 3.2.5 has a bug that prevents the use of accented characters without \ a image patch to fix a VM issue (not an issue in 3.2.4). Also you can't enter an double keystroke characters, ie ^ \ *************** *** 45,48 **** --- 48,52 ---- k) 3.2.6b7 for post event processing ignore mouse move/drag/or scroll wheel events. These are ignored by the open/gl plugin and only suck a major amount of CPU time to process in the post event processing logic. \ l) 3.2.6b8 (3.2.6b4 classic) removed call to uncouple shift keys introduced in 3.2.1. This causes some macs after sleeping not to respond to keyboard input\ + m) 3.2.6b8 (3.2.5b7 classic) added function for ioLowResMSecs to avoid early bit overflow. Rework clock checking in ioHandleEvents to handle clock rollovers properly.\ \ Mac VM 3.2.5 mach-o build for Carbon, and build for Classic.\ |
|
From: John M M. <jo...@us...> - 2002-03-25 07:09:36
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv28211/squeak/platforms/Mac OS/vm
Modified Files:
sqPlatformSpecific.h
Log Message:
3.2.6b8 define our own ioLowResMSec clock for mac classic
Index: sqPlatformSpecific.h
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqPlatformSpecific.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** sqPlatformSpecific.h 5 Mar 2002 00:25:44 -0000 1.6
--- sqPlatformSpecific.h 25 Mar 2002 07:09:34 -0000 1.7
***************
*** 49,53 ****
#define TARGET_API_MAC_CARBON 1
#endif
- #undef ioLowResMSecs
#define ftell ftello
#define fseek fseeko
--- 49,52 ----
***************
*** 92,95 ****
--- 91,95 ----
/* undefine clock macros that are implemented as functions */
+ #undef ioLowResMSecs
#undef ioMicroMSecs
#undef ioMSecs
|
|
From: John M M. <jo...@us...> - 2002-03-25 07:09:04
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv28099/squeak/platforms/Mac OS/vm
Modified Files:
sqMacUIEvents.c
Log Message:
3.2.6b8 to solve the no input problem after 16r418938 ticks (19.88 hours) we use different logic to look for passage of time. On a clock roll over we'll do a check early because of the logic, but we really don't care for this type of usage.
Index: sqMacUIEvents.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacUIEvents.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** sqMacUIEvents.c 15 Mar 2002 21:08:32 -0000 1.7
--- sqMacUIEvents.c 25 Mar 2002 07:09:01 -0000 1.8
***************
*** 65,71 ****
int inputSemaphoreIndex = 0;/* if non-zero the event semaphore index */
- const long gDisableIdleTickCount=60*10;
- long gDisableIdleTickLimit=0;
-
sqInputEvent eventBuffer[MAX_EVENT_BUFFER];
int eventBufferGet = 0;
--- 65,68 ----
***************
*** 138,168 ****
int ioProcessEvents(void) {
/* This is a noop when running as a plugin; the browser handles events. */
! const int nextPollOffsetCheck = CLOCKS_PER_SEC/60, nextPowerCheckOffset=CLOCKS_PER_SEC/2;
! static clock_t nextPollTick = 0, nextPowerCheck=0;
! long clockTime;
#ifndef PLUGIN
! if ((ioLowResMSecs() & 536870911) >= nextPollTick) {
/* time to process events! */
while (HandleEvents()) {
/* process all pending events */
}
- clockTime = ioLowResMSecs() & 536870911;
-
if (gDisablePowerManager && gTapPowerManager) {
! if (clockTime > gDisableIdleTickLimit)
! gDisableIdleTickLimit = (IdleUpdate() + gDisableIdleTickCount) & 536870911;
#if !defined(MINIMALVM)
! if (clockTime > nextPowerCheck) {
UpdateSystemActivity(UsrActivity);
! nextPowerCheck = (clockTime + nextPowerCheckOffset) & 536870911;
}
#endif
! }
!
! /* wait a while before trying again */
! nextPollTick = (clockTime + nextPollOffsetCheck) & 536870911;
}
#endif
--- 135,165 ----
int ioProcessEvents(void) {
/* This is a noop when running as a plugin; the browser handles events. */
! static unsigned long nextPollTick = 0, nextPowerCheck=0, disableIdleTickLimit=0;
! unsigned long clockTime;
#ifndef PLUGIN
! clockTime = ioLowResMSecs();
! if (abs(nextPollTick - clockTime) >= 16) {
/* time to process events! */
while (HandleEvents()) {
/* process all pending events */
}
+
+ clockTime = ioLowResMSecs();
+ nextPollTick = clockTime;
if (gDisablePowerManager && gTapPowerManager) {
! if (abs(disableIdleTickLimit - clockTime) >= 6000) {
! IdleUpdate();
! disableIdleTickLimit = clockTime;
! }
#if !defined(MINIMALVM)
! if (abs(nextPowerCheck - clockTime) >= 500) {
UpdateSystemActivity(UsrActivity);
! nextPowerCheck = clockTime;
}
#endif
! }
}
#endif
***************
*** 443,447 ****
/* first the basics */
evt->type = EventTypeMouse;
! evt->timeStamp = ioLowResMSecs() & 536870911;
GlobalToLocal((Point *) &theEvent->where);
evt->x = theEvent->where.h;
--- 440,444 ----
/* first the basics */
evt->type = EventTypeMouse;
! evt->timeStamp = ioMSecs() & 536870911;
GlobalToLocal((Point *) &theEvent->where);
evt->x = theEvent->where.h;
***************
*** 487,491 ****
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioLowResMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
--- 484,488 ----
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
***************
*** 555,559 ****
theButtonState = MouseModifierState(theEvent);
evt->type = EventTypeDragDropFiles;
! evt->timeStamp = ioLowResMSecs() & 536870911;
GlobalToLocal((Point *) &theEvent->where);
evt->x = theEvent->where.h;
--- 552,556 ----
theButtonState = MouseModifierState(theEvent);
evt->type = EventTypeDragDropFiles;
! evt->timeStamp = ioMSecs() & 536870911;
GlobalToLocal((Point *) &theEvent->where);
evt->x = theEvent->where.h;
***************
*** 1557,1561 ****
/* first the basics */
evt->type = EventTypeMouse;
! evt->timeStamp = ioLowResMSecs() & 536870911;
evt->x = where.h;
evt->y = where.v;
--- 1554,1558 ----
/* first the basics */
evt->type = EventTypeMouse;
! evt->timeStamp = ioMSecs() & 536870911;
evt->x = where.h;
evt->y = where.v;
***************
*** 1610,1614 ****
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioLowResMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
--- 1607,1611 ----
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
***************
*** 1651,1655 ****
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioLowResMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
--- 1648,1652 ----
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
***************
*** 1739,1743 ****
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioLowResMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
--- 1736,1740 ----
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
***************
*** 1779,1783 ****
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioLowResMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
--- 1776,1780 ----
/* first the basics */
evt->type = EventTypeKeyboard;
! evt->timeStamp = ioMSecs() & 536870911;
/* now the key code */
/* press code must differentiate */
|
|
From: John M M. <jo...@us...> - 2002-03-25 07:07:30
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv27842/squeak/platforms/Mac OS/vm
Modified Files:
sqMacTime.c
Log Message:
3.2.6b8 To solve the no input problem after 16r418938 ticks (19.88 hours) we now have a ioLowResMSec function that uses doubles to convert TickCount to milliseconds under mac classic so we have less of a problem with converting units. Actual fix is in UI events where we use different logic to track differences in time and we account for clock roll over.
Index: sqMacTime.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacTime.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** sqMacTime.c 19 Mar 2002 21:32:44 -0000 1.6
--- sqMacTime.c 25 Mar 2002 07:07:26 -0000 1.7
***************
*** 173,176 ****
--- 173,185 ----
#endif
+ int ioLowResMSecs(void)
+ {
+ double convert;
+
+ convert = TickCount();
+ convert = convert*1000.0/60.0;
+ return convert;
+ }
+
#endif
|
|
From: John M M. <jo...@us...> - 2002-03-25 07:05:09
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/plugins/SecurityPlugin In directory usw-pr-cvs1:/tmp/cvs-serv27431/squeak/platforms/Mac OS/plugins/SecurityPlugin Modified Files: sqMacSecurity.c Log Message: 3.2.6b8 noted missing defines, need to include correct header Index: sqMacSecurity.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/plugins/SecurityPlugin/sqMacSecurity.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sqMacSecurity.c 18 Dec 2001 21:21:05 -0000 1.2 --- sqMacSecurity.c 25 Mar 2002 07:05:06 -0000 1.3 *************** *** 7,10 **** --- 7,11 ---- #include "sq.h" #include "sqMacFileLogic.h" + #include "securityPlugin.h" #include <files.h> extern struct VirtualMachine * interpreterProxy; |