Since the previous pullrequest (pullrequest/vmmaker) was not updated with the new commits, I'm opening a new one.
In this episode:
- commit comments also contain the mcz filename
- the category issue has beed addressed
- the commit dates and author dates are now the same so that the Github Network insight view is usable again
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/308
-- Commit Summary --
* VMMaker.oscog-sk.2261
* CogTools-sk.84
* VMMaker.oscog-eem.2262
* VMMaker.oscog-eem.2263
* VMMaker.oscog-eem.2264
* VMMaker.oscog-eem.2265
* CogTools-sk.85
* VMMaker.oscog-eem.2266
* VMMaker.oscog-eem.2267
* VMMaker.oscog-tpr.2268
* VMMaker.oscog-cb.2269
* VMMaker.oscog-cb.2270
* VMMaker.oscog-cb.2271
* VMMaker.oscog-cb.2272
* ImageFormat-dtl.27
* VMMaker.oscog-cb.2273
* VMMaker.oscog-cb.2274
* ImageFormat-dtl.28
* VMMaker.oscog-eem.2275
* VMMaker.oscog-eem.2276
* VMMaker.oscog-eem.2277
* VMMaker.oscog-eem.2278
* VMMaker.oscog-eem.2280
* VMMaker.oscog- nice.2281
* VMMaker.oscog-cb.2282
* VMMaker.oscog-nice.2283
* VMMaker.oscog-eem.2284
* VMMaker.oscog-eem.2285
* VMMaker.oscog-eem.2286
* VMMaker.oscog-eem.2287
* VMMaker.oscog-eem.2288
* VMMaker.oscog-eem.2289
* VMMaker.oscog-eem.2290
* VMMaker.oscog-eem.2291
* VMMaker.oscog-eem.2292
* VMMaker.oscog-eem.2293
* VMMaker.oscog-eem.2294
* VMMaker.oscog-eem.2295
* VMMaker.oscog-eem.2296
* VMMaker.oscog-eem.2297
* VMMaker.oscog-eem.2298
* VMMaker.oscog-eem.2299
* VMMaker.oscog-eem.2300
* VMMaker.oscog-eem.2301
* VMMaker.oscog-eem.2302
* VMMaker.oscog-eem.2303
* VMMaker.oscog-eem.2304
* VMMaker.oscog-eem.2305
* VMMaker.oscog-eem.2306
* VMMaker.oscog-eem.2307
* VMMaker.oscog-eem.2309
* VMMaker.oscog-eem.2310
* VMMaker.oscog-dtl.2311
* VMMaker.oscog-eem.2312
* BytecodeSets.spur-eem.76
* BytecodeSets.spur-eem.77
* VMMaker.oscog-eem.2313
* VMMaker.oscog-eem.2314
* VMMaker.oscog-eem.2315
* VMMaker.oscog-eem.2316
* VMMaker.oscog-eem.2317
* VMMaker.oscog-eem.2318
* VMMaker.oscog-eem.2319
* VMMaker.oscog-eem.2320
* VMMaker.oscog-eem.2321
* VMMaker.oscog-eem.2322
* Cog-eem.345
* Cog-eem.346
* VMMaker.oscog-eem.2324
* VMMaker.oscog-cb.2323
* VMMaker.oscog-eem.2325
* VMMaker.oscog-eem.2326
* VMMaker.oscog-eem.2327
* VMMaker.oscog-eem.2328
* VMMaker.oscog-eem.2329
* VMMaker.oscog-eem.2330
* VMMaker.oscog-eem.2331
* VMMaker.oscog-eem.2332
* VMMaker.oscog-eem.2333
* VMMaker.oscog-eem.2334
* VMMaker.oscog-eem.2335
* VMMaker.oscog-eem.2336
* VMMaker.oscog-eem.2337
* VMMaker.oscog-eem.2338
* VMMaker.oscog-eem.2339
* VMMaker.oscog-akg.2340
* VMMaker.oscog-akg.2341
* VMMaker.oscog-topa.2342
* VMMaker.oscog-eem.2343
* VMMaker.oscog-eem.2344
* VMMaker.oscog-eem.2345
* VMMaker.oscog-akg.2346
* VMMaker.oscog-eem.2347
* VMMaker.oscog-cb.2348
* VMMaker.oscog-cb.2349
* VMMaker.oscog-cb.2350
* VMMaker.oscog-cb.2351
* VMMaker.oscog-eem.2352
* VMMaker.oscog-eem.2353
* VMMaker.oscog-ul.2354
* VMMaker.oscog-akg.2355
* BytecodeSets.spur-eem.78
* VMMaker.oscog-cb.2356
* VMMaker.oscog-eem.2357
* VMMaker.oscog-eem.2358
* VMMaker.oscog-eem.2359
* VMMaker.oscog-eem.2360
* VMMaker.oscog-eem.2361
* VMMaker.oscog-eem.2362
* VMMaker.oscog-eem.2363
* ImageFormat-dtl.29
* ImageFormat-dtl.30
* VMMaker.oscog-CyrilFerlicot.2364
* VMMaker.oscog-VB.2364
* ImageFormat-dtl.31
* VMMaker.oscog-VB.2365
* VMMaker.oscog- nice.2366
* VMMaker.oscog-sk.2367
* VMMaker.oscog-eem.2368
* VMMaker.oscog-VB.2369
* VMMaker.oscog-VB.2370
* VMMaker.oscog-VB.2371
* VMMaker.oscog-cb.2372
* VMMaker.oscog-cb.2373
* VMMaker.oscog-cb.2374
* VMMaker.oscog-cb.2375
* VMMaker.oscog-cb.2376
* VMMaker.oscog-cb.2377
* VMMaker.oscog-cb.2378
* VMMaker.oscog-cb.2379
* VMMaker.oscog-eem.2380
* VMMaker.oscog-eem.2381
* VMMaker.oscog-VB.2382
* VMMaker.oscog-VB.2383
* VMMaker.oscog-cb.2384
* VMMaker.oscog-topa.2385
* VMMaker.oscog-topa.2386
* VMMaker.oscog-ul.2387
* VMMaker.oscog-ul.2388
* VMMaker.oscog-cb.2389
* VMMaker.oscog-cb.2390
* VMMaker.oscog-eem.2393
* VMMaker.oscog-eem.2394
* VMMaker.oscog-cb.2391
* VMMaker.oscog-cb.2392
* VMMaker.oscog-eem.2395
* VMMaker.oscog-eem.2396
* VMMaker.oscog-eem.2397
* VMMaker.oscog-eem.2398
* VMMaker.oscog-eem.2399
* VMMaker.oscog-eem.2400
* CogTools-eem.86
* CogTools-eem.87
* VMMaker.oscog-eem.2401
* CogTools-eem.88
* VMMaker.oscog-eem.2402
* VMMaker.oscog-eem.2403
* VMMaker.oscog-eem.2404
* VMMaker.oscog-eem.2408
* VMMaker.oscog-eem.2409
* VMMaker.oscog-cb.2405
* CogTools-eem.89
* VMMaker.oscog-cb.2406
* VMMaker.oscog-cb.2407
* VMMaker.oscog-cb.2410
* VMMaker.oscog-cb.2411
* VMMaker.oscog-cb.2412
* VMMaker.oscog-cb.2413
* VMMaker.oscog-eem.2414
* VMMaker.oscog-eem.2415
* VMMaker.oscog-eem.2416
* VMMaker.oscog-cb.2417
* VMMaker.oscog-topa.2418
* VMMaker.oscog-cb.2419
* VMMaker.oscog-eem.2420
* VMMaker.oscog-eem.2421
* VMMaker.oscog-eem.2422
* VMMaker.oscog-eem.2423
* VMMaker.oscog-eem.2424
* VMMaker.oscog-cb.2425
* VMMaker.oscog-AlistairGrant.2426
* VMMaker.oscog-eem.2428
* VMMakerCompatibilityForPharo6-eem.1
* VMMaker.oscog-eem.2429
* VMMaker.oscog-AlistairGrant.2427
* VMMakerCompatibilityForPharo6-eem.2
* VMMakerCompatibilityForPharo6-EliotMiranda.3
* VMMaker.oscog-eem.2430
* VMMakerCompatibilityForPharo6-eem.4
* VMMakerCompatibilityForPharo6-eem.5
* VMMaker.oscog-eem.2431
* VMMaker.oscog-eem.2432
* VMMaker.oscog-eem.2433
* VMMaker.oscog-eem.2434
* VMMaker.oscog-eem.2435
* VMMaker.oscog-eem.2436
* VMMaker.oscog-eem.2437
* VMMaker.oscog-eem.2438
* VMMaker.oscog-eem.2439
* VMMakerCompatibilityForPharo6-eem.6
* VMMakerCompatibilityForPharo6-eem.7
* VMMakerCompatibilityForPharo6-eem.8
* VMMaker.oscog-eem.2440
* VMMaker.oscog-eem.2441
* VMMaker.oscog-eem.2442
* VMMaker.oscog-eem.2443
* VMMaker.oscog-eem.2444
* VMMakerCompatibilityForPharo6-eem.9
* VMMaker.oscog-cb.2445
* VMMaker.oscog-cb.2446
* VMMaker.oscog-cb.2447
* VMMaker.oscog-cb.2448
* VMMaker.oscog-cb.2449
* VMMaker.oscog-cb.2450
* VMMaker.oscog-eem.2451
* VMMaker.oscog-eem.2452
* VMMaker.oscog-eem.2453
* VMMaker.oscog-eem.2454
* VMMaker.oscog-AlistairGrant.2455
* VMMaker.oscog-AlistairGrant.2456
* VMMaker.oscog-eem.2457
* VMMaker.oscog-eem.2458
* VMMaker.oscog-AlistairGrant.2459
* VMMaker.oscog-eem.2460
* VMMaker.oscog-eem.2461
* VMMaker.oscog-eem.2462
* VMMaker.oscog-eem.2463
* VMMaker.oscog-eem.2464
* VMMaker.oscog-AlistairGrant.2465
* VMMaker.oscog-akg.2466
* VMMaker.oscog-eem.2467
* VMMaker.oscog-eem.2468
* VMMaker.oscog-eem.2469
* VMMaker.oscog-eem.2470
* VMMaker.oscog-eem.2471
* VMMaker.oscog-eem.2472
* VMMaker.oscog-akg.2473
* VMMaker.oscog-akg.2474
* VMMaker.oscog-akg.2475
* VMMaker.oscog-eem.2476
* VMMaker.oscog-eem.2477
* VMMaker.oscog-eem.2478
* VMMaker.oscog-eem.2479
* VMMaker.oscog-eem.2480
* VMMaker.oscog-eem.2481
* VMMaker.oscog-eem.2482
* VMMaker.oscog-eem.2483
* VMMaker.oscog-eem.2484
* merge vmmaker into opensmalltalk-vm
* Added baseline for loading vm maker from the github repo
-- File Changes --
A .project (3)
A smalltalksrc/.properties (3)
A smalltalksrc/Android-Base/Android.class.st (144)
A smalltalksrc/Android-Base/package.st (1)
A smalltalksrc/Balloon-Engine-Pools/BalloonEngineConstants.class.st (558)
A smalltalksrc/Balloon-Engine-Pools/package.st (1)
A smalltalksrc/BaselineOfVMMaker/BaselineOfVMMaker.class.st (62)
A smalltalksrc/BaselineOfVMMaker/package.st (1)
A smalltalksrc/BytecodeSets-NewsqueakV3/BlockLocalTempCounter.extension.st (18)
A smalltalksrc/BytecodeSets-NewsqueakV3/BytecodeEncoder.extension.st (53)
A smalltalksrc/BytecodeSets-NewsqueakV3/ClosureExtractor.extension.st (6)
A smalltalksrc/BytecodeSets-NewsqueakV3/ContextPart.extension.st (20)
A smalltalksrc/BytecodeSets-NewsqueakV3/Decompiler.extension.st (7)
A smalltalksrc/BytecodeSets-NewsqueakV3/EncoderForNewsqueakV3.class.st (33)
A smalltalksrc/BytecodeSets-NewsqueakV3/EncoderForNewsqueakV4.class.st (1263)
A smalltalksrc/BytecodeSets-NewsqueakV3/EncoderForSistaV1.class.st (1478)
A smalltalksrc/BytecodeSets-NewsqueakV3/EncoderForSistaV1.extension.st (11)
A smalltalksrc/BytecodeSets-NewsqueakV3/EncoderForV3.extension.st (9)
A smalltalksrc/BytecodeSets-NewsqueakV3/FullBlockClosure.class.st (241)
A smalltalksrc/BytecodeSets-NewsqueakV3/InstructionClient.extension.st (57)
A smalltalksrc/BytecodeSets-NewsqueakV3/InstructionPrinter.extension.st (106)
A smalltalksrc/BytecodeSets-NewsqueakV3/InstructionStream.extension.st (727)
A smalltalksrc/BytecodeSets-NewsqueakV3/MethodContext.extension.st (9)
A smalltalksrc/BytecodeSets-NewsqueakV3/MethodNode.extension.st (6)
A smalltalksrc/BytecodeSets-NewsqueakV3/StackDepthFinder.extension.st (6)
A smalltalksrc/BytecodeSets-NewsqueakV3/package.st (1)
A smalltalksrc/BytecodeSets-NewsqueakV4/BlockLocalTempCounter.extension.st (18)
A smalltalksrc/BytecodeSets-NewsqueakV4/BytecodeEncoder.extension.st (61)
A smalltalksrc/BytecodeSets-NewsqueakV4/ClosureExtractor.extension.st (6)
A smalltalksrc/BytecodeSets-NewsqueakV4/ContextPart.extension.st (20)
A smalltalksrc/BytecodeSets-NewsqueakV4/Decompiler.extension.st (7)
A smalltalksrc/BytecodeSets-NewsqueakV4/EncoderForNewsqueakV4.class.st (1288)
A smalltalksrc/BytecodeSets-NewsqueakV4/EncoderForSistaV1.class.st (1530)
A smalltalksrc/BytecodeSets-NewsqueakV4/EncoderForV3.extension.st (9)
A smalltalksrc/BytecodeSets-NewsqueakV4/FullBlockClosure.class.st (241)
A smalltalksrc/BytecodeSets-NewsqueakV4/InstructionClient.extension.st (48)
A smalltalksrc/BytecodeSets-NewsqueakV4/InstructionPrinter.extension.st (110)
A smalltalksrc/BytecodeSets-NewsqueakV4/InstructionStream.extension.st (443)
A smalltalksrc/BytecodeSets-NewsqueakV4/MethodContext.extension.st (9)
A smalltalksrc/BytecodeSets-NewsqueakV4/MethodNode.extension.st (6)
A smalltalksrc/BytecodeSets-NewsqueakV4/StackDepthFinder.extension.st (7)
A smalltalksrc/BytecodeSets-NewsqueakV4/package.st (1)
A smalltalksrc/CMakeVMMaker-Android/CMCairo.class.st (133)
A smalltalksrc/CMakeVMMaker-Android/CMCairoBundle.class.st (29)
A smalltalksrc/CMakeVMMaker-Android/CMFreetype2.class.st (124)
A smalltalksrc/CMakeVMMaker-Android/CMIOSFreetype2.class.st (66)
A smalltalksrc/CMakeVMMaker-Android/CMLibPng.class.st (109)
A smalltalksrc/CMakeVMMaker-Android/CMOSXFreetype2.class.st (18)
A smalltalksrc/CMakeVMMaker-Android/CMOpenSSL.class.st (10)
A smalltalksrc/CMakeVMMaker-Android/CMPixman.class.st (108)
A smalltalksrc/CMakeVMMaker-Android/CMPkgConfig.class.st (83)
A smalltalksrc/CMakeVMMaker-Android/CMThirdpartyLibrary.class.st (327)
A smalltalksrc/CMakeVMMaker-Android/CMWin32Cairo.class.st (53)
A smalltalksrc/CMakeVMMaker-Android/CMWin32Freetype2.class.st (94)
A smalltalksrc/CMakeVMMaker-Android/CMWin32LibPng.class.st (67)
A smalltalksrc/CMakeVMMaker-Android/CMWin32OpenSSL.class.st (113)
A smalltalksrc/CMakeVMMaker-Android/CMWin32Pixman.class.st (45)
A smalltalksrc/CMakeVMMaker-Android/CMWin32PkgConfig.class.st (67)
A smalltalksrc/CMakeVMMaker-Android/CMWin32ZLib.class.st (96)
A smalltalksrc/CMakeVMMaker-Android/CMakeAndroidGenerator.class.st (151)
A smalltalksrc/CMakeVMMaker-Android/CMakeAndroidPluginGenerator.class.st (172)
A smalltalksrc/CMakeVMMaker-Android/CMakeGenScripts.class.st (249)
A smalltalksrc/CMakeVMMaker-Android/CMakeGenerator.class.st (253)
A smalltalksrc/CMakeVMMaker-Android/CMakePluginGenerator.class.st (196)
A smalltalksrc/CMakeVMMaker-Android/CMakeVMGenerator.class.st (376)
A smalltalksrc/CMakeVMMaker-Android/CPlatformConfig.class.st (971)
A smalltalksrc/CMakeVMMaker-Android/CocoaIOSConfig.class.st (1145)
A smalltalksrc/CMakeVMMaker-Android/CogCocoaIOSConfig.class.st (66)
A smalltalksrc/CMakeVMMaker-Android/CogFamilyCocoaIOSConfig.class.st (360)
A smalltalksrc/CMakeVMMaker-Android/CogFamilyUnixConfig.class.st (397)
A smalltalksrc/CMakeVMMaker-Android/CogFamilyWindowsConfig.class.st (378)
A smalltalksrc/CMakeVMMaker-Android/CogFreeBSDConfig.class.st (301)
A smalltalksrc/CMakeVMMaker-Android/CogMTCocoaIOSConfig.class.st (43)
A smalltalksrc/CMakeVMMaker-Android/CogMTCocoaIOSDebugConfig.class.st (22)
A smalltalksrc/CMakeVMMaker-Android/CogMTFreeBSDConfig.class.st (63)
A smalltalksrc/CMakeVMMaker-Android/CogMTMacOSConfig.class.st (60)
A smalltalksrc/CMakeVMMaker-Android/CogMTUnixConfig.class.st (63)
A smalltalksrc/CMakeVMMaker-Android/CogMTWindowsConfig.class.st (54)
A smalltalksrc/CMakeVMMaker-Android/CogMacOSConfig.class.st (911)
A smalltalksrc/CMakeVMMaker-Android/CogMacOSDebugConfig.class.st (17)
A smalltalksrc/CMakeVMMaker-Android/CogOnDebian64Config.class.st (31)
A smalltalksrc/CMakeVMMaker-Android/CogUnixConfig.class.st (378)
A smalltalksrc/CMakeVMMaker-Android/CogUnixDebugConfig.class.st (18)
A smalltalksrc/CMakeVMMaker-Android/CogUnixNoGLConfig.class.st (201)
A smalltalksrc/CMakeVMMaker-Android/CogWindowsConfig.class.st (229)
A smalltalksrc/CMakeVMMaker-Android/CogWindowsDebugConfig.class.st (20)
A smalltalksrc/CMakeVMMaker-Android/InterpreterPlugin.extension.st (22)
A smalltalksrc/CMakeVMMaker-Android/MacOSConfig.class.st (415)
A smalltalksrc/CMakeVMMaker-Android/StackCocoaIOSARMConfig.class.st (399)
A smalltalksrc/CMakeVMMaker-Android/StackCocoaIOSCLANGConfig.class.st (28)
A smalltalksrc/CMakeVMMaker-Android/StackCocoaIOSConfig.class.st (58)
A smalltalksrc/CMakeVMMaker-Android/StackEvtAndroidConfig.class.st (416)
A smalltalksrc/CMakeVMMaker-Android/StackEvtUnixConfig.class.st (71)
A smalltalksrc/CMakeVMMaker-Android/StackEvtUnixDebugConfig.class.st (11)
A smalltalksrc/CMakeVMMaker-Android/StackFreeBSDConfig.class.st (31)
A smalltalksrc/CMakeVMMaker-Android/StackIPhoneConfig.class.st (674)
A smalltalksrc/CMakeVMMaker-Android/StackMacOSConfig.class.st (39)
A smalltalksrc/CMakeVMMaker-Android/StackMacOSDebugConfig.class.st (17)
A smalltalksrc/CMakeVMMaker-Android/StackSimulatorConfig.class.st (32)
A smalltalksrc/CMakeVMMaker-Android/StackUnixConfig.class.st (40)
A smalltalksrc/CMakeVMMaker-Android/StackUnixDebugConfig.class.st (18)
A smalltalksrc/CMakeVMMaker-Android/StackUnixDebugFixedVerSIConfig.class.st (38)
A smalltalksrc/CMakeVMMaker-Android/StackWindowsConfig.class.st (37)
A smalltalksrc/CMakeVMMaker-Android/String.extension.st (29)
A smalltalksrc/CMakeVMMaker-Android/package.st (1)
A smalltalksrc/CMakeVMMaker/CMCairo.class.st (133)
A smalltalksrc/CMakeVMMaker/CMCairoBundle.class.st (29)
A smalltalksrc/CMakeVMMaker/CMFreetype2.class.st (0)
A smalltalksrc/CMakeVMMaker/CMIOSFreetype2.class.st (0)
A smalltalksrc/CMakeVMMaker/CMLibPng.class.st (0)
A smalltalksrc/CMakeVMMaker/CMOSXFreetype2.class.st (0)
A smalltalksrc/CMakeVMMaker/CMOpenSSL.class.st (0)
A smalltalksrc/CMakeVMMaker/CMPixman.class.st (0)
A smalltalksrc/CMakeVMMaker/CMPkgConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CMThirdpartyLibrary.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32Cairo.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32Freetype2.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32LibPng.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32OpenSSL.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32Pixman.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32PkgConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CMWin32ZLib.class.st (0)
A smalltalksrc/CMakeVMMaker/CMakeAndroidGenerator.class.st (0)
A smalltalksrc/CMakeVMMaker/CMakeAndroidPluginGenerator.class.st (0)
A smalltalksrc/CMakeVMMaker/CMakeGenScripts.class.st (0)
A smalltalksrc/CMakeVMMaker/CMakeGenerator.class.st (0)
A smalltalksrc/CMakeVMMaker/CMakePluginGenerator.class.st (0)
A smalltalksrc/CMakeVMMaker/CMakeVMGenerator.class.st (0)
A smalltalksrc/CMakeVMMaker/CPlatformConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CocoaIOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogCocoaIOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogFamilyCocoaIOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogFamilyUnixConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogFamilyWindowsConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogFreeBSDConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMTBuilder.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMTCocoaIOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMTFreeBSDConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMTMacOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMTUnixConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMTWindowsConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMacOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogMacOSDebugConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogOnDebian64Config.class.st (0)
A smalltalksrc/CMakeVMMaker/CogUnixConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogUnixDebugConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogUnixNoGLConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogWindowsConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/CogWindowsDebugConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/InterpreterPlugin.extension.st (0)
A smalltalksrc/CMakeVMMaker/MacOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackCocoaIOSCLANGConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackCocoaIOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackCrossRaspbianConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackCrossRaspbianFastBltConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackEvtAndroidConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackEvtUnixConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackEvtUnixDebugConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackFreeBSDConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackIPhoneConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackMacOSConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackMacOSDebugConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackRaspbianConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackRaspbianFastBltConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackSimulatorConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackUnixConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackUnixDebugConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackUnixDebugFixedVerSIConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/StackWindowsConfig.class.st (0)
A smalltalksrc/CMakeVMMaker/package.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAddCompileOptions.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAddCustomCommandOutput.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAddDefinitions.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAddExecutableNameOptionSource.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAddLibrary.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAddSubDirectory.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAppendConfigHIn.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeAppendConfigStatus.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckAlloca.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckFunctionAtExitOnExit.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckFunctionExists.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckIncludeFile.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckLibDL.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckLibraryExists.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckStructHasMember.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckTryCompileHaveLangInfoCodeset.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckTryRunDoubleWordAlignmentOrder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckTypeSize.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCheckVariableExists.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCommand.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeCompilerIsGNUCC.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeConfigDefine.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeConfigUnDefine.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeDebug.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeDirDefs.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeFindPackage.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeFindPackageOpenGL.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeGeneratorForSqueak.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeHeader.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIOSInstallCode.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIfAddDefinitionsElseAddDefinitions.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIfDefinedConfigDefine.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIfNotFlagSetConfigDefine.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIfNotSetConfigDefine.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIfPluginDependencies.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeInclude.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeIncludeDirectories.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeLinkDirectories.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeListAppend.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeMessage.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeMinimumRequired.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakePluginExternal.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakePluginGeneratorForSqueak.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakePluginInternal.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakePluginVm.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeProject.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeSet.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeSetConfigDefine.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeSetProperty.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeSetSourceFilesProperties.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeSetTargetProperties.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeSqConfigH.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeTargetLinkLibraries.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeTemplate.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeTestBigEndian.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMDisplayCustom.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMDisplayFbdev.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMDisplayNull.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMDisplayQuartz.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMDisplayX11.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMGeneratorForSqueak.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakBuildersHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakBuildersTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakCMakeTemplatesTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakCommonConfigTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakConfigurationsHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakDesignPatternsHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakDeveloperHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakDistroGeneratorHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakGeneratorsHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakHistoryHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakHistoryIanPiumartaHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakHistoryIgorStasenkoHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakMacintoshConfigTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakOverviewHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakPluginGeneratorHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakRedirectMethodsTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakRedirectMethodsWithArgTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakStartHereHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakTemplatesHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakTutorialEndUserHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakTutorialNewBuilderHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakTutorialNewConfigurationHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakTutorialsHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakUnixConfigTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakVMGeneratorHelp.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMMakerSqueakWindowsConfigTest.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMPlugin.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundALSA.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundCustom.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundMacOSX.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundNAS.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundNull.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundOSS.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundPulse.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMSoundSun.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVMakerConfigurationInfo.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CMakeVersion.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/CPlatformConfigForSqueak.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/InterpreterPlugin.extension.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux32ARMv6Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux32x86Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux32x86SqueakCogV3Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux64x64Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux64x64SqueakCogSpurConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux64x86w32BitConfigUsrLib.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux64x86w32BitConfigUsrLib32.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux64x86w32BitSqueakCogSpurConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/Linux64x86w32BitSqueakCogV3Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakBSD32x86Builder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakBSD32x86Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakCMakeSourceDistroBuilder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakCMakeVMMakerAbstractBuilder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIA32BochsBuilder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIA32BochsConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIA32BochsLinuxConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIA32BochsMacOSConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIA32BochsMacOSXConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIA32BochsWin32Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIOSBuilder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakIOSConfig.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakLinux32ARMv6Builder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakLinux32x86Builder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakLinux64x64Builder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakLinux64x86w32CompatBuilder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakMacOSPowerPCBuilder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakMacOSX32x86Builder.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakMacOSX32x86Config.class.st (0)
A smalltalksrc/CMakeVMMakerSqueak/SqueakMacOSXPowerPCConfig.class.st (0)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/308.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/308.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/308
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2485.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2485
Author: eem
Time: 20 November 2018, 4:14:24.347244 pm
UUID: 249a79b3-12b5-41c7-89a5-d4349791b824
Ancestors: VMMaker.oscog-eem.2484
Sista:
Make non-local return safe in the presence of Sista oiuter-context-less blocks; i.e. throw cannotReturn: when a home context cannot be found instead of crashing.
Simulation:
Fix Spur's go-faster memcpy:_:_: for OSProcessPlugin>>#copyBytesFrom:to:length:
=============== Diff against VMMaker.oscog-eem.2484 ===============
Item was changed:
----- Method: CoInterpreter>>ceNonLocalReturn: (in category 'trampolines') -----
ceNonLocalReturn: returnValue
<api>
| closure home unwindContextOrNilOrZero ourContext frameToReturnTo contextToReturnTo theFP callerFP newPage |
<var: #frameToReturnTo type: #'char *'>
<var: #theFP type: #'char *'>
<var: #callerFP type: #'char *'>
<var: #newPage type: #'StackPage *'>
<var: #thePage type: #'StackPage *'>
"self shortPrintFrameAndCallers: framePointer.
self printOop: returnValue.
self halt."
self assert: (self isMachineCodeFrame: framePointer).
self assert: (self frameIsBlockActivation: framePointer).
+ "Update the current page's headFrame pointers to enable the search for unwind protects below
+ to identify widowed contexts correctly."
+ self externalWriteBackHeadFramePointers.
+
"Since this is a block activation the closure is on the stack above any args and the frame."
closure := self pushedReceiverOrClosureOfFrame: framePointer.
+ home := nil. "avoid compiler warning"
-
- home := nil.
"Walk the closure's lexical chain to find the context or frame to return from (home)."
[closure ~= objectMemory nilObject] whileTrue:
[home := objectMemory followField: ClosureOuterContextIndex ofObject: closure.
+ (self isContext: home) ifFalse:
+ ["error: can't find home on chain; cannot return"
+ ourContext := self ensureFrameIsMarried: framePointer SP: stackPointer.
+ ^self externalCannotReturn: returnValue from: ourContext].
closure := objectMemory followField: ClosureIndex ofObject: home].
"home is to be returned from provided there is no unwind-protect activation between
this frame and home's sender. Search for an unwind. findUnwindThroughContext:
will answer either the context for an unwind-protect activation or nilObj if the sender
+ cannot be found or 0 if no unwind is found but the sender is."
- cannot be found or 0 if no unwind is found but the sender is. We must update the
- current page's headFrame pointers to enable the search to identify widowed contexts
- correctly."
- self externalWriteBackHeadFramePointers.
unwindContextOrNilOrZero := self findUnwindThroughContext: home.
unwindContextOrNilOrZero = objectMemory nilObject ifTrue:
["error: can't find home on chain; cannot return"
ourContext := self ensureFrameIsMarried: framePointer SP: stackPointer.
^self externalCannotReturn: returnValue from: ourContext].
unwindContextOrNilOrZero ~= 0 ifTrue:
[^self externalAboutToReturn: returnValue through: unwindContextOrNilOrZero].
"Now we know home is on the sender chain.
We could be returning to either a context or a frame. Find out which."
contextToReturnTo := nil.
(self isMarriedOrWidowedContext: home)
ifTrue:
[self assert: (self checkIsStillMarriedContext: home currentFP: framePointer).
theFP := self frameOfMarriedContext: home.
(self isBaseFrame: theFP)
ifTrue:
[contextToReturnTo := self frameCallerContext: theFP]
ifFalse:
[frameToReturnTo := self frameCallerFP: theFP]]
ifFalse:
[contextToReturnTo := objectMemory fetchPointer: SenderIndex ofObject: home.
((objectMemory isContext: contextToReturnTo)
and: [self isMarriedOrWidowedContext: contextToReturnTo]) ifTrue:
[self assert: (self checkIsStillMarriedContext: contextToReturnTo currentFP: framePointer).
frameToReturnTo := self frameOfMarriedContext: contextToReturnTo.
contextToReturnTo := nil]].
"If returning to a context we must make a frame for it unless it is dead."
contextToReturnTo ~= nil ifTrue:
[frameToReturnTo := self establishFrameForContextToReturnTo: contextToReturnTo.
frameToReturnTo = 0 ifTrue:
["error: home's sender is dead; cannot return"
ourContext := self ensureFrameIsMarried: framePointer SP: stackPointer.
^self externalCannotReturn: returnValue from: ourContext]].
"Now we have a frame to return to. If it is on a different page we must
free intervening pages and nil out intervening contexts. We must free
intervening stack pages because if we leave the pages to be divorced
then their contexts will be divorced with intact senders and instruction
pointers. This code is similar to primitiveTerminateTo."
self assert: stackPages pageListIsWellFormed.
newPage := stackPages stackPageFor: frameToReturnTo.
newPage ~~ stackPage ifTrue:
[| currentCtx thePage nextCntx |
currentCtx := self frameCallerContext: stackPage baseFP.
self assert: (objectMemory isContext: currentCtx).
stackPages freeStackPage: stackPage.
[self assert: (objectMemory isContext: currentCtx).
(self isMarriedOrWidowedContext: currentCtx)
and: [(stackPages stackPageFor: (theFP := self frameOfMarriedContext: currentCtx)) = newPage]] whileFalse:
[(self isMarriedOrWidowedContext: currentCtx)
ifTrue:
[thePage := stackPages stackPageFor: theFP.
currentCtx := self frameCallerContext: thePage baseFP.
stackPages freeStackPage: thePage]
ifFalse:
[nextCntx := objectMemory fetchPointer: SenderIndex ofObject: currentCtx.
self markContextAsDead: currentCtx.
currentCtx := nextCntx]].
self setStackPageAndLimit: newPage.
self setStackPointersFromPage: newPage].
"Two cases. Returning to the top frame or an interior frame. The
top frame has its instruction pointer on top of stack. An interior
frame has its instruction pointer in the caller frame. We need to
peel back any frames on the page until we get to the correct frame."
framePointer = frameToReturnTo
ifTrue:
[instructionPointer := self popStack]
ifFalse:
[[callerFP := framePointer.
framePointer := self frameCallerFP: framePointer.
framePointer ~~ frameToReturnTo] whileTrue.
instructionPointer := (self frameCallerSavedIP: callerFP) asUnsignedInteger.
stackPointer := (self frameCallerSP: callerFP)].
^self return: returnValue toExecutive: false!
Item was changed:
----- Method: SpurMemoryManager>>memcpy:_:_: (in category 'simulation') -----
memcpy: destAddress _: sourceAddress _: bytes
"For SpurGenerationScavenger>>copyToFutureSpace:bytes:. N.B. If ranges overlap, must use memmove."
<doNotGenerate>
+ sourceAddress isCollection ifTrue:
+ [^super memcpy: destAddress _: sourceAddress _: bytes].
self deny: ((destAddress <= sourceAddress and: [destAddress asInteger + bytes > sourceAddress])
or: [sourceAddress <= destAddress and: [sourceAddress asInteger + bytes > destAddress]]).
^self memmove: destAddress _: sourceAddress _: bytes!
Item was changed:
----- Method: StackInterpreter>>commonReturn (in category 'return bytecodes') -----
commonReturn
"Do an ^-return (return from method), checking for unwinds if this is a block activation.
Note: Assumed to be inlined into the dispatch loop."
<sharedCodeInCase: #returnReceiver>
| closure home unwindContextOrNilOrZero frameToReturnTo contextToReturnTo theFP callerFP newPage |
<var: #frameToReturnTo type: #'char *'>
<var: #theFP type: #'char *'>
<var: #callerFP type: #'char *'>
<var: #newPage type: #'StackPage *'>
<var: #thePage type: #'StackPage *'>
"If this is a method simply return to the sender/caller."
(self iframeIsBlockActivation: localFP) ifFalse:
[^self commonCallerReturn].
+ "Update the current page's headFrame pointers to enable the search for unwind protects below
+ to identify widowed contexts correctly."
+ self writeBackHeadFramePointers.
+ self externalizeIPandSP.
+
"Since this is a block activation the closure is on the stack above any args and the frame."
closure := self pushedReceiverOrClosureOfFrame: localFP.
+ home := nil. "avoid compiler warning"
+ "Walk the closure's lexical chain to find the context or frame to return from (home).
+ If home is missing (Sista closures) then throw cannotReturn rather than crash."
-
- home := nil.
- "Walk the closure's lexical chain to find the context or frame to return from (home)."
[closure ~= objectMemory nilObject] whileTrue:
[home := objectMemory followField: ClosureOuterContextIndex ofObject: closure.
+ (self isContext: home) ifFalse:
+ [^self internalCannotReturn: localReturnValue].
closure := objectMemory followField: ClosureIndex ofObject: home].
"home is to be returned from provided there is no unwind-protect activation between
this frame and home's sender. Search for an unwind. findUnwindThroughContext:
will answer either the context for an unwind-protect activation or nilObj if the sender
+ cannot be found or 0 if no unwind is found but the sender is."
- cannot be found or 0 if no unwind is found but the sender is. We must update the
- current page's headFrame pointers to enable the search to identify widowed contexts
- correctly."
- self writeBackHeadFramePointers.
- self externalizeIPandSP.
unwindContextOrNilOrZero := self findUnwindThroughContext: home.
unwindContextOrNilOrZero = objectMemory nilObject ifTrue:
["error: can't find home on chain; cannot return"
^self internalCannotReturn: localReturnValue].
unwindContextOrNilOrZero ~= 0 ifTrue:
[^self internalAboutToReturn: localReturnValue through: unwindContextOrNilOrZero].
"Now we know home is on the sender chain.
We could be returning to either a context or a frame. Find out which."
contextToReturnTo := nil.
(self isMarriedOrWidowedContext: home)
ifTrue:
[self assert: (self checkIsStillMarriedContext: home currentFP: localFP).
theFP := self frameOfMarriedContext: home.
(self isBaseFrame: theFP)
ifTrue:
[contextToReturnTo := self frameCallerContext: theFP]
ifFalse:
[frameToReturnTo := self frameCallerFP: theFP]]
ifFalse:
[contextToReturnTo := objectMemory fetchPointer: SenderIndex ofObject: home.
((objectMemory isContext: contextToReturnTo)
and: [self isMarriedOrWidowedContext: contextToReturnTo]) ifTrue:
[self assert: (self checkIsStillMarriedContext: contextToReturnTo currentFP: localFP).
frameToReturnTo := self frameOfMarriedContext: contextToReturnTo.
contextToReturnTo := nil]].
"If returning to a context we must make a frame for it unless it is dead."
contextToReturnTo ~= nil ifTrue:
[frameToReturnTo := self establishFrameForContextToReturnTo: contextToReturnTo.
frameToReturnTo = 0 ifTrue: "error: home's sender is dead; cannot return"
[^self internalCannotReturn: localReturnValue]].
"Now we have a frame to return to. If it is on a different page we must free intervening pages and
nil out intervening contexts. We must free intervening stack pages because if we leave the pages
to be divorced then their contexts will be divorced with intact senders and instruction pointers. This
code is similar to primitiveTerminateTo. We must move any frames on intervening pages above the
frame linked to because these may be in use, e.g. via co-routining (see baseFrameReturn)."
self assert: stackPages pageListIsWellFormed.
newPage := stackPages stackPageFor: frameToReturnTo.
newPage ~~ stackPage ifTrue:
[| currentCtx thePage nextCntx |
currentCtx := self frameCallerContext: stackPage baseFP.
stackPages freeStackPage: stackPage.
[self assert: (objectMemory isContext: currentCtx).
(self isMarriedOrWidowedContext: currentCtx)
and: [(stackPages stackPageFor: (theFP := self frameOfMarriedContext: currentCtx)) = newPage]] whileFalse:
[(self isMarriedOrWidowedContext: currentCtx)
ifTrue:
[thePage := stackPages stackPageFor: theFP.
theFP ~= thePage headFP ifTrue:
["Since we've just deallocated a page we know that newStackPage won't deallocate an existing one."
self moveFramesIn: thePage through: (self findFrameAbove: theFP inPage: thePage) toPage: stackPages newStackPage].
currentCtx := self frameCallerContext: thePage baseFP.
stackPages freeStackPage: thePage]
ifFalse:
[nextCntx := objectMemory fetchPointer: SenderIndex ofObject: currentCtx.
self markContextAsDead: currentCtx.
currentCtx := nextCntx]].
self setStackPageAndLimit: newPage.
localSP := stackPage headSP.
localFP := stackPage headFP].
"Two cases. Returning to the top frame on a new page or an interior frame on the current page.
The top frame has its instruction pointer on top of stack. An interior frame has its instruction pointer
in the caller frame. We need to peel back any frames on the page until we get to the correct frame."
localFP = frameToReturnTo
ifTrue: "pop the saved IP, push the return value and continue."
[localIP := self pointerForOop: self internalStackTop]
ifFalse:
[[callerFP := localFP.
localFP := self frameCallerFP: localFP.
localFP ~~ frameToReturnTo] whileTrue.
localIP := self frameCallerSavedIP: callerFP.
localSP := (self frameCallerSP: callerFP) - objectMemory wordSize].
self maybeReturnToMachineCodeFrame.
self setMethod: (self frameMethod: localFP).
self fetchNextBytecode.
self internalStackTopPut: localReturnValue!
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: b83f9ecd5aeafa7e1e55c6db2f7fa90bae731c0a
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b83f9ecd5aeafa7e1e…
Author: Esteban Lorenzano <estebanlm(a)gmail.com>
Date: 2018-11-16 (Fri, 16 Nov 2018)
Changed paths:
M build.macos64x64/common/Makefile.flags
Log Message:
-----------
add latest osx sdk
Commit: 7ac73031f5fff73659da405f87954f7c7ca73db0
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/7ac73031f5fff73659…
Author: Esteban Lorenzano <estebanlm(a)gmail.com>
Date: 2018-11-16 (Fri, 16 Nov 2018)
Changed paths:
M third-party/freetype2.spec
Log Message:
-----------
update freetype version to 2.9.1
Commit: 65f27bbc17a86bacfc6cc98dea16686fb0ca62c0
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/65f27bbc17a86bacfc…
Author: Esteban Lorenzano <estebanlm(a)gmail.com>
Date: 2018-11-16 (Fri, 16 Nov 2018)
Changed paths:
M build.win64x64/third-party/Makefile.freetype2
Log Message:
-----------
taking freetype version for win64 from our own file server (because we need version 2.9.1)
Commit: b6a1085868d16b10a06fe2443be1bf1a38a45a91
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b6a1085868d16b10a0…
Author: Esteban Lorenzano <estebanlm(a)gmail.com>
Date: 2018-11-16 (Fri, 16 Nov 2018)
Changed paths:
M build.linux32ARMv6/editpharoinstall.sh
M build.linux32ARMv6/squeak.cog.spur/plugins.ext
M build.linux32ARMv6/squeak.stack.spur/plugins.ext
M build.linux32ARMv6/squeak.stack.v3/plugins.ext
M build.linux32x86/editpharoinstall.sh
M build.linux32x86/squeak.cog.spur.immutability/plugins.ext
M build.linux32x86/squeak.cog.spur/plugins.ext
M build.linux32x86/squeak.cog.v3/plugins.ext
M build.linux32x86/squeak.sista.spur/plugins.ext
M build.linux32x86/squeak.stack.spur/plugins.ext
M build.linux32x86/squeak.stack.v3/plugins.ext
M build.linux64x64/HowToBuild
A build.linux64x64/bochsx64/conf.COG
A build.linux64x64/bochsx64/conf.COG.dbg
A build.linux64x64/bochsx64/exploration/Makefile
A build.linux64x64/bochsx64/makeem
A build.linux64x64/bochsx86/conf.COG
A build.linux64x64/bochsx86/makeem
M build.linux64x64/editpharoinstall.sh
A build.linux64x64/gdbarm32/conf.COG
A build.linux64x64/gdbarm32/makeem
M build.linux64x64/squeak.cog.spur.immutability/plugins.ext
M build.linux64x64/squeak.cog.spur/plugins.ext
M build.linux64x64/squeak.stack.spur/plugins.ext
M build.macos32x86/HowToBuild
M build.macos32x86/common/Makefile.flags
M build.macos64x64/common/Makefile.flags
M build.win32x86/squeak.cog.spur.lowcode/plugins.ext
M build.win32x86/squeak.cog.spur/plugins.ext
M build.win32x86/squeak.cog.v3/plugins.ext
M build.win32x86/squeak.sista.spur/plugins.ext
M build.win32x86/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.stack.v3/plugins.ext
M build.win64x64/squeak.cog.spur/plugins.ext
M build.win64x64/squeak.stack.spur/plugins.ext
A deploy/resize_display
M image/BuildSqueakSpurTrunkVMMakerImage.st
M image/Slang Test Workspace.text
M image/VM Simulation Workspace.text
M nsspur64src/vm/cogit.h
M nsspur64src/vm/cogitX64SysV.c
M nsspur64src/vm/cogitX64WIN64.c
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspursrc/vm/cogit.h
M nsspursrc/vm/cogitARMv5.c
M nsspursrc/vm/cogitIA32.c
M nsspursrc/vm/cogitMIPSEL.c
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
M platforms/Cross/plugins/IA32ABI/ia32abicc.c
M platforms/Cross/plugins/IA32ABI/x64sysvabicc.c
M platforms/Cross/plugins/Squeak3D/b3d.h
M platforms/Cross/plugins/Squeak3D/b3dAlloc.h
M platforms/Cross/plugins/Squeak3D/b3dMain.c
M platforms/Cross/plugins/Squeak3D/b3dRemap.c
M platforms/Cross/plugins/Squeak3D/b3dTypes.h
M platforms/Cross/plugins/SqueakFFIPrims/sqFFITestFuncs.c
M platforms/Cross/vm/sq.h
M platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m
M platforms/iOS/vm/Common/Classes/sqSqueakNullScreenAndWindow.m
M platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
M platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
M platforms/iOS/vm/OSX/sqMacV2Window.m
M platforms/iOS/vm/OSX/sqSqueakMainApplication+screen.m
M platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
M platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
M platforms/unix/plugins/BochsIA32Plugin/Makefile.inc
M platforms/unix/plugins/BochsX64Plugin/Makefile.inc
M platforms/unix/plugins/GdbARMPlugin/Makefile.inc
M platforms/unix/vm-display-X11/sqUnixX11.c
M platforms/unix/vm/sqUnixEvent.c
M platforms/win32/vm/sqWin32Window.c
M spur64src/vm/cogit.h
M spur64src/vm/cogitX64SysV.c
M spur64src/vm/cogitX64WIN64.c
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cogitX64SysV.c
M spurlowcode64src/vm/cogitX64WIN64.c
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/cogit.h
M spurlowcodesrc/vm/cogitARMv5.c
M spurlowcodesrc/vm/cogitIA32.c
M spurlowcodesrc/vm/cogitMIPSEL.c
M spurlowcodesrc/vm/cointerp.c
M spurlowcodesrc/vm/cointerp.h
M spurlowcodesrc/vm/gcc3x-cointerp.c
M spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spursista64src/vm/cogit.h
M spursista64src/vm/cogitX64SysV.c
M spursista64src/vm/cogitX64WIN64.c
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cogitARMv5.c
M spursistasrc/vm/cogitIA32.c
M spursistasrc/vm/cogitMIPSEL.c
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cogit.h
M spursrc/vm/cogitARMv5.c
M spursrc/vm/cogitIA32.c
M spursrc/vm/cogitMIPSEL.c
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M src/plugins/ADPCMCodecPlugin/ADPCMCodecPlugin.c
M src/plugins/AioPlugin/AioPlugin.c
M src/plugins/AsynchFilePlugin/AsynchFilePlugin.c
M src/plugins/B2DPlugin/B2DPlugin.c
M src/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.c
M src/plugins/BMPReadWriterPlugin/BMPReadWriterPlugin.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/plugins/BochsIA32Plugin/BochsIA32Plugin.c
M src/plugins/BochsX64Plugin/BochsX64Plugin.c
M src/plugins/CameraPlugin/CameraPlugin.c
M src/plugins/CroquetPlugin/CroquetPlugin.c
M src/plugins/DESPlugin/DESPlugin.c
M src/plugins/DSAPrims/DSAPrims.c
M src/plugins/DropPlugin/DropPlugin.c
M src/plugins/FFTPlugin/FFTPlugin.c
M src/plugins/FileAttributesPlugin/FileAttributesPlugin.c
M src/plugins/FileCopyPlugin/FileCopyPlugin.c
M src/plugins/FilePlugin/FilePlugin.c
M src/plugins/FloatArrayPlugin/FloatArrayPlugin.c
M src/plugins/FloatMathPlugin/FloatMathPlugin.c
M src/plugins/GdbARMPlugin/GdbARMPlugin.c
M src/plugins/GeniePlugin/GeniePlugin.c
M src/plugins/HostWindowPlugin/HostWindowPlugin.c
M src/plugins/IA32ABI/IA32ABI.c
M src/plugins/ImmX11Plugin/ImmX11Plugin.c
M src/plugins/InternetConfigPlugin/InternetConfigPlugin.c
M src/plugins/JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.c
M src/plugins/JPEGReaderPlugin/JPEGReaderPlugin.c
M src/plugins/JoystickTabletPlugin/JoystickTabletPlugin.c
M src/plugins/Klatt/Klatt.c
M src/plugins/LargeIntegers/LargeIntegers.c
M src/plugins/LocalePlugin/LocalePlugin.c
M src/plugins/MD5Plugin/MD5Plugin.c
M src/plugins/MIDIPlugin/MIDIPlugin.c
M src/plugins/MacMenubarPlugin/MacMenubarPlugin.c
M src/plugins/Matrix2x3Plugin/Matrix2x3Plugin.c
M src/plugins/MiscPrimitivePlugin/MiscPrimitivePlugin.c
M src/plugins/Mpeg3Plugin/Mpeg3Plugin.c
M src/plugins/QuicktimePlugin/QuicktimePlugin.c
M src/plugins/RePlugin/RePlugin.c
M src/plugins/SHA256Plugin/SHA256Plugin.c
M src/plugins/ScratchPlugin/ScratchPlugin.c
M src/plugins/SecurityPlugin/SecurityPlugin.c
M src/plugins/SerialPlugin/SerialPlugin.c
M src/plugins/SocketPlugin/SocketPlugin.c
M src/plugins/SoundCodecPrims/SoundCodecPrims.c
M src/plugins/SoundGenerationPlugin/SoundGenerationPlugin.c
M src/plugins/SoundPlugin/SoundPlugin.c
M src/plugins/Squeak3D/Squeak3D.c
M src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c
M src/plugins/SqueakFFIPrims/IA32FFIPlugin.c
M src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c
M src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c
M src/plugins/SqueakSSL/SqueakSSL.c
M src/plugins/StarSqueakPlugin/StarSqueakPlugin.c
M src/plugins/UUIDPlugin/UUIDPlugin.c
M src/plugins/UnicodePlugin/UnicodePlugin.c
M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c
M src/plugins/VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.c
M src/plugins/VMProfileMacSupportPlugin/VMProfileMacSupportPlugin.c
M src/plugins/WeDoPlugin/WeDoPlugin.c
M src/plugins/Win32OSProcessPlugin/Win32OSProcessPlugin.c
M src/plugins/XDisplayControlPlugin/XDisplayControlPlugin.c
M src/plugins/ZipPlugin/ZipPlugin.c
M src/vm/cogit.h
M src/vm/cogitARMv5.c
M src/vm/cogitIA32.c
M src/vm/cogitMIPSEL.c
M src/vm/cointerp.c
M src/vm/cointerp.h
M src/vm/cointerpmt.c
M src/vm/cointerpmt.h
M src/vm/gcc3x-cointerp.c
M src/vm/gcc3x-cointerpmt.c
M stacksrc/vm/gcc3x-interp.c
M stacksrc/vm/interp.c
Log Message:
-----------
Merge branch 'Cog' of github.com:OpenSmalltalk/opensmalltalk-vm into add-win64
Commit: d8934ffda8c8f63ab4a12ff5ff36f437cb2314c0
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d8934ffda8c8f63ab4…
Author: Esteban Lorenzano <estebanlm(a)gmail.com>
Date: 2018-11-20 (Tue, 20 Nov 2018)
Changed paths:
M build.win64x64/third-party/Makefile.freetype2
M third-party/freetype2.spec
Log Message:
-----------
Merge pull request #307 from estebanlm/add-win64
update freetype2 to v2.9.1
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/fd213d14072e...d8…
**NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
Just trying to figure out which of cog, spur, spur lowcode, sista, etc....is the 64 bit VM that one would get if they just downloaded the pre-built VM from Pharo.org?
Thanks.
TLDR; Please consider deleting tho crazy
all-history-committed-on-a-single-day-bunched-commits...
https://github.com/feenkcom/opensmalltalk-vm/network
and adopting my "vmmaker_fix_commit_dates_msgs_merge" branch that fixes
this.
https://github.com/bencoman/opensmalltalk-vm/network
i.e....
$ git remote add ben git@github.com:bencoman/opensmalltalk-vm.git
$ git fetch ben
$ git checkout -b my_vmmaker_merged_starting_point
ben/vmmaker_fix_commit_dates_msgs_merge
-----------------------------
I find it useful to review a repo's history using github's Insights >
Network....
Looking at opensmalltalk's right now is a bit strange...
https://github.com/OpenSmalltalk/opensmalltalk-vm/network
I often use the left arrow key to scroll into the past and it
was strange that no date numbers appeared at the top for a really long time
.
Looking at the feenkcom account, it was further strange that all the
commits consistently spaced and to be bunched together in a single day even
though they appeared to have successfully migrated their real commit date,
I'm guessing its due to the "Initial commit" of that branch being done "6
days ago" and the next child commit is several years earlier. Probably if
that initial commit was forced to a much earlier date, the vmmaker commits
would become nicely spaced out in the network chart and you'd
be able to visually see which other commits each aligned with.
It also seemed strange that commit 55d8605 had no parent but DID have a
purple line preceding it, but here it was clear that 55d8605 was an orphan
starting the branch...
https://github.com/feenkcom/opensmalltalk-vm/network
[image: strange-git-network.png]
I found trying to review the same with `git log` was confusing since the
vmmaker-only branch had been merged with the Cog branch into
"pullrequest/vmmaker".
>From browsing the commits on github I found the last separate-vmmaker
commit was ab7cbba.
So then...
$ git clone feenk https://github.com/feenkcom/opensmalltalk-vm.git
$ git pull feenk
$ git checkout ab7cbba -b last_separate_vmmaker
$ git log -1
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: Mon Nov 5 10:32:17 2018 +0000
ThreadedFFIPlugin....
which looks right, and reviewing the first commits, the "Date:" is wrong
for Ganea commit...
$ git log | tail -50 | grep -v Co-authored
commit e69ea5c78ebcf2d6fca6cc8b3c09158790085e33
Author: Tim Rowledge <tim(a)rowledge.org>
Date: Mon Feb 16 16:14:30 2004 +0000
Loaded VMMaker 3.7beta 1 for the first time. Appears to be all
installed ok.
commit 55d860554e53d9828b836bebd7ea29cc852c85ef
Author: George Ganea <georgeganea(a)gmail.com>
Date: Thu Nov 8 09:52:01 2018 +0200 <<<<<<<<<<<<<<<<
initial commit
After hunting around git forums a while I discovered I could do...
$ git filter-branch --env-filter \
'if [ $GIT_COMMIT = 55d860554e53d9828b836bebd7ea29cc852c85ef ]
then
export GIT_AUTHOR_DATE="Mon Feb 15 00:00:00 2004 +0000"
export GIT_COMMITTER_DATE="Mon Feb 15 00:00:00 2004 +0000"
fi'
Rewrite ab7cbba2d7a8d2f28253c6aa68fa02791bebfca2 (3296/3300) (729 seconds
passed, remaining 0 predicted)
Ref 'refs/heads/last_separate_vmmaker' was rewritten
and the following shows that worked as expected, with a better commit date
for Ganea commit (note the different commit hash)...
$ git log | tail -50 | grep -v Co-authored
commit 8c61452847c067e71ace5294256270015d3abf91
Author: Tim Rowledge <tim(a)rowledge.org>
Date: Mon Feb 16 16:14:30 2004 +0000
Loaded VMMaker 3.7beta 1 for the first time. Appears to be all
installed ok.
commit a8679450ec9a9fb206ee1bf8586ff5919b0c1487
Author: George Ganea <georgeganea(a)gmail.com>
Date: Sun Feb 15 00:00:00 2004 +0000 <<<<<<<<<<<<<<<<
initial commit
However that didn't fix visual issue on github.
Doing...
$ git push ben
showed the network chart had the same problem for my
branch last_separate_vmmaker
Digging further I noticed a discrepancy in the CommitDate not matching
AuthorDate...
$ git log --format=fuller | tail -55 | grep -v Co-authored
commit 8c61452847c067e71ace5294256270015d3abf91
Author: Tim Rowledge <tim(a)rowledge.org>
AuthorDate: Mon Feb 16 16:14:30 2004 +0000 <<<<<<<<<<<<<<<<
Commit: Tim Rowledge <tim(a)rowledge.org>
CommitDate: Thu Nov 8 08:31:34 2018 +0000 <<<<<<<<<<<<<<<<
Loaded VMMaker 3.7beta 1 for the first time. Appears to be all
installed ok.
commit a8679450ec9a9fb206ee1bf8586ff5919b0c1487
Author: George Ganea <georgeganea(a)gmail.com>
AuthorDate: Sun Feb 15 00:00:00 2004 +0000
Commit: George Ganea <georgeganea(a)gmail.com>
CommitDate: Sun Feb 15 00:00:00 2004 +0000
initial commit
So just taking a wild stab...
$ git branch vmmaker_fix_commit_dates
$ git checkout vmmaker_fix_commit_dates
$ git filter-branch --env-filter 'export
GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
$ git log --format=fuller | tail -55 | grep -v Co-authored
That looks better. Lets see how it looks on github.
$ git push ben
But it seems that doesn't show up in the chart until its merged like this...
(maybe because the branch starts with an orphan commit.)
$ git branch vmmaker_fix_commit_dates_merge
$ git checkout vmmaker_fix_commit_dates_merge
$ git merge Cog --allow-unrelated-histories
$ git push ben
[image: fixed_commit_dates.png]
One final thing. Considering how all these VMMaker commit message are
going to be intermixed with the existing history,
it may be useful to identify at a glance which ones are from VMMaker.
Starting one commit back so working on the unmerged history, I did...
$ git checkout vmmaker_fix_commit_dates
$ git branch vmmaker_fix_commit_dates_msgs
$ git checkout vmmaker_fix_commit_dates_msgs
$ git filter-branch -f --msg-filter 'sed "s/^/VMMAKER: /" '
$ git log
Looks okay
$ git push ben
$ git branch vmmaker_fix_commit_dates_msgs_merge
$ git checkout vmmaker_fix_commit_dates_msgs_merge
$ git merge Cog --allow-unrelated-histories
$ git push ben
Below you can see how the VMMaker commits are now spread correctly over
time. And also how the VMMaker commit could be identified.
But even consider that perhaps it would be useful for the MCZ filename to
be prepended to the commit message (@peter?),
so its easier in the ancient history to exactly match up the Cog branch
commits with the VMMaker commits.
So please consider deleting those crazy single-day-bunched-commits and
adopting my "vmmaker_fix_commit_dates_msgs_merge" branch
$ git remote add ben git@github.com:bencoman/opensmalltalk-vm.git
$ git fetch ben
$ git checkout -b my_vmmaker_merged_starting_point
ben/vmmaker_fix_commit_dates_msgs_merge
After that, it might even be possible to squeeze the both Cog and VMMaker
branches together so there is
just one branch all the way back to ancient history, with the vmmaker
commits identified to "VMMAKER" marked commit messages.
Going forward there wont need to be that distinction.
HTH, cheers -ben
[image: fixed_commit_dates.png]