{"push_id":1467373442,"size":10,"distinct_size":3,"ref":"refs/heads/blairmcg/delay5","head":"d22f232bd6785bcd429097ac7bfc02b67a66e3d3","before":"0f2db2a3eebc210485845487f5c707beb38be639","commits":[{"sha":"f7953f016a06b59fccb3c8a6195904554a55a86c","author":{"name":"James Foster","email":"f27a17fc90c00d8c248d8510a1084221738b492b@jgfoster.net"},"message":"Remove unreferenced headers (interlockedops.h) that cause unnecessary rebuild. (#104)\n\nPassed on rebuild.","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/f7953f016a06b59fccb3c8a6195904554a55a86c"},{"sha":"c9eda06fc34cab96ef1a0733219619de127d17f6","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"Revert \"Remove semaphore parameter from primitiveSignalAtTick (#103)\"\n\nThis reverts commit 53b0e6abb6e35b570df7bdafe3b2947b57c11785.","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/c9eda06fc34cab96ef1a0733219619de127d17f6"},{"sha":"9e9070bbf4527288640339ae271070c49ad9b565","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"Merge branch 'blairmcg/rollb'","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/9e9070bbf4527288640339ae271070c49ad9b565"},{"sha":"46e64139a12f9dfab5acd112026edb745f3d913b","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"primitiveLongDoubleAt can leak FP exceptions\n\nprimitiveLongDoubleAt can cause overflow, but doesn't ensure that all FP\nexceptions are raised before it continues. This can cause the next\n(probably unrelated) operation that does an fwait to fire the FP exception.","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/46e64139a12f9dfab5acd112026edb745f3d913b"},{"sha":"771ae7041792c1ecd2a5997df46205cf8cc68832","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"Fix VM debug dump of class methods\n\nAlso add decode of ExLongPushImmediate instruction","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/771ae7041792c1ecd2a5997df46205cf8cc68832"},{"sha":"2414f0d1114e2995adb281196915c655e0af9298","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"primitiveIndirectDwordAtPut corrupts stack if can't write to memory\n\nThe ExternalAddress>>dwordAtOffset:put: primitive adjusts the stack to\nearly, assuming that the attempt to write to a memory location will\nsucceed, but if it doesn't (i.e. the memory is inaccessible), when the GP\nfault is reported the Smalltalk stack is incorrect. This shows up\ncharacteristically as the receiver being a SmallInteger, but executing\nan ExternalAddress method.\nThere are probably other instances of this to fix.","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/2414f0d1114e2995adb281196915c655e0af9298"},{"sha":"afa95f98a39c0247d774596df3c42324b592ed99","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"primitiveEnableInterrupts always returns false\n\nThe underlying C++ function called by the assembler primitive is declared\nas returning the C++ type \"bool\", which is a single byte type. The C++\ncompiler generates code that does not clear the upper registers of EAX -\nit just sets AL. The primitive assumes it is getting a 32-bit value in EAX\nso it thinks that the return value from the C++ function is always true,\nwhich it then logically negates to generate the primitive return value\nwhich is then always false. This results in the code in\nInputState>>windowAt:put: always leaving interrupts disabled, which delays\nthe detection of asynchronous events until interrupts are again enabled\n(e.g. by a Semaphore>>wait or signal operation).","distinct":false,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/afa95f98a39c0247d774596df3c42324b592ed99"},{"sha":"82ae0219399855b3cf54282adb93bcd1afdff223","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"Use compiler intrinsics for interlocked operations","distinct":true,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/82ae0219399855b3cf54282adb93bcd1afdff223"},{"sha":"da1371dbd930d0cef79424dec04027bbde09ee47","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"Fix delayed delivery of Win32 exceptions and ST stack corruption\n\nWin32 structured exceptions are dispatched into the image from the VM\nusing the general purpose VM interrupt mechanism, but they should be sent\nsynchronously, not via the async interrupt queue.\nThe delivery of queued interrupts is delayed when interrupts are disabled as\nthis queuing mechanism is designed for asynchronous events. If synchronous\nfaults are sent via the async queue, then they may not be translated into\nexceptions originating in the method where the fault occurred, but rather\nsome later executing method in the same process. This causes intermittent\nissues in test runs with tests that deliberately cause Win32 faults for\ntesting purposes (e.g. MemoryMappedFileTest>>testReadOnly)\n\nAlso fix remaining issues with the ST stack (actually mainly the stack\npointer) becoming corrupted when faults were trapped in primitives.","distinct":true,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/da1371dbd930d0cef79424dec04027bbde09ee47"},{"sha":"d22f232bd6785bcd429097ac7bfc02b67a66e3d3","author":{"name":"Blair McGlashan","email":"25d7f1c5c06b079c70069e203f21f3c1cb188f70@outlook.com"},"message":"Add a debug bytecode disassembler template class for compiler and VM\n\nMake the debug disassemblers in the VM and compiler use a common\nimplementation.","distinct":true,"url":"https://api.github.com/repos/dolphinsmalltalk/DolphinVM/commits/d22f232bd6785bcd429097ac7bfc02b67a66e3d3"}]}
{"actor":{"display_login":"blairmcg"}}