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: John M M. <jo...@us...> - 2002-08-06 17:33:39
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/Documentation
In directory usw-pr-cvs1:/tmp/cvs-serv7198/squeak/platforms/Mac OS/vm/Documentation
Added Files:
3.2.3 Release Notes.rtf
Log Message:
Rearrange folder/files
--- NEW FILE: 3.2.3 Release Notes.rtf ---
{\rtf1\mac\ansicpg10000\cocoartf100
{\fonttbl\f0\fnil\fcharset77 Geneva;\f1\fnil\fcharset77 LucidaGrande;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww13420\viewh10820\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\fs24 \cf0 Mac VM 3.2.3 mach-o build for Carbon.\
Feb 5th 2002\
\
Still yet to do, in future versions.\
Test drag and drop at startup time\
Verify that file delete rename etc works on aliases, not the targets.\
\
You will need mach-o os-x bundle plugins to work with this VM. example ->
\f1 mpeg3Plugin.bundle.\
Old carbon non-bundled plugins will not work.
\f0 \
\
Changes\
\
a) use old extended time manger to update psudeo-TickCount, versus sigalrm. siglarm make sound recording not work.\
b) fiddle with sound recording and make it work.\
\
Jan 2002 3.2.2\
Changes:\
\
a) AsyncFilePlugin.c Use global to remember security function entry point for performance reasons\
b) FilePlugin.c Use global to remember security function entry point for performance reasons\
c) interp.c Use squeakFileOffsetType versus off_t and add a bunch of checks to handle lack of long long and conversion errors between 64/32 bit integers and LargeInteger objects\
d) readme, it's http://www.mucow.com/Gnuifier.1.cs \
e) SocketPlugin.c Use global to remember security function entry point for performance reasons\
f) sq.h added default sqFilenameFromStringOpen and sqTruncate\
g) sqFilePluginBasicPrims.c revert to ansi specs, but ensure #def to fseeko and ftello for 64 bit aware file systems.\
h) sqMacDirectory.c A bit more error checking on bad file names\
i) sqMacFileLogic.c Folders size is now zero in classic, and a bit more checking on bad file names\
j) sqMacSound.c Fixed a problem with sound recording in classic due to a change made in Sept. But sound recording still does not work under os-x\
k) sqMacWindow.c two very important changes:\
\
1) You can now do FFI calls with the FFI bundle plugin to Mach-o frameworks. \
However you need to rework your api calls. For example:\
apiGetMousePoint: aMacPoint was\
<apicall: void 'GetMouse' (MacPoint*) module:'InterfaceLib'>\
It now is:\
<apicall: void 'GetMouse' (MacPoint*) module:'Carbon.framework'>\
\
If you review /System/Library/Frameworks I'm sure you can come up with interesting ways to \
make mac only squeak images.\
\
I now use mmap( NULL, gMaxHeapSize, PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED,-1,0);\
anonymous memory mapping to 512MB as the squeak memory block. The VM can then grow or shrink\
within the 512MB block, I just move a pointer. \
\
Note in 3.2.1 a slight error on my part restricted Squeak to 50MB. I am of course\
interested to hear about issues with my choice of 512MB. Note a Squeak VM is limited to 2GB under perfect \
conditions, however if any part of the image crosses the 2GB boundary the VM will fail, right now 512MB\
seemed a safe choice.\
\
PhysMem: 60.2M wired, 78.6M active, 412M inactive, 551M used, 217M free\
VM: 3.03G + 55.3M 7847(0) pageins, 1(0) pageouts \
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE\
422 Squeak VM 0.8% 0:35.59 2 71 100 23.3M 8.53M 26.5M 571M\
\
but I only have one 80,000,000 byte swap file in /var/vm\
\
Note if you turn crash reporter on, then if the VM crashes a nice report should be generated in your log directory. See the Apple documentation for a description of this feature, currently it is set in OS-X 10.1.x via the preferences window for the Console Application. If you have a crash with this VM, please recreate and post the crash log (found in Users/foobar/Library/Logs/ to the Squeak mailing list so we can continue to make the VM fault tolerant.\
\
3.2.1 Notes\
\
You might need these change sets to build a new VM or to use all the features of this VM with your image, hopefully these will get into the pending 3.2.x image.\
\
Fixes and feature extensions.\
AsyncFileFixFu...hName-JMM.1.cs fix for async test method.\
DragAndDropAtStart-JMM.5.cs fix to enable drag and drop at startup\
\
Needed to compile a VM with VMMaker\
LargeFiles-JMM.3.cs Enable large file support, files > 2GB\
\
Needed to turn this feature on\
MacLongFileName-JMM.5.cs Enable long file names on the mac\
\
The SUnit\
MacLongFileNamesSUnits-JMM.3.cs Test long file names and long directory names and large file support\
\
Kinda optional features some people might need.\
InternetConfiguration-JMM.5.cs Allow internet configuration information access, internal plugin\
UUID-JMM.3.cs Allow UUID generation, internal plugin\
\
a) The ability to get back a UUID. This uses the hosting UUID generator if the\
hosting OS supports it and we have a primitive we can call. If not then we generate\
a type 4 version of a UUID (the random bits one).\
(This requires a special change set)\
\
b) Ability to start squeak on the mac by dragging multiple documents onto the\
image, or drag and drop of stuff onto the running VM icon.\
(This requires a special change set)\
\
c) Usage of the Internet Configuration tool kit to supply information about\
what the mac proxy is etc. etc.\
(This requires a special change set)\
\
d) Migrate file system to use 64 bits. This allows you to read/write and seek\
with files > 2 GB. This includes a change to the VM to convert from/to long\
long integers. It also allows the file system to actually deal with 2GB files,\
the current file interface actually fails once the file exceeds 1GB.\
\
e) For the carbon based Squeak VM we now support long file names 255\
characters. Close both eyes and touch everywhere the mac VM deals with file\
name paths and hope for the best (Actually we write an Sunit to ensure we've\
not broken everything). This also includes the ability to put an image in a\
long file name directory, but right now the image name must stay under 32 characters.\
\
FilePlugin.c changes to support large integers.\
FilePlugin.h changes\
sq.h changes to support large files.\
sqConfig.h changes to resolve some conflicts.\
sqFilePluginBasicPrims.c changes to support large files.\
sqMacAsyncFilePrims.c changes to use fspec versus 255 file path.\
sqMacDirectory.c changes to use hosting OS (OS-X) bsd create and delete directory\
and truncate. dir_look changes as part of the general rewrite.\
sqMacDragAndDrop.c use new call to get path name from fsspec. Use fsspec more, and added \
interface code to setup drag and drop of items at application startup time. max document name\
goes to 1000 characters.\
sqMacFileLogic.c Mostly rewrote!\
sqMacSecurity.c use new file calls.\
sqMacWindow.c \
increase size of vmpath, docpath, imagepath to 1000 chars, shortname to 255 characters.\
add logic for left/right modifier keys \
reworked LoadLibViaPath logic \
sqImageFileOpen uses fsspec versus 255 path name.\
sqImageFileStartLocation uses ffspec.\
bundle support for bundles\
\
e2) interp.c supports get/put of large integers to long long integers.\
e3) fixed fTruncate\
\
Hint getting this to work was a pain. Think of 255 character folder names and nested aliases,\
folder 1 refers to folder 2 which then refers to folder 1 again, just go down the path say 8 times,\
then ask to create a file or directory!\
\
f) Support to change the Mac screen resolution under Squeak control.\
\
g) Fix to unload/load the scrap at startup time to ensure the clipboard is\
correct when starting up the VM.\
\
h) Uncouple the shift key and left/right shift keys on old extended keyboard.\
Also add a call to get which keys are currently pressed on a USB keyboard or\
the USB codes for an apple non-usb keyboard. (Note this isn't working quite yet under OS-X)\
\
i) Changes to enable us to compile the VM under Apple's OS-X Project Builder\
environments.\
\
j) Some rewriting to ensure serial and midi support can be written as external\
plugins.\
\
k) Fiddling to get sound input to work under OS-X\
\
l) Platform.exports changed macintosh to macintoshSqueak to avoid conflict.\
\
m) Memory is allocated at 50MB at start, then will grow or shrink, verus previous carbon apps\
that did 1GB. \
\
n) sqPlatformSpecific.h changes to support long file names and os-x posix file names\
\
o) sqVirtualmachine.c & sqVirtualmachine.h\
#if VM_PROXY_MINOR > 4\
VM->positive64BitIntegerFor = positive64BitIntegerFor;\
VM->positive64BitValueOf = positive64BitValueOf;\
VM->signed64BitIntegerFor = signed64BitIntegerFor;\
VM->signed64BitValueOf = signed64BitValueOf;\
#endif\
\
Beware this causes an interesting problem, if you compile plugins with VM_PROXY_MINOR now set to 5, then they will not work with older VMs. The solution is to define the VM_PROXY_MINOR in the plugin to the value that indicates what features it is using.\
\
p) Changed to use ITimer logic as a 16ms lowres timer to improve performance\
\
q) Changed to use single thread, no thread manager.\
\
r) Changed to use lowres timer in checking for polling time to improve performance\
\
s) It should have faster startup times.\
\
t) It will hide the empty window at startup, then show the squeak window when required.\
\
u) It has a different menu structure.\
\
v) It does less I/O when navigating directories.\
\
The macintosh 3.1Alpha1MT VM, Sept 24th 2001 \
This VM was built with the base 3.1 image at change set #4347\
V3.1.1 at change set #4347\
\
\
We go to V3.1.1 to indicate that the 3.1 VM is being used. In the past the 3.1 Image was used but some changes in the openGL logic makes 3.1 Vm and 3.0 image not quite work correctly with 3d graphics. Although a 3.1 VM will run many images way back to the 2x series no careful study has been done on the ability to do this. So at this point we are indicating this VM is a 3.1 VM and best used with a 3.1 image.\
\
Use of VMMaker to build VM. As of this version everything can be built as an external except for the window logic which hasn't been decoupled from the VM support for the macintosh. \
\
1) AsynchFilePlugin the security check for ability to create file is now a plugin call.\
2) B2DPlugin logic changes to fillLinearGradientfromtoat\
3) b3dRemapFaces, b3dRemapEdges, b3dRemapEdgeList, b3dRemapAET, b3dRemapEdgeVertices, b3dRemapFaceVertices, b3dRemapFaceFree, b3dRemapEdgeFree, b3dRemapAttributes. Some casting and changing of += to = + to make some compilers happy.\
4) BitBltPlugin added tableLookupat call.\
5) DropPlugin added setFileAccessCallback to allow the Security Module plugin the ability to give us the entry point to turn security off so we can open files as read only when security is turned on. This was broken in the past. \
6) FilePlugin added fileOpennamesizewrite,getThisSession to allow for callbacks. Changed the file security logic to use the plugin interface. \
7) interp.c, fixes for 4347ByteArrayRangeCheck-di, ability to printAllStacks, security calls for image rename, write to use plugin interface.\
8) Added GetAttributeString, and recordDragDropEvent and entry points for callbacks.\
9) SecurityPlugin changed when initialization is called to initialize the safe and unsafe directorys, also added entry points for all the testing calls so it can be a true plugin.\
10) Serialplugin. The serial plugin was redesigned to seperate out MIDI logic. People with MIDI devices and old serial macintosh should check to see if they still work since we lack equipment now to test this obsolete technology set.\
11) SocketPlugin. Make security calls true plugin calls.\
12 SoundGenerationPlugin. Removed \
EXPORT(int) SoundGenerationPlugin_primitiveFMSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitiveOldSampledSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitivePluckedSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitiveSampledSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitiveWaveTableSoundMix(void);\
They were a hack at the plugin level and discussion on the list seemed to show they were no longer used. \
13) Checking for if defined (__APPLE__) && defined(__MACH__) for the Mac OS-X native development environment\
14) Changed sqMacAsyncFilePrims, usage of interpreterProxy->, plugin calls for getThisSession. \
15) Changed sqMacDirectory.c. Removed some utility code and make it a seperate file so that it can be shared between sqMacWindow and other plugins that require them. \
16) Changed sqMacDragDrop.c. Added plugin callback for getSTWindow, the sqSetFileAccessCallback logic, fileOpennamesizewrite, and secHasFileAccess. Added logic to do the recordDragDropEvent callback to sqMacWindow.c \
17) sqMacNetwork.c. Some cleanup for the OS-X version of the OpenTransport headers, some constants have name changes\
18) sqMacNSPlugin.c Use of ioLoadFunctionFrom(NULL, "DropPlugin"); versus explicit call.\
19) sqMacOpenGL.c. Some cleanup for the OS-X version of the OpenGL headers\
20) sqMacOpenGLInfo.c. Some cleanup for the OS-X version of the OpenGL headers\
21) sqMacSecurity.c ioInitSecurity calls back to dragAndDrop plugin to set entry point to turn security off. Added code to create directories if required and ensured callbacks are plugitized.\
22) sqMacSound.c Some cleanup for the OS-X version of the Sound headers. Use of interpreterProxy-> in the proper places.\
23) sqMacWindow.c Some cleanup for the OS-X version of the compiler. Fixed saveAsEmbeddedImage, this got broken when we moved from a FAT to a ppc only application. Altered interface to recordDragDropEvent so that it was plugable. Some file path name logic goes to a seperate C source file. The drag and drop plugin is loaded and intialized after the image is loaded but before the interpreter is started, before it was done a bit earlier in the startup process. This also has the effect of initializing the security module.\
24)sqOpenGLRenderer.c. Some cleanup for the OS-X version of the OpenGL headers\
25)SurfacePlugin.c gets a hack so it knows when it is internal versus external.\
\
\
\
v3.0.18 at change set #4081\
(Note browser plugin goes to 3.0.23\
\
1) sqMacOpenGL.c Quite a few changes were made to the code to support it as an internal plugin for the browser. This is because the drawable frame for a browser plugin is a subset of the browser's grafport, so lots more care must be taken to draw in the correct location using OpenGL. We also fixed issues with re-configurating the Open/GL draw area when the window gets resized or goes to full screen, and attempted to ensure multiple screens will work.\
\
2) sqMacWindow.c, minor fix to cast a constant char * to char * for CW 6.1\
\
\
Browser plugin 3.0.23 fixes\
\
1) Integerated the H/W Acceleration as an builtin plugin\
2) Added logic for pre and post event interaction to browser plugin event handler for H/W Acceleration logic. The external H/W Acceleration plugin mostly works with the browser plugin but doesn't work with full screen mode, or if the plugin is embedded in a window or a scrollable frame, so don't use it. Use the browser plugin 3.0.23 or higher which has the H/W Acceleration builtin.\
\
v3.0.17 at change set #4081\
(Note browser plugin goes to 3.0.21)\
\
1) Added HW acceleration as internal plugin.\
2) 4079BBAlphaTextFix-ar Fixes the problem with alpha text, changes BitBltPlugin.c \
3) Added primitive on the mac to truncate a file.\
4) Added logic to flush volume on a flush file to ensure file and control blocks are flushed.\
5) For the Carbon VM we increase nextevent wait time if we get sufficent idle time. This should reduce CPU usage under OS-X\
6) GetAttribute: 1002 now returns the gestaltSystemVersion as a hex string, and getAttribute: 1003 now returns either '68K' or 'PowerPC'.\
7) Starting with 3.0.17 the VM is build only as a powerpc application. The latest VM as a 68K application will be made available from time to time permits based on people's needs. \
8) Changes to sqOpenGLRenderer.c to improve performance, OpenGL 1.1 support.\
\
Plugin 3.0.21 fixes\
\
1) added check for mailto: tag on posts to fix problem with Netscape crashing, and IE hanging.\
2) Plus above fixes.\
\
What has been fixed/changed.\
v3.0.16 at change set #4041\
(Note browser plugin goes to 3.0.20)\
\
1) Lots of fixes for BitBlt and HW acceleration.\
2) Hardware Acceleration plugin goes to 1.0.1. Please note there is a seperate plugin with the same name for Carbon. Doing a get info will identify if the plugin is only usable with Carbon Squeak.\
\
v3.0.15 at change set #4026 (May 17th test version)\
(Note browser plugin goes to 3.0.19)\
\
1) Added support for OpenGL HW acceleration plugin\
\
Plugin 3.0.19 fixes\
\
a) Obey embedded tag plug\
b) Fix problem with plugin 3.0.17 not working with netscape 4.x\
c) Carbonize plugin for IE 5.1 \
d) Remove debugging printf than occurred on transition to full screen mode\
\
What has been fixed/changed.\
v3.0.14 at change set #3987\
\
(Note plugin goes to 3.0.17)\
\
1) sqMacDirectory.c. The pathlookup would handle the case of foo:bar::do incorrectly by ignoring the :: path redirection. This has been fixed. However a path lookup will not work if it contains :: and an aliased directory in the middle of the path.\
\
2) sqMacSecurity.c. The pathname for the untrustedUserDirectory was built incorrectly, and the bug mentioned above in sqMacDirectory.c usually kept this from being noticed.\
\
3) sqMacWindow.c we added some logic to do the delay for primitiveRelinquishProcessor, but found it had an large effect on a freecell benchmark. I suspect on a Morpic step wait there is nothing to do so primitiveRelinquishProcessor gets called which then affects response time. So for now we revert to the 3.0.11 behavior, good performance and 100% CPU usage!\
\
4) GetAttribute 1004 returns returns interpreterVersion; which is for example\
"Squeak3.1alpha of 6 February 2001 [latest update: #3987]"\
\
5) When in full screen mode we now attempt to disable resizing, zooming, or moving the window. The window borders are hidden, but in the past it was feasible to grab an edge and alter it, thus confusing the VM.\
\
6) Worked on Carbonizing the browser plugin\
\
7) 3977 & 3978 FloatArray fixes. Makes float arrays go through a new (and working) version of #primitiveHash\
\
8) Fixed problem with accidental mouse clicks being triggered from pulldown menus on application switching.\
\
9)\
"Change Set: 3984 BitBltExtensions-ar\
Date: 4 May 2001\
Author: Andreas Raab\
\
The change set includes various extensions for BitBlt with the goal of migrating the useful features from FXBlt into the general BitBlt mechanisms. These include:\
\
* Handling of LSB and MSB forms:\
BitBlt now handles both, MSB and LSB forms (and their conversions). Only instances of Bitmap are assumed to contain big-endian pixels. All others are assumed to be little endian (reason is that we can only identify Bitmap here). Note that 'LSB' and 'MSB' refers to PIXELS, that is a 1bpp LSB form has its left most pixel in the lowest bit whereas a 1bpp MSB form has its left-most pixel in the highest bit.\
\
For pixel depths < 8 this can be different from what your OS supplies (as an example, Windows bitmaps < 8 are big-endian pixels in little-endian words; we might call them 'middle-endian'). We simply don't deal with those - forms are either big or little endian but nothing inbetween.\
\
BitBlt has got an extra combination rule for swapping pixels in the destination form. This can be used to make byte swapping much more efficient (as soon as we've got more VMs with support for it).\
\
* Handling of 'native bitmaps' (aka surfaces):\
BitBlt is now able to deal with OS surfaces that are registered with the surface plugin.\
\
* Handling of full color maps:\
BitBlt has been extended to deal with instances of ColorMap in addition to the prior mechanism of using only indexed lookups and provide an implicit 16-32 bit color conversion. ColorMaps can specify both, a lookup table and an additional set of masks and shifts to apply during the color mapping operation. \
\
Four independent shifts and masks can be given which can be used for a lot more than just color conversion (as an example, one could do byte swapping with this; but see also BitBlt class>>exampleColorMap). \
\
* Better handling of default arguments:\
For most of the required arguments for BitBlt very reasonable default assumptions can be made. This includes the destOrigin (0@0), clipRect (0@0 extent: destForm extent), sourceOrigin (0@0). BitBlt now substitutes these if they are absent (e.g., nil) in the instance provided.\
\
"\
\
\
v3.0.13 at change set #3848\
\
1) sqMacSecurity was changed to set the unsecure directory to\
system folder:Preferences:Squeak:Internet:My Squeak\
\
v3.0.12 at change set #3848\
1) Fixed problem with creating My Squeak Folder in Documents Folder with System 8.6\
\
What has been fixed/changed.\
v3.0.11 at change set #3848\
\
1) sqMacDirectory had a bug when you resolved a path name. The fast resolve always failed, which invoked the slow resolver. Now the fast resolver works.\
\
2) sqMacSecurity was changed to set the unsecure directory to Documents:My Squeak. \
\
3) sqMacWindow was changed to fix some issues with Squeak capturing events from other applications and to reduce the number of duplicate mouse events that are generated. Also we capture modifier information directly from the mouse and keyboard on null events to fix some problems with Carbon. We hopefully fixed problems with mouse clicks from foreground applications being seen by Squeak and issues with the OS-X Dock clicks.\
\
4) sqMacNSPlugin was changed to use the above mouse/keyboard capture code which is much cleaner than the original fix for the bogus modifier information given to us by netscape on a null event. \
\
5) When you turn full screen off we now correctly reposition the window to the original location versus a few pixels to the left. \
\
What has been fixed/changed.\
v3.0.10 at change set #3848\
\
1) changed VM exception unwind logic\
3796-Exception-unwind-V3,ti...@su..., Paul McDonough, Stephen Pair and others\
\
2) Fixes for the JPEGReader plugin and for Jitter 3\
\
3) Added minimal Mac VM logic to assist in building a small VM.\
\
4) Changed how the browser plugin starts up. Now it starts the interpreter running only after getting the browser setwindow command. This seems to fix a race condition that resulted in a crash at startup time with Netscape 4.x\
\
5) Fixed broken full screen redraw on cmd-tab\
\
6) Fixed what looked like mouse-down, mouse-down, mouse-up sequence. Now reports mouse-down, mouse up.\
\
7) Added StarSqueak plugin as internal plugin\
\
8) Note the current Squeak Plugin should be gotten from the www.squeakland.org site.\
\
v3.0.9 at change set #3776, Boston Snow storm build.\
\
1) A number of changes were made to the interpreter:\
a) added primitive to change a class.\
b) added primitives to get or put 32bit integers\
c) Fix problem with GC and class reshaping\
d) Better logic for method cache flushing\
\
2) Added JPEGReader plugin\
\
\
V3.0.8 at change set #3740\
\
1) The caps lock no longer maps to the shift attribute. So if the caps lock is down mouse clicks will behave normally. \
\
2) Numerous fixes for the BitBltPlugin plugin\
\
3) Memory allocation grow/shrink logic for Carbon was added.\
\
4) Spurious mouse clicks for the browser plugin has been fixed. (This took awhile to fix, I'm sure it's a bug with the Swedish version of Netscape)\
\
5) The browser plugin will attempt first to allocate memory from the browser heap, then the system heap. Most people when faced with a memory issue usually increase memory for the browser first. However memory for the plugin is controlled by an attribute in the EMBED HTML statement. \
\
V3.0.7\
\
1) A bug exists in pre OS 8.x that causes a crash in activate window if the standard get file \
dialog comes up before the Squeak Window. I remove the InvalWindow call found in that routine since it is actually redundant.\
\
2) The standard get file dialog on system 7.x would not terminate if you did a cancel.\
\
3) The InterfaceLib had to be weak linked to prevent CFM startup issues. \
\
V3.0.6\
\
1) Alias resolving is less aggressive.\
\
2) We no longer cache image reads or writes. This was done because OS 9.1 allows you to have very large disk caches, and it's pointless to cache the image read or write.\
\
3) The file flush primitive now actually flushes the file via an OS call. This was a bug in the CodeWarrior 5.3 source code.\
\
4) The 68K version was being built with the 68881 math library. This fails on 68040LC chips. We now use the non-68881 math library. Thanks to Bruce ONeel for find this.\
\
5) A bug was found in the path resolving logic that was added for 3.x. This bug apparently only affects 68K machines, never was identified as a PowerPC issue. \
\
6) The Netscape plugin needs a properly allocated clip region, this code seemed to work ok on new systems, but fails on system 7.6.1\
\
7) The security interface will create a Documents folder on the root volume if the default Document folder has been deleted. This is needed for security purposes. \
\
8) Jitter needs 1MB of free memory to run.\
\
9) 68K machines require another 32K of stack\
\
10) Threads now work on 68K machines, but turned off because of possible performance issues. (I think more study is needed).\
\
11) The 68K version was compiled with better optimization, expect a 15% improvement.\
\
12) fix for BitBltPlugin ascii = byteAt((sourcePtr + charIndex) - 1);\
\
13) The interpreter object validation checking code was alter to work correctly.\
\
V3.0.5\
\
1) sqConfig.h changed due to BE OS header changes\
\
2) sqMacDirectory.c. Added support for Navigation services or Standard File Get to find the image at startup time when the Squeak.image is not found by the VM. This replaces the DOS like console message that comes up saying that Squeak can't find a image.\
\
3) A fix to drag and drop for the browser plugin.\
\
4) We now use Apple's cooperative multithreading package to run the UI in one thread, the VM in the other. This solves some issues with the browser and makes the UI versus VM logic and execution responsibilities easier to understand. \
\
5) Changed the sqMacNSPlugin.c code to support a 3.0VM using multithreading support. This should give Squeak in a browser better performance. Also changed the full screen support to correctly work with multiple monitors.\
\
6) BitBltPlugin.c gets one more op code\
\
7) Added the security interface\
\
8) Added the file flush primitive\
\
9) Rewrote the macintosh readme file\
\
10) Revisited the zoomWindow code and found a bug with multiple monitor support, then I fixed the code to make Full Screen mode work on screen that Squeak window is mostly on, versus the menubar screen. Also if you switch from full screen back it resizes the window back to the orginal size and location before you invoked the full screen. \
\
V3.0.2\
Plugins\
\
Recompiled the internal BitBltPlugin plugin to encorporate:\
Change Set: 258AlphaBlendOpt-dsm\
Author: Duane Maxwell, Paul Phillips/exobox\
a) Short circuits full opaque and full transparent pixels when alpha blending.\
\
Recompiled the internal LargeIntegerPlugin\
3298LargeIntegersV1-2-sr -- Stephan Rudlof -- 29 November 2000\
3299LargeIntV1-2For29-sr -- Stephan Rudlof -- 29 November 2000\
\
VM Software\
\
(b) PowerManagement for macintosh is now supported. You can disable the power manager to give you better performance on some powerbooks at the expense of battery life. See the Preferences Panel for details, category 'Performance'\
- changed sq.h\
- changed sqMacWindow.c to add support for power mgr disabling\
\
(c) Drag and Drop support for the macintosh, dragging files from the Finder to the Squeak window is now supported.\
- sqMacDragDrop.c added\
- sqMacWindow.c changed\
\
(d) Added primitive for get macintosh creator and file type.\
- sqMacDirectory.c changed\
\
(e) Carbon support. Thanks to Karl Goiser ka...@wa... for work he did on sound and other Carbonization hotspots.\
- sqMacAsyncFilePrims.c changed\
- sqMacFFIPPC.c changed (not supported for Carbon)\
- sqMacNetwork.c changed per Apple tech note 1173 Carbon asset tracking\
-sqMacSerialAndMIDIPort.c chnaged (Not supported for Carbon)\
- sqMacSound.c changed per Apple tech note 1198 Carbon double sound buffer playing\
- sqMacWindow.c changed (various changes for Carbon)\
\
(f) Poll at least 60 times a second for the mouse if required. Previous 2.9.x VM did it 30 times but this is too slow and 2.8.x VM do it 60 times a second.\
\
(g) Reworked path support Thanks to Karl Goiser ka...@wa... for starting this.\
- sqmacDirectory.c changed reworked lookupPath\
- sqMacWindow.c changed, added GetApplicationDirectory to get application directory\
\
(h) I rewrote the sqMacDirectory.c logic to enable proper understanding of Apple's Alias logic. This means for example you can alias the "SqueakV3.sources" file and then only have one copy and have all your images point to it. \
\
(i) Added Zoom Window support.\
\
(j) Change the Squeak change file icon to better match Apple's visual guidelines, Thanks to Doug Way for the suggestion and the new icons.\
\
(k) The sound plugins have changed...\
\
(j) Dropped FFI out of the base Squeak because of security concerns\
\
(k) Compiled for 750(G3) processor versus 603\
\
(l) Added screenDepth primitive\
\
The 3.0.x VM contains most of the optional plugins, you might want to check this by inspecting "Smalltalk listBuiltinModules" to see where your plugins are coming from. In some case people have been accidentally overriding the new builtin plugins with older plugins. \
\
The file "Squeak 3.0Alpha10MT.sig" contains the PGP signature for the Squeak 3.0Alpha10MT VM\
\
John M McIntosh jo...@sm...\
\
\
\
\
\
\
\
\
}
|
|
From: John M M. <jo...@us...> - 2002-08-06 17:33:31
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/Documentation
In directory usw-pr-cvs1:/tmp/cvs-serv7103/squeak/platforms/Mac OS/vm/Documentation
Added Files:
3.2.2 Release Notes.rtf
Log Message:
Rearrange folder/files
--- NEW FILE: 3.2.2 Release Notes.rtf ---
{\rtf1\mac\ansicpg10000\cocoartf100
{\fonttbl\f0\fnil\fcharset77 Geneva;\f1\fnil\fcharset77 LucidaGrande;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww13420\viewh10820\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\fs24 \cf0 Mac VM 3.2.2 mach-o build for Carbon.\
Jan 30th 2002\
\
Still yet to do, in future versions.\
Test drag and drop at startup time\
Verify that file delete rename etc works on aliases, not the targets.\
\
You will need mach-o os-x bundle plugins to work with this VM. example ->
\f1 mpeg3Plugin.bundle.\
Old carbon non-bundled plugins will not work.
\f0 \
\
Changes:\
\
a) AsyncFilePlugin.c Use global to remember security function entry point for performance reasons\
b) FilePlugin.c Use global to remember security function entry point for performance reasons\
c) interp.c Use squeakFileOffsetType versus off_t and add a bunch of checks to handle lack of long long and conversion errors between 64/32 bit integers and LargeInteger objects\
d) readme, it's http://www.mucow.com/Gnuifier.1.cs \
e) SocketPlugin.c Use global to remember security function entry point for performance reasons\
f) sq.h added default sqFilenameFromStringOpen and sqTruncate\
g) sqFilePluginBasicPrims.c revert to ansi specs, but ensure #def to fseeko and ftello for 64 bit aware file systems.\
h) sqMacDirectory.c A bit more error checking on bad file names\
i) sqMacFileLogic.c Folders size is now zero in classic, and a bit more checking on bad file names\
j) sqMacSound.c Fixed a problem with sound recording in classic due to a change made in Sept. But sound recording still does not work under os-x\
k) sqMacWindow.c two very important changes:\
\
1) You can now do FFI calls with the FFI bundle plugin to Mach-o frameworks. \
However you need to rework your api calls. For example:\
apiGetMousePoint: aMacPoint was\
<apicall: void 'GetMouse' (MacPoint*) module:'InterfaceLib'>\
It now is:\
<apicall: void 'GetMouse' (MacPoint*) module:'Carbon.framework'>\
\
If you review /System/Library/Frameworks I'm sure you can come up with interesting ways to \
make mac only squeak images.\
\
I now use mmap( NULL, gMaxHeapSize, PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED,-1,0);\
anonymous memory mapping to 512MB as the squeak memory block. The VM can then grow or shrink\
within the 512MB block, I just move a pointer. \
\
Note in 3.2.1 a slight error on my part restricted Squeak to 50MB. I am of course\
interested to hear about issues with my choice of 512MB. Note a Squeak VM is limited to 2GB under perfect \
conditions, however if any part of the image crosses the 2GB boundary the VM will fail, right now 512MB\
seemed a safe choice.\
\
PhysMem: 60.2M wired, 78.6M active, 412M inactive, 551M used, 217M free\
VM: 3.03G + 55.3M 7847(0) pageins, 1(0) pageouts \
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE\
422 Squeak VM 0.8% 0:35.59 2 71 100 23.3M 8.53M 26.5M 571M
\
\
but I only have one 80,000,000 byte swap file in /var/vm\
\
Note if you turn crash reporter on, then if the VM crashes a nice report should be generated in your log directory. See the Apple documentation for a description of this feature, currently it is set in OS-X 10.1.x via the preferences window for the Console Application. If you have a crash with this VM, please recreate and post the crash log (found in Users/foobar/Library/Logs/ to the Squeak mailing list so we can continue to make the VM fault tolerant.\
\
3.2.1 Notes\
\
You might need these change sets to build a new VM or to use all the features of this VM with your image, hopefully these will get into the pending 3.2.x image.\
\
Fixes and feature extensions.\
AsyncFileFixFu...hName-JMM.1.cs fix for async test method.\
DragAndDropAtStart-JMM.5.cs fix to enable drag and drop at startup\
\
Needed to compile a VM with VMMaker\
LargeFiles-JMM.3.cs Enable large file support, files > 2GB\
\
Needed to turn this feature on\
MacLongFileName-JMM.5.cs Enable long file names on the mac\
\
The SUnit\
MacLongFileNamesSUnits-JMM.3.cs Test long file names and long directory names and large file support\
\
Kinda optional features some people might need.\
InternetConfiguration-JMM.5.cs Allow internet configuration information access, internal plugin\
UUID-JMM.3.cs Allow UUID generation, internal plugin\
\
a) The ability to get back a UUID. This uses the hosting UUID generator if the\
hosting OS supports it and we have a primitive we can call. If not then we generate\
a type 4 version of a UUID (the random bits one).\
(This requires a special change set)\
\
b) Ability to start squeak on the mac by dragging multiple documents onto the\
image, or drag and drop of stuff onto the running VM icon.\
(This requires a special change set)\
\
c) Usage of the Internet Configuration tool kit to supply information about\
what the mac proxy is etc. etc.\
(This requires a special change set)\
\
d) Migrate file system to use 64 bits. This allows you to read/write and seek\
with files > 2 GB. This includes a change to the VM to convert from/to long\
long integers. It also allows the file system to actually deal with 2GB files,\
the current file interface actually fails once the file exceeds 1GB.\
\
e) For the carbon based Squeak VM we now support long file names 255\
characters. Close both eyes and touch everywhere the mac VM deals with file\
name paths and hope for the best (Actually we write an Sunit to ensure we've\
not broken everything). This also includes the ability to put an image in a\
long file name directory, but right now the image name must stay under 32 characters.\
\
FilePlugin.c changes to support large integers.\
FilePlugin.h changes\
sq.h changes to support large files.\
sqConfig.h changes to resolve some conflicts.\
sqFilePluginBasicPrims.c changes to support large files.\
sqMacAsyncFilePrims.c changes to use fspec versus 255 file path.\
sqMacDirectory.c changes to use hosting OS (OS-X) bsd create and delete directory\
and truncate. dir_look changes as part of the general rewrite.\
sqMacDragAndDrop.c use new call to get path name from fsspec. Use fsspec more, and added \
interface code to setup drag and drop of items at application startup time. max document name\
goes to 1000 characters.\
sqMacFileLogic.c Mostly rewrote!\
sqMacSecurity.c use new file calls.\
sqMacWindow.c \
increase size of vmpath, docpath, imagepath to 1000 chars, shortname to 255 characters.\
add logic for left/right modifier keys \
reworked LoadLibViaPath logic \
sqImageFileOpen uses fsspec versus 255 path name.\
sqImageFileStartLocation uses ffspec.\
bundle support for bundles\
\
e2) interp.c supports get/put of large integers to long long integers.\
e3) fixed fTruncate\
\
Hint getting this to work was a pain. Think of 255 character folder names and nested aliases,\
folder 1 refers to folder 2 which then refers to folder 1 again, just go down the path say 8 times,\
then ask to create a file or directory!\
\
f) Support to change the Mac screen resolution under Squeak control.\
\
g) Fix to unload/load the scrap at startup time to ensure the clipboard is\
correct when starting up the VM.\
\
h) Uncouple the shift key and left/right shift keys on old extended keyboard.\
Also add a call to get which keys are currently pressed on a USB keyboard or\
the USB codes for an apple non-usb keyboard. (Note this isn't working quite yet under OS-X)\
\
i) Changes to enable us to compile the VM under Apple's OS-X Project Builder\
environments.\
\
j) Some rewriting to ensure serial and midi support can be written as external\
plugins.\
\
k) Fiddling to get sound input to work under OS-X\
\
l) Platform.exports changed macintosh to macintoshSqueak to avoid conflict.\
\
m) Memory is allocated at 50MB at start, then will grow or shrink, verus previous carbon apps\
that did 1GB. \
\
n) sqPlatformSpecific.h changes to support long file names and os-x posix file names\
\
o) sqVirtualmachine.c & sqVirtualmachine.h\
#if VM_PROXY_MINOR > 4\
VM->positive64BitIntegerFor = positive64BitIntegerFor;\
VM->positive64BitValueOf = positive64BitValueOf;\
VM->signed64BitIntegerFor = signed64BitIntegerFor;\
VM->signed64BitValueOf = signed64BitValueOf;\
#endif\
\
Beware this causes an interesting problem, if you compile plugins with VM_PROXY_MINOR now set to 5, then they will not work with older VMs. The solution is to define the VM_PROXY_MINOR in the plugin to the value that indicates what features it is using.\
\
p) Changed to use ITimer logic as a 16ms lowres timer to improve performance\
\
q) Changed to use single thread, no thread manager.\
\
r) Changed to use lowres timer in checking for polling time to improve performance\
\
s) It should have faster startup times.\
\
t) It will hide the empty window at startup, then show the squeak window when required.\
\
u) It has a different menu structure.\
\
v) It does less I/O when navigating directories.\
\
The macintosh 3.1Alpha1MT VM, Sept 24th 2001 \
This VM was built with the base 3.1 image at change set #4347\
V3.1.1 at change set #4347\
\
\
We go to V3.1.1 to indicate that the 3.1 VM is being used. In the past the 3.1 Image was used but some changes in the openGL logic makes 3.1 Vm and 3.0 image not quite work correctly with 3d graphics. Although a 3.1 VM will run many images way back to the 2x series no careful study has been done on the ability to do this. So at this point we are indicating this VM is a 3.1 VM and best used with a 3.1 image.\
\
Use of VMMaker to build VM. As of this version everything can be built as an external except for the window logic which hasn't been decoupled from the VM support for the macintosh. \
\
1) AsynchFilePlugin the security check for ability to create file is now a plugin call.\
2) B2DPlugin logic changes to fillLinearGradientfromtoat\
3) b3dRemapFaces, b3dRemapEdges, b3dRemapEdgeList, b3dRemapAET, b3dRemapEdgeVertices, b3dRemapFaceVertices, b3dRemapFaceFree, b3dRemapEdgeFree, b3dRemapAttributes. Some casting and changing of += to = + to make some compilers happy.\
4) BitBltPlugin added tableLookupat call.\
5) DropPlugin added setFileAccessCallback to allow the Security Module plugin the ability to give us the entry point to turn security off so we can open files as read only when security is turned on. This was broken in the past. \
6) FilePlugin added fileOpennamesizewrite,getThisSession to allow for callbacks. Changed the file security logic to use the plugin interface. \
7) interp.c, fixes for 4347ByteArrayRangeCheck-di, ability to printAllStacks, security calls for image rename, write to use plugin interface.\
8) Added GetAttributeString, and recordDragDropEvent and entry points for callbacks.\
9) SecurityPlugin changed when initialization is called to initialize the safe and unsafe directorys, also added entry points for all the testing calls so it can be a true plugin.\
10) Serialplugin. The serial plugin was redesigned to seperate out MIDI logic. People with MIDI devices and old serial macintosh should check to see if they still work since we lack equipment now to test this obsolete technology set.\
11) SocketPlugin. Make security calls true plugin calls.\
12 SoundGenerationPlugin. Removed \
EXPORT(int) SoundGenerationPlugin_primitiveFMSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitiveOldSampledSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitivePluckedSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitiveSampledSoundMix(void);\
EXPORT(int) SoundGenerationPlugin_primitiveWaveTableSoundMix(void);\
They were a hack at the plugin level and discussion on the list seemed to show they were no longer used. \
13) Checking for if defined (__APPLE__) && defined(__MACH__) for the Mac OS-X native development environment\
14) Changed sqMacAsyncFilePrims, usage of interpreterProxy->, plugin calls for getThisSession. \
15) Changed sqMacDirectory.c. Removed some utility code and make it a seperate file so that it can be shared between sqMacWindow and other plugins that require them. \
16) Changed sqMacDragDrop.c. Added plugin callback for getSTWindow, the sqSetFileAccessCallback logic, fileOpennamesizewrite, and secHasFileAccess. Added logic to do the recordDragDropEvent callback to sqMacWindow.c \
17) sqMacNetwork.c. Some cleanup for the OS-X version of the OpenTransport headers, some constants have name changes\
18) sqMacNSPlugin.c Use of ioLoadFunctionFrom(NULL, "DropPlugin"); versus explicit call.\
19) sqMacOpenGL.c. Some cleanup for the OS-X version of the OpenGL headers\
20) sqMacOpenGLInfo.c. Some cleanup for the OS-X version of the OpenGL headers\
21) sqMacSecurity.c ioInitSecurity calls back to dragAndDrop plugin to set entry point to turn security off. Added code to create directories if required and ensured callbacks are plugitized.\
22) sqMacSound.c Some cleanup for the OS-X version of the Sound headers. Use of interpreterProxy-> in the proper places.\
23) sqMacWindow.c Some cleanup for the OS-X version of the compiler. Fixed saveAsEmbeddedImage, this got broken when we moved from a FAT to a ppc only application. Altered interface to recordDragDropEvent so that it was plugable. Some file path name logic goes to a seperate C source file. The drag and drop plugin is loaded and intialized after the image is loaded but before the interpreter is started, before it was done a bit earlier in the startup process. This also has the effect of initializing the security module.\
24)sqOpenGLRenderer.c. Some cleanup for the OS-X version of the OpenGL headers\
25)SurfacePlugin.c gets a hack so it knows when it is internal versus external.\
\
\
\
v3.0.18 at change set #4081\
(Note browser plugin goes to 3.0.23\
\
1) sqMacOpenGL.c Quite a few changes were made to the code to support it as an internal plugin for the browser. This is because the drawable frame for a browser plugin is a subset of the browser's grafport, so lots more care must be taken to draw in the correct location using OpenGL. We also fixed issues with re-configurating the Open/GL draw area when the window gets resized or goes to full screen, and attempted to ensure multiple screens will work.\
\
2) sqMacWindow.c, minor fix to cast a constant char * to char * for CW 6.1\
\
\
Browser plugin 3.0.23 fixes\
\
1) Integerated the H/W Acceleration as an builtin plugin\
2) Added logic for pre and post event interaction to browser plugin event handler for H/W Acceleration logic. The external H/W Acceleration plugin mostly works with the browser plugin but doesn't work with full screen mode, or if the plugin is embedded in a window or a scrollable frame, so don't use it. Use the browser plugin 3.0.23 or higher which has the H/W Acceleration builtin.\
\
v3.0.17 at change set #4081\
(Note browser plugin goes to 3.0.21)\
\
1) Added HW acceleration as internal plugin.\
2) 4079BBAlphaTextFix-ar Fixes the problem with alpha text, changes BitBltPlugin.c \
3) Added primitive on the mac to truncate a file.\
4) Added logic to flush volume on a flush file to ensure file and control blocks are flushed.\
5) For the Carbon VM we increase nextevent wait time if we get sufficent idle time. This should reduce CPU usage under OS-X\
6) GetAttribute: 1002 now returns the gestaltSystemVersion as a hex string, and getAttribute: 1003 now returns either '68K' or 'PowerPC'.\
7) Starting with 3.0.17 the VM is build only as a powerpc application. The latest VM as a 68K application will be made available from time to time permits based on people's needs. \
8) Changes to sqOpenGLRenderer.c to improve performance, OpenGL 1.1 support.\
\
Plugin 3.0.21 fixes\
\
1) added check for mailto: tag on posts to fix problem with Netscape crashing, and IE hanging.\
2) Plus above fixes.\
\
What has been fixed/changed.\
v3.0.16 at change set #4041\
(Note browser plugin goes to 3.0.20)\
\
1) Lots of fixes for BitBlt and HW acceleration.\
2) Hardware Acceleration plugin goes to 1.0.1. Please note there is a seperate plugin with the same name for Carbon. Doing a get info will identify if the plugin is only usable with Carbon Squeak.\
\
v3.0.15 at change set #4026 (May 17th test version)\
(Note browser plugin goes to 3.0.19)\
\
1) Added support for OpenGL HW acceleration plugin\
\
Plugin 3.0.19 fixes\
\
a) Obey embedded tag plug\
b) Fix problem with plugin 3.0.17 not working with netscape 4.x\
c) Carbonize plugin for IE 5.1 \
d) Remove debugging printf than occurred on transition to full screen mode\
\
What has been fixed/changed.\
v3.0.14 at change set #3987\
\
(Note plugin goes to 3.0.17)\
\
1) sqMacDirectory.c. The pathlookup would handle the case of foo:bar::do incorrectly by ignoring the :: path redirection. This has been fixed. However a path lookup will not work if it contains :: and an aliased directory in the middle of the path.\
\
2) sqMacSecurity.c. The pathname for the untrustedUserDirectory was built incorrectly, and the bug mentioned above in sqMacDirectory.c usually kept this from being noticed.\
\
3) sqMacWindow.c we added some logic to do the delay for primitiveRelinquishProcessor, but found it had an large effect on a freecell benchmark. I suspect on a Morpic step wait there is nothing to do so primitiveRelinquishProcessor gets called which then affects response time. So for now we revert to the 3.0.11 behavior, good performance and 100% CPU usage!\
\
4) GetAttribute 1004 returns returns interpreterVersion; which is for example\
"Squeak3.1alpha of 6 February 2001 [latest update: #3987]"\
\
5) When in full screen mode we now attempt to disable resizing, zooming, or moving the window. The window borders are hidden, but in the past it was feasible to grab an edge and alter it, thus confusing the VM.\
\
6) Worked on Carbonizing the browser plugin\
\
7) 3977 & 3978 FloatArray fixes. Makes float arrays go through a new (and working) version of #primitiveHash\
\
8) Fixed problem with accidental mouse clicks being triggered from pulldown menus on application switching.\
\
9)\
"Change Set: 3984 BitBltExtensions-ar\
Date: 4 May 2001\
Author: Andreas Raab\
\
The change set includes various extensions for BitBlt with the goal of migrating the useful features from FXBlt into the general BitBlt mechanisms. These include:\
\
* Handling of LSB and MSB forms:\
BitBlt now handles both, MSB and LSB forms (and their conversions). Only instances of Bitmap are assumed to contain big-endian pixels. All others are assumed to be little endian (reason is that we can only identify Bitmap here). Note that 'LSB' and 'MSB' refers to PIXELS, that is a 1bpp LSB form has its left most pixel in the lowest bit whereas a 1bpp MSB form has its left-most pixel in the highest bit.\
\
For pixel depths < 8 this can be different from what your OS supplies (as an example, Windows bitmaps < 8 are big-endian pixels in little-endian words; we might call them 'middle-endian'). We simply don't deal with those - forms are either big or little endian but nothing inbetween.\
\
BitBlt has got an extra combination rule for swapping pixels in the destination form. This can be used to make byte swapping much more efficient (as soon as we've got more VMs with support for it).\
\
* Handling of 'native bitmaps' (aka surfaces):\
BitBlt is now able to deal with OS surfaces that are registered with the surface plugin.\
\
* Handling of full color maps:\
BitBlt has been extended to deal with instances of ColorMap in addition to the prior mechanism of using only indexed lookups and provide an implicit 16-32 bit color conversion. ColorMaps can specify both, a lookup table and an additional set of masks and shifts to apply during the color mapping operation. \
\
Four independent shifts and masks can be given which can be used for a lot more than just color conversion (as an example, one could do byte swapping with this; but see also BitBlt class>>exampleColorMap). \
\
* Better handling of default arguments:\
For most of the required arguments for BitBlt very reasonable default assumptions can be made. This includes the destOrigin (0@0), clipRect (0@0 extent: destForm extent), sourceOrigin (0@0). BitBlt now substitutes these if they are absent (e.g., nil) in the instance provided.\
\
"\
\
\
v3.0.13 at change set #3848\
\
1) sqMacSecurity was changed to set the unsecure directory to\
system folder:Preferences:Squeak:Internet:My Squeak\
\
v3.0.12 at change set #3848\
1) Fixed problem with creating My Squeak Folder in Documents Folder with System 8.6\
\
What has been fixed/changed.\
v3.0.11 at change set #3848\
\
1) sqMacDirectory had a bug when you resolved a path name. The fast resolve always failed, which invoked the slow resolver. Now the fast resolver works.\
\
2) sqMacSecurity was changed to set the unsecure directory to Documents:My Squeak. \
\
3) sqMacWindow was changed to fix some issues with Squeak capturing events from other applications and to reduce the number of duplicate mouse events that are generated. Also we capture modifier information directly from the mouse and keyboard on null events to fix some problems with Carbon. We hopefully fixed problems with mouse clicks from foreground applications being seen by Squeak and issues with the OS-X Dock clicks.\
\
4) sqMacNSPlugin was changed to use the above mouse/keyboard capture code which is much cleaner than the original fix for the bogus modifier information given to us by netscape on a null event. \
\
5) When you turn full screen off we now correctly reposition the window to the original location versus a few pixels to the left. \
\
What has been fixed/changed.\
v3.0.10 at change set #3848\
\
1) changed VM exception unwind logic\
3796-Exception-unwind-V3,ti...@su..., Paul McDonough, Stephen Pair and others\
\
2) Fixes for the JPEGReader plugin and for Jitter 3\
\
3) Added minimal Mac VM logic to assist in building a small VM.\
\
4) Changed how the browser plugin starts up. Now it starts the interpreter running only after getting the browser setwindow command. This seems to fix a race condition that resulted in a crash at startup time with Netscape 4.x\
\
5) Fixed broken full screen redraw on cmd-tab\
\
6) Fixed what looked like mouse-down, mouse-down, mouse-up sequence. Now reports mouse-down, mouse up.\
\
7) Added StarSqueak plugin as internal plugin\
\
8) Note the current Squeak Plugin should be gotten from the www.squeakland.org site.\
\
v3.0.9 at change set #3776, Boston Snow storm build.\
\
1) A number of changes were made to the interpreter:\
a) added primitive to change a class.\
b) added primitives to get or put 32bit integers\
c) Fix problem with GC and class reshaping\
d) Better logic for method cache flushing\
\
2) Added JPEGReader plugin\
\
\
V3.0.8 at change set #3740\
\
1) The caps lock no longer maps to the shift attribute. So if the caps lock is down mouse clicks will behave normally. \
\
2) Numerous fixes for the BitBltPlugin plugin\
\
3) Memory allocation grow/shrink logic for Carbon was added.\
\
4) Spurious mouse clicks for the browser plugin has been fixed. (This took awhile to fix, I'm sure it's a bug with the Swedish version of Netscape)\
\
5) The browser plugin will attempt first to allocate memory from the browser heap, then the system heap. Most people when faced with a memory issue usually increase memory for the browser first. However memory for the plugin is controlled by an attribute in the EMBED HTML statement. \
\
V3.0.7\
\
1) A bug exists in pre OS 8.x that causes a crash in activate window if the standard get file \
dialog comes up before the Squeak Window. I remove the InvalWindow call found in that routine since it is actually redundant.\
\
2) The standard get file dialog on system 7.x would not terminate if you did a cancel.\
\
3) The InterfaceLib had to be weak linked to prevent CFM startup issues. \
\
V3.0.6\
\
1) Alias resolving is less aggressive.\
\
2) We no longer cache image reads or writes. This was done because OS 9.1 allows you to have very large disk caches, and it's pointless to cache the image read or write.\
\
3) The file flush primitive now actually flushes the file via an OS call. This was a bug in the CodeWarrior 5.3 source code.\
\
4) The 68K version was being built with the 68881 math library. This fails on 68040LC chips. We now use the non-68881 math library. Thanks to Bruce ONeel for find this.\
\
5) A bug was found in the path resolving logic that was added for 3.x. This bug apparently only affects 68K machines, never was identified as a PowerPC issue. \
\
6) The Netscape plugin needs a properly allocated clip region, this code seemed to work ok on new systems, but fails on system 7.6.1\
\
7) The security interface will create a Documents folder on the root volume if the default Document folder has been deleted. This is needed for security purposes. \
\
8) Jitter needs 1MB of free memory to run.\
\
9) 68K machines require another 32K of stack\
\
10) Threads now work on 68K machines, but turned off because of possible performance issues. (I think more study is needed).\
\
11) The 68K version was compiled with better optimization, expect a 15% improvement.\
\
12) fix for BitBltPlugin ascii = byteAt((sourcePtr + charIndex) - 1);\
\
13) The interpreter object validation checking code was alter to work correctly.\
\
V3.0.5\
\
1) sqConfig.h changed due to BE OS header changes\
\
2) sqMacDirectory.c. Added support for Navigation services or Standard File Get to find the image at startup time when the Squeak.image is not found by the VM. This replaces the DOS like console message that comes up saying that Squeak can't find a image.\
\
3) A fix to drag and drop for the browser plugin.\
\
4) We now use Apple's cooperative multithreading package to run the UI in one thread, the VM in the other. This solves some issues with the browser and makes the UI versus VM logic and execution responsibilities easier to understand. \
\
5) Changed the sqMacNSPlugin.c code to support a 3.0VM using multithreading support. This should give Squeak in a browser better performance. Also changed the full screen support to correctly work with multiple monitors.\
\
6) BitBltPlugin.c gets one more op code\
\
7) Added the security interface\
\
8) Added the file flush primitive\
\
9) Rewrote the macintosh readme file\
\
10) Revisited the zoomWindow code and found a bug with multiple monitor support, then I fixed the code to make Full Screen mode work on screen that Squeak window is mostly on, versus the menubar screen. Also if you switch from full screen back it resizes the window back to the orginal size and location before you invoked the full screen. \
\
V3.0.2\
Plugins\
\
Recompiled the internal BitBltPlugin plugin to encorporate:\
Change Set: 258AlphaBlendOpt-dsm\
Author: Duane Maxwell, Paul Phillips/exobox\
a) Short circuits full opaque and full transparent pixels when alpha blending.\
\
Recompiled the internal LargeIntegerPlugin\
3298LargeIntegersV1-2-sr -- Stephan Rudlof -- 29 November 2000\
3299LargeIntV1-2For29-sr -- Stephan Rudlof -- 29 November 2000\
\
VM Software\
\
(b) PowerManagement for macintosh is now supported. You can disable the power manager to give you better performance on some powerbooks at the expense of battery life. See the Preferences Panel for details, category 'Performance'\
- changed sq.h\
- changed sqMacWindow.c to add support for power mgr disabling\
\
(c) Drag and Drop support for the macintosh, dragging files from the Finder to the Squeak window is now supported.\
- sqMacDragDrop.c added\
- sqMacWindow.c changed\
\
(d) Added primitive for get macintosh creator and file type.\
- sqMacDirectory.c changed\
\
(e) Carbon support. Thanks to Karl Goiser ka...@wa... for work he did on sound and other Carbonization hotspots.\
- sqMacAsyncFilePrims.c changed\
- sqMacFFIPPC.c changed (not supported for Carbon)\
- sqMacNetwork.c changed per Apple tech note 1173 Carbon asset tracking\
-sqMacSerialAndMIDIPort.c chnaged (Not supported for Carbon)\
- sqMacSound.c changed per Apple tech note 1198 Carbon double sound buffer playing\
- sqMacWindow.c changed (various changes for Carbon)\
\
(f) Poll at least 60 times a second for the mouse if required. Previous 2.9.x VM did it 30 times but this is too slow and 2.8.x VM do it 60 times a second.\
\
(g) Reworked path support Thanks to Karl Goiser ka...@wa... for starting this.\
- sqmacDirectory.c changed reworked lookupPath\
- sqMacWindow.c changed, added GetApplicationDirectory to get application directory\
\
(h) I rewrote the sqMacDirectory.c logic to enable proper understanding of Apple's Alias logic. This means for example you can alias the "SqueakV3.sources" file and then only have one copy and have all your images point to it. \
\
(i) Added Zoom Window support.\
\
(j) Change the Squeak change file icon to better match Apple's visual guidelines, Thanks to Doug Way for the suggestion and the new icons.\
\
(k) The sound plugins have changed...\
\
(j) Dropped FFI out of the base Squeak because of security concerns\
\
(k) Compiled for 750(G3) processor versus 603\
\
(l) Added screenDepth primitive\
\
The 3.0.x VM contains most of the optional plugins, you might want to check this by inspecting "Smalltalk listBuiltinModules" to see where your plugins are coming from. In some case people have been accidentally overriding the new builtin plugins with older plugins. \
\
The file "Squeak 3.0Alpha10MT.sig" contains the PGP signature for the Squeak 3.0Alpha10MT VM\
\
John M McIntosh jo...@sm...\
\
\
\
\
\
\
\
\
}
|
|
From: John M M. <jo...@us...> - 2002-08-06 17:31:38
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/Documentation In directory usw-pr-cvs1:/tmp/cvs-serv5941/Documentation Log Message: Directory /cvsroot/squeak/squeak/platforms/Mac OS/vm/Documentation added to the repository ***** Bogus filespec: OS/vm/Documentation |
|
From: Andreas R. <and...@us...> - 2002-07-18 22:13:00
|
Update of /cvsroot/squeak/squeak/platforms/win32/vm
In directory usw-pr-cvs1:/tmp/cvs-serv4206
Modified Files:
sqWin32Exports.c sqWin32Prefs.c
Log Message:
Fixed DSound preference.
Index: sqWin32Exports.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/vm/sqWin32Exports.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** sqWin32Exports.c 17 Jun 2002 12:35:05 -0000 1.3
--- sqWin32Exports.c 18 Jul 2002 22:12:56 -0000 1.4
***************
*** 30,34 ****
{"","primitivePluginDestroyRequest", primitivePluginDestroyRequest},
{"","primitivePluginRequestState", primitivePluginRequestState},
! ("", "printf", printf),
{"","stWindow", &stWindow},
{"","firstMessageHook", &firstMessageHook},
--- 30,34 ----
{"","primitivePluginDestroyRequest", primitivePluginDestroyRequest},
{"","primitivePluginRequestState", primitivePluginRequestState},
! {"", "printf", printf},
{"","stWindow", &stWindow},
{"","firstMessageHook", &firstMessageHook},
Index: sqWin32Prefs.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/vm/sqWin32Prefs.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sqWin32Prefs.c 26 May 2002 18:52:10 -0000 1.5
--- sqWin32Prefs.c 18 Jul 2002 22:12:57 -0000 1.6
***************
*** 88,91 ****
--- 88,93 ----
CheckMenuItem(vmPrefsMenu, ID_DIRECTSOUND, MF_BYCOMMAND |
(fUseDirectSound ? MF_CHECKED : MF_UNCHECKED));
+ WritePrivateProfileString(U_GLOBAL,TEXT("UseDirectSound"),
+ fUseDirectSound ? U_ON : U_OFF,squeakIniName);
}
***************
*** 179,182 ****
--- 181,187 ----
fPriorityBoost,squeakIniName);
+ fUseOpenGL =
+ GetPrivateProfileInt(U_GLOBAL,TEXT("UseDirectSound"),
+ fUseDirectSound,squeakIniName);
fUseOpenGL =
GetPrivateProfileInt(U_GLOBAL,TEXT("B3DXUsesOpenGL"),
|
|
From: John M M. <jo...@us...> - 2002-07-08 06:21:20
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory usw-pr-cvs1:/tmp/cvs-serv26435/squeak/platforms/Mac OS/vm Modified Files: readme Log Message: 3.2.7b6 Jay Hardesty . Yet more cleanup Index: readme =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/readme,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** readme 5 Jul 2002 06:59:44 -0000 1.8 --- readme 8 Jul 2002 06:21:17 -0000 1.9 *************** *** 1,3 **** ! Updated July 4th 2002 Building the Squeak Virtual Machine (Jan 1st 2002) --- 1,3 ---- ! Updated July 6th 2002 Building the Squeak Virtual Machine (Jan 1st 2002) *************** *** 6,10 **** Feb 5th 2002, April 26th 2002 -- Changes Andrew C. Greenberg, Jan 1st 2002 ! -- Changes Jay Hardesty, July 4, 2002 (Note to readers, it is possible a step was missed, so beware) --- 6,10 ---- Feb 5th 2002, April 26th 2002 -- Changes Andrew C. Greenberg, Jan 1st 2002 ! -- Changes Jay Hardesty, July 6, 2002 (Note to readers, it is possible a step was missed, so beware) *************** *** 27,33 **** 1. Get the Apple Developer Tools (free) 2. Get the current Sourceforge Platforms tree ! 2'. Tweak LargeIntegersPlugin ! 3. Get, and install, the VMMaker, and build an interpreter ! 4. Get, and install, the Gnifier, and gnuify the interpreter 5. Shove some files around the buildspace 6. Run ProjectBuilder and build yourself an interpreter --- 27,32 ---- 1. Get the Apple Developer Tools (free) 2. Get the current Sourceforge Platforms tree ! 3. Build an interpreter ! 4. Get, and install, the Gnuifier, and gnuify the interpreter 5. Shove some files around the buildspace 6. Run ProjectBuilder and build yourself an interpreter *************** *** 52,61 **** After so much mumbo-jumbo, your squeak folder should have a directory entitled platforms. ! Step Three: Get, and install, the VMMaker, and build an interpeter ! A. ! http://sumeru.stanford.EDU/tim/pooters/SqFiles/deltas/VMMaker-3-1-version3. ! cs ! A2: Install change sets from the specialChangeSets Folder. These are required to build a VM that has globals as a structure which improves performance by 10%. --- 51,57 ---- After so much mumbo-jumbo, your squeak folder should have a directory entitled platforms. ! Step Three: Build an interpeter ! A. Install change sets from the specialChangeSets Folder. These are required to build a VM that has globals as a structure which improves performance by 10%. *************** *** 108,115 **** 4. click the box and select Stuffit Expander 5. go back and double-click the .hqx ! C. Unstuff 'SqueakVMForCarbon.pbproj.sit' ! (same deal as step B) ! D. Drag 'SqueakVMForCarbon.pbproj.sit' to the folder containing the 'platforms' and 'src' folders. Step Six: Run ProjectBuilder and build yourself an interpreter --- 104,111 ---- 4. click the box and select Stuffit Expander 5. go back and double-click the .hqx ! C. Unstuff 'SqueakVMForCarbon.pbproj.sit' (same deal as step B) ! D. Drag 'SqueakVMForCarbon.pbproj' to the folder containing the 'platforms' and 'src' folders. + E. Copy 'platforms/Mac OS/vm/sqNamedPlugins.h' to 'src/vm/sqNamedPlugins.h' Step Six: Run ProjectBuilder and build yourself an interpreter *************** *** 160,169 **** J. On the left upper pane marked "Targets," select "Squeak VM Opt" K. On the left lower pane marked "Build Styles," select "Deployment" ! L. Add (for both targets) "Target/Build Settings/Other Compiler Flags" -DI_AM_CARBON_EVENT ! M. On that same page, under "Search paths" - "Headers" there is a list of directories. Change the last entry, "/Volumes/Lamie/Squeak/SqueakAtSourceForge/squeak/platforms/Mac OS/vm" to instead point point to the "platforms/Mac OS/vm" directory on your local machine (meaning the "platforms" dir downloaded from SourceForge in Step 2.D above) ! L. Click on the hammer icon at the top left to build your VM. The final product should live in the src/vm/Build folder, named "Squeak VM Opt" --- 156,164 ---- J. On the left upper pane marked "Targets," select "Squeak VM Opt" K. On the left lower pane marked "Build Styles," select "Deployment" ! L. On that same page, under "Search paths" - "Headers" there is a list of directories. Change the last entry, "/Volumes/Lamie/Squeak/SqueakAtSourceForge/squeak/platforms/Mac OS/vm" to instead point point to the "platforms/Mac OS/vm" directory on your local machine (meaning the "platforms" dir downloaded from SourceForge in Step 2.D above) ! M*. Click on the hammer icon at the top left to build your VM. The final product should live in the src/vm/Build folder, named "Squeak VM Opt" |
|
From: John M M. <jo...@us...> - 2002-07-05 07:07:49
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory usw-pr-cvs1:/tmp/cvs-serv21211/squeak/platforms/Mac OS/vm Modified Files: SqueakVMForCarbon.pbproj.sit Log Message: 3.2.7b6+ Use a more current one. Index: SqueakVMForCarbon.pbproj.sit =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/SqueakVMForCarbon.pbproj.sit,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsiBdlP8 and /tmp/cvsInBJt7 differ |
|
From: John M M. <jo...@us...> - 2002-07-05 07:07:07
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory usw-pr-cvs1:/tmp/cvs-serv21098/squeak/platforms/Mac OS/vm Modified Files: sqMacNSPlugin.c Log Message: 3.2.7b7 Fixes to build this plugin again. Last version was a few years old, time to update the source. Index: sqMacNSPlugin.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacNSPlugin.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** sqMacNSPlugin.c 9 May 2002 19:24:09 -0000 1.5 --- sqMacNSPlugin.c 5 Jul 2002 07:07:03 -0000 1.6 *************** *** 210,214 **** int recordMouseEvent(EventRecord *theEvent, int theButtonState); int MouseModifierState(EventRecord *theEvent); - typedef int (*eventMessageHook)(EventRecord* event); extern eventMessageHook messageHook ; extern eventMessageHook postMessageHook; --- 210,213 ---- |
|
From: John M M. <jo...@us...> - 2002-07-05 07:05:54
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/plugins/PrintJobPlugin In directory usw-pr-cvs1:/tmp/cvs-serv20852/squeak/platforms/Mac OS/plugins/PrintJobPlugin Modified Files: resources.sit Log Message: 1.2 update some resource for comments about printjob plugin Index: resources.sit =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/plugins/PrintJobPlugin/resources.sit,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsj5D5bU and /tmp/cvsAW55fE differ |
|
From: John M M. <jo...@us...> - 2002-07-05 07:01:56
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv19859/squeak/platforms/Mac OS/vm
Modified Files:
sqMacUIEvents.c
Log Message:
3.2.7b7 fix a CW compile issue (bad parm)
Index: sqMacUIEvents.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacUIEvents.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** sqMacUIEvents.c 27 Apr 2002 19:02:16 -0000 1.9
--- sqMacUIEvents.c 5 Jul 2002 07:01:53 -0000 1.10
***************
*** 535,539 ****
}
! int getUIToLock(long *) {
}
--- 535,539 ----
}
! int getUIToLock(long *foo) {
}
|
|
From: John M M. <jo...@us...> - 2002-07-05 06:59:47
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv19072/squeak/platforms/Mac OS/vm
Modified Files:
readme
Log Message:
3.2.7b6 Jay Hardesty attempts to build a 3.2.7 VM, finds lots of issues, so he updates the readme. This relies on building with change set 3.2g 4905 or higher.
Index: readme
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/readme,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** readme 27 Apr 2002 18:52:31 -0000 1.7
--- readme 5 Jul 2002 06:59:44 -0000 1.8
***************
*** 1,3 ****
! Updated April 26th 2002
Building the Squeak Virtual Machine (Jan 1st 2002)
--- 1,3 ----
! Updated July 4th 2002
Building the Squeak Virtual Machine (Jan 1st 2002)
***************
*** 6,11 ****
Feb 5th 2002, April 26th 2002
-- Changes Andrew C. Greenberg, Jan 1st 2002
! (Note to readers, this hasn't been proofed yet, so beware)
Date: Tue, 1 Jan 2002 22:12:07 -0500
--- 6,12 ----
Feb 5th 2002, April 26th 2002
-- Changes Andrew C. Greenberg, Jan 1st 2002
+ -- Changes Jay Hardesty, July 4, 2002
! (Note to readers, it is possible a step was missed, so beware)
Date: Tue, 1 Jan 2002 22:12:07 -0500
***************
*** 20,23 ****
--- 21,26 ----
In the following, I'm assuming you have a modern build of Mac OS X (mine is 10.0.2).
+ {JMM notes this is building with 10.1.5, and Squeak 3.2g at changeset 4905)}
+
Overview
***************
*** 44,61 ****
(when prompted for a password, just hit enter)
D. cvs -z3 -d:pserver:ano...@cv...:/cvsroot/squeak co platforms
! E. For printing support get RealPrintingPlugin-JMM.cs.gz, from http://swiki.gsug.org:8080/sqfixes/all
decompress it and fileIn
After so much mumbo-jumbo, your squeak folder should have a directory entitled platforms.
- Step Two Prime: Tweak LargeIntegersPlugin
-
- (This step is necessary to fix an incompatibility between LargeIntegersPlugin,
- gcc and some OS libraries). There seems to be some religious issues involving the
- nature of the changes, but we can't build in Carbon as is. Hopefullly, these
- issues will be reconciled and repaired to everybody's satisfaction.)
-
- - A. http://www.mucow.com/LargeIntegersAssertFix.1.cs (just fileIn)
-
Step Three: Get, and install, the VMMaker, and build an interpeter
--- 47,55 ----
(when prompted for a password, just hit enter)
D. cvs -z3 -d:pserver:ano...@cv...:/cvsroot/squeak co platforms
! E. For printing support get RealPrintingPlugin-JMM.cs.gz, from http://swiki.gsug.org:8080/sqfixes/all
decompress it and fileIn
After so much mumbo-jumbo, your squeak folder should have a directory entitled platforms.
Step Three: Get, and install, the VMMaker, and build an interpeter
***************
*** 70,74 ****
MoreInterpAccessors-JMM.2.cs
CheckInterruptOften-JMM.1.cs
! Globalstructure-JMM.1.cs
CGeneratorEnhancements-ajh.1.cs
Gnuifier.2.cs
--- 64,68 ----
MoreInterpAccessors-JMM.2.cs
CheckInterruptOften-JMM.1.cs
! Globalstructure-JMM.2.cs
CGeneratorEnhancements-ajh.1.cs
Gnuifier.2.cs
***************
*** 107,111 ****
Step Five: Shove and Tweak some files around the buildspace
! A. Open a MacOSX Finder browser and go to the src/vm folder.
B. Unstuff 'resources.sit.hqx'
1. select the file
--- 101,105 ----
Step Five: Shove and Tweak some files around the buildspace
! A. Open a MacOSX Finder browser and go to the platforms/Mac OS/src/vm folder.
B. Unstuff 'resources.sit.hqx'
1. select the file
***************
*** 116,120 ****
C. Unstuff 'SqueakVMForCarbon.pbproj.sit'
(same deal as step B)
! D. Drag 'Squeak
Step Six: Run ProjectBuilder and build yourself an interpreter
--- 110,115 ----
C. Unstuff 'SqueakVMForCarbon.pbproj.sit'
(same deal as step B)
! D. Drag 'SqueakVMForCarbon.pbproj.sit' to the folder containing
! the 'platforms' and 'src' folders.
Step Six: Run ProjectBuilder and build yourself an interpreter
***************
*** 124,134 ****
C. Select "Project -> Add Files..."
D. Add the 'Cross' folder, and the 'Mac OS' folder, from the platform squeak cvs folder
! Project/Add Files ... "GeniePlugin.c to Sources
! Map "sqGnu.h" to "platforms/unix/vm/sqGnu.h"
! Add (for both targets) "Target/Build Settings/Other Compiler Flags" -DI_AM_CARBON_EVENT
now delete the references or uncheck the following files/folders
FileCopyPlugin
Mpeg3Plugin
! RealPrintingPlugin
SqueakFFIPrims
TestOSAPlugin
--- 119,128 ----
C. Select "Project -> Add Files..."
D. Add the 'Cross' folder, and the 'Mac OS' folder, from the platform squeak cvs folder
!
now delete the references or uncheck the following files/folders
FileCopyPlugin
Mpeg3Plugin
! RealPrintingPlugin
! PrintJobPlugin (otherwise _stPixMap and _stColorTable are multiply defined?? -jay)
SqueakFFIPrims
TestOSAPlugin
***************
*** 139,149 ****
The InternetConfiguration.xml in the InternetConfigPlugin folder
The UUIDPlugin.project.xml in the UUIDPlugin folder
! The platform.exports in the cross/vm folder
all the files that start with my in the mac vm folder
3.x.x Release Notes.rtf
! platform.exports
! readme
resources.sit.hqx
sqMacMinimal.c
--- 133,142 ----
The InternetConfiguration.xml in the InternetConfigPlugin folder
The UUIDPlugin.project.xml in the UUIDPlugin folder
! sqOldSoundPrims.c in the SoundGenerationPlugin folder
all the files that start with my in the mac vm folder
3.x.x Release Notes.rtf
! readme
resources.sit.hqx
sqMacMinimal.c
***************
*** 158,175 ****
Extra files imply you've got too much selected.
! E. Click on the Resources folder in the left pane
! F. Select "Project -> Add Files..."
! G. Select all the .rsrc files in the resource/For ProjectBuilder folder and add them
! E. On the left pane, there are some vertically oriented fold-over tabs.
Click the one marked "Targets."
! F. On the left upper pane marked "Targets," select "Squeak VM Opt"
! G. On the left lower pane marked "Build Styles," select "Deployment"
! H. Click on the hammer icon at the top left to build your VM.
! I. The final product should live in the src/vm/Build folder, named "Squeak VM Opt"
Step Seven: Download and print your Squeak VM Developer's Certificate
http://sumeru.stanford.edu/tim/pooters/SqueakVMBuilderCertificate.pdf
!
Congratulations! Take a bow!
--- 151,175 ----
Extra files imply you've got too much selected.
! E. In the finder (or a unix shell) rename the folder "resource/For ProjectBuilder"
! to "resource/For_ProjectBuilder".
! F. Click on the Resources folder in the left pane.
! G. Select "Project -> Add Files..."
! H Select SqueakApp.rsrc in the resource/For_ProjectBuilder folder and add it.
! I. On the left pane, there are some vertically oriented fold-over tabs.
Click the one marked "Targets."
! J. On the left upper pane marked "Targets," select "Squeak VM Opt"
! K. On the left lower pane marked "Build Styles," select "Deployment"
! L. Add (for both targets) "Target/Build Settings/Other Compiler Flags" -DI_AM_CARBON_EVENT
! M. On that same page, under "Search paths" - "Headers" there is a list of directories.
! Change the last entry, "/Volumes/Lamie/Squeak/SqueakAtSourceForge/squeak/platforms/Mac OS/vm"
! to instead point point to the "platforms/Mac OS/vm" directory on your local machine
! (meaning the "platforms" dir downloaded from SourceForge in Step 2.D above)
! L. Click on the hammer icon at the top left to build your VM.
! The final product should live in the src/vm/Build folder, named "Squeak VM Opt"
Step Seven: Download and print your Squeak VM Developer's Certificate
http://sumeru.stanford.edu/tim/pooters/SqueakVMBuilderCertificate.pdf
!
Congratulations! Take a bow!
|
|
From: John M M. <jo...@us...> - 2002-07-05 06:58:03
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv18662/squeak/platforms/Mac OS/vm
Modified Files:
osExports.c
Log Message:
3.2.7b7 Add some more defines for the netscape plugin
Index: osExports.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/osExports.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** osExports.c 13 May 2002 19:47:22 -0000 1.1
--- osExports.c 5 Jul 2002 06:58:00 -0000 1.2
***************
*** 25,28 ****
--- 25,37 ----
int serialPortNames(int portNum, char *portName, char *inName, char *outName);
Boolean IsKeyDown(void);
+ #ifdef PLUGIN
+ int primitivePluginBrowserReady(void);
+ int primitivePluginDestroyRequest(void);
+ int primitivePluginRequestFileHandle(void);
+ int primitivePluginRequestState(void);
+ int primitivePluginRequestURL(void);
+ int primitivePluginRequestURLStream(void);
+ int primitivePluginPostURL(void);
+ #endif
void *os_exports[][3] = {
|
|
From: John M M. <jo...@us...> - 2002-07-05 06:56:54
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/plugins/PrintJobPlugin
In directory usw-pr-cvs1:/tmp/cvs-serv18439/squeak/platforms/Mac OS/plugins/PrintJobPlugin
Modified Files:
sqMacPrinting.c
Log Message:
1.2 Use getUIToLock logic to lock UI pthread when putting up the print pref, and print job dialogs, otherwise we crash using carbon event aware squeak VMs
Index: sqMacPrinting.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/plugins/PrintJobPlugin/sqMacPrinting.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** sqMacPrinting.c 20 Feb 2002 21:02:38 -0000 1.2
--- sqMacPrinting.c 5 Jul 2002 06:56:51 -0000 1.3
***************
*** 12,15 ****
--- 12,16 ----
* Take carbon sample code, and alter it a bit
* Feb 20th 2002, JMM - add offset logic, free printsession only if allocated (duh)
+ * Jun 27th 2002, JMM - use UILock code to lock UI to prevent os-x seg fault
*
*****************************************************************************/
***************
*** 94,99 ****
// Display the Page Setup dialog.
! if (status == noErr)
status = DoPageSetupDialog(printJob);
return status;
}
--- 95,101 ----
// Display the Page Setup dialog.
! if (status == noErr) {
status = DoPageSetupDialog(printJob);
+ }
return status;
}
***************
*** 282,286 ****
if (status == noErr)
{
! status = PMSessionPageSetupDialog(printJob->printSession, printJob->pageFormat, &accepted);
if (status == noErr && !accepted)
status = kPMCancel; // user clicked Cancel button
--- 284,305 ----
if (status == noErr)
{
! int giLocker;
! giLocker = interpreterProxy->ioLoadFunctionFrom("getUIToLock", "");
! if (giLocker != 0) {
! long *foo;
! foo = malloc(sizeof(long)*6);
! foo[0] = 3;
! foo[1] = (long) PMSessionPageSetupDialog;
! foo[2] = (long)printJob->printSession;
! foo[3] = (long)printJob->pageFormat;
! foo[4] = (long)&accepted;
! foo[5] = 0;
! ((int (*) (void *)) giLocker)(foo);
! status = foo[5];
! free(foo);
! } else
! status = PMSessionPageSetupDialog(printJob->printSession, printJob->pageFormat,
! &accepted);
!
if (status == noErr && !accepted)
status = kPMCancel; // user clicked Cancel button
***************
*** 351,355 ****
if (status == noErr)
{
! status = PMSessionPrintDialog(printJob->printSession, printJob->printSettings, printJob->pageFormat, &accepted);
if (status == noErr && !accepted)
status = kPMCancel; // user clicked Cancel button
--- 370,391 ----
if (status == noErr)
{
! int giLocker;
! giLocker = interpreterProxy->ioLoadFunctionFrom("getUIToLock", "");
! if (giLocker != 0) {
! long *foo;
! foo = malloc(sizeof(long)*7);
! foo[0] = 4;
! foo[1] = (long)PMSessionPrintDialog;
! foo[2] = (long)printJob->printSession;
! foo[3] = (long)printJob->printSettings;
! foo[4] = (long)printJob->pageFormat;
! foo[5] = (long)&accepted;
! foo[6] = 0;
! ((int (*) (void *)) giLocker)(foo);
! status = foo[6];
! free(foo);
! } else
! status = PMSessionPrintDialog(printJob->printSession, printJob->printSettings,
! printJob->pageFormat, &accepted);
if (status == noErr && !accepted)
status = kPMCancel; // user clicked Cancel button
|
|
From: John M M. <jo...@us...> - 2002-07-05 06:54:24
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv17954/squeak/platforms/Mac OS/vm
Added Files:
sqNamedPrims.h
Log Message:
3.2.7.b6 Added this because VMMaker doesn't build one correctly automatically for the macintosh VM.
--- NEW FILE: sqNamedPrims.h ---
/* This is an automatically generated table of all builtin modules in the VM */
extern sqExport vm_exports[];
extern sqExport os_exports[];
extern sqExport ADPCMCodecPlugin_exports[];
extern sqExport AsynchFilePlugin_exports[];
extern sqExport B3DAcceleratorPlugin_exports[];
extern sqExport Squeak3D_exports[];
extern sqExport B2DPlugin_exports[];
extern sqExport BitBltPlugin_exports[];
extern sqExport DSAPrims_exports[];
extern sqExport ZipPlugin_exports[];
extern sqExport DropPlugin_exports[];
extern sqExport FFTPlugin_exports[];
extern sqExport FilePlugin_exports[];
extern sqExport FloatArrayPlugin_exports[];
extern sqExport InternetConfigPlugin_exports[];
extern sqExport JPEGReadWriter2Plugin_exports[];
extern sqExport JPEGReaderPlugin_exports[];
extern sqExport JoystickTabletPlugin_exports[];
extern sqExport Klatt_exports[];
extern sqExport LargeIntegers_exports[];
extern sqExport MIDIPlugin_exports[];
extern sqExport Matrix2x3Plugin_exports[];
extern sqExport MiscPrimitivePlugin_exports[];
extern sqExport SecurityPlugin_exports[];
extern sqExport SerialPlugin_exports[];
extern sqExport SocketPlugin_exports[];
extern sqExport SoundCodecPrims_exports[];
extern sqExport SoundGenerationPlugin_exports[];
extern sqExport SoundPlugin_exports[];
extern sqExport StarSqueakPlugin_exports[];
extern sqExport SurfacePlugin_exports[];
extern sqExport UUIDPlugin_exports[];
sqExport *pluginExports[] = {
vm_exports,
os_exports,
ADPCMCodecPlugin_exports,
AsynchFilePlugin_exports,
B3DAcceleratorPlugin_exports,
Squeak3D_exports,
B2DPlugin_exports,
BitBltPlugin_exports,
DSAPrims_exports,
ZipPlugin_exports,
DropPlugin_exports,
FFTPlugin_exports,
FilePlugin_exports,
FloatArrayPlugin_exports,
InternetConfigPlugin_exports,
JPEGReadWriter2Plugin_exports,
JPEGReaderPlugin_exports,
JoystickTabletPlugin_exports,
Klatt_exports,
LargeIntegers_exports,
MIDIPlugin_exports,
Matrix2x3Plugin_exports,
MiscPrimitivePlugin_exports,
SecurityPlugin_exports,
SerialPlugin_exports,
SocketPlugin_exports,
SoundCodecPrims_exports,
SoundGenerationPlugin_exports,
SoundPlugin_exports,
StarSqueakPlugin_exports,
SurfacePlugin_exports,
UUIDPlugin_exports,
NULL
};
|
|
From: John M M. <jo...@us...> - 2002-06-24 14:15:37
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm/specialChangeSets In directory usw-pr-cvs1:/tmp/cvs-serv9377/squeak/platforms/Mac OS/vm/specialChangeSets Removed Files: Globalstructure-JMM.1.cs Log Message: 3.2.7bx remove redant file --- Globalstructure-JMM.1.cs DELETED --- |
|
From: Andreas R. <and...@us...> - 2002-06-17 12:35:09
|
Update of /cvsroot/squeak/squeak/platforms/win32/vm
In directory usw-pr-cvs1:/tmp/cvs-serv3486
Modified Files:
sqWin32Exports.c
Log Message:
added printf to exports
Index: sqWin32Exports.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/vm/sqWin32Exports.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** sqWin32Exports.c 6 May 2002 10:36:25 -0000 1.2
--- sqWin32Exports.c 17 Jun 2002 12:35:05 -0000 1.3
***************
*** 30,33 ****
--- 30,34 ----
{"","primitivePluginDestroyRequest", primitivePluginDestroyRequest},
{"","primitivePluginRequestState", primitivePluginRequestState},
+ ("", "printf", printf),
{"","stWindow", &stWindow},
{"","firstMessageHook", &firstMessageHook},
|
|
From: Andreas R. <and...@us...> - 2002-06-16 18:25:11
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/B3DAcceleratorPlugin
In directory usw-pr-cvs1:/tmp/cvs-serv2591
Modified Files:
sqWin32D3D.c
Log Message:
attempt to fix problem with RIVA TNT2
Index: sqWin32D3D.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/plugins/B3DAcceleratorPlugin/sqWin32D3D.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** sqWin32D3D.c 29 May 2002 11:43:03 -0000 1.6
--- sqWin32D3D.c 16 Jun 2002 18:25:07 -0000 1.7
***************
*** 589,593 ****
hRes = CoCreateInstance(&CLSID_DirectDraw,
NULL,
! CLSCTX_ALL/* CLSCTX_INPROC_SERVER */,
&IID_IDirectDraw7,
(void**)&lpDD);
--- 589,593 ----
hRes = CoCreateInstance(&CLSID_DirectDraw,
NULL,
! CLSCTX_INPROC_SERVER,
&IID_IDirectDraw7,
(void**)&lpDD);
|
|
From: John M M. <jo...@us...> - 2002-06-01 16:54:24
|
Update of /cvsroot/squeak/squeak/platforms/Cross/plugins/B3DAcceleratorPlugin
In directory usw-pr-cvs1:/tmp/cvs-serv11016/squeak/platforms/Cross/plugins/B3DAcceleratorPlugin
Modified Files:
sqOpenGLRenderer.c
Log Message:
Use GLint for src,dst in GLSetIntProperty, versus int to avoid compiler complaints
Index: sqOpenGLRenderer.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** sqOpenGLRenderer.c 29 May 2002 11:42:15 -0000 1.7
--- sqOpenGLRenderer.c 1 Jun 2002 16:54:19 -0000 1.8
***************
*** 750,754 ****
{
int factor;
! int src, dst;
switch(value) {
case 0: factor = GL_ZERO; break;
--- 750,754 ----
{
int factor;
! GLint src, dst;
switch(value) {
case 0: factor = GL_ZERO; break;
|
|
From: Andreas R. <and...@us...> - 2002-06-01 11:44:42
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/SqueakFFIPrims
In directory usw-pr-cvs1:/tmp/cvs-serv4233
Modified Files:
sqWin32FFI.c
Log Message:
removed log writing
Index: sqWin32FFI.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/plugins/SqueakFFIPrims/sqWin32FFI.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** sqWin32FFI.c 4 May 2002 23:20:28 -0000 1.1
--- sqWin32FFI.c 1 Jun 2002 11:44:39 -0000 1.2
***************
*** 274,277 ****
--- 274,278 ----
int ffiCallAddress(int fn)
{
+ #if 0
{
FILE *f = fopen("ffi.log","at");
***************
*** 280,283 ****
--- 281,285 ----
fclose(f);
}
+ #endif
#ifdef _MSC_VER
__asm {
***************
*** 361,364 ****
--- 363,367 ----
/* done */
#endif
+ #if 0
{
FILE *f = fopen("ffi.log","at");
***************
*** 371,375 ****
fclose(f);
}
!
return intReturnValue;
}
--- 374,378 ----
fclose(f);
}
! #endif
return intReturnValue;
}
|
|
From: John M M. <jo...@us...> - 2002-06-01 05:24:38
|
Update of /cvsroot/squeak/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg In directory usw-pr-cvs1:/tmp/cvs-serv31779/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg Modified Files: mpeg3io.h Log Message: 1.4 Jason Dufair <ja...@du...> fix for the ID3v2 stuff Index: mpeg3io.h =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/mpeg3io.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mpeg3io.h 27 Dec 2001 23:16:54 -0000 1.2 --- mpeg3io.h 1 Jun 2002 05:24:36 -0000 1.3 *************** *** 17,20 **** --- 17,21 ---- long current_byte; long total_bytes; + unsigned long id3v2_offset; } mpeg3_fs_t; |
|
From: John M M. <jo...@us...> - 2002-06-01 05:24:02
|
Update of /cvsroot/squeak/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg
In directory usw-pr-cvs1:/tmp/cvs-serv31644/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg
Modified Files:
mpeg3io.c
Log Message:
1.4 Jason Dufair <ja...@du...> support for ID3v2 stuff
Index: mpeg3io.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/mpeg3io.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** mpeg3io.c 5 May 2002 01:26:04 -0000 1.3
--- mpeg3io.c 1 Jun 2002 05:24:00 -0000 1.4
***************
*** 31,34 ****
--- 31,39 ----
/* Changed Sept 15th by John M McIntosh to support Macintosh & Squeak
*/
+ /* Changed May 23 by Jason Dufair to handle mp3 files with ID3v2 tags
+ (specifically ones with binary data in them)
+ - Added mpeg3io_get_id3v2_size
+ - modified all fseek's to use the id3v2 offset
+ */
#include "mpeg3private.h"
#include "mpeg3protos.h"
***************
*** 78,88 ****
fseek(fs->fd, 0, SEEK_END);
! fs->total_bytes = ftell(fs->fd);
! fseek(fs->fd, 0, SEEK_SET);
return fs->total_bytes;
}
int mpeg3io_open_file(mpeg3_fs_t *fs)
{
/* Need to perform authentication before reading a single byte. */
mpeg3_get_keys(fs->css, fs->path);
--- 83,105 ----
fseek(fs->fd, 0, SEEK_END);
! fs->total_bytes = ftell(fs->fd) - fs->id3v2_offset;
! fseek(fs->fd, fs->id3v2_offset, SEEK_SET);
return fs->total_bytes;
}
+ int mpeg3io_get_id3v2_size(mpeg3_fs_t *fs)
+ {
+ unsigned long synchsafe_size = 0;
+
+ fseek(fs->fd, 6, SEEK_SET);
+
+ synchsafe_size = mpeg3io_read_int32(fs);
+
+ return ((synchsafe_size & 0xff) | (synchsafe_size & 0xff00) >> 1 | (synchsafe_size & 0xff0000) >> 2 | (synchsafe_size & 0xff000000) >> 3) + 10;
+ }
+
int mpeg3io_open_file(mpeg3_fs_t *fs)
{
+ unsigned int bits;
/* Need to perform authentication before reading a single byte. */
mpeg3_get_keys(fs->css, fs->path);
***************
*** 94,97 ****
--- 111,125 ----
}
+ bits = mpeg3io_read_int32(fs);
+
+ if ((bits >> 8) == MPEG3_ID3_PREFIX)
+ {
+ fs->id3v2_offset = mpeg3io_get_id3v2_size(fs);
+ } else {
+ fs->id3v2_offset = 0;
+ }
+
+ mpeg3io_seek(fs, 0);
+
fs->total_bytes = mpeg3io_get_total_bytes(fs);
***************
*** 154,158 ****
{
fs->current_byte = byte;
! return fseek(fs->fd, byte, SEEK_SET);
}
--- 182,186 ----
{
fs->current_byte = byte;
! return fseek(fs->fd, byte + fs->id3v2_offset, SEEK_SET);
}
***************
*** 160,164 ****
{
fs->current_byte += bytes;
! return fseek(fs->fd, fs->current_byte, SEEK_SET);
}
--- 188,192 ----
{
fs->current_byte += bytes;
! return fseek(fs->fd, fs->current_byte + fs->id3v2_offset, SEEK_SET);
}
|
|
From: John M M. <jo...@us...> - 2002-06-01 05:23:05
|
Update of /cvsroot/squeak/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg
In directory usw-pr-cvs1:/tmp/cvs-serv31449/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg
Modified Files:
changesForSqueak.c
Log Message:
1.4 Added misc changes required to get it to compile with latest source (3.2.7) code.
Index: changesForSqueak.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Cross/plugins/Mpeg3Plugin/libmpeg/changesForSqueak.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** changesForSqueak.c 5 May 2002 11:58:47 -0000 1.4
--- changesForSqueak.c 1 Jun 2002 05:23:00 -0000 1.5
***************
*** 32,35 ****
--- 32,36 ----
// Nov 2nd, 2000 JMM changed memoryAllocate, use calloc
// Sept 7nd, 2001 JMM added carbon logic
+ // May 31st, 2002 JMM a few additions to make it compile on the mac with latest code
#include <string.h>
***************
*** 40,43 ****
--- 41,45 ----
#include <Memory.h>
#include <QuickDraw.h>
+ #include "sq.h"
#endif
***************
*** 142,145 ****
--- 144,154 ----
#endif
+
+ #if defined(TARGET_OS_MAC) && defined ( __APPLE__ ) && defined ( __MACH__ )
+ int isSystem9_0_or_better(void)
+ {
+ return 1;
+ }
+ #endif
void appendStringToBufferIfPossible(char *buffer,char *append,int bufferSize)
|
|
From: John M M. <jo...@us...> - 2002-05-31 16:54:55
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory usw-pr-cvs1:/tmp/cvs-serv31209/squeak/platforms/Mac OS/vm Modified Files: 3.2.7 Release Notes.rtf Log Message: 3.2.7b6 added comments for 3.2.7b6 changes Index: 3.2.7 Release Notes.rtf =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/3.2.7 Release Notes.rtf,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** 3.2.7 Release Notes.rtf 13 May 2002 21:25:11 -0000 1.2 --- 3.2.7 Release Notes.rtf 31 May 2002 16:54:51 -0000 1.3 *************** *** 7,11 **** \f0\fs24 \cf0 Mac VM 3.2.7 mach-o build for Carbon, and build for Classic.\ ! April 26th, 2002\ Still yet to do, in future versions.\ Verify that file delete rename etc works on aliases, not the targets.\ --- 7,11 ---- \f0\fs24 \cf0 Mac VM 3.2.7 mach-o build for Carbon, and build for Classic.\ ! May 31st, 2002 (3.2.7b6)\ Still yet to do, in future versions.\ Verify that file delete rename etc works on aliases, not the targets.\ *************** *** 39,42 **** --- 39,44 ---- j) Misc changes for Netscape plugin support\ k) Introduce osExports.c logic\ + l) 3.2.7b6 Fixed a problem in path name resolving need to use UTF8 to properly interact with high ascii characters\ + m) 3.2.7b6 Fixed a problem in path name resolving there was a bug with certain types of alias path name combinations in quick name resolving.\ \ Mac VM 3.2.6 mach-o build for Carbon, and build for Classic.\ |
|
From: John M M. <jo...@us...> - 2002-05-31 16:49:45
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/plugins/B3DAcceleratorPlugin
In directory usw-pr-cvs1:/tmp/cvs-serv29114/squeak/platforms/Mac OS/plugins/B3DAcceleratorPlugin
Modified Files:
sqMacOpenGL.c
Log Message:
3.2.7b6 Andreas changed glGetIntProperty() -> glGetIntPropertyOS() so we follow suit.
Index: sqMacOpenGL.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/plugins/B3DAcceleratorPlugin/sqMacOpenGL.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sqMacOpenGL.c 1 Mar 2002 00:15:57 -0000 1.5
--- sqMacOpenGL.c 31 May 2002 16:49:42 -0000 1.6
***************
*** 446,450 ****
/*****************************************************************************/
! int glGetIntProperty(int handle, int prop)
{
GLint v;
--- 446,450 ----
/*****************************************************************************/
! int glGetIntPropertyOS(int handle, int prop)
{
GLint v;
***************
*** 456,482 ****
aglGetInteger(renderer->context, AGL_SWAP_INTERVAL, &v);
return v;
- case 1: /* backface culling */
- if(!glIsEnabled(GL_CULL_FACE)) return 0;
- glGetIntegerv(GL_FRONT_FACE, &v);
- if(v == GL_CW) return 1;
- if(v == GL_CCW) return -1;
- return 0;
- case 2: /* polygon mode */
- glGetIntegerv(GL_POLYGON_MODE, &v);
- ERROR_CHECK;
- return v;
- case 3: /* point size */
- glGetIntegerv(GL_POINT_SIZE, &v);
- ERROR_CHECK;
- return v;
- case 4: /* line width */
- glGetIntegerv(GL_LINE_WIDTH, &v);
- ERROR_CHECK;
- return v;
}
return 0;
}
! int glSetIntProperty(int handle, int prop, int value)
{
glRenderer *renderer = glRendererFromHandle(handle);
--- 456,464 ----
aglGetInteger(renderer->context, AGL_SWAP_INTERVAL, &v);
return v;
}
return 0;
}
! int glSetIntPropertyOS(int handle, int prop, int value)
{
glRenderer *renderer = glRendererFromHandle(handle);
***************
*** 486,514 ****
case -1: /* vertical blank synchronization */
aglSetInteger(renderer->context, AGL_SWAP_INTERVAL, (GLint*) &value);
- return 1;
- case 1: /* backface culling */
- if(!value) {
- glDisable(GL_CULL_FACE);
- ERROR_CHECK;
- return 1;
- }
- glEnable(GL_CULL_FACE);
- glFrontFace(value == 1 ? GL_CCW : GL_CW);
- ERROR_CHECK;
- return 1;
- case 2: /* polygon mode */
- if(value == 0) glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- else if(value == 1) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- else if(value == 2) glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
- else return 0;
- ERROR_CHECK;
- return 1;
- case 3: /* point size */
- glPointSize(value);
- ERROR_CHECK;
- return 1;
- case 4: /* line width */
- glLineWidth(value);
- ERROR_CHECK;
return 1;
}
--- 468,471 ----
|
|
From: John M M. <jo...@us...> - 2002-05-31 16:48:28
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm
In directory usw-pr-cvs1:/tmp/cvs-serv28651/squeak/platforms/Mac OS/vm
Modified Files:
sqMacFileLogic.c
Log Message:
3.2.7b5 Rework how file names are build, in the quick case use UTF8. Also abort quick case earlier that solves a problem with an alias resolving issue.
Index: sqMacFileLogic.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacFileLogic.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** sqMacFileLogic.c 17 May 2002 23:43:28 -0000 1.8
--- sqMacFileLogic.c 31 May 2002 16:48:23 -0000 1.9
***************
*** 150,167 ****
return -1;
} else {
CFRelease(filePath);
CFRelease(firstPartOfPath);
! #if defined(__MWERKS__) && !defined(__APPLE__) && !defined(__MACH__)
! filePath = CFURLCopyFileSystemPath (sillyThing, kCFURLHFSPathStyle);
! #else
! filePath = CFURLCopyFileSystemPath (sillyThing, kCFURLPOSIXPathStyle);
! #endif
CFRelease(sillyThing);
- if (filePath == null)
- return -2;
! CFStringGetCString(filePath,dst,1000, kCFStringEncodingMacRoman);
! CFRelease(filePath);
! return 0;
}
}
--- 150,177 ----
return -1;
} else {
+ CFStringRef lastPathPart;
+ char lastpart[256];
+
CFRelease(filePath);
CFRelease(firstPartOfPath);
! lastPathPart = CFURLCopyLastPathComponent(sillyThing);
CFRelease(sillyThing);
! err = noErr;
! if (resolveAlias)
! err = FSResolveAliasFile (&theFSRef,true,&isFolder,&isAlias);
!
! if (err)
! return 2;
!
! err = FSRefMakePath(&theFSRef,(UInt8 *)dst,1000);
! CFStringGetCString(lastPathPart,lastpart,256, kCFStringEncodingUTF8);
! CFRelease(lastPathPart);
! if (strlen(dst)+1+strlen(lastpart) < 1000) {
! strcat(dst,"/");
! strcat(dst,lastpart);
! return 0;
! } else
! return 2;
}
}
|
|
From: Andreas R. <and...@us...> - 2002-05-29 11:43:07
|
Update of /cvsroot/squeak/squeak/platforms/win32/plugins/B3DAcceleratorPlugin
In directory usw-pr-cvs1:/tmp/cvs-serv9866
Modified Files:
sqWin32D3D.c sqWin32OpenGL.c
Log Message:
Moved property handling from platform to cross code
Index: sqWin32D3D.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/plugins/B3DAcceleratorPlugin/sqWin32D3D.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sqWin32D3D.c 6 May 2002 10:36:25 -0000 1.5
--- sqWin32D3D.c 29 May 2002 11:43:03 -0000 1.6
***************
*** 584,588 ****
--- 584,590 ----
int d3dInitializePrimary(void) {
HRESULT hRes;
+ DPRINTF(5,(fp, "[Initializing primary surface]\n"));
if(!lpDD) {
+ DPRINTF(5,(fp, "[Creating DDraw object]\n"));
hRes = CoCreateInstance(&CLSID_DirectDraw,
NULL,
***************
*** 592,598 ****
--- 594,606 ----
ERROR_CHECK;
if(FAILED(hRes)) return 0;
+ if(!lpDD) {
+ DPRINTF(1,(fp,"ERROR: Could not create IDirectDraw7\n"));
+ return 0;
+ }
+ DPRINTF(5,(fp, "[Initializing DDraw object]\n"));
hRes = lpDD->lpVtbl->Initialize(lpDD, NULL);
ERROR_CHECK;
if(FAILED(hRes)) return 0;
+ DPRINTF(5,(fp, "[Setting cooperation level]\n"));
hRes = lpDD->lpVtbl->
SetCooperativeLevel(lpDD, *theSTWindow,
***************
*** 603,609 ****
--- 611,622 ----
if(!lpD3D) {
/* query for the direct3d object */
+ DPRINTF(5,(fp, "[Querying for IDirect3D7]\n"));
hRes = lpDD->lpVtbl->QueryInterface(lpDD,&IID_IDirect3D7, (LPVOID*)&lpD3D);
ERROR_CHECK;
if(FAILED(hRes)) return 0;
+ if(!lpD3D) {
+ DPRINTF(1,(fp,"ERROR: Could not retrieve IDirect3D7\n"));
+ return 0;
+ }
}
if(!lpddPrimary) {
***************
*** 615,621 ****
--- 628,639 ----
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
+ DPRINTF(5,(fp, "[Creating primary surface]\n"));
hRes = lpDD->lpVtbl->CreateSurface( lpDD, &ddsd, &lpddPrimary, NULL );
ERROR_CHECK;
if (FAILED(hRes)) return 0;
+ if(!lpddPrimary) {
+ DPRINTF(1,(fp,"ERROR: Could not create primary surface\n"));
+ return 0;
+ }
}
***************
*** 627,633 ****
--- 645,656 ----
*/
if(!lpddClipper) {
+ DPRINTF(5,(fp, "[Creating clipper]\n"));
hRes = lpDD->lpVtbl->CreateClipper(lpDD, 0UL, &lpddClipper, NULL);
ERROR_CHECK;
if(FAILED(hRes)) return 0;
+ if(!lpddClipper) {
+ DPRINTF(1,(fp,"ERROR: Could not create clipper\n"));
+ return 0;
+ }
hRes = lpddClipper->lpVtbl->SetHWnd(lpddClipper, 0UL, *theSTWindow);
ERROR_CHECK;
***************
*** 694,697 ****
--- 717,723 ----
}
+ DPRINTF(3, (fp, "### Using %s\n(%s)\n",
+ renderer->szDeviceName, renderer->szDeviceDesc));
+
/* enumerate z-buffer formats and find a nice one */
memset(&ddpfZBuffer, 0, sizeof(ddpfZBuffer));
***************
*** 823,827 ****
int i, index;
d3dRenderer *renderer;
!
for(i=0; i < MAX_RENDERER; i++) {
if(allRenderer[i].fUsed == 0) break;
--- 849,853 ----
int i, index;
d3dRenderer *renderer;
! DPRINTF(3, (fp, "---- Initializing D3D ----\n"));
for(i=0; i < MAX_RENDERER; i++) {
if(allRenderer[i].fUsed == 0) break;
***************
*** 983,986 ****
--- 1009,1041 ----
case 4: /* line width */
return 1;
+ case 5: /* blend enable */
+ hRes = lpDevice->lpVtbl->
+ GetRenderState(lpDevice, D3DRENDERSTATE_ALPHABLENDENABLE, &dwState);
+ ERROR_CHECK;
+ return dwState;
+ case 6: /* blend source factor */
+ case 7: /* blend dest factor */
+ if(prop == 6) {
+ hRes = lpDevice->lpVtbl->
+ GetRenderState(lpDevice, D3DRENDERSTATE_SRCBLEND, &dwState);
+ } else {
+ hRes = lpDevice->lpVtbl->
+ GetRenderState(lpDevice, D3DRENDERSTATE_DESTBLEND, &dwState);
+ }
+ ERROR_CHECK;
+ switch(dwState) {
+ case D3DBLEND_ZERO: return 0;
+ case D3DBLEND_ONE: return 1;
+ case D3DBLEND_SRCCOLOR: return 2;
+ case D3DBLEND_INVSRCCOLOR: return 3;
+ case D3DBLEND_DESTCOLOR: return 4;
+ case D3DBLEND_INVDESTCOLOR: return 5;
+ case D3DBLEND_SRCALPHA: return 6;
+ case D3DBLEND_INVSRCALPHA: return 7;
+ case D3DBLEND_DESTALPHA: return 8;
+ case D3DBLEND_INVDESTALPHA: return 9;
+ case D3DBLEND_SRCALPHASAT: return 10;
+ default: return -1;
+ }
}
return 0;
***************
*** 1019,1022 ****
--- 1074,1108 ----
case 4: /* line width */
return 1;
+ case 5: /* blend enable */
+ dwState = value ? TRUE : FALSE;
+ hRes = lpDevice->lpVtbl->
+ SetRenderState(lpDevice, D3DRENDERSTATE_ALPHABLENDENABLE, dwState);
+ ERROR_CHECK;
+ return 1;
+ case 6: /* blend source factor */
+ case 7: /* blend dest factor */
+ switch(value) {
+ case 0: dwState = D3DBLEND_ZERO; break;
+ case 1: dwState = D3DBLEND_ONE; break;
+ case 2: dwState = D3DBLEND_SRCCOLOR; break;
+ case 3: dwState = D3DBLEND_INVSRCCOLOR; break;
+ case 4: dwState = D3DBLEND_DESTCOLOR; break;
+ case 5: dwState = D3DBLEND_INVDESTCOLOR; break;
+ case 6: dwState = D3DBLEND_SRCALPHA; break;
+ case 7: dwState = D3DBLEND_INVSRCALPHA; break;
+ case 8: dwState = D3DBLEND_DESTALPHA; break;
+ case 9: dwState = D3DBLEND_INVDESTALPHA; break;
+ case 10: dwState = D3DBLEND_SRCALPHASAT; break;
+ default: return 0;
+ }
+ if(prop == 6) {
+ hRes = lpDevice->lpVtbl->
+ SetRenderState(lpDevice, D3DRENDERSTATE_SRCBLEND, dwState);
+ } else {
+ hRes = lpDevice->lpVtbl->
+ SetRenderState(lpDevice, D3DRENDERSTATE_DESTBLEND, dwState);
+ }
+ ERROR_CHECK;
+ return 1;
}
return 0;
Index: sqWin32OpenGL.c
===================================================================
RCS file: /cvsroot/squeak/squeak/platforms/win32/plugins/B3DAcceleratorPlugin/sqWin32OpenGL.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** sqWin32OpenGL.c 26 May 2002 18:54:28 -0000 1.5
--- sqWin32OpenGL.c 29 May 2002 11:43:03 -0000 1.6
***************
*** 619,683 ****
/*****************************************************************************/
! int glGetIntProperty(int handle, int prop)
{
! GLint v;
! glRenderer *renderer = glRendererFromHandle(handle);
! if(!renderer || !glMakeCurrentRenderer(renderer)) return 0;
!
! switch(prop) {
! case 1: /* backface culling */
! if(!glIsEnabled(GL_CULL_FACE)) return 0;
! glGetIntegerv(GL_FRONT_FACE, &v);
! if(v == GL_CW) return 1;
! if(v == GL_CCW) return -1;
! return 0;
! case 2: /* polygon mode */
! glGetIntegerv(GL_POLYGON_MODE, &v);
! ERROR_CHECK;
! return v;
! case 3: /* point size */
! glGetIntegerv(GL_POINT_SIZE, &v);
! ERROR_CHECK;
! return v;
! case 4: /* line width */
! glGetIntegerv(GL_LINE_WIDTH, &v);
! ERROR_CHECK;
! return v;
! }
return 0;
}
! int glSetIntProperty(int handle, int prop, int value)
{
! glRenderer *renderer = glRendererFromHandle(handle);
! if(!renderer || !glMakeCurrentRenderer(renderer)) return 0;
!
! switch(prop) {
! case 1: /* backface culling */
! if(!value) {
! glDisable(GL_CULL_FACE);
! ERROR_CHECK;
! return 1;
! }
! glEnable(GL_CULL_FACE);
! glFrontFace(value == 1 ? GL_CCW : GL_CW);
! ERROR_CHECK;
! return 1;
! case 2: /* polygon mode */
! if(value == 0) glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
! else if(value == 1) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
! else if(value == 2) glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
! else return 0;
! ERROR_CHECK;
! return 1;
! case 3: /* point size */
! glPointSize(value);
! ERROR_CHECK;
! return 1;
! case 4: /* line width */
! glLineWidth(value);
! ERROR_CHECK;
! return 1;
! }
return 0;
}
--- 619,631 ----
/*****************************************************************************/
! int glGetIntPropertyOS(int handle, int prop)
{
! /* No platform-specific properties supported */
return 0;
}
! int glSetIntPropertyOS(int handle, int prop, int value)
{
! /* No platform-specific properties supported */
return 0;
}
***************
*** 780,781 ****
--- 728,730 ----
#endif /* defined(B3DX_GL) */
+
|