/
3.8.x Release Notes.rtf
1788 lines (1753 loc) · 96.7 KB
/
3.8.x Release Notes.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf380
{\fonttbl\f0\fnil\fcharset77 Geneva;\f1\fnil\fcharset77 Monaco;\f2\fswiss\fcharset77 Helvetica;
\f3\fnil\fcharset77 LucidaGrande;}
{\colortbl;\red255\green255\blue255;\red137\green19\blue21;\red35\green110\blue37;\red26\green26\blue255;
}
\margl1440\margr1440\vieww13660\viewh14740\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\fs24 \cf0 Mac VM 3.8.12 mach-o build for Carbon, Sophie, and Croquet\
\
Support for Croquet, support for Safari, support for TK4/Sophie, support for Multiple Windows/Ffenestri, full GC instrumentation, configurable quartz flush drawing, and finally MacIntel Machines.\
April 24th, 2006 (3.8.12b4)\
June 5th, 2006 (3.8.12b5)\
\
Still yet to do, in future versions -> Verify that file delete rename etc works on aliases, not the targets. (Yawn, someday)\
\
Pre OS-X users should read about OS-9 packages in the 3.2.4 change notes.\
\
3.8.12b5\
sqMacUnixExternalPrims.c\
Ensure frameworks get loaded out of application resources, then system area. Before\
we only looked in system area which was wrong if you want to override framework.\
I'll note we can't load from plugin folder for system frameworks, does not see to work, \
if first path not found it resolve to system area.\
\
3.8.12b4\
sqMacMain.c\
rev version number.\
sqMacTime.c\
Use select(), no nano-sleep call, nano-sleep makes vm use 35% cpu, versus say %12 for test image\
\
3.8.12b3\
sqMacMain.c\
rev version number, set hardware bits for math units. \
sqMacTime.c\
call aioSleep() versus aioPoll()\
sqMacUIEventsUniversal.c\
make aioPoll() calls in the right places.\
\
Update xcode project build, also change headers to include REPlugin as internal plugin\
\
3.8.12b2\
Add plugins for Croquet, and FloatMath.\
sqMacMain.c\
Add system attribute 1006 which returns unique version/key information so we can id VMs better\
sqSocketUnix.c\
Add prims to set reuse socket options. \
\
3.8.12b1\
\
3.8.12b1 Major change to VM. When the VM was converted to carbon events I decided to place the interpreter() thread on a pthread. However over the years it became apparent this was an issue because many UI calls needed to run on the main UI thread, versus a sub pthread. To solve this I added the getUIToLock() call which locked the UI, actually it would setup a custom UI event and block until the UI thread did the callback. This worked well until the Sophie team started to experiment with Quicktime via FFI and we discovered that quicktime FFI calls needed to be on the main UI thread to avoid a crash. Thus in early 2006 we altered the FFI plugin so that it would call getUIToLock when it makes the FFI function call. This worked well until the Croquet folks complained that this caused Croquet to crash in glEnable. Further investigation showed that mixing Open/GL calls between pthreads caused a serious issue. Therefore I altered the VM to run under the main UI thread and poll for events. Polling is done before each callback looking for UI events and in the flush screen logic which is invoked about every 1/60 of a second to ensure pending screen updates are sent to the screen. \
\
Needless to say people should confirm their applications work as expected, the UI performance isn't greatly affected and overall performance is roughly the same.\
\
sqMacMain.c\
remove pthread logic to startup interpreter()\
sqMacUIEventsUniversal.c\
add logic to setup a custom event handler to run the interpreter() loop, and to poll and dispatch events.\
\
\
3.8.11b7 Limited distribution\
sqMacUIEventsUniversal.c\
Alter mouse logic to fall back to old logic if built with 10.2.8 sdk.\
sqMacUnixExternalPrims.c\
When compiling for osx 10.2.8 sdk we must use the unix version of dlopen/etc versus one in 10.3.9 sdk.\
\
3.8.11b6\
sqMacDragDrop.c \
Code volatile for gDragDropThrottleSpinLock and gNumDropFiles to ensure spin lock is not optimized \
into problem code\
sqMacUnixFileInterface.c\
drop ioFilenamefromStringofLengthresolveAliases, it's in the interp.c, fiddle a bit with other names\
sqMacUIAppleEvents.c\
Fix bug where we ignore open doc event if it only has one non-image document at open time. \
sqPlatformSpecific.h\
Add <types.h> include for Croquet plugins\
\
3.8.11b5\
sqMacOpenGL.c \
print diagnostics\
\
sqMacFFIPPC.c\
Migrate back to carbon FFI prims and Andreas' FFI interface because unix one is broken for Croquet.\
print diagnostics, use UI Locking code to call FFI functions to avoid crash with quicktime. \
\
sqMacNSPlugin.c\
sqMacNSPLuginUILogic.c\
sqMacWindowUniversal.c\
Lots of changes to reconsider when SetWindow() is called, and migrate to Context draw logic\
Add logic so that we can do OpenGL.\
Still broken\
\
3.8.11b4\
compiler should asks for inlined sqSqueakMemory accessors if intel, these generate better assembler than\
non-inline which is better for powerpc. \
\
sqMacMain.c\
Browser plugin code must return VM Path name, can't use argv[0].\
\
sqMacMemory.c (see 3.8.11b3, perhaps not checked in correctly)\
\
sqMacNSPlugin.c\
Start poking at code to make work under browser again\
\
sqMacUIEventsUniversal.c\
old getmousepoints should not covert coord to global, on cmd-key remember old coordianates\
versus doing getmousepoints since the port is not set. Likely we've stored the last mouse move!\
\
mpeg3plugin\
audio.c\
output.c\
Change to set Alpha to OxFF versus 0x00 in order to play better with Tweak in 32bit mode\
misc poking at MMX (not working) for MacIntel\
\
3.8.11b3 \
sqGnu.h\
readjust yet again the __asm__ versus asm and use register starting at 13 versus 24 for interp.c\
config.h\
remove socket type, collides with sdk 10.3.9\
sqMacMain.h\
ensure getSystemAttribute: 0 returns full path to executable\
sqMacMemory.c\
Ensure memory returned from mmap is on 4k page boundary\
\
3.8.11b2 \
sqMacUnixFileInterface.c\
byte swap finderinfo in get and set mac file type and creator methods\
sqMacService.c\
remove callbacks to get event loop and window, these are not used\
byte swap OSType\
sqUnixSoundMacOSXJMM.c\
use kAudioFormatFlagsNativeEndian, versus big in sound stream\
sqMacSpellingPlugin.c\
utf-16 from squeak is big endian. \
sqMacFFIPPC.\
config.h\
drop socklen_t \
sqMacMain.c\
gSqueakWindowAttributes needs to be byte swapped\
sqMacUnixExternalPrims.c\
Change lookup, lookup bundle, or unix plugin in resources folder first, then in plugins directory\
if gSqueakPluginsBuiltInOrLocalOnly is set\
sqMacWindowUniversal.c\
make 16 bit go to quicktime because of 16bit intel draw error\
\
>>>>>>> .r1362\
Compile adjustments, arch=pentium-m and align-functions=16. The alignment gives 5% speedup in \
tinybenchmark sents, seems core solo is picky about where instruction alignment is. Found by adding \
new static buffer area to binary and having performance fall off by 5%\
\
3.8.11b2 \
sqMacUnixFileInterface.c\
byte swap finderinfo in get and set mac file type and creator methods\
sqMacService.c\
remove callbacks to get event loop and window, these are not used\
byte swap OSType\
sqUnixSoundMacOSXJMM.c\
use kAudioFormatFlagsNativeEndian, versus big in sound stream\
sqMacSpellingPlugin.c\
utf-16 from squeak is big endian. \
sqMacFFIPPC.\
config.h\
drop socklen_t \
sqMacMain.c\
gSqueakWindowAttributes needs to be byte swapped\
sqMacUnixExternalPrims.c\
Change lookup, lookup bundle, or unix plugin in resources folder first, then in plugins directory\
if gSqueakPluginsBuiltInOrLocalOnly is set\
if debug vm, then print loader errors\
sqMacWindowUniversal.c\
make 16 bit go to quicktime because of 16bit intel draw error\
\
\
3.8.11b1 Refactor, remove old OS-9 code, always carbon, etc. \
remove TARGET_API_MAC_CARBON\
remove IHAVENOHEAD\
make variables static, procedures static where applicable.\
make MACINTOSHUSEUNIXFILENAMES always case, drop any HFS logic\
Eradicate most usages of FSSpec, except for drop file logic (sigh) and one in InternetConfig\
Remove getFileNameByFSSpec logic\
Alter getFileNameByFSRef to drop items needed by getFileNameByFSSpec.\
Reworked much of drag and drop logic\
\
sqMacOpenGL..c\
sqMacOpenGLInfo.c\
sqMacDragDrop.c\
don't bother with Gestalt, we now drag and drop exists on machines of os-x era.\
convert to use FSRef\
Use GetDragAttributes versus bounds in window.\
Drop WaitNextEvent, dummy up event\
\
\pard\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\tx15840\tx16320\tx16800\tx17280\tx17760\tx18240\tx18720\tx19200\tx19680\tx20160\tx20640\tx21120\tx21600\tx22080\tx22560\tx23040\tx23520\tx24000\tx24480\tx24960\tx25440\tx25920\tx26400\tx26880\tx27360\tx27840\tx28320\tx28800\tx29280\tx29760\tx30240\tx30720\tx31200\tx31680\tx32160\tx32640\tx33120\tx33600\tx34080\tx34560\tx35040\tx35520\tx36000\tx36480\tx36960\tx37440\tx37920\tx38400\tx38880\tx39360\tx39840\tx40320\tx40800\tx41280\tx41760\tx42240\tx42720\tx43200\tx43680\tx44160\tx44640\tx45120\tx45600\tx46080\tx46560\tx47040\tx47520\tx48000\ql\qnatural\pardirnatural
\cf0 sqMacUnixFileInterface.c\
findImageFilterProc use get pathname and last path component to decide if file is image\
\
sqMacUnixFileInterface.h\
sqMacHostWindow.c\
use QDLocalToGlobalRect in ioPositionOfWindow versus casting rect to point\
sqMacHostWindow.h\
sqMacInternetConfiguration.c\
make FSRef when dealing with ICFileSpec\
remove some copy pascal to c calls. \
sqMacJoystickAndTablet.c\
sqMacMIDI.c\
sqMacSecurity.c\
sqMacSerialPost.c\
sqMacUUID.c\
sqMacEncoding.c\
Drop SetImageName()\
sqMacEncoding.h\
sqMacFileLogic.h\
sqMacImageIO.c \
drop calculateStartLocationForImage() logic\
sqMacImageIO.h\
sqMacMain.c\
drop powerManager logic, not needed, cleanup of statics, cleanup for browser logic\
cast data right for sprintf(data,"%X",myattr);\
sqMacMain.h\
sqMacMemory.c\
removal of the os-9 swapfile logic\
watch signed versus unsigned compares\
sqMacTime.c\
sqMacTime.h\
sqMacUIAppleEvents.c\
use gCurrentVMEncoding, versus system encoding for getting file names\
drop logic for start of image offset os-9 feature\
remove PBHSetVolSync()\
drop LocalToGlobal, use fake mouse location\
sqMacUIAppleEvents.h\
sqMacUIClipBoard.c\
sqmacUIClipBoard.h\
sqMacUIConstants.h\
sqMacUIEvents.h\
sqMacUIEventsUniversal.c\
remove tap power manager event loop callback\
In MyWindowEventMouseHandler() put back in 10.2.8 versus 10.3.9 logic\
sqMacUIMenuBar.h\
sqMacUUIMenuBarUniversal.c\
sqMacUnixCommandLineInterface.c\
sqMacUnixExternalPrims.c\
sqMacWindow.h\
sqMacWindowUniversal.c\
In ioSetFullScreenActual, use QDLocalToGlobalRect, versus casting to points\
In copy124BitsTheHardWay little versus bit endian for making gworld\
\
sqMacNSPluginUILogic.c\
use QDSwapPort versus get/set port for performance reasons\
In ioShowDisplayOnWindow avoid double get of windowPort\
In recordMouseEvent use QDGlobalToLocalPoint\
sqMacNSPlugin.c\
Make windowActive = 1, not sure why this didn't fail in the past...\
Alter GetTempFSSpec to return both fsspec and FSRef\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\cf0 3.8.10b16\
Update info.plists and xcode projects on SVN\
\
Drop #ifdefs for this below, we always compile on MACH now, versus CodeWarrior\
Certain end of CodeWarrior OS-9 Support. \
#if defined (__APPLE__) && defined(__MACH__)\
#if defined I_AM_CARBON_EVENT\
#if defined MINIMALVM (sorry Dan)\
sqMacOpenGL..c\
sqMacOpenGLInfo.c\
sqMacWindowPlugin.c \
sqMacImageIO.c\
sqMacMain.c\
sqMacMemory.c\
sqMacTime.c\
sqMacUIAppleEvents.c\
sqMacWindowsUniversal.c\
sqPlatformSpecific.c\
sqMacNSPlugin.c\
\
osExport.c\
Export GetUIToLock api so we can callback from FFI on browser plugin UI thread.\
sqConfig.h\
Remove #ifdefs above and references to Codewarrior 8\
sqmacMain.c\
change logic to support Sophie Browser plugin SOPHIEVI change logic to get bundle by bundle id when a browser plugin so we can \
get bundle info.plist for startup logic and when we ask for VM version info\
remove the gThreadManager OS-9 cooperative thread logic\
\
sqMacUIAppleEvents.c\
browser plugin VM should not Launch Squeak VM on double click.\
\
sqMacUIEventsUniversal.c\
add getUIToLock() logic for Browser plugin support \
\
sqMacUnixExternalPrims.c\
Browser plugin loading bundles support (for squeakland and Sophie)\
\
sqMacWindowUniversal.c\
Fiddle with CGImageCreate 32 host endiness issues\
Fix cursors data/mask on intel\
\
info.plist for Squeak VM Universal\
\
sqmacNSPluginUILogic.c\
complete refactor of bits for Squeak browser plugin, put squeak VM stuff in seperate file\
\
sqMacNSPlugin.c\
complete refactor of bits for Squeak browser plugin, move squeak stuff to other file. \
Make work with unix file names\
\
\
3.8.10b14\
sqMacDragDrop.c\
Add logic to handle drag/drop from Safari or other application. \
\
3.8.10b13 \
sqMacUnixExternalPrims.c\
new file to replace sqMacExternalPrims.c\
clone of sqUnixExternalPrims.c, \
tries to find bundle, then various forms of file as foo, foo.so, foo.dylib, libfoo, libfoo.so (etc) \
looks in more places, ./Plugins, ./, Resources/,
\f1\fs20 \cf2 \CocoaLigature0 SQUEAK_PLUGIN_PATH, \
X11 library, /usr/local/lib/squeak/3.8a-2
\f0\fs24 \cf0 \CocoaLigature1 \
various frameworks locations, foo.framework, CoreServices.framework, Applicationservices.framework, Carbon.framework\
\
sqMacOpenGL.c\
return UTF8 file name for fopen for debugging \
sqMacOpenGLInfo.c\
return UTF8 file name for fopen for debugging \
sqMacDragDrop.c\
sqMacInternetConfiguration.c\
sqMacSecurity.c\
rename PathToFile to PathToFileViaFSSpec\
sqMacUnixFileInterface.c\
sqMacUnixFileInterface.h\
rename PathToFile to PathToFileViaFSSpec\
rename getLastPathComponet to getLastPathComponetinCurrentEncoding\
sqMacEncoding.c\
sqMacEnconding.h\
consolidate SetImageName()\
sqMacMain.c\
rename getLastPathComponet to getLastPathComponetinCurrentEncoding\
sqMacUIAppleEvents.c\
rename getLastPathComponet to getLastPathComponetinCurrentEncoding\
sqMacUnixCommandLineInterface.c\
rework resolvewhatTheImageNameIs(), ensure encoding is correct\
sqMacWindowUniversal.c\
add kCGBitmapByteOrder32Host/16 to GCImageCreate\
\
3.8.10b8 \
sqMacUnixFileInterface.c\
delete cached directory name if we delete the directory, this invalidates the cache later if we look up\
the name again. \
sqMacWindowUniversal.c\
Fix issues with intel compile\
sqMacMIDI.c\
endian issues with structure (not sure if fixed)\
config.h\
endian issues\
\
3.8.10b7\
sqMacUnixFileInterface.c\
Finder information comes in as part of catalog information, ensure we get all 16 bytes\
versus just the file owner/type which is only 8 bytes. That fixes problem in 10b6 where \
we wrote garbage to the 8 bytes, dates, and permissions\
sqMacImageIO.c\
missed a ':', delimits where the short image name is for the window title. Use DELIMITORInt\
\
3.8.10b6\
sqMacMenubarUniversal.c\
Add hide/show menu logic back in\
sqMacWindowUniversal.c\
Revert back to full screen resize, move window logic.\
In draw logic look at window is invisible flag now on windowBlock structure. \
Cleanup termination logic in draw logic method when block is bad, or window is invisible. \
sqMacEventUniversal.c\
Fix issues with window part codes on click to ensure clicks in window bar are handled correctly\
sqMacHostWindow.c/sqMacHostWindow.h\
Add window is invisible flag\
sqMacEncoding.c\
Add logic for Latin1 support, make that the default for path names, versus macroman. \
3.8.10b4\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\cf0 Work for os-x universal, intel port. \
Use Unix Async logic, versus older sqMacAsync.c\
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
\f2 \cf0 sqMacEventUniversal.c\
removal of power managment\
removal of USB logic which was originally for Jeff Raskin\
removal of 1984 event loop\
recordDragDropEvent remove ifdef I_AM_CARBON_EVENT\
ioGetNextEvent remove ifdef, I_AM_CARBON_EVENT\
*ioMousePoint, use QDGlobalToLocalPoint, versus get/set port\
MyAppEventHandler - remove menu hide/show not needed\
*MyWindowEventHandler - use QDGlobalToLocalPoint, versus get/set port\
*MyWindowEventMouseHandler - use kEventParamWindowPartCode, versus getting kWindowGlobalPortRgn, to figure out where mouse was, such as outside window, or in grow box. \
PowerManagerDefeatTimer - remove power manager logic. \
\
sqMacWindowUniversal.c\
remove ifdef I_AM_CARBON_EVENT\
ioSetFullScreenActual - use BeginFullScreen call with SetUpCarbonEventForWindowIndex\
? full screen open, implications? what if screen size changes? \
remove copybits, and memcpy ioShowDisplayOnWindow\
ioShowDisplayOnWindow - FIX, I think window resize, width, height is or, not AND remove \
SetUpWindow - remove old NewCWindow\
* SetWindowTitle - use SetWindowTitleWithCFString\
*ioSetDisplayMode - remove lots of old logic and use CGDisplayBestModeForParameters\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\f3 \cf0 sqMacUIMenuBarUniversal.c\
remove hide/show menu bar logic\
\
sqMacOpenGL.c\
redefine DPRINTF\
glSwapBuffers - GetWindowPort use proper cast\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
\f0 \cf0 sqMacOpenGLInfo.c\
redefine DPRINTF\
\
sqMacDragDrop.c\
remove define for DOCUMENT_NAME_SIZE\
\
sqMacHostWindow.c\
createWindowWidthheightoriginXyattrlength - use QDBeginCGContext\
\
sqMacHostWindow.h\
windowDescriptorBlock add locked flag for surface usage. \
\
sqMacInternetConfiguration.c\
sqInternetConfigurationGetStringKeyedBykeySizeinto use DOCUMENT_NAME_SIZE versus 1024\
\
HID_Utilities.c\
use 0, verus null to avoid warning message\
\
sqMacSecurity.c\
use, MACINTOSHUSEUNIXFILENAMES, drop check for HFS :: \
add logic to put /secure in vm path as secure directory\
change logic to use unix file names for making My Squeak directory, also call out to dir creation\
\
sqMacEncoding.c\
SetVMPathFromCFString - for unix file names we only need to set the vmPathString\
For HFS+ add comments about why we need to do normalization here and in SetImageNameViaCFString\
\
sqMacExternalPrims.c\
ioLoadModule - use DOCUMENT_NAME_SIZE, for CFURLCopyFileSystemPath use posix path stye\
LoadLibViaPath - use sqFilenameFromStringOpen versus sqFilenameFromString to ensure we resolve aliased bundle. \
\
sqMacImageIO.c\
sqImageFileOpen - use DOCUMENT_NAME_SIZE\
\
sqMacMain.c\
use SHORTIMAGE_NAME_SIZE\
Add MACINTOSHUSEUNIXFILENAMES, use\
SetVMPathFromApplicationDirectory to set vm path\
move location of set working directory to use vm path before apple event processing, but after processing xml args. \
move processing unix args after processing appleevents\
find image in resource folder using unix path name\
if no image file, then attempt to find image name using resolved for tilda xml name\
For id == 1003\
return intel if gestaltIntel\
For id == 1201\
always return 255\
\
sqMacTime.c\
add unix time conversion routine\
\
sqMacTime.h\
add unix time conversion routine\
\
sqMacUIAppleEvent.c\
HandleOpenAppEvent, use SHORTIMAGE_NAME_SIZE\
remove set VMPath, that happens in sqMacMain now\
HandleOpenDocEvent\
remove set VMPath, that happens in sqMacMain now\
for unix file path use PathToFile() to resolve fsspec to image path\
processDocumentsButExcludeOne use SHORTIMAGE_NAME_SIZE\
for opening doc in applescript launch of new VM don't use POSIX path of file \
getFirstImageNameIfPossible\
for unix file path use PathToFile() to resolve fsspec to image path\
\
sqMacUIConstants.h\
add DELIMITER and DELIMITERInt\
\
sqMacUIEvents.c\
#ifdef out powermanager calls\
\
sqMacUnixCommandLineInterface.c\
resolveWhatTheImageNameIs\
rework for unix path names\
\
\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\cf0 3.8.9b9 display tuning\
sqMacHostWindow.c Remove getwindowport call from screen drawing routine, not needed. \
Remove CGContextSynchronize from general usage, not needed, improves performance a bit\
Add feature to call CGContextSynchronize on window resize event, also to clip display area\
to avoid writting in title bar when you resize window smaller. \
Use more modern QDEndCGContext/QDStartCGContext calls.\
sqMacHostWindow.h\
sqMacUIEvents.c Capture kEventWindowResizeStarted event so we can signal that we want to clip. \
\
3.8.9b8 There are a number of interesting changes this revision.\
a) We set the working directory via chdir, in the past this might have been the vm directory, but sometimes it was the os-x root directory\
This was causes things like the Squeak3D.log to be created in the root directory.\
\
b) We added a routine to resolve squeak files names to host platform names and exposed that api in the vm machine interface. \
\
c) Fixed a bug that has existed since the early days of Alias support, say 5 years back. The bug is that if you have a directory path, say\
vol:foo:bar:too.txt and the directory bar does not exist, the end result will be a file reference to vol:foo:too.txt, that of course is wrong \
what was happening is that we would attempt to resolve the name, find it did not exist, then resolve by path components, when the path \
component lookup failed on directory bar we would signal the file was not found, but higher up in os-x we would think the file name did \
not exist and attempt to allocate the file as vol:foo:too.txt which would work... Now we signal a bad path name error when the partial path\
name won't resolve higher up in the chain of path components. This does not affect os-9 users. \
\
\
sqMacMain.c Set working directory to vm directory\
sqMacFileLogic.c Add interface to VM machine interface to expose converting file name from squeak internal rep to platform name,\
fix file name resolving bug. \
sqMacFileLogic.h remove makeOSXPath()\
sqMacUIEvents.h zero out utf32Code field to remove bogus data\
sqPlatformSpecific.h remove makeOSXPath()\
\
\
3.8.9b7 sqMacMain.c #ifdef change to enable compile under os-9\
sqMacUIAppleEvents.c Handle case where the file name ends with *.image but we have no hfs meta data. \
sqMacUIEvents.c #ifdef change to enable compile under os-9.\
sqMacWindow.c Recheck window handle on window open, or window title set.\
\
\
3.8.9b5 3.8.9b2,b3,b4,b6 had limited distribution for testing\
\
sqMacExternalPrims.c Look for plugin bundles in the resource folder. This allows you to place bundles in the resource folder, now Squeak\
will look for a plugin in the "Plugins" folder, the root folder where the app is, and lastly the resource folder in the app. \
This enables you to customize a VM with the right set of plugins for your vertical application.\
\
sqMacFileLogic.c When converting a HFS path to a posix path we need a few more checks to avoid problems with bogus file names\
Fixes crash in CFURLCreateCopyDeletingLastPathComponent, via quicklyMakePath()\
\
sqMacMain.c Add logic to allow you to specify foobar.toobar as Squeak.image, or anything else you decide\
This is done via the plist\
\f1\fs20 \CocoaLigature0 SqueakImageName = Squeak.image\
\f0\fs24 \CocoaLigature1 \
Were we first look in the Resource folder in the app. If not found we then look for it as a path name \
which could be: (partial, tilda based, or full)\
foobar.toobar\
\f2 ~/Documents/Squeak/foobar.thing\
\f0
\f2 /HardDisk/User/Foo/Documents/Squeak/foobar.thing\
\
\f0 sqMacTime.c use #define for MillisecondClockMask\
\
sqMacUIAppleEvents.c use plist info (
\f1\fs20 \CocoaLigature0 SqueakImageName)
\f0\fs24 \CocoaLigature1 as short image name.\
\
sqMacUIEvents.c use #define for MillisecondClockMask\
\
sqMacUnixCommandLineInterface.c command line help should say Squeak.image versus squeak.image\
\
\
\
3.8.9b1 sqMacWindow.c Altered ioFullScreen logic to avoid problems if you do full screen on twice or more, then full screen off. \
Bug was the window would be positioned at 0 & 0 and you could not grab it in order to move it. \
\
\f1\fs20 \cf3 \CocoaLigature0 sqMacUIAppleEvents.c
\f0\fs24 \cf0 \CocoaLigature1 Add logic to launch new shell script via apple script to startup same executable with image on an open doc request. \
This allows us to double-click on an image when a squeak VM is running. \
\
3.8.8b15 info.plist Add NSService tag to allow Squeak to be a Mac OS-X service.\
\
3.8.8b14 sqMacUIEvents.c Added logic to allow you to alter quartz flush logic and post flush logic ms times. \
sqMacWindow.c In the info.plist within the application you will find 4 keys which alter this behavior.\
\
\f1\fs20 \CocoaLigature0 SqueakUIFlushPrimaryDeferNMilliseconds = 20 \
Attempt to accumulate draw events in a 20 ms window. If a draw occurs and the time is greater than 20 ms from the \
last draw we draw and flush. If the draw is in the 20ms window we draw, and do a CGSync (once) and do not do the flush. \
The sync should schedule an flush by the carbon event handler within 20ms or so. Setting this value towards 0 will \
flush on every draw. I will note setting to 16ms causes the hilbert test to draw each pixel, versus clumps of pixels. \
Altering this value will affect the frame rate of your squeak animation. \
\
SqueakUIFlushSecondaryCheckForPossibleNeedEveryNMilliseconds = 20 Check no faster than 20 ms for possible pending flush events. This reduces CPU overhead. The value of this \
key has a relationship to the other two keys, but making it smaller might not improve thing. Because of how the \
checking is done there is no guarantee it will achieve a rate under say 16ms, but it will always occur within N seconds.\
This value can effect how menus item highlighting is done.\
\
SqueakUIFlushSecondaryCleanupDelayMilliseconds = 25\
When N ms occur based on SqueakUIFlushSecondaryCheckForPossibleNeedEveryNMilliseconds and we have a flush pending and\
the flush has not occurred within this key value of 25ms we force a flush. This value should be more than\
SqueakUIFlushPrimaryDeferNMilliseconds to avoid conflicts with the draw loop. If for example we have a draw and \
a draw then no further drawing, the first draw should be flushed, then next cached for upwards of 20-40ms based on \
SqueakUIFlushSecondaryCheckForPossibleNeedEveryNMilliseconds then we would see it exceeds this key value and cause the flush. \
\
SqueakUIFlushUseHighPercisionClock = true\
Use a more expensive ms accurate clock when set to true. If false we use the 16ms based cheap clock. This is set to true\
to give higher accuracy and does not seem to affect CPU usage based on statistical sampling of production VMs. \
\
\f0\fs24 \CocoaLigature1 Squeakers are welcome to alter these values to obtain best behaviour which might change based on versions of OS-X.\
Altering
\f1\fs20 \CocoaLigature0 SqueakUIFlushPrimaryDeferNMilliseconds
\f0\fs24 \CocoaLigature1 will affect frame rate.\
Altering
\f1\fs20 \CocoaLigature0 SqueakUIFlushSecondaryCheckForPossibleNeedEveryNMilliseconds & SqueakUIFlushSecondaryCleanupDelayMilliseconds
\f0\fs24 \CocoaLigature1 will affect menu drawing.\
Feedback about these choices is welcome. \
\
3.8.8b13 sqMacUIEvents.c Check every 16ms versus 32ms for pending flush which should occur every 32ms or so\
sqMacWindow.c Call GCSync when we write data, this should ensure pending flushes will occur, but will force every 32ms or so. \
\
3.8.8b12 sqMacUIEvents.c Call flush window code each time the get next event prim is called to ensure flushes happen within a 32/1000 or 64/1000 sec period\
\
3.8.8b11 sqMacWindow.c Make window creation occur when we ask for window size so we can build full screen window correctly and \
draw in one draw cycle. \
\
3.8.8b10 sqMacWindow.c Fix issue with window resize, need to rebuild CGContext from newly changed window port after resize. \
\
3.8.8b9 sqMacWindow.c Discovered code that fetches CGContext is locked out when other applications draw. Reworked that and how flush works\
Now seems to draw hilbert example quickly, does bouncing atoms ok, has lower WindowServer overhead and \
works with quartz extreme.\
\
3.8.8b8 sqMacWindow.c Add code to sqMacUIEvents.c to flush pending draws\
\
3.8.8b7 sqMacWindow.c Change Quartz logic to fetch GCContext from quickdraw port, then build and draw image, flush or synch\
This makes it work with Quartz extreme3.8.8b7 First iteration of quartz code fails for Quartz Extreme. Rewrite and optimize for Quartz Extreme.\
\
3.8.8b6 Sigh, found flush window via QDFlushPort logic every 1/50 of a second via carbon event was too expensive (CPU TIME)\
So I poked at Quartz example code and reworked for Squeak, with addition of quickdraw off-screen conversion for 1/2/4/8 bit color spaces.\
This has reduced cpu overhead when in background quite a bit and seem to have made Croquet faster. \
\
sqMacWindow.c Rewrote for Quartz, flush every 1/10 of a second, do sync on each draw. \
sqMacHostWindow.c remove flush window code.\
sqMacHostWindow.h remove flush window code.\
sqMacUIEvents.c remove gQDFlushTimer flush logic, ignore hide, show, hide others cmds so they work from menu \
\
3.8.8b5 Window flush every 1/50 of a second to make os-x 10.4 happy. \
Add getSessionID logic\
\
osExports.c compiler warning message about file name case\
sqMacDirectory correctly get volume size and creation date, was always broken.\
sqMacHostWindow.c deal with flushing multiple open windows\
sqMacHostWinodw.h \
sqMacOpenGL.c use of QDSwapPort versus get/set port for non-open/gl macs\
sqMacPrinting.c deal with compiler warning message\
sqMacSecurity.c compiler warning message about file name case\
sqMacNetwork.c compiler warning messages\
sqExports.c compiler warning messages\
sqMacEncoding.c double CFRelease (bad)\
sqMacExternalPrims.c compiler warning messages\
sqMacMain.c NSPlugin related changes\
sqMacMemory.c compiler warning messages\
sqMacNSPlugin.c alter screen update logic, wait a few milliseconds for squeak to do screen redraws\
sqMacUIEvents.c Alter screen flush logic.\
sqMacWindow.c Alter screen flush logic\
Gnuifier.5.cs Gunifier changes for 32/65bit changes\
\
3.8.8b4 Limited release\
d\
3.8.8b3 Limited release\
\
3.8.8b2 Revisions to the 32/64bit memory access to improve VM performance\
\f3 sqMacEncoding.c, Fix bug reported by Stephan B. Wessels swessels@cox.net, crash on Tiger if squeak.image is in resource folder\
\f0 sqMacJoystickAndTablet.c More rewrites by Bert.\
sqPlatformSpecific.h Add undefs for dispatchFunctionPointer, dispatchFunctionPointerOnin\
sqMacUIAppleEvents.c Fix issue with window title not showing long image name on drag & drop image\
sqMacMain.c Fix issue with window title not showing long image name on image selection from dialog prompt. \
sqMacUnixCommandLineInterface.c New, enable command line functions and environment variables. \
\f1\fs20 \CocoaLigature0 \cf2 -help print this help message, then exit -memory <size>[mk] use fixed heap size (added to image size) -pathenc <enc> set encoding for pathnames (default: UTF-8)\cf0 \
\f0\fs24 \CocoaLigature1 or as environment variables\
\f1\fs20 \cf2 \CocoaLigature0 SQUEAK_IMAGE, SQUEAK_MEMORY, SQUEAK_PATHENC
\f0\fs24 \cf0 \CocoaLigature1 \
\
\
3.8.8b1 Not released to general public\
sqMacAsyncFilePrims.c (void*) for ioLoadFunction\
sqMacDragDrop.c (void*) for ioLoadFunction\
sqMacHostWindow.c (void*) for ioLoadFunction\
sqMacJoystickAndTablet.c minor changes\
sqMacSecurity.c (void*) for ioLoadFunction\
sqUnixSoundMacOSXJMM.c add static to var to avoid compiler warning\
sqMacExternalPrims.c (void*) for various module interfacing\
sqMacWindows.c (void*) for ioLoadFunction\
\
\
3.8.7b7 Revised and altered os-x joystick support based on changes by Bert\
Move towards 32/64bit VM logic by using latest VM Maker \
sqMacExternalPrims.c (void *) usage\
sqMacFileLogic.c (void *) usage\
\
3.8.7b6 Added Dominique Dutoit hitoro@easynet.be changes for os-x joystick support.\
\
3.8.7b5 Fix logic to allow you to start VM from command line, changed \
sqMacFileLogic.c makeHFSFromPosixPath added to convert posix cmd line path names to HFS\
sqMacMain.c add logic to call cmd line parser\
sqMacUnixCommandLineInterface.c new file logic to parse cmd line\
sqMacUnixCommandLineInterface.h\
sqMacWindow.c minor changes to correct compiler errors\
\
3.8.7b4/b3 Limited release for testing\
\
3.8.7b2 sqUIEvents.c changed keyUp/keyDown to supply mac virtual keycode versus unicode, added new parm to keyChar to supply UTF-32 Unicode.\
As per Andreas request for Tweak. \
\
3.8.7b1 sqUIEvents.c changed keyUp/keyDown logic to match Windows pattern, key repeat becomes keyDown/keyDown/keyUp\
\
3.8.6b6
\f3 sqMacMIDI.c add #def so I can compile under code warrior os-9 again\
sqMacEncoding.c, sqMacEncoding.h Minor changes so I can compile user code warrior os-9 again\
sqMacUnixInterfaceSound.c Fix problem with empty buffer being full of junk under certain conditions, that causes a sharp sound bite. \
\f0 \
3.8.6b5 Change to JMM & AR GC instrumentation patch, collect a few less statistics. Also change carbon VM to use Unix/Quartz sound driver \
which interfaces to Core Audio stuff. \
\
3.8.6b4 Ensure VMMaker 3.8b2 - the VM code classes and tools for building a working vm for Squeak version > 3.8-6461. is incorporated.\
Add Andreas's GC improvement changes for \
\f2 * primitiveIsYoung: This answers the question whether an object currently lives in young or in old space.\
\
* primitiveIsRoot: Answers the question whether any given object is currently a root for young space.\
\
* primitiveRootTable: Answers a snapshot of the current root table. Useful to examine the roots table if the analysis requires complex other operations during which the root table might be modified itself. Note that since this primitive can cause GC there is a small chance that it will give an inaccurate answer.\
\
* primitiveRootTableAt: Answers a single element of the root table (by one-based index). This primitive can be used to quickly scan the root table for certain objects.\
\
* primitiveSetGCSemaphore: Indicates a semaphore (index) to be signaled whenever a garbage collection occurs. I can see at least two uses uses for the GC semaphore: running cleanup actions (for example after full GCs occured) and dynamic parameter tuning for the GC algorithm itself.\
\f0 \
Add John's changes for\
\
Smalltalk setGCBiasToGrowGCLimit: 16*1024*1024. "Set growth limit before full GC to 16MB"\
\
Smalltalk setGCBiasToGrow: 1.\
Set bias to grow upto GCLimit, this can avoid a problem where we attempt to avoid growing but results in thousands of incremental GC events as \
we approach a knee in a curve of space used versus the growth/compaction decision. \
\
\
3.8.6b3 Add in logic for become: to fix issues with changes to become: logic. \
\
3.8.6b2 sqMacWindow.c reduce number of lock/unlock pixel events and flush no more than 91 fps, with flush check every 1/50 or 1/60 and 1/5 of a second. this \
shaves another 50% off making drawing pixels 1.3% of the time originally taken. \
\
3.8.6b1 sqMacWindow.c, sqUIEvents.c, changed logic to flush screen every 125 fps, this makes pixel level drawing complete in 2% of the time originally taken. \
\
\
3.8.5b1 Fix issue with gnuify. The offical gnu header file used a different #ifdef for the foo register than an altered gnu header file I was using for \
many years. This resulted in slower performance, which is fixed in 3.8.5 \
3.8.4b3 Support for GC statistical data and change to how memory is allocated and tenured.\
Additional statistical information from the GC routines\
Additional primitives to set GC semaphore, and to force a tenure\
\
Change to make forward logic to look for "foo become: foo" and cause a prim failure.\
Earlier version of 3.8.4 where distributed to Ffenstri testers.\
\
sqMacHostWindow Change calls to move and size window to use GUILocker callbacks to avoid VM crash. \
sqMacWIndow.c Alter 1/2/4 bit support to pass in bit size of target window, then copy is more efficient. \
\
\
3.8.3b3 Support for Host menus and windows. Also added back 1bit (B/W) and 2bit & 4bit color as requested by Dan Ingalls for os-x\
\
Earlier versions of 3.8.0/1/2/3 were distributed to the TK4 team, not the public. \
\
sq.h Added events, EventTypeMenu, EventTypeWindow to handle menu and window events generated by the Host OS\
and placed on the Squeak Event Queue to be read by EventSensor\
\
sqGnu.h Switch to the current file used by Ian for Unix, versus older modified copy.\
sqMacExternalPrims.c Cleanup of warning message\
sqMacImageIO.c When you set the image name, we set the title on window 1.\
sqMacMain.c Do not create the main window until we actually use it. \
sqMacNSPlugin.c Always refer to window 1, not sure what it means to have other windows in the plugin yet...\
sqMacUIEvents.c OS-9\
Pass cmd-key menu activity up\
Pass update event bounding box window events up\
Pass window activate events up\
Pass menu interaction activity up\
Pass window events, resize,zoom,close,move,inconize up\
\
OS-X\
Same as above\
getUIToLock needs to ReleaseEvent on the passed in event for GC reasons\
sqMacUIMenuBar.c disable edit menu at start, if later we find it enabled, don't touch, otherwise handle os-9 DA issues.\
sqmacWindow.c sqShowWindow now gets a windowIndex parm. \
ioShowDisplayOnWindow is added, with logic to build main window at first draw time, \
also fix some boundary checks, and provide support (again) for 1/2/4 bit color under os-x ioHasDisplayDepth() will return true for 1/2/4/8/16/32 bit color\
\
\
\
3.7.5b3 OpenGL fix by Bert.\
Open Squeak3D.log in the currently directory, not the root volume, also ensured this works in os9.\
\
sqMacNSPlugin.c Alter memory check at startup to ensure we see all 512MB, not a default of 30MB\
sqMacUIMenuBar.c Don't hide menubar if squeak screen is full screen on secondary screen. \
sqMacWindow.c When you open in full screen mode, then revert, ensure the screen is resized rationally. \
Also remember screen size and location when going into full screen so revert is sane. \
\
3.7.5b2 Limited distribution for testing\
3.7.5b1 Limited distribution for testing \
\
3.7.5b1 Released to fix issues with 16bit to 32bit display color mapping\
\
Cleanup of compiler warning message.\
sqMacAsyncFilePrims.c, sqMacOpenGL.c, sqMacDragDrop.c, sqMacDirectory.c, \
sqMacInternetConfiguration.c, sqMacJoystickAndtablet.c, sqMacMIDI.c, sqMacSecurity.c,\
sqMacSerialPort.c, sqMacNetwork.c, sqMacSound.c, sqMacUUID.c, sqMacEnconding.c,\
sqMacFileLogic.c, sqMacImageIO.c, sqMacMain.c, sqMacMemory.c, sqMacNSPlugin.c,\
sqMacTime.c, sqMacUIAppleEvents.c, sqMacUIClipBoard.c, sqPlatformSpecific.h\
\
sqMacUIEvents.c\
Prework for multiple window support, use event supplied window versus stWindow. \
Change os-9 behavior to bring window to front swallow click\
Change os-x behavior to bring window to front swallow click\
\
sqMacWindow.c\
Prework for multiple window support, use getSTWindow() call versus stWindow. \
Use lookup table to properly map 5bit color space to 8bit color space. Some crummy code was introduced in 3.6.1b3\
which did a poor job of color space transformation (16->32bit).\
\
sqMacExternalPrims.c\
Alter load logic to use kCFURLPOSIXPathStyle path name versus hfs path name. \
Alter load logic for frameworks to look in User, Network, Local, System domains for framework,\
before we would only look in the System domain. This allows frameworks at the user domain scope.\
\
Cleanup of squeak window references pending multiple window support\
\
3.7.4b3 Released to fix issues in Netscape plugin code\
FIX PROBLEM that triggers image read failure on G5 machines. This prevents image from running on G5 machines.\
Problem shows up as browser crash or failure to start squeakland project.\
\
3.7.4b2 Released to fix issues in Netscape plugin code\
Do not start timers until later in the image start, this prevents failure if image doesn't load\
Support failureURL and imageName embed html tags\
\
3.7.4b1 primitive Function Pointer goes into method cache logic, better lookup times.\
Force Interrupt Check logic in VM to fix most/all? issues with tight loops and keyboard interrupt logic.\
more sanity checks in displayBitsOfLeftTopRightBottom\
cleanup of flushExternalPrimitiveOf\
cleanup of oopFromChunk\
refactor pop then push to pop:thenPush:\
lookupMethodInDictionary refactor to make one loop looking, versus perhaps two.\
mark/sweep logic or type, versus adding type (or is correct math)\
dispatchFunctionPointer logic\
rework primitiveScanCharacters logic\
add parm to VMparms to set interruptChecksEveryNms\
Fix bug in primitiveYield\
\
LargeIntegersPlugin add normalization logic\
\
ZipPlugin added primitiveUpdateAdler32 primitive\
\
3.7.3b4 Numerous changes for Unicode file name support, and proper support for keyup/keydown on os-x. \
\
sqVirtualMachine.c VM_PROXY_MINOR set to 6 to support isArray = isArray;\
\
interp.c New VMMaker code update, major change is to use dispatchFunctionPointerOnin logic to dispatch \
primitive calls, versus going via a jumptable/case statement. Also Tim reviewed the usage of the \
millisecond clock and improved things so we don't need to check the clock on every prim call. This \
makes the RISC and other platforms faster. However it only has minor effect on the os-x carbon VM \
because of how the cheap millisecond clock is implemented.\
\
sqMacDirectory.c Change dir_Lookup // HFS+ imposes Unicode2.1 decomposed UTF-8 encoding on all path elements\
Per request from
\f2 Tetsuya HAYASHI <{\field{\*\fldinst{HYPERLINK "mailto:tetha@st.rim.or.jp"}}{\fldrslt tetha@st.rim.or.jp}}>\
\
sqMacEncoding.c Alter SetVMPath()
\f0 per request from
\f2 Tetsuya HAYASHI , \
add support for
\f1\fs20 \CocoaLigature0 \
\cf2 "ShiftJIS"\cf0 kCFStringEncodingShiftJIS\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f2\fs24 \cf0 \CocoaLigature1 \
sqMacFileLogic.c Alter makeFSSpec(), get kCFStringNormalizationFormD path name\
Alter PathToFile(), get kCFStringNormalizationFormKC path name\
Alter QuicklyMakePath() get kCFStringNormalizationFormKC path name\
New routine unicode2NativePascalString()\
Alter makeOSXPath, get kCFStringNormalizationFormKD path name
\f0 \
Alter resolveLongName, get kCFStringNormalizationFormKC path name\
Alter FSMakeFSSpecCompat(), call
\f2 unicode2NativePascalString to normalize path name
\f0 \
\
sqMacMemory.c Allow browser plugin to allocate 512MB of VM space for image under os-x. \
\
sqMacUIAppleEvents.c Use CFStringGetSystemEncoding versus suggested plist.info suggestion because the encoding info is quite right yet at\
this point in the startup time.\
\
sqMacUIEvents.c Key Up is now reported as an event when the key is released. Earlier os-x carbon VMs would report the key up after the\
keystroke was processed by Text Services, which was incorrect. We also deal with Key repeat correctly and don't send\
another key down event. This change has made it possible to properly support Morphic games where key up/down state is\
important to game interaction. \
\
sqMacWindow.c Fix crash in ShowWindow(). This was due to a pthread race condition between the UI thread and interp.c. \
Fixed by using UI callback to handle the show screen call. Would show up as a crash before window appeared.\
\
3.7.3bx Earlier versions of 3.7.3 were released to confirm the file changes for Japanese users worked correctly, and to \
confirm that the keyUp logic changes worked as desired.\
\
3.7.2b1 Changes for NPSqueak to fix issues with full screen mode under Safari 1.2 (V125) \
Usage of VMMaker3-7b2 to build interp.c\
Unicode values now come up from the classic VM versus the historical (1984) keycode values, this makes Tweak work.\
\
3.7.1b2 \
JPEG READER WRITER\
usage of Apple '-fast' uncovered a source code issue, initialization routines for internal jpeg plugin were not returning true or false, before this was kinda of considered as true. But when compiled with -fast it's zero, meaning the inialization failed, but that is bogus.\
\
3.7.1b1\
Use of "-fast" apple gcc 3.3 compiler option, improves sends by significant %\
\f2 On EventKeyUp/EventKeyDown you get the UniCode On EventKeyChar you get the UniCode->MacRoman translated character.\
Broke high bit ascii macroman in 3.7.0bx.\
For multi-byte character input you get EventKeyDown/EventKeyChar/EventKeyUp for each unicode character coming from the input sequence.\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0 \cf0 \
3.7.0b2 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f2 \cf0 a) You can alter the application's Info.plist by setting the SqueakEncodingType using the ICANA readable names\
\
macintosh - >macRoman \
UTF-8 -> UTF-8\
\
b) Support for sqSocketListenOnPortBacklogSizeInterface, which allows you to specify the interface to use for the listen should work both for os-x and os-9.\
c) Usage of VMMaker3-7a2.\
d) Special change sets: make primitive point x/y internal, and slightly faster activate.\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0 \cf0 \
3.7.0b1 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f2 \cf0 Changes for the "m17n" package fromTetsuya HAYASHI <{\field{\*\fldinst{HYPERLINK "mailto:tetha@st.rim.or.jp"}}{\fldrslt tetha@st.rim.or.jp}}> so one can type Kanji characters.\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0 \cf0 3.6.1b7 \
SqMacWindow.c Fix for new rending code when used with 2.8 or earlier images, mouse clicks reported in wrong place\
\
3.6.1b6\
SqMacWindow.c Enable 8bit all modes of 8 bit rendering\
\
3.6.1b5\
SqMacWindow.c Enable 8bit support for 8->8 8->16 8->32 \
\
3.6.1b4\
SqMacWindow.c Fix issues with title bar height calculation, was using the wrong window region to do this. Also failed \
for full screen usage. Tinkered a bit with ioDisplay moving bytes, now do <=32 bytes directly. \
3.6.1b3\
SqMacWindow.c Alter logic to allow for 16->32 and 32->16 mapping using direct copy logic. Workaround for \
os-x 10.3.0 copybits bug. Released for limited testing. Awaiting real fix from Apple.\
\
3.6.1b2\
SqMacWindow.c Alter to use unix direct port bit copy versus copybits to get around a crash caused by a bug\
in os-x 10.3.0 copybits. Released for limited testing\
\
3.6.0b2\
Build from about to be offical 3.6.0 VM, Balloon & VM Maker source.\
Added in \
ArraysToGlobalStruct-JMM.1.cs\
?3.7 Status unknown, but makes better interp.c interpreter loop code (silly optimizer).\
FasterCopyLoop-JMM.4.cs\
FasterCopyLoopPart2-JMM.2.cs\
?3.7 Status unknown, but makes drawing 20%+ faster due to better PowerPC code optimizations\
FasterLookupMethod-JMM.1.cs\
?3.7 Status unknown, but makes method lookup a bit faster. \
MakePrimPointXInternal-JMM.1.cs\
?3.7 Status unknown, but makes point x/y access faster.\
\
SlightlyFasterActivate-JMM.3.cs\
Rolled into 3.7\
\
You need 3.5.3b1 for Safari plugin support\
\
3.5.3b1 (browser plugin)\
Fixed issues with IE drawing and crashs related to screen updating in non-thread safe IE.\
\
3.5.2b6\
Fixed issues with plugin discovery for netscape plugin \
3.5.2b5\
Fixed primitive dispatch to use gnuified jump table. \
\
3.5.2b4 \
Fix issue with race on open doc events and squeak VM Thread for drag and drop support when starting squeak\
For os-x expose primitivePluginBrowserReady, not the rest of the URL browser primitives, they don't work in Safari\
For system attribute 1003 return powerpc versus PowerPC to match unix VM\